@webiny/api-headless-cms 0.0.0-unstable.1e66d121db → 0.0.0-unstable.3386f66516

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 (173) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +63 -4
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/markLockedFields.js +5 -2
  5. package/crud/contentEntry/markLockedFields.js.map +1 -1
  6. package/crud/contentEntry/referenceFieldsMapping.js +9 -5
  7. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  8. package/crud/contentEntry/searchableFields.d.ts +9 -0
  9. package/crud/contentEntry/searchableFields.js +83 -0
  10. package/crud/contentEntry/searchableFields.js.map +1 -0
  11. package/crud/contentEntry.crud.js +96 -42
  12. package/crud/contentEntry.crud.js.map +1 -1
  13. package/crud/contentModel/beforeCreate.d.ts +2 -3
  14. package/crud/contentModel/beforeCreate.js +4 -4
  15. package/crud/contentModel/beforeCreate.js.map +1 -1
  16. package/crud/contentModel/beforeUpdate.d.ts +2 -4
  17. package/crud/contentModel/beforeUpdate.js +2 -2
  18. package/crud/contentModel/beforeUpdate.js.map +1 -1
  19. package/crud/contentModel/createFieldStorageId.js +5 -1
  20. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  21. package/crud/contentModel/models.js +12 -0
  22. package/crud/contentModel/models.js.map +1 -1
  23. package/crud/contentModel/validateModel.d.ts +3 -4
  24. package/crud/contentModel/validateModel.js +6 -3
  25. package/crud/contentModel/validateModel.js.map +1 -1
  26. package/crud/contentModel/validateModelFields.d.ts +3 -4
  27. package/crud/contentModel/validateModelFields.js +116 -39
  28. package/crud/contentModel/validateModelFields.js.map +1 -1
  29. package/crud/contentModel/validation.d.ts +477 -0
  30. package/crud/contentModel/validation.js +109 -0
  31. package/crud/contentModel/validation.js.map +1 -0
  32. package/crud/contentModel.crud.js +240 -188
  33. package/crud/contentModel.crud.js.map +1 -1
  34. package/crud/contentModelGroup/validation.d.ts +30 -0
  35. package/crud/contentModelGroup/validation.js +43 -0
  36. package/crud/contentModelGroup/validation.js.map +1 -0
  37. package/crud/contentModelGroup.crud.js +54 -54
  38. package/crud/contentModelGroup.crud.js.map +1 -1
  39. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  40. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
  41. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  42. package/fieldConverters/index.d.ts +2 -1
  43. package/fieldConverters/index.js +3 -1
  44. package/fieldConverters/index.js.map +1 -1
  45. package/graphql/buildSchemaPlugins.d.ts +8 -3
  46. package/graphql/buildSchemaPlugins.js +3 -6
  47. package/graphql/buildSchemaPlugins.js.map +1 -1
  48. package/graphql/createExecutableSchema.d.ts +7 -0
  49. package/graphql/createExecutableSchema.js +33 -0
  50. package/graphql/createExecutableSchema.js.map +1 -0
  51. package/graphql/generateSchema.d.ts +8 -0
  52. package/graphql/generateSchema.js +38 -0
  53. package/graphql/generateSchema.js.map +1 -0
  54. package/graphql/graphQLHandlerFactory.js +101 -57
  55. package/graphql/graphQLHandlerFactory.js.map +1 -1
  56. package/graphql/index.d.ts +1 -3
  57. package/graphql/index.js +2 -41
  58. package/graphql/index.js.map +1 -1
  59. package/graphql/schema/baseContentSchema.d.ts +6 -2
  60. package/graphql/schema/baseContentSchema.js +8 -6
  61. package/graphql/schema/baseContentSchema.js.map +1 -1
  62. package/graphql/schema/baseSchema.d.ts +3 -0
  63. package/graphql/schema/baseSchema.js +60 -0
  64. package/graphql/schema/baseSchema.js.map +1 -0
  65. package/graphql/schema/contentEntries.d.ts +6 -2
  66. package/graphql/schema/contentEntries.js +12 -6
  67. package/graphql/schema/contentEntries.js.map +1 -1
  68. package/graphql/schema/contentModelGroups.d.ts +6 -2
  69. package/graphql/schema/contentModelGroups.js +8 -4
  70. package/graphql/schema/contentModelGroups.js.map +1 -1
  71. package/graphql/schema/contentModels.d.ts +6 -2
  72. package/graphql/schema/contentModels.js +63 -5
  73. package/graphql/schema/contentModels.js.map +1 -1
  74. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  75. package/graphql/schema/createFieldResolvers.js +23 -7
  76. package/graphql/schema/createFieldResolvers.js.map +1 -1
  77. package/graphql/schema/createManageSDL.d.ts +2 -0
  78. package/graphql/schema/createManageSDL.js +9 -6
  79. package/graphql/schema/createManageSDL.js.map +1 -1
  80. package/graphql/schema/createReadResolvers.js +5 -0
  81. package/graphql/schema/createReadResolvers.js.map +1 -1
  82. package/graphql/schema/createReadSDL.d.ts +2 -0
  83. package/graphql/schema/createReadSDL.js +11 -5
  84. package/graphql/schema/createReadSDL.js.map +1 -1
  85. package/graphql/schema/schemaPlugins.d.ts +8 -3
  86. package/graphql/schema/schemaPlugins.js +58 -50
  87. package/graphql/schema/schemaPlugins.js.map +1 -1
  88. package/graphql/system.js +79 -82
  89. package/graphql/system.js.map +1 -1
  90. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  91. package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
  92. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  93. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  94. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
  95. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  96. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  97. package/graphqlFields/dynamicZone/index.js +21 -0
  98. package/graphqlFields/dynamicZone/index.js.map +1 -0
  99. package/graphqlFields/index.d.ts +1 -1
  100. package/graphqlFields/index.js +3 -1
  101. package/graphqlFields/index.js.map +1 -1
  102. package/graphqlFields/number.js +4 -0
  103. package/graphqlFields/number.js.map +1 -1
  104. package/graphqlFields/object.js +122 -72
  105. package/graphqlFields/object.js.map +1 -1
  106. package/graphqlFields/ref.js +34 -48
  107. package/graphqlFields/ref.js.map +1 -1
  108. package/index.d.ts +3 -3
  109. package/index.js +4 -8
  110. package/index.js.map +1 -1
  111. package/package.json +26 -27
  112. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  113. package/plugins/CmsGraphQLSchemaPlugin.js +17 -0
  114. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  115. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  116. package/plugins/CmsGraphQLSchemaSorterPlugin.js +38 -0
  117. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  118. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  119. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  120. package/plugins/StorageTransformPlugin.d.ts +11 -11
  121. package/plugins/StorageTransformPlugin.js.map +1 -1
  122. package/plugins/index.d.ts +2 -0
  123. package/plugins/index.js +26 -0
  124. package/plugins/index.js.map +1 -1
  125. package/storage/object.js +5 -2
  126. package/storage/object.js.map +1 -1
  127. package/types.d.ts +251 -57
  128. package/types.js +79 -7
  129. package/types.js.map +1 -1
  130. package/utils/converters/ConverterCollection.d.ts +7 -0
  131. package/utils/converters/ConverterCollection.js +32 -2
  132. package/utils/converters/ConverterCollection.js.map +1 -1
  133. package/utils/createTypeFromFields.d.ts +15 -0
  134. package/utils/createTypeFromFields.js +75 -0
  135. package/utils/createTypeFromFields.js.map +1 -0
  136. package/utils/createTypeName.js +3 -1
  137. package/utils/createTypeName.js.map +1 -1
  138. package/utils/entryStorage.js +15 -12
  139. package/utils/entryStorage.js.map +1 -1
  140. package/utils/getBaseFieldType.d.ts +4 -0
  141. package/utils/getBaseFieldType.js +12 -0
  142. package/utils/getBaseFieldType.js.map +1 -0
  143. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  144. package/utils/getSchemaFromFieldPlugins.js +27 -14
  145. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  146. package/utils/renderFields.js +3 -1
  147. package/utils/renderFields.js.map +1 -1
  148. package/utils/renderGetFilterFields.js +8 -3
  149. package/utils/renderGetFilterFields.js.map +1 -1
  150. package/utils/renderInputFields.js +3 -1
  151. package/utils/renderInputFields.js.map +1 -1
  152. package/utils/renderListFilterFields.js +5 -2
  153. package/utils/renderListFilterFields.js.map +1 -1
  154. package/utils/renderSortEnum.d.ts +7 -4
  155. package/utils/renderSortEnum.js +23 -4
  156. package/utils/renderSortEnum.js.map +1 -1
  157. package/validators/dynamicZone.d.ts +2 -0
  158. package/validators/dynamicZone.js +24 -0
  159. package/validators/dynamicZone.js.map +1 -0
  160. package/validators/index.js +3 -1
  161. package/validators/index.js.map +1 -1
  162. package/crud/index.d.ts +0 -6
  163. package/crud/index.js +0 -85
  164. package/crud/index.js.map +0 -1
  165. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  166. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  167. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  168. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  169. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  170. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
  171. package/utils/filterModelFields.d.ts +0 -16
  172. package/utils/filterModelFields.js +0 -77
  173. package/utils/filterModelFields.js.map +0 -1
