@webiny/api-headless-cms 0.0.0-unstable.6e5425ee89 → 0.0.0-unstable.78f581c1d2

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 (272) hide show
  1. package/context.js +15 -0
  2. package/context.js.map +1 -1
  3. package/crud/contentEntry/afterDelete.js +5 -0
  4. package/crud/contentEntry/afterDelete.js.map +1 -1
  5. package/crud/contentEntry/beforeCreate.js +3 -0
  6. package/crud/contentEntry/beforeCreate.js.map +1 -1
  7. package/crud/contentEntry/beforeUpdate.js +3 -0
  8. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  9. package/crud/contentEntry/entryDataValidation.js +40 -1
  10. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  11. package/crud/contentEntry/markLockedFields.js +25 -2
  12. package/crud/contentEntry/markLockedFields.js.map +1 -1
  13. package/crud/contentEntry/referenceFieldsMapping.js +59 -5
  14. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  15. package/crud/contentEntry.crud.js +145 -27
  16. package/crud/contentEntry.crud.js.map +1 -1
  17. package/crud/contentModel/afterCreate.js +2 -0
  18. package/crud/contentModel/afterCreate.js.map +1 -1
  19. package/crud/contentModel/afterCreateFrom.js +2 -0
  20. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  21. package/crud/contentModel/afterDelete.js +2 -0
  22. package/crud/contentModel/afterDelete.js.map +1 -1
  23. package/crud/contentModel/afterUpdate.js +2 -0
  24. package/crud/contentModel/afterUpdate.js.map +1 -1
  25. package/crud/contentModel/beforeCreate.js +32 -4
  26. package/crud/contentModel/beforeCreate.js.map +1 -1
  27. package/crud/contentModel/beforeDelete.js +10 -0
  28. package/crud/contentModel/beforeDelete.js.map +1 -1
  29. package/crud/contentModel/beforeUpdate.js +5 -0
  30. package/crud/contentModel/beforeUpdate.js.map +1 -1
  31. package/crud/contentModel/contentModelManagerFactory.js +7 -0
  32. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  33. package/crud/contentModel/createFieldModels.js +6 -0
  34. package/crud/contentModel/createFieldModels.js.map +1 -1
  35. package/crud/contentModel/createFieldStorageId.js +2 -0
  36. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  37. package/crud/contentModel/fieldIdValidation.js +5 -0
  38. package/crud/contentModel/fieldIdValidation.js.map +1 -1
  39. package/crud/contentModel/idValidation.js +5 -0
  40. package/crud/contentModel/idValidation.js.map +1 -1
  41. package/crud/contentModel/models.js +8 -1
  42. package/crud/contentModel/models.js.map +1 -1
  43. package/crud/contentModel/systemFields.js.map +1 -1
  44. package/crud/contentModel/validateLayout.js +8 -0
  45. package/crud/contentModel/validateLayout.js.map +1 -1
  46. package/crud/contentModel/validateModel.js +8 -0
  47. package/crud/contentModel/validateModel.js.map +1 -1
  48. package/crud/contentModel/validateModelFields.js +60 -8
  49. package/crud/contentModel/validateModelFields.js.map +1 -1
  50. package/crud/contentModel.crud.js +96 -11
  51. package/crud/contentModel.crud.js.map +1 -1
  52. package/crud/contentModelGroup/beforeCreate.js +12 -0
  53. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  54. package/crud/contentModelGroup/beforeDelete.js +8 -0
  55. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  56. package/crud/contentModelGroup/beforeUpdate.js +5 -0
  57. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  58. package/crud/contentModelGroup.crud.js +47 -10
  59. package/crud/contentModelGroup.crud.js.map +1 -1
  60. package/crud/index.js +16 -0
  61. package/crud/index.js.map +1 -1
  62. package/crud/settings.crud.js +12 -0
  63. package/crud/settings.crud.js.map +1 -1
  64. package/crud/system.crud.js +37 -2
  65. package/crud/system.crud.js.map +1 -1
  66. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +13 -0
  67. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  68. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +53 -0
  69. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  70. package/fieldConverters/index.js +4 -0
  71. package/fieldConverters/index.js.map +1 -1
  72. package/graphql/buildSchemaPlugins.js +9 -5
  73. package/graphql/buildSchemaPlugins.js.map +1 -1
  74. package/graphql/graphQLHandlerFactory.js +28 -3
  75. package/graphql/graphQLHandlerFactory.js.map +1 -1
  76. package/graphql/index.js +8 -1
  77. package/graphql/index.js.map +1 -1
  78. package/graphql/schema/baseContentSchema.js +9 -1
  79. package/graphql/schema/baseContentSchema.js.map +1 -1
  80. package/graphql/schema/contentEntries.js +42 -2
  81. package/graphql/schema/contentEntries.js.map +1 -1
  82. package/graphql/schema/contentModelGroups.js +19 -2
  83. package/graphql/schema/contentModelGroups.js.map +1 -1
  84. package/graphql/schema/contentModels.js +18 -2
  85. package/graphql/schema/contentModels.js.map +1 -1
  86. package/graphql/schema/createFieldResolvers.js +21 -3
  87. package/graphql/schema/createFieldResolvers.js.map +1 -1
  88. package/graphql/schema/createManageResolvers.js +26 -0
  89. package/graphql/schema/createManageResolvers.js.map +1 -1
  90. package/graphql/schema/createManageSDL.js +14 -1
  91. package/graphql/schema/createManageSDL.js.map +1 -1
  92. package/graphql/schema/createPreviewResolvers.js +10 -0
  93. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  94. package/graphql/schema/createReadResolvers.js +10 -0
  95. package/graphql/schema/createReadResolvers.js.map +1 -1
  96. package/graphql/schema/createReadSDL.js +10 -0
  97. package/graphql/schema/createReadSDL.js.map +1 -1
  98. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -0
  99. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  100. package/graphql/schema/resolvers/manage/resolveCreate.js +3 -0
  101. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  102. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +3 -0
  103. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  104. package/graphql/schema/resolvers/manage/resolveDelete.js +6 -0
  105. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  106. package/graphql/schema/resolvers/manage/resolveGet.js +16 -0
  107. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  108. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -0
  109. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  110. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -0
  111. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  112. package/graphql/schema/resolvers/manage/resolveList.js +3 -0
  113. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  114. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -0
  115. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  116. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -0
  117. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  118. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -0
  119. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  120. package/graphql/schema/resolvers/manage/resolveUpdate.js +3 -0
  121. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  122. package/graphql/schema/resolvers/preview/resolveGet.js +8 -0
  123. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  124. package/graphql/schema/resolvers/preview/resolveList.js +3 -0
  125. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  126. package/graphql/schema/resolvers/read/resolveGet.js +8 -0
  127. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  128. package/graphql/schema/resolvers/read/resolveList.js +3 -0
  129. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  130. package/graphql/schema/schemaPlugins.js +19 -5
  131. package/graphql/schema/schemaPlugins.js.map +1 -1
  132. package/graphql/system.js +14 -1
  133. package/graphql/system.js.map +1 -1
  134. package/graphqlFields/boolean.js +12 -0
  135. package/graphqlFields/boolean.js.map +1 -1
  136. package/graphqlFields/datetime.js +17 -0
  137. package/graphqlFields/datetime.js.map +1 -1
  138. package/graphqlFields/file.js +8 -0
  139. package/graphqlFields/file.js.map +1 -1
  140. package/graphqlFields/helpers.js +10 -0
  141. package/graphqlFields/helpers.js.map +1 -1
  142. package/graphqlFields/index.js +11 -0
  143. package/graphqlFields/index.js.map +1 -1
  144. package/graphqlFields/longText.js +10 -0
  145. package/graphqlFields/longText.js.map +1 -1
  146. package/graphqlFields/number.js +12 -0
  147. package/graphqlFields/number.js.map +1 -1
  148. package/graphqlFields/object.js +36 -6
  149. package/graphqlFields/object.js.map +1 -1
  150. package/graphqlFields/ref.js +51 -17
  151. package/graphqlFields/ref.js.map +1 -1
  152. package/graphqlFields/richText.js +9 -0
  153. package/graphqlFields/richText.js.map +1 -1
  154. package/graphqlFields/text.js +11 -0
  155. package/graphqlFields/text.js.map +1 -1
  156. package/index.js +19 -0
  157. package/index.js.map +1 -1
  158. package/modelManager/DefaultCmsModelManager.js +16 -0
  159. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  160. package/modelManager/index.js +4 -0
  161. package/modelManager/index.js.map +1 -1
  162. package/package.json +24 -24
  163. package/parameters/context.js +4 -0
  164. package/parameters/context.js.map +1 -1
  165. package/parameters/header.js +11 -0
  166. package/parameters/header.js.map +1 -1
  167. package/parameters/index.js +8 -0
  168. package/parameters/index.js.map +1 -1
  169. package/parameters/manual.js +8 -1
  170. package/parameters/manual.js.map +1 -1
  171. package/parameters/path.js +11 -0
  172. package/parameters/path.js.map +1 -1
  173. package/plugins/CmsGroupPlugin.js +8 -0
  174. package/plugins/CmsGroupPlugin.js.map +1 -1
  175. package/plugins/CmsModelFieldConverterPlugin.js +5 -0
  176. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  177. package/plugins/CmsModelPlugin.js +38 -2
  178. package/plugins/CmsModelPlugin.js.map +1 -1
  179. package/plugins/CmsParametersPlugin.js +7 -0
  180. package/plugins/CmsParametersPlugin.js.map +1 -1
  181. package/plugins/StorageTransformPlugin.js +9 -0
  182. package/plugins/StorageTransformPlugin.js.map +1 -1
  183. package/plugins/index.js +10 -0
  184. package/plugins/index.js.map +1 -1
  185. package/storage/default.js +3 -0
  186. package/storage/default.js.map +1 -1
  187. package/storage/object.js +18 -0
  188. package/storage/object.js.map +1 -1
  189. package/types.js +62 -0
  190. package/types.js.map +1 -1
  191. package/upgrades/5.33.0/index.js +26 -3
  192. package/upgrades/5.33.0/index.js.map +1 -1
  193. package/upgrades/index.js +3 -0
  194. package/upgrades/index.js.map +1 -1
  195. package/utils/access.js +25 -11
  196. package/utils/access.js.map +1 -1
  197. package/utils/converters/Converter.js +13 -0
  198. package/utils/converters/Converter.js.map +1 -1
  199. package/utils/converters/ConverterCollection.js +32 -9
  200. package/utils/converters/ConverterCollection.js.map +1 -1
  201. package/utils/converters/valueKeyStorageConverter.js +26 -0
  202. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  203. package/utils/createTypeName.js +8 -0
  204. package/utils/createTypeName.js.map +1 -1
  205. package/utils/entryStorage.js +26 -10
  206. package/utils/entryStorage.js.map +1 -1
  207. package/utils/filterAsync.js +5 -0
  208. package/utils/filterAsync.js.map +1 -1
  209. package/utils/filterModelFields.js +9 -3
  210. package/utils/filterModelFields.js.map +1 -1
  211. package/utils/getEntryTitle.js +9 -0
  212. package/utils/getEntryTitle.js.map +1 -1
  213. package/utils/getSchemaFromFieldPlugins.js +6 -2
  214. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  215. package/utils/ownership.js +8 -0
  216. package/utils/ownership.js.map +1 -1
  217. package/utils/permissions.js +23 -8
  218. package/utils/permissions.js.map +1 -1
  219. package/utils/pluralizedTypeName.js +6 -0
  220. package/utils/pluralizedTypeName.js.map +1 -1
  221. package/utils/renderFields.js +8 -0
  222. package/utils/renderFields.js.map +1 -1
  223. package/utils/renderGetFilterFields.js +11 -0
  224. package/utils/renderGetFilterFields.js.map +1 -1
  225. package/utils/renderInputFields.js +8 -0
  226. package/utils/renderInputFields.js.map +1 -1
  227. package/utils/renderListFilterFields.js +9 -1
  228. package/utils/renderListFilterFields.js.map +1 -1
  229. package/utils/renderSortEnum.js +7 -0
  230. package/utils/renderSortEnum.js.map +1 -1
  231. package/utils/toSlug.js +4 -0
  232. package/utils/toSlug.js.map +1 -1
  233. package/validators/dateGte.js +7 -0
  234. package/validators/dateGte.js.map +1 -1
  235. package/validators/dateLte.js +7 -0
  236. package/validators/dateLte.js.map +1 -1
  237. package/validators/gte.js +8 -0
  238. package/validators/gte.js.map +1 -1
  239. package/validators/in.js +8 -0
  240. package/validators/in.js.map +1 -1
  241. package/validators/index.js +15 -0
  242. package/validators/index.js.map +1 -1
  243. package/validators/lte.js +8 -0
  244. package/validators/lte.js.map +1 -1
  245. package/validators/maxLength.js +8 -0
  246. package/validators/maxLength.js.map +1 -1
  247. package/validators/minLength.js +8 -0
  248. package/validators/minLength.js.map +1 -1
  249. package/validators/pattern.js +9 -0
  250. package/validators/pattern.js.map +1 -1
  251. package/validators/patternPlugins/email.js +2 -0
  252. package/validators/patternPlugins/email.js.map +1 -1
  253. package/validators/patternPlugins/index.js +8 -0
  254. package/validators/patternPlugins/index.js.map +1 -1
  255. package/validators/patternPlugins/lowerCase.js +2 -0
  256. package/validators/patternPlugins/lowerCase.js.map +1 -1
  257. package/validators/patternPlugins/lowerCaseSpace.js +2 -0
  258. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  259. package/validators/patternPlugins/upperCase.js +2 -0
  260. package/validators/patternPlugins/upperCase.js.map +1 -1
  261. package/validators/patternPlugins/upperCaseSpace.js +2 -0
  262. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  263. package/validators/patternPlugins/url.js +2 -0
  264. package/validators/patternPlugins/url.js.map +1 -1
  265. package/validators/required.js +5 -0
  266. package/validators/required.js.map +1 -1
  267. package/validators/timeGte.js +8 -0
  268. package/validators/timeGte.js.map +1 -1
  269. package/validators/timeLte.js +8 -0
  270. package/validators/timeLte.js.map +1 -1
  271. package/validators/unique.js +7 -0
  272. package/validators/unique.js.map +1 -1