@@ -41,6 +41,8 @@ var _entryStorage = require("../utils/entryStorage");
41
41
 
42
42
  var _valueKeyStorageConverter = require("../utils/converters/valueKeyStorageConverter");
43
43
 
44
+ var _searchableFields = require("./contentEntry/searchableFields");
45
+
44
46
  /**
45
47
  * Package mdbid does not have types.
46
48
  */
@@ -217,35 +219,6 @@ const increaseEntryIdVersion = id => {
217
219
  };
218
220
  };
219
221
 
220
- const getSearchableFields = params => {
221
- const {
222
- plugins,
223
- model,
224
- fields
225
- } = params;
226
- const fieldPluginMap = plugins.byType("cms-model-field-to-graphql").reduce((collection, field) => {
227
- collection[field.fieldType] = field;
228
- return collection;
229
- }, {});
230
- return model.fields.filter(field => {
231
- if (!field.fieldId) {
232
- return false;
233
- }
234
-
235
- const plugin = fieldPluginMap[field.type];
236
-
237
- if (!plugin) {
238
- return false;
239
- } else if (!plugin.fullTextSearch) {
240
- return false;
241
- } else if (!fields || fields.length === 0) {
242
- return true;
243
- }
244
-
245
- return fields.includes(field.fieldId);
246
- }).map(field => field.fieldId);
247
- };
248
-
249
222
  const allowedEntryStatus = ["draft", "published", "unpublished"];