@@ -1,38 +1,57 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.createContentEntryCrud = exports.STATUS_UNPUBLISHED = exports.STATUS_PUBLISHED = exports.STATUS_DRAFT = void 0;
9
+
8
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
9
12
  var _mdbid = _interopRequireDefault(require("mdbid"));
13
+
10
14
  var _handlerGraphql = require("@webiny/handler-graphql");
15
+
11
16
  var _entryDataValidation = require("./contentEntry/entryDataValidation");
17
+
12
18
  var _error = _interopRequireDefault(require("@webiny/error"));
19
+
13
20
  var _pubsub = require("@webiny/pubsub");
21
+
14
22
  var _beforeCreate = require("./contentEntry/beforeCreate");
23
+
15
24
  var _beforeUpdate = require("./contentEntry/beforeUpdate");
25
+
16
26
  var _utils = require("@webiny/utils");
27
+
17
28
  var _afterDelete = require("./contentEntry/afterDelete");
29
+
18
30
  var _referenceFieldsMapping = require("./contentEntry/referenceFieldsMapping");
31
+
19
32
  var _merge = _interopRequireDefault(require("lodash/merge"));
33
+
20
34
  var _permissions = require("../utils/permissions");
35
+
21
36
  var _access = require("../utils/access");
37
+
22
38
  var _ownership = require("../utils/ownership");