250
223
 
251
224
  const transformEntryStatus = status => {
@@ -261,27 +234,52 @@ const createContentEntryCrud = params => {
261
234
  } = params;
262
235
  const {
263
236
  plugins
264
- } = context; // create
237
+ } = context;
238
+ /**
239
+ * Create
240
+ */
265
241
 
266
242
  const onEntryBeforeCreate = (0, _pubsub.createTopic)("cms.onEntryBeforeCreate");
267
243
  const onEntryAfterCreate = (0, _pubsub.createTopic)("cms.onEntryAfterCreate");
268
- const onEntryCreateError = (0, _pubsub.createTopic)("cms.onEntryCreateError"); // create revision
244
+ const onEntryCreateError = (0, _pubsub.createTopic)("cms.onEntryCreateError");
245
+ /**
246
+ * Create new revision
247
+ */
269
248
 
270
249
  const onEntryBeforeCreateRevision = (0, _pubsub.createTopic)("cms.onEntryBeforeCreateRevision");
271
250
  const onEntryRevisionAfterCreate = (0, _pubsub.createTopic)("cms.onEntryRevisionAfterCreate");
272
- const onEntryCreateRevisionError = (0, _pubsub.createTopic)("cms.onEntryCreateRevisionError"); // update
251
+ const onEntryCreateRevisionError = (0, _pubsub.createTopic)("cms.onEntryCreateRevisionError");
252
+ /**
253
+ * Update
254
+ */
273
255
 
274
256
  const onEntryBeforeUpdate = (0, _pubsub.createTopic)("cms.onEntryBeforeUpdate");
275
257
  const onEntryAfterUpdate = (0, _pubsub.createTopic)("cms.onEntryAfterUpdate");
276
- const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError"); // publish
258
+ const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError");
259
+ /**
260
+ * Publish
261
+ */
277
262
 
278
263
  const onEntryBeforePublish = (0, _pubsub.createTopic)("cms.onEntryBeforePublish");
279
- const onEntryAfterPublish = (0, _pubsub.createTopic)("cms.onEntryAfterPublic");
280
- const onEntryPublishError = (0, _pubsub.createTopic)("cms.onEntryPublishError"); // unpublish
264
+ const onEntryAfterPublish = (0, _pubsub.createTopic)("cms.onEntryAfterPublish");
265
+ const onEntryPublishError = (0, _pubsub.createTopic)("cms.onEntryPublishError");
266
+ /**
267
+ * Republish
268
+ */
269
+
270
+ const onEntryBeforeRepublish = (0, _pubsub.createTopic)("cms.onEntryBeforeRepublish");
271
+ const onEntryAfterRepublish = (0, _pubsub.createTopic)("cms.onEntryAfterRepublish");
272
+ const onEntryRepublishError = (0, _pubsub.createTopic)("cms.onEntryRepublishError");
273
+ /**
274
+ * Unpublish
275
+ */
281
276
 
282
277
  const onEntryBeforeUnpublish = (0, _pubsub.createTopic)("cms.onEntryBeforeUnpublish");
283
278
  const onEntryAfterUnpublish = (0, _pubsub.createTopic)("cms.onEntryAfterUnpublish");
284
- const onEntryUnpublishError = (0, _pubsub.createTopic)("cms.onEntryUnpublishError"); // delete
279
+ const onEntryUnpublishError = (0, _pubsub.createTopic)("cms.onEntryUnpublishError");
280
+ /**
281
+ * Delete
282
+ */
285
283
 
286
284
  const onEntryBeforeDelete = (0, _pubsub.createTopic)("cms.onEntryBeforeDelete");
287
285
  const onEntryAfterDelete = (0, _pubsub.createTopic)("cms.onEntryAfterDelete");