39
+
23
40
  var _entryStorage = require("../utils/entryStorage");
41
+
24
42
  var _valueKeyStorageConverter = require("../utils/converters/valueKeyStorageConverter");
43
+
25
44
  /**
26
45
  * Package mdbid does not have types.
27
46
  */
28
47
  // @ts-ignore
29
-
30
48
  const STATUS_DRAFT = "draft";
31
49
  exports.STATUS_DRAFT = STATUS_DRAFT;
32
50
  const STATUS_PUBLISHED = "published";
33
51
  exports.STATUS_PUBLISHED = STATUS_PUBLISHED;
34
52
  const STATUS_UNPUBLISHED = "unpublished";
35
53
  exports.STATUS_UNPUBLISHED = STATUS_UNPUBLISHED;
54
+
36
55
  /**
37
56
  * Used for some fields to convert their values.
38
57
  */
@@ -40,35 +59,45 @@ const convertDefaultValue = (field, value) => {
40
59
  switch (field.type) {
41
60
  case "boolean":
42
61
  return Boolean(value);
62
+
43
63
  case "number":
44
64
  return Number(value);
65
+
45
66
  default:
46
67
  return value;
47
68
  }
48
69
  };
70
+
49
71
  const getDefaultValue = field => {
50
72
  const {
51
73
  settings,
52
74
  multipleValues
53
75
  } = field;
76
+
54
77
  if (settings && settings.defaultValue !== undefined) {
55
78
  return convertDefaultValue(field, settings.defaultValue);
56
79
  }
80
+
57
81
  const {
58
82
  predefinedValues
59
83
  } = field;
84
+
60
85
  if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
61
86
  return undefined;
62
87
  }