@@ -391,25 +389,58 @@ const createContentEntryCrud = params => {
391
389
 
392
390
  /**
393
391
  * Released in 5.34.0
392
+ *
393
+ * Create
394
394
  */
395
395
  onEntryBeforeCreate,
396
396
  onEntryAfterCreate,
397
397
  onEntryCreateError,
398
+
399
+ /**
400
+ * Create revision
401
+ */
398
402
  onEntryRevisionBeforeCreate: onEntryBeforeCreateRevision,
399
403
  onEntryRevisionAfterCreate,
400
404
  onEntryRevisionCreateError: onEntryCreateRevisionError,
405
+
406
+ /**
407
+ * Update
408
+ */
401
409
  onEntryBeforeUpdate,
402
410
  onEntryAfterUpdate,
403
411
  onEntryUpdateError,
412
+
413
+ /**
414
+ * Delete whole entry
415
+ */
404
416
  onEntryBeforeDelete,
405
417
  onEntryAfterDelete,
406
418
  onEntryDeleteError,
419
+
420
+ /**
421
+ * Delete entry revision
422
+ */
407
423
  onEntryRevisionBeforeDelete,
408
424
  onEntryRevisionAfterDelete,
409
425
  onEntryRevisionDeleteError,
426
+
427
+ /**
428
+ * Publish
429
+ */
410
430
  onEntryBeforePublish,
411
431
  onEntryAfterPublish,
412
432
  onEntryPublishError,
433
+
434
+ /**
435
+ * Republish
436
+ */
437
+ onEntryBeforeRepublish,
438
+ onEntryAfterRepublish,
439
+ onEntryRepublishError,
440
+
441
+ /**
442
+ * Unpublish
443
+ */
413
444
  onEntryBeforeUnpublish,
414
445
  onEntryAfterUnpublish,
415
446
  onEntryUnpublishError,
@@ -464,7 +495,7 @@ const createContentEntryCrud = params => {
464
495
  },
465
496
 
466
497
  /**
467
- * Get latest revisions by entry IDs.
498
+ * Get the latest revisions by entry IDs.
468
499
  */
469
500
  async getLatestEntriesByIds(initialModel, ids) {
470
501
  const permission = await checkEntryPermissions({
@@ -540,8 +571,10 @@ const createContentEntryCrud = params => {
540
571
  plugins
541
572
  });
542
573
  const {
543
- where: initialWhere
574
+ where: initialWhere,
575
+ limit: initialLimit
544
576
  } = params;
577
+ const limit = initialLimit && initialLimit > 0 ? initialLimit : 50;
545
578
  /**
546
579
  * We always assign tenant and locale because we do not allow one model to have content through multiple tenants.
547
580
  */
@@ -573,10 +606,10 @@ const createContentEntryCrud = params => {
573
606
  });
574
607
  }
575
608
 
576
- const fields = getSearchableFields({
577
- model,
609
+ const fields = (0, _searchableFields.getSearchableFields)({
610
+ fields: model.fields,
578
611
  plugins: context.plugins,
579
- fields: params.fields || []
612
+ input: params.fields || []
580
613
  });
581
614
 
582
615
  try {
@@ -590,6 +623,7 @@ const createContentEntryCrud = params => {
590
623
  cursor,
591
624
  items
592
625
  } = await storageOperations.entries.list(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
626
+ limit,
593
627
  where,
594
628
  fields
595
629
  }));
@@ -826,6 +860,7 @@ const createContentEntryCrud = params => {
826
860
  } catch (ex) {
827
861
  await onEntryCreateRevisionError.publish({
828
862
  entry,
863
+ original: originalEntry,
829
864
  model,
830
865
  input,
831
866
  error: ex
@@ -939,6 +974,10 @@ const createContentEntryCrud = params => {
939
974
  }
940
975
  },
941
976
 
977
+ /**
978
+ * Method used internally. Not documented and should not be used in users systems.
979
+ * @internal
980
+ */
942
981
  async republishEntry(initialModel, id) {
943
982
  await checkEntryPermissions({
944
983
  rwd: "w"
@@ -1004,11 +1043,26 @@ const createContentEntryCrud = params => {
1004
1043
 
1005
1044
 
1006
1045
  try {
1007
- return await storageOperations.entries.publish(model, {
1046
+ await onEntryBeforeRepublish.publish({
1047
+ entry,
1048
+ model
1049
+ });
1050
+ const result = await storageOperations.entries.publish(model, {
1051
+ entry,
1052
+ storageEntry
1053
+ });
1054
+ await onEntryAfterRepublish.publish({
1008
1055
  entry,
1056
+ model,
1009
1057
  storageEntry
1010
1058
  });
1059
+ return result;
1011
1060
  } catch (ex) {
1061
+ await onEntryRepublishError.publish({
1062
+ entry,
1063
+ model,
1064
+ error: ex
1065
+ });
1012
1066
  throw new _error.default("Could not publish existing entry while re-publishing.", "REPUBLISH_PUBLISH_ERROR", {
1013
1067
  entry
1014
1068
  });