88
+
63
89
  if (!multipleValues) {
64
90
  const selectedValue = predefinedValues.values.find(value => {
65
91
  return !!value.selected;
66
92
  });
93
+
67
94
  if (selectedValue) {
68
95
  return convertDefaultValue(field, selectedValue.value);
69
96
  }
97
+
70
98
  return undefined;
71
99
  }
100
+
72
101
  return predefinedValues.values.filter(({
73
102
  selected
74
103
  }) => !!selected).map(({
@@ -80,6 +109,8 @@ const getDefaultValue = field => {
80
109
  /**
81
110
  * Cleans and adds default values to create input data.
82
111
  */
112
+
113
+
83
114
  const mapAndCleanCreateInputData = (model, input) => {
84
115
  return model.fields.reduce((acc, field) => {
85
116
  /**
@@ -91,10 +122,12 @@ const mapAndCleanCreateInputData = (model, input) => {
91
122
  field
92
123
  });
93
124
  }
125
+
94
126
  const value = input[field.fieldId];
95
127
  /**
96
128
  * We set the default value on create input if value is not defined.
97
129
  */
130
+
98
131
  acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
99
132
  return acc;
100
133
  }, {});
@@ -102,6 +135,8 @@ const mapAndCleanCreateInputData = (model, input) => {
102
135
  /**
103
136
  * Cleans the update input entry data.
104
137
  */
138
+
139
+
105
140
  const mapAndCleanUpdatedInputData = (model, input) => {
106
141
  return model.fields.reduce((acc, field) => {
107
142
  /**
@@ -116,10 +151,14 @@ const mapAndCleanUpdatedInputData = (model, input) => {
116
151
  /**
117
152
  * We cannot set default value here because user might want to update only certain field values.
118
153
  */
154
+
155
+
119
156
  const value = input[field.fieldId];
157
+
120
158
  if (value === undefined) {
121
159
  return acc;
122
160
  }
161
+
123
162
  acc[field.fieldId] = value;
124
163
  return acc;
125
164
  }, {});
@@ -128,16 +167,22 @@ const mapAndCleanUpdatedInputData = (model, input) => {
128
167
  * This method takes original entry meta and new input.
129
168
  * When new meta is merged onto the existing one, everything that has undefined or null value is removed.
130
169
  */
170
+
171
+
131
172
  const createEntryMeta = (input, original) => {
132
173
  const meta = (0, _merge.default)(original || {}, input || {});
174
+
133
175
  for (const key in meta) {
134
176
  if (meta[key] !== undefined || meta[key] !== null) {
135
177
  continue;
136
178
  }
179
+
137
180
  delete meta[key];
138
181
  }
182
+
139
183
  return meta;
140
184
  };
185
+
141
186
  const createEntryId = version => {
142
187
  const entryId = (0, _mdbid.default)();
143
188
  return {
@@ -149,16 +194,19 @@ const createEntryId = version => {
149
194
  })
150
195
  };
151
196
  };
197
+
152
198
  const increaseEntryIdVersion = id => {
153
199
  const {
154
200
  id: entryId,
155
201
  version
156
202
  } = (0, _utils.parseIdentifier)(id);
203
+
157
204
  if (!version) {
158
205
  throw new _error.default("Cannot increase version on the ID without the version part.", "WRONG_ID", {
159
206
  id
160
207
  });
161
208
  }
209
+
162
210
  return {
163
211
  entryId,
164
212
  version: version + 1,
@@ -168,6 +216,7 @@ const increaseEntryIdVersion = id => {
168
216
  })
169
217
  };
170
218
  };
219
+
171
220
  const getSearchableFields = params => {
172
221
  const {
173
222
  plugins,
@@ -182,7 +231,9 @@ const getSearchableFields = params => {
182
231
  if (!field.fieldId) {
183
232
  return false;
184
233
  }
234
+
185
235
  const plugin = fieldPluginMap[field.type];
236
+
186
237
  if (!plugin) {
187
238
  return false;
188
239
  } else if (!plugin.fullTextSearch) {
@@ -190,13 +241,17 @@ const getSearchableFields = params => {
190
241
  } else if (!fields || fields.length === 0) {
191
242
  return true;
192
243
  }
244
+
193
245
  return fields.includes(field.fieldId);
194
246
  }).map(field => field.fieldId);
195
247
  };
248
+
196
249
  const allowedEntryStatus = ["draft", "published", "unpublished"];
250
+
197
251
  const transformEntryStatus = status => {
198
252
  return allowedEntryStatus.includes(status) ? status : "draft";
199
253
  };
254
+
200
255
  const createContentEntryCrud = params => {
201
256
  const {
202
257
  storageOperations,
@@ -206,52 +261,43 @@ const createContentEntryCrud = params => {
206
261
  } = params;
207
262
  const {
208
263
  plugins
209
- } = context;
264
+ } = context; // create
210
265
 
211
- // create
212
266
  const onEntryBeforeCreate = (0, _pubsub.createTopic)("cms.onEntryBeforeCreate");
213
267
  const onEntryAfterCreate = (0, _pubsub.createTopic)("cms.onEntryAfterCreate");
214
- const onEntryCreateError = (0, _pubsub.createTopic)("cms.onEntryCreateError");
268
+ const onEntryCreateError = (0, _pubsub.createTopic)("cms.onEntryCreateError"); // create revision
215
269
 
216
- // create revision
217
270
  const onEntryBeforeCreateRevision = (0, _pubsub.createTopic)("cms.onEntryBeforeCreateRevision");
218
271
  const onEntryRevisionAfterCreate = (0, _pubsub.createTopic)("cms.onEntryRevisionAfterCreate");
219
- const onEntryCreateRevisionError = (0, _pubsub.createTopic)("cms.onEntryCreateRevisionError");
272
+ const onEntryCreateRevisionError = (0, _pubsub.createTopic)("cms.onEntryCreateRevisionError"); // update
220
273
 
221
- // update
222
274
  const onEntryBeforeUpdate = (0, _pubsub.createTopic)("cms.onEntryBeforeUpdate");
223
275
  const onEntryAfterUpdate = (0, _pubsub.createTopic)("cms.onEntryAfterUpdate");
224
- const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError");
276
+ const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError"); // publish
225
277
 
226
- // publish
227
278
  const onEntryBeforePublish = (0, _pubsub.createTopic)("cms.onEntryBeforePublish");
228
279
  const onEntryAfterPublish = (0, _pubsub.createTopic)("cms.onEntryAfterPublic");
229
- const onEntryPublishError = (0, _pubsub.createTopic)("cms.onEntryPublishError");
280
+ const onEntryPublishError = (0, _pubsub.createTopic)("cms.onEntryPublishError"); // unpublish
230
281
 
231
- // unpublish
232
282
  const onEntryBeforeUnpublish = (0, _pubsub.createTopic)("cms.onEntryBeforeUnpublish");
233
283
  const onEntryAfterUnpublish = (0, _pubsub.createTopic)("cms.onEntryAfterUnpublish");
234
- const onEntryUnpublishError = (0, _pubsub.createTopic)("cms.onEntryUnpublishError");
284
+ const onEntryUnpublishError = (0, _pubsub.createTopic)("cms.onEntryUnpublishError"); // delete
235
285
 
236
- // delete
237
286
  const onEntryBeforeDelete = (0, _pubsub.createTopic)("cms.onEntryBeforeDelete");
238
287
  const onEntryAfterDelete = (0, _pubsub.createTopic)("cms.onEntryAfterDelete");
239
- const onEntryDeleteError = (0, _pubsub.createTopic)("cms.onEntryDeleteError");
288
+ const onEntryDeleteError = (0, _pubsub.createTopic)("cms.onEntryDeleteError"); // delete revision
240
289
 
241
- // delete revision
242
290
  const onEntryRevisionBeforeDelete = (0, _pubsub.createTopic)("cms.onEntryRevisionBeforeDelete");
243
291
  const onEntryRevisionAfterDelete = (0, _pubsub.createTopic)("cms.onEntryRevisionAfterDelete");
244
- const onEntryRevisionDeleteError = (0, _pubsub.createTopic)("cms.onEntryRevisionDeleteError");
292
+ const onEntryRevisionDeleteError = (0, _pubsub.createTopic)("cms.onEntryRevisionDeleteError"); // get
245
293
 
246
- // get
247
- const onEntryBeforeGet = (0, _pubsub.createTopic)("cms.onEntryBeforeGet");
294
+ const onEntryBeforeGet = (0, _pubsub.createTopic)("cms.onEntryBeforeGet"); // list
248
295
 
249
- // list
250
296
  const onEntryBeforeList = (0, _pubsub.createTopic)("cms.onEntryBeforeList");
251
-
252
297
  /**
253
298
  * We need to assign some default behaviors.
254
299
  */
300
+
255
301
  (0, _beforeCreate.assignBeforeEntryCreate)({
256
302
  context,
257
303
  onEntryBeforeCreate
@@ -264,18 +310,21 @@ const createContentEntryCrud = params => {
264
310
  context,
265
311
  onEntryAfterDelete
266
312
  });
313
+
267
314
  const checkEntryPermissions = check => {
268
315
  return (0, _permissions.checkPermissions)(context, "cms.contentEntry", check);
269
316
  };
270
-
271
317
  /**
272
318
  * A helper to delete the entire entry.
273
319
  */
320
+
321
+
274
322
  const deleteEntry = async params => {
275
323
  const {
276
324
  model,
277
325
  entry
278
326
  } = params;
327
+
279
328
  try {
280
329
  await onEntryBeforeDelete.publish({
281
330
  entry,
@@ -302,6 +351,8 @@ const createContentEntryCrud = params => {
302
351
  /**
303
352
  * A helper to get entries by revision IDs
304
353
  */
354
+
355
+
305
356
  const getEntriesByIds = async (initialModel, ids) => {
306
357
  const permission = await checkEntryPermissions({
307
358
  rwd: "r"
@@ -316,6 +367,7 @@ const createContentEntryCrud = params => {
316
367
  });
317
368
  return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
318
369
  };
370
+
319
371
  return {
320
372
  /**
321
373
  * Deprecated - will be removed in 5.35.0
@@ -336,6 +388,7 @@ const createContentEntryCrud = params => {
336
388
  onAfterEntryUnpublish: onEntryAfterUnpublish,
337
389
  onBeforeEntryGet: onEntryBeforeGet,
338
390
  onBeforeEntryList: onEntryBeforeList,
391
+
339
392
  /**
340
393
  * Released in 5.34.0
341
394
  */
@@ -362,10 +415,12 @@ const createContentEntryCrud = params => {
362
415
  onEntryUnpublishError,
363
416
  onEntryBeforeGet,
364
417
  onEntryBeforeList,
418
+
365
419
  /**
366
420
  * Get entries by exact revision IDs from the database.
367
421
  */
368
422
  getEntriesByIds: getEntriesByIds,
423
+
369
424
  /**
370
425
  * Get a single entry by revision ID from the database.
371
426
  */
@@ -382,11 +437,14 @@ const createContentEntryCrud = params => {
382
437
  model
383
438
  });
384
439
  const [entry] = await getEntriesByIds(model, [id]);
440
+
385
441
  if (!entry) {
386
442
  throw new _handlerGraphql.NotFoundError(`Entry by ID "${id}" not found.`);
387
443
  }
444
+
388
445
  return entry;
389
446
  },
447
+
390
448
  /**
391
449
  * Get published revisions by entry IDs.
392
450
  */
@@ -404,6 +462,7 @@ const createContentEntryCrud = params => {
404
462
  });
405
463
  return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
406
464
  },
465
+
407
466
  /**
408
467
  * Get latest revisions by entry IDs.
409
468
  */
@@ -421,6 +480,7 @@ const createContentEntryCrud = params => {
421
480
  });
422
481
  return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
423
482
  },
483
+
424
484
  async getEntryRevisions(initialModel, entryId) {
425
485
  const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
426
486
  model: initialModel,
@@ -430,6 +490,7 @@ const createContentEntryCrud = params => {
430
490
  id: entryId
431
491
  });
432
492
  },
493
+
433
494
  /**
434
495
  * TODO determine if this method is required at all.
435
496
  *
@@ -456,11 +517,14 @@ const createContentEntryCrud = params => {
456
517
  sort,
457
518
  limit: 1
458
519
  });
520
+
459
521
  if (items.length === 0) {
460
522
  throw new _handlerGraphql.NotFoundError(`Entry not found!`);
461
523
  }
524
+
462
525
  return items[0];
463
526
  },
527
+
464
528
  /**
465
529
  * @description Should not be used directly. Internal use only!
466
530
  *
@@ -481,12 +545,15 @@ const createContentEntryCrud = params => {
481
545
  /**
482
546
  * We always assign tenant and locale because we do not allow one model to have content through multiple tenants.
483
547
  */
548
+
484
549
  const where = (0, _objectSpread2.default)({}, initialWhere);
485
550
  /**
486
551
  * Possibly only get records which are owned by current user.
487
552
  * Or if searching for the owner set that value - in the case that user can see other entries than their own.
488
553
  */
554
+
489
555
  const ownedBy = permission.own ? getIdentity().id : where.ownedBy;
556
+
490
557
  if (ownedBy !== undefined) {
491
558
  where.ownedBy = ownedBy;
492
559
  }
@@ -494,6 +561,8 @@ const createContentEntryCrud = params => {
494
561
  * Where must contain either latest or published keys.
495
562
  * We cannot list entries without one of those
496
563
  */
564
+
565
+
497
566
  if (where.latest && where.published) {
498
567
  throw new _error.default("Cannot list entries that are both published and latest.", "LIST_ENTRIES_ERROR", {
499
568
  where
@@ -503,11 +572,13 @@ const createContentEntryCrud = params => {
503
572
  where
504
573
  });
505
574
  }
575
+
506
576
  const fields = getSearchableFields({
507
577
  model,
508
578
  plugins: context.plugins,
509
579
  fields: params.fields || []
510
580
  });
581
+
511
582
  try {
512
583
  await onEntryBeforeList.publish({
513
584
  where,
@@ -525,6 +596,7 @@ const createContentEntryCrud = params => {
525
596
  const meta = {
526
597
  hasMoreItems,
527
598
  totalCount,
599
+
528
600
  /**
529
601
  * Cursor should be null if there are no more items to load.
530
602
  * Just make sure of that, disregarding what is returned from the storageOperations.entries.list method.
@@ -545,6 +617,7 @@ const createContentEntryCrud = params => {
545
617
  });
546
618
  }
547
619
  },
620
+
548
621
  async listLatestEntries(model, params) {
549
622
  const where = (params === null || params === void 0 ? void 0 : params.where) || {};
550
623
  return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
@@ -555,6 +628,7 @@ const createContentEntryCrud = params => {
555
628
  })
556
629
  }));
557
630
  },
631
+
558
632
  async listPublishedEntries(model, params) {
559
633
  const where = (params === null || params === void 0 ? void 0 : params.where) || {};
560
634
  return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
@@ -565,6 +639,7 @@ const createContentEntryCrud = params => {
565
639
  })
566
640
  }));
567
641
  },
642
+
568
643
  async createEntry(initialModel, inputData) {
569
644
  await checkEntryPermissions({
570
645
  rwd: "w"
@@ -574,10 +649,10 @@ const createContentEntryCrud = params => {
574
649
  model: initialModel,
575
650
  plugins
576
651
  });
577
-
578
652
  /**
579
653
  * Make sure we only work with fields that are defined in the model.
580
654
  */
655
+
581
656
  const initialInput = mapAndCleanCreateInputData(model, inputData);
582
657
  await (0, _entryDataValidation.validateModelEntryData)({
583
658
  context,
@@ -619,6 +694,7 @@ const createContentEntryCrud = params => {
619
694
  values: input
620
695
  };
621
696
  let storageEntry = null;
697
+
622
698
  try {
623
699
  await onEntryBeforeCreate.publish({
624
700
  entry,
@@ -652,6 +728,7 @@ const createContentEntryCrud = params => {
652
728
  });
653
729
  }
654
730
  },
731
+
655
732
  async createEntryRevisionFrom(initialModel, sourceId, inputData) {
656
733
  const permission = await checkEntryPermissions({
657
734
  rwd: "w"
@@ -661,15 +738,15 @@ const createContentEntryCrud = params => {
661
738
  model: initialModel,
662
739
  plugins
663
740
  });
664
-
665
741
  /**
666
742
  * Make sure we only work with fields that are defined in the model.
667
743
  */
668
- const input = mapAndCleanUpdatedInputData(model, inputData);
669
744
 
745
+ const input = mapAndCleanUpdatedInputData(model, inputData);
670
746
  /**
671
747
  * Entries are identified by a common parent ID + Revision number.
672
748
  */
749
+
673
750
  const {
674
751
  id: uniqueId
675
752
  } = (0, _utils.parseIdentifier)(sourceId);
@@ -679,13 +756,15 @@ const createContentEntryCrud = params => {
679
756
  const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
680
757
  id: uniqueId
681
758
  });
759
+
682
760
  if (!originalStorageEntry) {
683
761
  throw new _handlerGraphql.NotFoundError(`Entry "${sourceId}" of model "${model.modelId}" was not found.`);
684
762
  }
685
-
686
763
  /**
687
764
  * We need to convert data from DB to its original form before using it further.
688
765
  */
766
+
767
+
689
768
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
690
769
  const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
691
770
  await (0, _entryDataValidation.validateModelEntryData)({
@@ -723,6 +802,7 @@ const createContentEntryCrud = params => {
723
802
  values
724
803
  });
725
804
  let storageEntry = null;
805
+
726
806
  try {
727
807
  await onEntryBeforeCreateRevision.publish({
728
808
  input,
@@ -759,6 +839,7 @@ const createContentEntryCrud = params => {
759
839
  });
760
840
  }
761
841
  },
842
+
762
843
  async updateEntry(initialModel, id, inputData, metaInput) {
763
844
  const permission = await checkEntryPermissions({
764
845
  rwd: "w"
@@ -768,24 +849,27 @@ const createContentEntryCrud = params => {
768
849
  model: initialModel,
769
850
  plugins
770
851
  });
771
-
772
852
  /**
773
853
  * Make sure we only work with fields that are defined in the model.
774
854
  */
775
- const input = mapAndCleanUpdatedInputData(model, inputData);
776
855
 
856
+ const input = mapAndCleanUpdatedInputData(model, inputData);
777
857
  /**
778
858
  * The entry we are going to update.
779
859
  */
860
+
780
861
  const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
781
862
  id
782
863
  });
864
+
783
865
  if (!originalStorageEntry) {
784
866
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
785
867
  }
868
+
786
869
  if (originalStorageEntry.locked) {
787
870
  throw new _error.default(`Cannot update entry because it's locked.`, "CONTENT_ENTRY_UPDATE_ERROR");
788
871
  }
872
+
789
873
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
790
874
  await (0, _entryDataValidation.validateModelEntryData)({
791
875
  context,
@@ -804,10 +888,12 @@ const createContentEntryCrud = params => {
804
888
  /**
805
889
  * If users wants to remove a key from meta values, they need to send meta key with the null value.
806
890
  */
891
+
807
892
  const meta = createEntryMeta(metaInput, originalEntry.meta);
808
893
  /**
809
894
  * We always send the full entry to the hooks and storage operations update.
810
895
  */
896
+
811
897
  const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
812
898
  savedOn: new Date().toISOString(),
813
899
  values,
@@ -815,6 +901,7 @@ const createContentEntryCrud = params => {
815
901
  status: transformEntryStatus(originalEntry.status)
816
902
  });
817
903
  let storageEntry = null;
904
+
818
905
  try {
819
906
  await onEntryBeforeUpdate.publish({
820
907
  entry,
@@ -851,6 +938,7 @@ const createContentEntryCrud = params => {
851
938
  });
852
939
  }
853
940
  },
941
+
854
942
  async republishEntry(initialModel, id) {
855
943
  await checkEntryPermissions({
856
944
  rwd: "w"
@@ -863,22 +951,27 @@ const createContentEntryCrud = params => {
863
951
  /**
864
952
  * Fetch the entry from the storage.
865
953
  */
954
+
866
955
  const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
867
956
  id
868
957
  });
958
+
869
959
  if (!originalStorageEntry) {
870
960
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
871
961
  }
962
+
872
963
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
873
964
  /**
874
965
  * We can only process published entries.
875
966
  */
967
+
876
968
  if (originalEntry.status !== "published") {
877
969
  throw new _error.default("Entry with given ID is not published!", "NOT_PUBLISHED_ERROR", {
878
970
  id,
879
971
  original: originalEntry
880
972
  });
881
973
  }
974
+
882
975
  const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
883
976
  context,
884
977
  model,
@@ -894,6 +987,7 @@ const createContentEntryCrud = params => {
894
987
  /**
895
988
  * First we need to update existing entry.
896
989
  */
990
+
897
991
  try {
898
992
  await storageOperations.entries.update(model, {
899
993
  entry,
@@ -907,6 +1001,8 @@ const createContentEntryCrud = params => {
907
1001
  /**
908
1002
  * Then we move onto publishing it again.
909
1003
  */
1004
+
1005
+
910
1006
  try {
911
1007
  return await storageOperations.entries.publish(model, {
912
1008
  entry,
@@ -918,6 +1014,7 @@ const createContentEntryCrud = params => {
918
1014
  });
919
1015
  }
920
1016
  },
1017
+
921
1018
  async deleteEntryRevision(initialModel, revisionId) {
922
1019
  const permission = await checkEntryPermissions({
923
1020
  rwd: "d"
@@ -941,9 +1038,11 @@ const createContentEntryCrud = params => {
941
1038
  entryId,
942
1039
  version: version
943
1040
  });
1041
+
944
1042
  if (!storageEntryToDelete) {
945
1043
  throw new _handlerGraphql.NotFoundError(`Entry "${revisionId}" was not found!`);
946
1044
  }
1045
+
947
1046
  (0, _ownership.checkOwnership)(context, permission, storageEntryToDelete);
948
1047
  const latestEntryRevisionId = latestStorageEntry ? latestStorageEntry.id : null;
949
1048
  const entryToDelete = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntryToDelete);
@@ -951,6 +1050,7 @@ const createContentEntryCrud = params => {
951
1050
  * If targeted record is the latest entry record and there is no previous one, we need to run full delete with hooks.
952
1051
  * At this point deleteRevision hooks are not fired.
953
1052
  */
1053
+
954
1054
  if (entryToDelete.id === latestEntryRevisionId && !previousStorageEntry) {
955
1055
  return await deleteEntry({
956
1056
  model,
@@ -960,12 +1060,16 @@ const createContentEntryCrud = params => {
960
1060
  /**
961
1061
  * If targeted record is latest entry revision, set the previous one as the new latest
962
1062
  */
1063
+
1064
+
963
1065
  let entryToSetAsLatest = null;
964
1066
  let storageEntryToSetAsLatest = null;
1067
+
965
1068
  if (entryToDelete.id === latestEntryRevisionId && previousStorageEntry) {
966
1069
  entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, previousStorageEntry);
967
1070
  storageEntryToSetAsLatest = previousStorageEntry;
968
1071
  }
1072
+
969
1073
  try {
970
1074
  await onEntryRevisionBeforeDelete.publish({
971
1075
  entry: entryToDelete,
@@ -996,6 +1100,7 @@ const createContentEntryCrud = params => {
996
1100
  });
997
1101
  }
998
1102
  },
1103
+
999
1104
  async deleteEntry(initialModel, entryId) {
1000
1105
  const permission = await checkEntryPermissions({
1001
1106
  rwd: "d"
@@ -1008,9 +1113,11 @@ const createContentEntryCrud = params => {
1008
1113
  const storageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
1009
1114
  id: entryId
1010
1115
  });
1116
+
1011
1117
  if (!storageEntry) {
1012
1118
  throw new _handlerGraphql.NotFoundError(`Entry "${entryId}" was not found!`);
1013
1119
  }
1120
+
1014
1121
  (0, _ownership.checkOwnership)(context, permission, storageEntry);
1015
1122
  const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntry);
1016
1123
  return await deleteEntry({
@@ -1018,6 +1125,7 @@ const createContentEntryCrud = params => {
1018
1125
  entry
1019
1126
  });
1020
1127
  },
1128
+
1021
1129
  async publishEntry(initialModel, id) {
1022
1130
  const permission = await checkEntryPermissions({
1023
1131
  pw: "p"
@@ -1030,9 +1138,11 @@ const createContentEntryCrud = params => {
1030
1138
  const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
1031
1139
  id
1032
1140
  });
1141
+
1033
1142
  if (!originalStorageEntry) {
1034
1143
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
1035
1144
  }
1145
+
1036
1146
  (0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
1037
1147
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1038
1148
  const currentDate = new Date().toISOString();
@@ -1043,6 +1153,7 @@ const createContentEntryCrud = params => {
1043
1153
  publishedOn: currentDate
1044
1154
  });
1045
1155
  let storageEntry = null;
1156
+
1046
1157
  try {
1047
1158
  await onEntryBeforePublish.publish({
1048
1159
  entry,
@@ -1074,6 +1185,7 @@ const createContentEntryCrud = params => {
1074
1185
  });
1075
1186
  }
1076
1187
  },
1188
+
1077
1189
  async unpublishEntry(initialModel, id) {
1078
1190
  const permission = await checkEntryPermissions({
1079
1191
  pw: "u"
@@ -1088,20 +1200,24 @@ const createContentEntryCrud = params => {
1088
1200
  const originalStorageEntry = await storageOperations.entries.getPublishedRevisionByEntryId(model, {
1089
1201
  id: entryId
1090
1202
  });
1203
+
1091
1204
  if (!originalStorageEntry) {
1092
1205
  throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
1093
1206
  }
1207
+
1094
1208
  if (originalStorageEntry.id !== id) {
1095
1209
  throw new _error.default(`Entry is not published.`, "UNPUBLISH_ERROR", {
1096
1210
  entry: originalStorageEntry
1097
1211
  });
1098
1212
  }
1213
+
1099
1214
  (0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
1100
1215
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
1101
1216
  const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
1102
1217
  status: STATUS_UNPUBLISHED
1103
1218
  });
1104
1219
  let storageEntry = null;
1220
+
1105
1221
  try {
1106
1222
  await onEntryBeforeUnpublish.publish({
1107
1223
  entry,
@@ -1132,6 +1248,8 @@ const createContentEntryCrud = params => {
1132
1248
  });
1133
1249
  }
1134
1250
  }
1251
+
1135
1252
  };
1136
1253
  };
1254
+
1137
1255
  exports.createContentEntryCrud = createContentEntryCrud;