@webiny/api-headless-cms 0.0.0-unstable.5e7233243f → 0.0.0-unstable.60e968001a

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 (232) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +63 -8
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.d.ts +2 -2
  5. package/crud/contentEntry/afterDelete.js +2 -2
  6. package/crud/contentEntry/afterDelete.js.map +1 -1
  7. package/crud/contentEntry/beforeCreate.d.ts +2 -2
  8. package/crud/contentEntry/beforeCreate.js +2 -2
  9. package/crud/contentEntry/beforeCreate.js.map +1 -1
  10. package/crud/contentEntry/beforeUpdate.d.ts +2 -2
  11. package/crud/contentEntry/beforeUpdate.js +2 -2
  12. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  13. package/crud/contentEntry/entryDataValidation.js +3 -7
  14. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  15. package/crud/contentEntry/markLockedFields.js +10 -11
  16. package/crud/contentEntry/markLockedFields.js.map +1 -1
  17. package/crud/contentEntry/referenceFieldsMapping.js +11 -13
  18. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  19. package/crud/contentEntry/searchableFields.d.ts +9 -0
  20. package/crud/contentEntry/searchableFields.js +83 -0
  21. package/crud/contentEntry/searchableFields.js.map +1 -0
  22. package/crud/contentEntry.crud.d.ts +0 -2
  23. package/crud/contentEntry.crud.js +253 -270
  24. package/crud/contentEntry.crud.js.map +1 -1
  25. package/crud/contentModel/afterCreate.d.ts +3 -3
  26. package/crud/contentModel/afterCreate.js +5 -5
  27. package/crud/contentModel/afterCreate.js.map +1 -1
  28. package/crud/contentModel/afterCreateFrom.d.ts +3 -3
  29. package/crud/contentModel/afterCreateFrom.js +5 -5
  30. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  31. package/crud/contentModel/afterDelete.d.ts +3 -3
  32. package/crud/contentModel/afterDelete.js +5 -5
  33. package/crud/contentModel/afterDelete.js.map +1 -1
  34. package/crud/contentModel/afterUpdate.d.ts +3 -3
  35. package/crud/contentModel/afterUpdate.js +5 -5
  36. package/crud/contentModel/afterUpdate.js.map +1 -1
  37. package/crud/contentModel/beforeCreate.d.ts +4 -4
  38. package/crud/contentModel/beforeCreate.js +10 -10
  39. package/crud/contentModel/beforeCreate.js.map +1 -1
  40. package/crud/contentModel/beforeDelete.d.ts +3 -3
  41. package/crud/contentModel/beforeDelete.js +6 -6
  42. package/crud/contentModel/beforeDelete.js.map +1 -1
  43. package/crud/contentModel/beforeUpdate.d.ts +3 -3
  44. package/crud/contentModel/beforeUpdate.js +5 -5
  45. package/crud/contentModel/beforeUpdate.js.map +1 -1
  46. package/crud/contentModel/createFieldStorageId.js +5 -1
  47. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  48. package/crud/contentModel/models.js +12 -0
  49. package/crud/contentModel/models.js.map +1 -1
  50. package/crud/contentModel/validateModel.js +1 -1
  51. package/crud/contentModel/validateModelFields.js +47 -42
  52. package/crud/contentModel/validateModelFields.js.map +1 -1
  53. package/crud/contentModel/validation.d.ts +477 -0
  54. package/crud/contentModel/validation.js +109 -0
  55. package/crud/contentModel/validation.js.map +1 -0
  56. package/crud/contentModel.crud.js +287 -211
  57. package/crud/contentModel.crud.js.map +1 -1
  58. package/crud/contentModelGroup/beforeCreate.d.ts +2 -2
  59. package/crud/contentModelGroup/beforeCreate.js +3 -3
  60. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  61. package/crud/contentModelGroup/beforeDelete.d.ts +2 -2
  62. package/crud/contentModelGroup/beforeDelete.js +3 -3
  63. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  64. package/crud/contentModelGroup/beforeUpdate.d.ts +2 -2
  65. package/crud/contentModelGroup/beforeUpdate.js +2 -2
  66. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  67. package/crud/contentModelGroup/validation.d.ts +30 -0
  68. package/crud/contentModelGroup/validation.js +43 -0
  69. package/crud/contentModelGroup/validation.js.map +1 -0
  70. package/crud/contentModelGroup.crud.js +102 -82
  71. package/crud/contentModelGroup.crud.js.map +1 -1
  72. package/crud/settings.crud.js +3 -8
  73. package/crud/settings.crud.js.map +1 -1
  74. package/crud/system.crud.js +63 -51
  75. package/crud/system.crud.js.map +1 -1
  76. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -1
  77. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  78. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
  79. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  80. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +17 -19
  81. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  82. package/fieldConverters/index.d.ts +2 -1
  83. package/fieldConverters/index.js +3 -1
  84. package/fieldConverters/index.js.map +1 -1
  85. package/graphql/buildSchemaPlugins.d.ts +2 -2
  86. package/graphql/buildSchemaPlugins.js.map +1 -1
  87. package/graphql/graphQLHandlerFactory.js +59 -29
  88. package/graphql/graphQLHandlerFactory.js.map +1 -1
  89. package/graphql/index.d.ts +2 -2
  90. package/graphql/index.js +49 -38
  91. package/graphql/index.js.map +1 -1
  92. package/graphql/schema/baseContentSchema.d.ts +2 -2
  93. package/graphql/schema/baseContentSchema.js +8 -12
  94. package/graphql/schema/baseContentSchema.js.map +1 -1
  95. package/graphql/schema/contentEntries.d.ts +2 -2
  96. package/graphql/schema/contentEntries.js +6 -6
  97. package/graphql/schema/contentEntries.js.map +1 -1
  98. package/graphql/schema/contentModelGroups.d.ts +2 -2
  99. package/graphql/schema/contentModelGroups.js +3 -3
  100. package/graphql/schema/contentModelGroups.js.map +1 -1
  101. package/graphql/schema/contentModels.d.ts +2 -2
  102. package/graphql/schema/contentModels.js +42 -4
  103. package/graphql/schema/contentModels.js.map +1 -1
  104. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  105. package/graphql/schema/createFieldResolvers.js +26 -16
  106. package/graphql/schema/createFieldResolvers.js.map +1 -1
  107. package/graphql/schema/createManageResolvers.js +4 -18
  108. package/graphql/schema/createManageResolvers.js.map +1 -1
  109. package/graphql/schema/createManageSDL.d.ts +2 -0
  110. package/graphql/schema/createManageSDL.js +11 -12
  111. package/graphql/schema/createManageSDL.js.map +1 -1
  112. package/graphql/schema/createPreviewResolvers.js +3 -7
  113. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  114. package/graphql/schema/createReadResolvers.js +8 -7
  115. package/graphql/schema/createReadResolvers.js.map +1 -1
  116. package/graphql/schema/createReadSDL.d.ts +2 -0
  117. package/graphql/schema/createReadSDL.js +11 -5
  118. package/graphql/schema/createReadSDL.js.map +1 -1
  119. package/graphql/schema/resolvers/manage/resolveGet.js +5 -9
  120. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  121. package/graphql/schema/resolvers/preview/resolveGet.js +3 -7
  122. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  123. package/graphql/schema/resolvers/read/resolveGet.js +3 -7
  124. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  125. package/graphql/schema/schemaPlugins.d.ts +2 -2
  126. package/graphql/schema/schemaPlugins.js +11 -8
  127. package/graphql/schema/schemaPlugins.js.map +1 -1
  128. package/graphql/system.js +79 -82
  129. package/graphql/system.js.map +1 -1
  130. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  131. package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
  132. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  133. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  134. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
  135. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  136. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  137. package/graphqlFields/dynamicZone/index.js +21 -0
  138. package/graphqlFields/dynamicZone/index.js.map +1 -0
  139. package/graphqlFields/index.d.ts +1 -1
  140. package/graphqlFields/index.js +3 -1
  141. package/graphqlFields/index.js.map +1 -1
  142. package/graphqlFields/number.js +4 -0
  143. package/graphqlFields/number.js.map +1 -1
  144. package/graphqlFields/object.js +123 -73
  145. package/graphqlFields/object.js.map +1 -1
  146. package/graphqlFields/ref.js +38 -56
  147. package/graphqlFields/ref.js.map +1 -1
  148. package/index.d.ts +3 -3
  149. package/index.js +4 -8
  150. package/index.js.map +1 -1
  151. package/modelManager/DefaultCmsModelManager.d.ts +7 -7
  152. package/modelManager/DefaultCmsModelManager.js +1 -1
  153. package/package.json +30 -31
  154. package/parameters/header.js +1 -1
  155. package/parameters/manual.js +7 -8
  156. package/parameters/manual.js.map +1 -1
  157. package/parameters/path.js +1 -1
  158. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  159. package/plugins/CmsGraphQLSchemaPlugin.js +17 -0
  160. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  161. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  162. package/plugins/CmsGraphQLSchemaSorterPlugin.js +38 -0
  163. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  164. package/plugins/CmsGroupPlugin.js +1 -1
  165. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  166. package/plugins/CmsModelFieldConverterPlugin.js +1 -1
  167. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  168. package/plugins/CmsModelPlugin.d.ts +6 -2
  169. package/plugins/CmsModelPlugin.js +18 -13
  170. package/plugins/CmsModelPlugin.js.map +1 -1
  171. package/plugins/CmsParametersPlugin.js +1 -1
  172. package/plugins/StorageTransformPlugin.d.ts +11 -11
  173. package/plugins/StorageTransformPlugin.js +1 -1
  174. package/plugins/StorageTransformPlugin.js.map +1 -1
  175. package/plugins/index.d.ts +2 -0
  176. package/plugins/index.js +26 -0
  177. package/plugins/index.js.map +1 -1
  178. package/storage/object.js +7 -8
  179. package/storage/object.js.map +1 -1
  180. package/types.d.ts +469 -180
  181. package/types.js +55 -9
  182. package/types.js.map +1 -1
  183. package/upgrades/5.33.0/index.js +5 -9
  184. package/upgrades/5.33.0/index.js.map +1 -1
  185. package/utils/converters/Converter.js +1 -1
  186. package/utils/converters/ConverterCollection.d.ts +7 -0
  187. package/utils/converters/ConverterCollection.js +36 -8
  188. package/utils/converters/ConverterCollection.js.map +1 -1
  189. package/utils/converters/valueKeyStorageConverter.js +3 -7
  190. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  191. package/utils/createTypeFromFields.d.ts +15 -0
  192. package/utils/createTypeFromFields.js +75 -0
  193. package/utils/createTypeFromFields.js.map +1 -0
  194. package/utils/createTypeName.js +4 -2
  195. package/utils/createTypeName.js.map +1 -1
  196. package/utils/entryStorage.js +17 -18
  197. package/utils/entryStorage.js.map +1 -1
  198. package/utils/filterModelFields.js +5 -9
  199. package/utils/filterModelFields.js.map +1 -1
  200. package/utils/getBaseFieldType.d.ts +4 -0
  201. package/utils/getBaseFieldType.js +12 -0
  202. package/utils/getBaseFieldType.js.map +1 -0
  203. package/utils/permissions.js +1 -5
  204. package/utils/permissions.js.map +1 -1
  205. package/utils/pluralizedTypeName.js +1 -1
  206. package/utils/renderFields.js +3 -1
  207. package/utils/renderFields.js.map +1 -1
  208. package/utils/renderGetFilterFields.js +8 -3
  209. package/utils/renderGetFilterFields.js.map +1 -1
  210. package/utils/renderInputFields.js +3 -1
  211. package/utils/renderInputFields.js.map +1 -1
  212. package/utils/renderListFilterFields.js +12 -2
  213. package/utils/renderListFilterFields.js.map +1 -1
  214. package/utils/renderSortEnum.d.ts +7 -4
  215. package/utils/renderSortEnum.js +23 -4
  216. package/utils/renderSortEnum.js.map +1 -1
  217. package/utils/toSlug.js +1 -1
  218. package/validators/dynamicZone.d.ts +2 -0
  219. package/validators/dynamicZone.js +24 -0
  220. package/validators/dynamicZone.js.map +1 -0
  221. package/validators/index.js +3 -1
  222. package/validators/index.js.map +1 -1
  223. package/validators/unique.js +1 -1
  224. package/crud/index.d.ts +0 -6
  225. package/crud/index.js +0 -89
  226. package/crud/index.js.map +0 -1
  227. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  228. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  229. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  230. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  231. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  232. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
package/types.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Plugin } from "@webiny/plugins/types";
2
2
  import { I18NContext, I18NLocale } from "@webiny/api-i18n/types";
3
3
  import { Context } from "@webiny/api/types";
4
- import { TenancyContext } from "@webiny/api-tenancy/types";
5
4
  import { GraphQLFieldResolver, GraphQLSchemaDefinition, Resolvers } from "@webiny/handler-graphql/types";
6
5
  import { SecurityPermission } from "@webiny/api-security/types";
7
6
  import { DbContext } from "@webiny/handler-db/types";
@@ -45,7 +44,7 @@ export interface HeadlessCms extends CmsSettingsContext, CmsSystemContext, CmsGr
45
44
  *
46
45
  * @category Context
47
46
  */
48
- export interface CmsContext extends Context, DbContext, I18NContext, FileManagerContext, TenancyContext {
47
+ export interface CmsContext extends Context, DbContext, I18NContext, FileManagerContext {
49
48
  cms: HeadlessCms;
50
49
  }
51
50
  interface CmsModelFieldPredefinedValuesValue {
@@ -136,7 +135,7 @@ export interface CmsModelField {
136
135
  * A type of the field.
137
136
  * We are defining our built-in fields, so people know which are available by the default.
138
137
  */
139
- type: "boolean" | "datetime" | "file" | "long-text" | "number" | "object" | "ref" | "rich-text" | "text" | string;
138
+ type: "boolean" | "datetime" | "file" | "long-text" | "number" | "object" | "ref" | "rich-text" | "text" | "dynamicZone" | string;
140
139
  /**
141
140
  * A unique storage ID for storing actual values.
142
141
  * Must in form of a-zA-Z0-9@a-zA-Z0-9@a-zA-Z0-9.
@@ -196,6 +195,10 @@ export interface CmsModelField {
196
195
  *
197
196
  */
198
197
  multipleValues?: boolean;
198
+ /**
199
+ * Fields can be tagged to give them contextual meaning.
200
+ */
201
+ tags?: string[];
199
202
  /**
200
203
  * Any user defined settings.
201
204
  *
@@ -203,18 +206,42 @@ export interface CmsModelField {
203
206
  */
204
207
  settings?: CmsModelFieldSettings;
205
208
  }
209
+ export interface CmsDynamicZoneTemplate {
210
+ id: string;
211
+ name: string;
212
+ gqlTypeName: string;
213
+ description: string;
214
+ icon: string;
215
+ fields: CmsModelField[];
216
+ layout: string[][];
217
+ validation: CmsModelFieldValidation[];
218
+ }
219
+ /**
220
+ * A definition for dynamic-zone field to show possible type of the field in settings.
221
+ */
222
+ export interface CmsModelDynamicZoneField extends CmsModelField {
223
+ /**
224
+ * Settings object for the field. Contains `templates` property.
225
+ */
226
+ settings: {
227
+ templates: CmsDynamicZoneTemplate[];
228
+ };
229
+ }
206
230
  /**
207
231
  * Used for our internal functionality.
208
232
  */
209
233
  export interface CmsModelFieldWithParent extends CmsModelField {
210
234
  parent?: CmsModelFieldWithParent | null;
211
235
  }
236
+ export interface CmsModelDynamicZoneFieldWithParent extends CmsModelDynamicZoneField {
237
+ parent?: CmsModelDynamicZoneFieldWithParent | null;
238
+ }
212
239
  /**
213
240
  * A definition for dateTime field to show possible type of the field in settings.
214
241
  */
215
242
  export interface CmsModelDateTimeField extends CmsModelField {
216
243
  /**
217
- * Settings object for the field. Contains type property.
244
+ * Settings object for the field. Contains `type` property.
218
245
  */
219
246
  settings: {
220
247
  type: "time" | "date" | "dateTimeWithoutTimezone" | "dateTimeWithTimezone";
@@ -335,6 +362,20 @@ export interface LockedField {
335
362
  type: string;
336
363
  [key: string]: any;
337
364
  }
365
+ /**
366
+ * @category Database model
367
+ * @category CmsModel
368
+ */
369
+ export interface CmsModelGroup {
370
+ /**
371
+ * Generated ID of the group
372
+ */
373
+ id: string;
374
+ /**
375
+ * Name of the group
376
+ */
377
+ name: string;
378
+ }
338
379
  /**
339
380
  * Cms Model defining an entry.
340
381
  *
@@ -361,16 +402,7 @@ export interface CmsModel {
361
402
  /**
362
403
  * Cms Group reference object.
363
404
  */
364
- group: {
365
- /**
366
- * Generated ID of the group
367
- */
368
- id: string;
369
- /**
370
- * Name of the group
371
- */
372
- name: string;
373
- };
405
+ group: CmsModelGroup;
374
406
  /**
375
407
  * Description for the content model.
376
408
  */
@@ -402,6 +434,10 @@ export interface CmsModel {
402
434
  * ```
403
435
  */
404
436
  layout: string[][];
437
+ /**
438
+ * Models can be tagged to give them contextual meaning.
439
+ */
440
+ tags?: string[];
405
441
  /**
406
442
  * List of locked fields. Updated when entry is saved and a field has been used.
407
443
  */
@@ -438,25 +474,40 @@ export interface CmsModelFieldDefinition {
438
474
  fields: string;
439
475
  typeDefs?: string;
440
476
  }
441
- interface CmsModelFieldToGraphQLCreateResolverParams {
477
+ interface CmsModelFieldToGraphQLCreateResolverParams<TField> {
442
478
  models: CmsModel[];
443
479
  model: CmsModel;
444
480
  graphQLType: string;
445
- field: CmsModelField;
481
+ field: TField;
446
482
  createFieldResolvers: any;
447
483
  }
448
- export interface CmsModelFieldToGraphQLCreateResolver {
449
- (params: CmsModelFieldToGraphQLCreateResolverParams): GraphQLFieldResolver | {
484
+ export interface CmsModelFieldToGraphQLCreateResolver<TField = CmsModelField> {
485
+ (params: CmsModelFieldToGraphQLCreateResolverParams<TField>): GraphQLFieldResolver | {
450
486
  resolver: GraphQLFieldResolver | null;
451
487
  typeResolvers: Resolvers<CmsContext>;
452
488
  } | false;
453
489
  }
490
+ export interface CmsModelFieldToGraphQLPluginValidateChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> {
491
+ fields: TField[];
492
+ originalFields: TField[];
493
+ }
494
+ export interface CmsModelFieldToGraphQLPluginValidateChildFieldsValidate {
495
+ (params: CmsModelFieldToGraphQLPluginValidateChildFieldsValidateParams): void;
496
+ }
497
+ export interface CmsModelFieldToGraphQLPluginValidateChildFieldsParams<TField extends CmsModelField = CmsModelField> {
498
+ field: TField;
499
+ originalField?: TField;
500
+ validate: CmsModelFieldToGraphQLPluginValidateChildFieldsValidate;
501
+ }
502
+ export interface CmsModelFieldToGraphQLPluginValidateChildFields<TField extends CmsModelField = CmsModelField> {
503
+ (params: CmsModelFieldToGraphQLPluginValidateChildFieldsParams<TField>): void;
504
+ }
454
505
  /**
455
506
  * @category Plugin
456
507
  * @category ModelField
457
508
  * @category GraphQL
458
509
  */
459
- export interface CmsModelFieldToGraphQLPlugin extends Plugin {
510
+ export interface CmsModelFieldToGraphQLPlugin<TField extends CmsModelField = CmsModelField> extends Plugin {
460
511
  /**
461
512
  * A plugin type
462
513
  */
@@ -510,7 +561,7 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
510
561
  */
511
562
  createStorageId?: (params: {
512
563
  model: CmsModel;
513
- field: CmsModelField;
564
+ field: TField;
514
565
  }) => string | null | undefined;
515
566
  /**
516
567
  * Read API methods.
@@ -529,7 +580,7 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
529
580
  */
530
581
  createGetFilters?(params: {
531
582
  model: CmsModel;
532
- field: CmsModelField;
583
+ field: TField;
533
584
  }): string;
534
585
  /**
535
586
  * Definition for list filtering for GraphQL.
@@ -549,7 +600,8 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
549
600
  */
550
601
  createListFilters?(params: {
551
602
  model: CmsModel;
552
- field: CmsModelField;
603
+ field: TField;
604
+ plugins: CmsFieldTypePlugins;
553
605
  }): string;
554
606
  /**
555
607
  * Definition of the field type for GraphQL - be aware if multiple values is selected.
@@ -568,12 +620,12 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
568
620
  */
569
621
  createTypeField(params: {
570
622
  model: CmsModel;
571
- field: CmsModelField;
623
+ field: TField;
572
624
  fieldTypePlugins: CmsFieldTypePlugins;
573
625
  }): CmsModelFieldDefinition | string | null;
574
626
  /**
575
627
  * Definition for field resolver.
576
- * By default it is simple return of the `instance.values[storageId]` but if required, users can define their own.
628
+ * By default, it is simple return of the `instance.values[storageId]` but if required, users can define their own.
577
629
  *
578
630
  * ```ts
579
631
  * read: {
@@ -585,7 +637,7 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
585
637
  * }
586
638
  * ```
587
639
  */
588
- createResolver?: CmsModelFieldToGraphQLCreateResolver;
640
+ createResolver?: CmsModelFieldToGraphQLCreateResolver<TField>;
589
641
  /**
590
642
  * Read API schema definitions for the field and resolvers for them.
591
643
  *
@@ -628,7 +680,8 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
628
680
  */
629
681
  createListFilters?: (params: {
630
682
  model: CmsModel;
631
- field: CmsModelField;
683
+ field: TField;
684
+ plugins: CmsFieldTypePlugins;
632
685
  }) => string;
633
686
  /**
634
687
  * Manage API schema definitions for the field and resolvers for them. Probably similar to `read.createSchema`.
@@ -667,7 +720,7 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
667
720
  */
668
721
  createTypeField: (params: {
669
722
  model: CmsModel;
670
- field: CmsModelField;
723
+ field: TField;
671
724
  fieldTypePlugins: CmsFieldTypePlugins;
672
725
  }) => CmsModelFieldDefinition | string | null;
673
726
  /**
@@ -687,12 +740,12 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
687
740
  */
688
741
  createInputField: (params: {
689
742
  model: CmsModel;
690
- field: CmsModelField;
743
+ field: TField;
691
744
  fieldTypePlugins: CmsFieldTypePlugins;
692
745
  }) => CmsModelFieldDefinition | string | null;
693
746
  /**
694
747
  * Definition for field resolver.
695
- * By default it is simple return of the `instance.values[storageId]` but if required, users can define their own.
748
+ * By default, it is simple return of the `instance.values[storageId]` but if required, users can define their own.
696
749
  *
697
750
  * ```ts
698
751
  * manage: {
@@ -704,8 +757,13 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
704
757
  * }
705
758
  * ```
706
759
  */
707
- createResolver?: CmsModelFieldToGraphQLCreateResolver;
760
+ createResolver?: CmsModelFieldToGraphQLCreateResolver<TField>;
708
761
  };
762
+ /**
763
+ *
764
+ * @param field
765
+ */
766
+ validateChildFields?: CmsModelFieldToGraphQLPluginValidateChildFields<TField>;
709
767
  }
710
768
  /**
711
769
  * Check for content model locked field.
@@ -744,7 +802,7 @@ export interface CmsFieldTypePlugins {
744
802
  [key: string]: CmsModelFieldToGraphQLPlugin;
745
803
  }
746
804
  /**
747
- * A interface describing the reference to a user that created some data in the database.
805
+ * An interface describing the reference to a user that created some data in the database.
748
806
  *
749
807
  * @category General
750
808
  */
@@ -800,11 +858,16 @@ export interface CmsSettingsContext {
800
858
  */
801
859
  getModelLastChange: () => Promise<Date>;
802
860
  }
803
- export interface BeforeInstallTopicParams {
861
+ export interface OnSystemBeforeInstallTopicParams {
804
862
  tenant: string;
805
863
  locale: string;
806
864
  }
807
- export interface AfterInstallTopicParams {
865
+ export interface OnSystemAfterInstallTopicParams {
866
+ tenant: string;
867
+ locale: string;
868
+ }
869
+ export interface OnSystemInstallErrorTopicParams {
870
+ error: Error;
808
871
  tenant: string;
809
872
  locale: string;
810
873
  }
@@ -815,13 +878,25 @@ export declare type CmsSystemContext = {
815
878
  installSystem: () => Promise<void>;
816
879
  upgradeSystem: (version: string) => Promise<boolean>;
817
880
  /**
818
- * Events
881
+ * Lifecycle events - deprecated
819
882
  */
820
- onBeforeSystemInstall: Topic<BeforeInstallTopicParams>;
821
- onAfterSystemInstall: Topic<AfterInstallTopicParams>;
883
+ /**
884
+ * @deprecated
885
+ */
886
+ onBeforeSystemInstall: Topic<OnSystemBeforeInstallTopicParams>;
887
+ /**
888
+ * @deprecated
889
+ */
890
+ onAfterSystemInstall: Topic<OnSystemAfterInstallTopicParams>;
891
+ /**
892
+ * Released in 5.34.0
893
+ */
894
+ onSystemBeforeInstall: Topic<OnSystemBeforeInstallTopicParams>;
895
+ onSystemAfterInstall: Topic<OnSystemAfterInstallTopicParams>;
896
+ onSystemInstallError: Topic<OnSystemInstallErrorTopicParams>;
822
897
  };
823
898
  /**
824
- * A GraphQL params.data parameter received when creating content model group.
899
+ * A GraphQL `params.data` parameter received when creating content model group.
825
900
  *
826
901
  * @category CmsGroup
827
902
  * @category GraphQL params
@@ -833,7 +908,7 @@ export interface CmsGroupCreateInput {
833
908
  icon: string;
834
909
  }
835
910
  /**
836
- * A GraphQL params.data parameter received when updating content model group.
911
+ * A GraphQL `params.data` parameter received when updating content model group.
837
912
  *
838
913
  * @category CmsGroup
839
914
  * @category GraphQL params
@@ -903,7 +978,7 @@ export interface CmsGroup {
903
978
  isPrivate?: boolean;
904
979
  }
905
980
  /**
906
- * A data.where parameter received when listing content model groups.
981
+ * A `data.where` parameter received when listing content model groups.
907
982
  *
908
983
  * @category CmsGroup
909
984
  * @category GraphQL params
@@ -919,21 +994,38 @@ export interface CmsGroupListParams {
919
994
  * @category CmsGroup
920
995
  * @category Topic
921
996
  */
922
- export interface BeforeGroupCreateTopicParams {
997
+ export interface OnGroupBeforeCreateTopicParams {
923
998
  group: CmsGroup;
924
999
  }
925
1000
  /**
926
1001
  * @category CmsGroup
927
1002
  * @category Topic
928
1003
  */
929
- export interface AfterGroupCreateTopicParams {
1004
+ export interface OnGroupAfterCreateTopicParams {
930
1005
  group: CmsGroup;
931
1006
  }
932
1007
  /**
933
1008
  * @category CmsGroup
934
1009
  * @category Topic
935
1010
  */
936
- export interface BeforeGroupUpdateTopicParams {
1011
+ export interface OnGroupCreateErrorTopicParams {
1012
+ input: CmsGroupCreateInput;
1013
+ group: CmsGroup;
1014
+ error: Error;
1015
+ }
1016
+ /**
1017
+ * @category CmsGroup
1018
+ * @category Topic
1019
+ */
1020
+ export interface OnGroupBeforeUpdateTopicParams {
1021
+ original: CmsGroup;
1022
+ group: CmsGroup;
1023
+ }
1024
+ /**
1025
+ * @category CmsGroup
1026
+ * @category Topic
1027
+ */
1028
+ export interface OnGroupAfterUpdateTopicParams {
937
1029
  original: CmsGroup;
938
1030
  group: CmsGroup;
939
1031
  }
@@ -941,24 +1033,34 @@ export interface BeforeGroupUpdateTopicParams {
941
1033
  * @category CmsGroup
942
1034
  * @category Topic
943
1035
  */
944
- export interface AfterGroupUpdateTopicParams {
1036
+ export interface OnGroupUpdateErrorTopicParams {
1037
+ input: CmsGroupUpdateInput;
945
1038
  original: CmsGroup;
946
1039
  group: CmsGroup;
1040
+ error: Error;
947
1041
  }
948
1042
  /**
949
1043
  * @category CmsGroup
950
1044
  * @category Topic
951
1045
  */
952
- export interface BeforeGroupDeleteTopicParams {
1046
+ export interface OnGroupBeforeDeleteTopicParams {
953
1047
  group: CmsGroup;
954
1048
  }
955
1049
  /**
956
1050
  * @category CmsGroup
957
1051
  * @category Topic
958
1052
  */
959
- export interface AfterGroupDeleteTopicParams {
1053
+ export interface OnGroupAfterDeleteTopicParams {
960
1054
  group: CmsGroup;
961
1055
  }
1056
+ /**
1057
+ * @category CmsGroup
1058
+ * @category Topic
1059
+ */
1060
+ export interface OnGroupDeleteErrorTopicParams {
1061
+ group: CmsGroup;
1062
+ error: Error;
1063
+ }
962
1064
  /**
963
1065
  * Cms Group in context.
964
1066
  *
@@ -991,14 +1093,44 @@ export interface CmsGroupContext {
991
1093
  */
992
1094
  clearGroupsCache: () => void;
993
1095
  /**
994
- * Events.
1096
+ * Lifecycle events - deprecated
1097
+ */
1098
+ /**
1099
+ * @deprecated
1100
+ */
1101
+ onBeforeGroupCreate: Topic<OnGroupBeforeCreateTopicParams>;
1102
+ /**
1103
+ * @deprecated
1104
+ */
1105
+ onAfterGroupCreate: Topic<OnGroupAfterCreateTopicParams>;
1106
+ /**
1107
+ * @deprecated
1108
+ */
1109
+ onBeforeGroupUpdate: Topic<OnGroupBeforeUpdateTopicParams>;
1110
+ /**
1111
+ * @deprecated
1112
+ */
1113
+ onAfterGroupUpdate: Topic<OnGroupAfterUpdateTopicParams>;
1114
+ /**
1115
+ * @deprecated
1116
+ */
1117
+ onBeforeGroupDelete: Topic<OnGroupBeforeDeleteTopicParams>;
1118
+ /**
1119
+ * @deprecated
995
1120
  */
996
- onBeforeGroupCreate: Topic<BeforeGroupCreateTopicParams>;
997
- onAfterGroupCreate: Topic<AfterGroupCreateTopicParams>;
998
- onBeforeGroupUpdate: Topic<BeforeGroupUpdateTopicParams>;
999
- onAfterGroupUpdate: Topic<AfterGroupUpdateTopicParams>;
1000
- onBeforeGroupDelete: Topic<BeforeGroupDeleteTopicParams>;
1001
- onAfterGroupDelete: Topic<AfterGroupDeleteTopicParams>;
1121
+ onAfterGroupDelete: Topic<OnGroupAfterDeleteTopicParams>;
1122
+ /**
1123
+ * Lifecycle events released in 5.33.0
1124
+ */
1125
+ onGroupBeforeCreate: Topic<OnGroupBeforeCreateTopicParams>;
1126
+ onGroupAfterCreate: Topic<OnGroupAfterCreateTopicParams>;
1127
+ onGroupCreateError: Topic<OnGroupCreateErrorTopicParams>;
1128
+ onGroupBeforeUpdate: Topic<OnGroupBeforeUpdateTopicParams>;
1129
+ onGroupAfterUpdate: Topic<OnGroupAfterUpdateTopicParams>;
1130
+ onGroupUpdateError: Topic<OnGroupUpdateErrorTopicParams>;
1131
+ onGroupBeforeDelete: Topic<OnGroupBeforeDeleteTopicParams>;
1132
+ onGroupAfterDelete: Topic<OnGroupAfterDeleteTopicParams>;
1133
+ onGroupDeleteError: Topic<OnGroupDeleteErrorTopicParams>;
1002
1134
  }
1003
1135
  /**
1004
1136
  * Definition for content model field validator.
@@ -1017,7 +1149,7 @@ export interface CmsModelFieldValidation {
1017
1149
  };
1018
1150
  }
1019
1151
  /**
1020
- * A GraphQL params.data parameter received when creating content model.
1152
+ * A GraphQL `params.data` parameter received when creating content model.
1021
1153
  *
1022
1154
  * @category GraphQL params
1023
1155
  * @category CmsModel
@@ -1054,6 +1186,10 @@ export interface CmsModelCreateInput {
1054
1186
  * ```
1055
1187
  */
1056
1188
  layout?: string[][];
1189
+ /**
1190
+ * Models can be tagged to give them contextual meaning.
1191
+ */
1192
+ tags?: string[];
1057
1193
  /**
1058
1194
  * The field that is being displayed as entry title.
1059
1195
  * It is picked as first available text field. Or user can select own field.
@@ -1061,7 +1197,7 @@ export interface CmsModelCreateInput {
1061
1197
  titleFieldId?: string;
1062
1198
  }
1063
1199
  /**
1064
- * A GraphQL params.data parameter received when creating content model from existing model.
1200
+ * A GraphQL `params.data` parameter received when creating content model from existing model.
1065
1201
  *
1066
1202
  * @category GraphQL params
1067
1203
  * @category CmsModel
@@ -1102,11 +1238,15 @@ export interface CmsModelFieldInput {
1102
1238
  /**
1103
1239
  * Text to display below the field to help user what to write in the field.
1104
1240
  */
1105
- helpText?: string;
1241
+ helpText?: string | null;
1106
1242
  /**
1107
1243
  * Text to display in the field.
1108
1244
  */
1109
- placeholderText?: string;
1245
+ placeholderText?: string | null;
1246
+ /**
1247
+ * Fields can be tagged to give them contextual meaning.
1248
+ */
1249
+ tags?: string[];
1110
1250
  /**
1111
1251
  * Are multiple values allowed?
1112
1252
  */
@@ -1133,7 +1273,7 @@ export interface CmsModelFieldInput {
1133
1273
  settings?: Record<string, any>;
1134
1274
  }
1135
1275
  /**
1136
- * A GraphQL params.data parameter received when updating content model.
1276
+ * A GraphQL `params.data` parameter received when updating content model.
1137
1277
  *
1138
1278
  * @category GraphQL params
1139
1279
  * @category CmsModel
@@ -1212,10 +1352,10 @@ export interface CmsEntryValues {
1212
1352
  * @category Database model
1213
1353
  * @category CmsEntry
1214
1354
  */
1215
- export interface CmsEntry {
1355
+ export interface CmsEntry<T = CmsEntryValues> {
1216
1356
  /**
1217
1357
  * A version of the webiny this entry was created with.
1218
- * This can be used when upgrading the system so we know which entries to update.
1358
+ * This can be used when upgrading the system, so we know which entries to update.
1219
1359
  */
1220
1360
  webinyVersion: string;
1221
1361
  /**
@@ -1281,14 +1421,14 @@ export interface CmsEntry {
1281
1421
  *
1282
1422
  * @see CmsModelField
1283
1423
  */
1284
- values: CmsEntryValues;
1424
+ values: T;
1285
1425
  /**
1286
1426
  * Settings for the given entry.
1287
1427
  *
1288
- * Introduced with Advanced Publishing Workflow - will be always inserted after this PR is merged.
1289
- * Be aware that when accessing properties in it on old systems - it will break if not checked first.
1428
+ * Introduced with Advanced Publishing Workflow. Will always be inserted once this PR is merged.
1429
+ * Be aware that when accessing properties in it on old systems, it will break if not checked first.
1290
1430
  *
1291
- * Available only on the Manage API in entry GraphQL type meta.data property.
1431
+ * Available only on the Manage API in entry GraphQL type `meta.data` property.
1292
1432
  */
1293
1433
  meta?: {
1294
1434
  [key: string]: any;
@@ -1321,7 +1461,7 @@ export interface CmsModelManager {
1321
1461
  */
1322
1462
  getPublishedByIds: (ids: string[]) => Promise<CmsEntry[]>;
1323
1463
  /**
1324
- * Get a list of latest entries by the ID list.
1464
+ * Get a list of the latest entries by the ID list.
1325
1465
  */
1326
1466
  getLatestByIds: (ids: string[]) => Promise<CmsEntry[]>;
1327
1467
  /**
@@ -1329,52 +1469,95 @@ export interface CmsModelManager {
1329
1469
  */
1330
1470
  get: (id: string) => Promise<CmsEntry>;
1331
1471
  /**
1332
- * Create a entry.
1472
+ * Create an entry.
1333
1473
  */
1334
1474
  create: (data: CreateCmsEntryInput) => Promise<CmsEntry>;
1335
1475
  /**
1336
- * Update a entry.
1476
+ * Update an entry.
1337
1477
  */
1338
1478
  update: (id: string, data: UpdateCmsEntryInput) => Promise<CmsEntry>;
1339
1479
  /**
1340
- * Delete a entry.
1480
+ * Delete an entry.
1341
1481
  */
1342
1482
  delete: (id: string) => Promise<void>;
1343
1483
  }
1344
- export interface BeforeModelCreateTopicParams {
1484
+ /**
1485
+ * Create
1486
+ */
1487
+ export interface OnModelBeforeCreateTopicParams {
1345
1488
  input: CmsModelCreateInput;
1346
1489
  model: CmsModel;
1347
1490
  }
1348
- export interface AfterModelCreateTopicParams {
1491
+ export interface OnModelAfterCreateTopicParams {
1349
1492
  input: CmsModelCreateInput;
1350
1493
  model: CmsModel;
1351
1494
  }
1352
- export interface BeforeModelCreateFromTopicParams {
1495
+ export interface OnModelCreateErrorTopicParams {
1496
+ input: CmsModelCreateInput;
1497
+ model: CmsModel;
1498
+ error: Error;
1499
+ }
1500
+ /**
1501
+ * Create From / Clone
1502
+ */
1503
+ export interface OnModelBeforeCreateFromTopicParams {
1353
1504
  input: CmsModelCreateInput;
1354
1505
  original: CmsModel;
1355
1506
  model: CmsModel;
1356
1507
  }
1357
- export interface AfterModelCreateFromTopicParams {
1508
+ export interface OnModelAfterCreateFromTopicParams {
1358
1509
  input: CmsModelCreateInput;
1359
1510
  original: CmsModel;
1360
1511
  model: CmsModel;
1361
1512
  }
1362
- export interface BeforeModelUpdateTopicParams {
1513
+ export interface OnModelCreateFromErrorParams {
1514
+ input: CmsModelCreateInput;
1515
+ original: CmsModel;
1516
+ model: CmsModel;
1517
+ error: Error;
1518
+ }
1519
+ /**
1520
+ * Update
1521
+ */
1522
+ export interface OnModelBeforeUpdateTopicParams {
1523
+ input: CmsModelUpdateInput;
1524
+ original: CmsModel;
1525
+ model: CmsModel;
1526
+ }
1527
+ export interface OnModelAfterUpdateTopicParams {
1363
1528
  input: CmsModelUpdateInput;
1364
1529
  original: CmsModel;
1365
1530
  model: CmsModel;
1366
1531
  }
1367
- export interface AfterModelUpdateTopicParams {
1532
+ export interface OnModelUpdateErrorTopicParams {
1368
1533
  input: CmsModelUpdateInput;
1369
1534
  original: CmsModel;
1370
1535
  model: CmsModel;
1536
+ error: Error;
1537
+ }
1538
+ /**
1539
+ * Delete
1540
+ */
1541
+ export interface OnModelBeforeDeleteTopicParams {
1542
+ model: CmsModel;
1543
+ }
1544
+ export interface OnModelAfterDeleteTopicParams {
1545
+ model: CmsModel;
1371
1546
  }
1372
- export interface BeforeModelDeleteTopicParams {
1547
+ export interface OnModelDeleteErrorTopicParams {
1373
1548
  model: CmsModel;
1549
+ error: Error;
1374
1550
  }
1375
- export interface AfterModelDeleteTopicParams {
1551
+ /**
1552
+ * Initialize
1553
+ */
1554
+ export interface OnModelInitializeParams {
1376
1555
  model: CmsModel;
1556
+ data: Record<string, any>;
1377
1557
  }
1558
+ /**
1559
+ *
1560
+ */
1378
1561
  export interface CmsModelUpdateDirectParams {
1379
1562
  model: CmsModel;
1380
1563
  original: CmsModel;
@@ -1416,7 +1599,14 @@ export interface CmsModelContext {
1416
1599
  */
1417
1600
  deleteModel: (modelId: string) => Promise<void>;
1418
1601
  /**
1419
- * Get a instance of CmsModelManager for given content modelId.
1602
+ * Possibility for users to trigger the model initialization.
1603
+ * They can hook into it and do what ever they want to.
1604
+ *
1605
+ * Primary idea behind this is creating the index, for the code models, in the ES.
1606
+ */
1607
+ initializeModel: (modelId: string, data: Record<string, any>) => Promise<boolean>;
1608
+ /**
1609
+ * Get an instance of CmsModelManager for given content modelId.
1420
1610
  *
1421
1611
  * @see CmsModelManager
1422
1612
  *
@@ -1436,23 +1626,63 @@ export interface CmsModelContext {
1436
1626
  */
1437
1627
  clearModelsCache: () => void;
1438
1628
  /**
1439
- * Events.
1629
+ * Lifecycle events - deprecated.
1630
+ */
1631
+ /**
1632
+ * @deprecated
1633
+ */
1634
+ onBeforeModelCreate: Topic<OnModelBeforeCreateTopicParams>;
1635
+ /**
1636
+ * @deprecated
1637
+ */
1638
+ onAfterModelCreate: Topic<OnModelAfterCreateTopicParams>;
1639
+ /**
1640
+ * @deprecated
1440
1641
  */
1441
- onBeforeModelCreate: Topic<BeforeModelCreateTopicParams>;
1442
- onAfterModelCreate: Topic<AfterModelCreateTopicParams>;
1443
- onBeforeModelCreateFrom: Topic<BeforeModelCreateFromTopicParams>;
1444
- onAfterModelCreateFrom: Topic<AfterModelCreateFromTopicParams>;
1445
- onBeforeModelUpdate: Topic<BeforeModelUpdateTopicParams>;
1446
- onAfterModelUpdate: Topic<AfterModelUpdateTopicParams>;
1447
- onBeforeModelDelete: Topic<BeforeModelDeleteTopicParams>;
1448
- onAfterModelDelete: Topic<AfterModelDeleteTopicParams>;
1642
+ onBeforeModelCreateFrom: Topic<OnModelBeforeCreateFromTopicParams>;
1643
+ /**
1644
+ * @deprecated
1645
+ */
1646
+ onAfterModelCreateFrom: Topic<OnModelAfterCreateFromTopicParams>;
1647
+ /**
1648
+ * @deprecated
1649
+ */
1650
+ onBeforeModelUpdate: Topic<OnModelBeforeUpdateTopicParams>;
1651
+ /**
1652
+ * @deprecated
1653
+ */
1654
+ onAfterModelUpdate: Topic<OnModelAfterUpdateTopicParams>;
1655
+ /**
1656
+ * @deprecated
1657
+ */
1658
+ onBeforeModelDelete: Topic<OnModelBeforeDeleteTopicParams>;
1659
+ /**
1660
+ * @deprecated
1661
+ */
1662
+ onAfterModelDelete: Topic<OnModelAfterDeleteTopicParams>;
1663
+ /**
1664
+ * Lifecycle events - released in 5.33.0
1665
+ */
1666
+ onModelBeforeCreate: Topic<OnModelBeforeCreateTopicParams>;
1667
+ onModelAfterCreate: Topic<OnModelAfterCreateTopicParams>;
1668
+ onModelCreateError: Topic<OnModelCreateErrorTopicParams>;
1669
+ onModelBeforeCreateFrom: Topic<OnModelBeforeCreateFromTopicParams>;
1670
+ onModelAfterCreateFrom: Topic<OnModelAfterCreateFromTopicParams>;
1671
+ onModelCreateFromError: Topic<OnModelCreateFromErrorParams>;
1672
+ onModelBeforeUpdate: Topic<OnModelBeforeUpdateTopicParams>;
1673
+ onModelAfterUpdate: Topic<OnModelAfterUpdateTopicParams>;
1674
+ onModelUpdateError: Topic<OnModelUpdateErrorTopicParams>;
1675
+ onModelBeforeDelete: Topic<OnModelBeforeDeleteTopicParams>;
1676
+ onModelAfterDelete: Topic<OnModelAfterDeleteTopicParams>;
1677
+ onModelDeleteError: Topic<OnModelDeleteErrorTopicParams>;
1678
+ onModelInitialize: Topic<OnModelInitializeParams>;
1449
1679
  }
1450
1680
  /**
1451
1681
  * Available statuses for content entry.
1452
1682
  *
1453
1683
  * @category CmsEntry
1454
1684
  */
1455
- export declare type CmsEntryStatus = "published" | "unpublished" | "reviewRequested" | "changesRequested" | "draft";
1685
+ export declare type CmsEntryStatus = "published" | "unpublished" | "draft";
1456
1686
  export interface CmsEntryListWhereRef {
1457
1687
  id?: string;
1458
1688
  id_in?: string[];
@@ -1530,7 +1760,12 @@ export interface CmsEntryListWhere {
1530
1760
  /**
1531
1761
  * This is to allow querying by any content model field defined by the user.
1532
1762
  */
1533
- [key: string]: any | CmsEntryListWhereRef;
1763
+ [key: string]: string | number | boolean | undefined | string[] | number[] | null | CmsEntryListWhere[] | CmsEntryListWhere | CmsEntryListWhereRef;
1764
+ /**
1765
+ * To allow querying via nested queries, we added the AND / OR properties.
1766
+ */
1767
+ AND?: CmsEntryListWhere[];
1768
+ OR?: CmsEntryListWhere[];
1534
1769
  }
1535
1770
  /**
1536
1771
  * Entry listing sort.
@@ -1583,100 +1818,121 @@ export interface CmsEntryMeta {
1583
1818
  */
1584
1819
  totalCount: number;
1585
1820
  }
1586
- export interface BeforeEntryCreateTopicParams {
1821
+ export interface OnEntryBeforeCreateTopicParams {
1587
1822
  input: CreateCmsEntryInput;
1588
1823
  entry: CmsEntry;
1589
1824
  model: StorageOperationsCmsModel;
1590
1825
  }
1591
- export interface AfterEntryCreateTopicParams {
1826
+ export interface OnEntryAfterCreateTopicParams {
1592
1827
  input: CreateCmsEntryInput;
1593
1828
  entry: CmsEntry;
1594
1829
  model: StorageOperationsCmsModel;
1595
1830
  storageEntry: CmsEntry;
1596
1831
  }
1597
- export interface BeforeEntryCreateRevisionTopicParams {
1832
+ export interface OnEntryCreateErrorTopicParams {
1833
+ error: Error;
1834
+ input: CreateCmsEntryInput;
1835
+ entry: CmsEntry;
1836
+ model: CmsModel;
1837
+ }
1838
+ export interface OnEntryRevisionBeforeCreateTopicParams {
1598
1839
  input: CreateFromCmsEntryInput;
1599
1840
  entry: CmsEntry;
1600
1841
  original: CmsEntry;
1601
1842
  model: StorageOperationsCmsModel;
1602
1843
  }
1603
- export interface AfterEntryCreateRevisionTopicParams {
1844
+ export interface OnEntryRevisionAfterCreateTopicParams {
1604
1845
  input: CreateFromCmsEntryInput;
1605
1846
  entry: CmsEntry;
1606
1847
  original: CmsEntry;
1607
1848
  model: StorageOperationsCmsModel;
1608
1849
  storageEntry: CmsEntry;
1609
1850
  }
1610
- export interface BeforeEntryUpdateTopicParams {
1851
+ export interface OnEntryCreateRevisionErrorTopicParams {
1852
+ error: Error;
1853
+ input: CreateFromCmsEntryInput;
1854
+ original: CmsEntry;
1855
+ entry: CmsEntry;
1856
+ model: CmsModel;
1857
+ }
1858
+ export interface OnEntryBeforeUpdateTopicParams {
1611
1859
  input: UpdateCmsEntryInput;
1612
1860
  original: CmsEntry;
1613
1861
  entry: CmsEntry;
1614
1862
  model: StorageOperationsCmsModel;
1615
1863
  }
1616
- export interface AfterEntryUpdateTopicParams {
1864
+ export interface OnEntryAfterUpdateTopicParams {
1617
1865
  input: UpdateCmsEntryInput;
1618
1866
  original: CmsEntry;
1619
1867
  entry: CmsEntry;
1620
1868
  model: StorageOperationsCmsModel;
1621
1869
  storageEntry: CmsEntry;
1622
1870
  }
1623
- export interface BeforeEntryPublishTopicParams {
1871
+ export interface OnEntryUpdateErrorTopicParams {
1872
+ error: Error;
1873
+ input: CreateFromCmsEntryInput;
1624
1874
  entry: CmsEntry;
1625
- model: StorageOperationsCmsModel;
1875
+ model: CmsModel;
1626
1876
  }
1627
- export interface AfterEntryPublishTopicParams {
1877
+ export interface OnEntryBeforePublishTopicParams {
1628
1878
  entry: CmsEntry;
1629
1879
  model: StorageOperationsCmsModel;
1630
- storageEntry: CmsEntry;
1631
1880
  }
1632
- export interface BeforeEntryUnpublishTopicParams {
1881
+ export interface OnEntryAfterPublishTopicParams {
1633
1882
  entry: CmsEntry;
1634
1883
  model: StorageOperationsCmsModel;
1884
+ storageEntry: CmsEntry;
1635
1885
  }
1636
- export interface AfterEntryUnpublishTopicParams {
1886
+ export interface OnEntryPublishErrorTopicParams {
1887
+ error: Error;
1637
1888
  entry: CmsEntry;
1638
1889
  model: StorageOperationsCmsModel;
1639
- storageEntry: CmsEntry;
1640
1890
  }
1641
- export interface BeforeEntryRequestChangesTopicParams {
1891
+ export interface OnEntryBeforeUnpublishTopicParams {
1642
1892
  entry: CmsEntry;
1643
1893
  model: StorageOperationsCmsModel;
1644
1894
  }
1645
- export interface AfterEntryRequestChangesTopicParams {
1895
+ export interface OnEntryAfterUnpublishTopicParams {
1646
1896
  entry: CmsEntry;
1647
1897
  model: StorageOperationsCmsModel;
1648
1898
  storageEntry: CmsEntry;
1649
1899
  }
1650
- export interface BeforeEntryRequestReviewTopicParams {
1900
+ export interface OnEntryUnpublishErrorTopicParams {
1901
+ error: Error;
1902
+ entry: CmsEntry;
1903
+ model: CmsModel;
1904
+ }
1905
+ export interface OnEntryBeforeDeleteTopicParams {
1651
1906
  entry: CmsEntry;
1652
1907
  model: StorageOperationsCmsModel;
1653
1908
  }
1654
- export interface AfterEntryRequestReviewTopicParams {
1909
+ export interface OnEntryAfterDeleteTopicParams {
1655
1910
  entry: CmsEntry;
1656
1911
  model: StorageOperationsCmsModel;
1657
- storageEntry: CmsEntry;
1658
1912
  }
1659
- export interface BeforeEntryDeleteTopicParams {
1913
+ export interface OnEntryDeleteErrorTopicParams {
1914
+ error: Error;
1660
1915
  entry: CmsEntry;
1661
1916
  model: StorageOperationsCmsModel;
1662
1917
  }
1663
- export interface AfterEntryDeleteTopicParams {
1918
+ export interface OnEntryRevisionBeforeDeleteTopicParams {
1664
1919
  entry: CmsEntry;
1665
1920
  model: StorageOperationsCmsModel;
1666
1921
  }
1667
- export interface BeforeEntryDeleteRevisionTopicParams {
1922
+ export interface OnEntryRevisionAfterDeleteTopicParams {
1668
1923
  entry: CmsEntry;
1669
1924
  model: StorageOperationsCmsModel;
1670
1925
  }
1671
- export interface AfterEntryDeleteRevisionTopicParams {
1926
+ export interface OnEntryRevisionDeleteErrorTopicParams {
1927
+ error: Error;
1672
1928
  entry: CmsEntry;
1673
1929
  model: StorageOperationsCmsModel;
1674
1930
  }
1675
- export interface BeforeEntryGetTopicParams {
1931
+ export interface OnEntryBeforeGetTopicParams {
1676
1932
  model: StorageOperationsCmsModel;
1677
1933
  where: CmsEntryListWhere;
1678
1934
  }
1679
- export interface BeforeEntryListTopicParams {
1935
+ export interface EntryBeforeListTopicParams {
1680
1936
  where: CmsEntryListWhere;
1681
1937
  model: StorageOperationsCmsModel;
1682
1938
  }
@@ -1725,7 +1981,7 @@ export interface CmsEntryContext {
1725
1981
  */
1726
1982
  listEntries: (model: CmsModel, params: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
1727
1983
  /**
1728
- * Lists latest entries. Used for manage API.
1984
+ * Lists the latest entries. Used for manage API.
1729
1985
  */
1730
1986
  listLatestEntries: (model: CmsModel, params?: CmsEntryListParams) => Promise<[CmsEntry[], CmsEntryMeta]>;
1731
1987
  /**
@@ -1774,40 +2030,102 @@ export interface CmsEntryContext {
1774
2030
  */
1775
2031
  unpublishEntry: (model: CmsModel, id: string) => Promise<CmsEntry>;
1776
2032
  /**
1777
- * Request a review for the entry.
2033
+ * Get all entry revisions.
1778
2034
  */
1779
- requestEntryReview: (model: CmsModel, id: string) => Promise<CmsEntry>;
2035
+ getEntryRevisions: (model: CmsModel, id: string) => Promise<CmsEntry[]>;
1780
2036
  /**
1781
- * Request changes for the entry.
2037
+ * Lifecyle events - deprecated.
1782
2038
  */
1783
- requestEntryChanges: (model: CmsModel, id: string) => Promise<CmsEntry>;
1784
2039
  /**
1785
- * Get all entry revisions.
2040
+ * @deprecated
1786
2041
  */
1787
- getEntryRevisions: (model: CmsModel, id: string) => Promise<CmsEntry[]>;
2042
+ onBeforeEntryCreate: Topic<OnEntryBeforeCreateTopicParams>;
2043
+ /**
2044
+ * @deprecated
2045
+ */
2046
+ onAfterEntryCreate: Topic<OnEntryAfterCreateTopicParams>;
2047
+ /**
2048
+ * @deprecated
2049
+ */
2050
+ onBeforeEntryCreateRevision: Topic<OnEntryRevisionBeforeCreateTopicParams>;
2051
+ /**
2052
+ * @deprecated
2053
+ */
2054
+ onAfterEntryCreateRevision: Topic<OnEntryRevisionAfterCreateTopicParams>;
2055
+ /**
2056
+ * @deprecated
2057
+ */
2058
+ onBeforeEntryUpdate: Topic<OnEntryBeforeUpdateTopicParams>;
2059
+ /**
2060
+ * @deprecated
2061
+ */
2062
+ onAfterEntryUpdate: Topic<OnEntryAfterUpdateTopicParams>;
2063
+ /**
2064
+ * @deprecated
2065
+ */
2066
+ onBeforeEntryDelete: Topic<OnEntryBeforeDeleteTopicParams>;
2067
+ /**
2068
+ * @deprecated
2069
+ */
2070
+ onAfterEntryDelete: Topic<OnEntryAfterDeleteTopicParams>;
2071
+ /**
2072
+ * @deprecated
2073
+ */
2074
+ onBeforeEntryDeleteRevision: Topic<OnEntryRevisionBeforeDeleteTopicParams>;
2075
+ /**
2076
+ * @deprecated
2077
+ */
2078
+ onAfterEntryDeleteRevision: Topic<OnEntryRevisionAfterDeleteTopicParams>;
2079
+ /**
2080
+ * @deprecated
2081
+ */
2082
+ onBeforeEntryPublish: Topic<OnEntryBeforePublishTopicParams>;
2083
+ /**
2084
+ * @deprecated
2085
+ */
2086
+ onAfterEntryPublish: Topic<OnEntryAfterPublishTopicParams>;
2087
+ /**
2088
+ * @deprecated
2089
+ */
2090
+ onBeforeEntryUnpublish: Topic<OnEntryBeforeUnpublishTopicParams>;
1788
2091
  /**
1789
- * Events.
1790
- */
1791
- onBeforeEntryCreate: Topic<BeforeEntryCreateTopicParams>;
1792
- onAfterEntryCreate: Topic<AfterEntryCreateTopicParams>;
1793
- onBeforeEntryCreateRevision: Topic<BeforeEntryCreateRevisionTopicParams>;
1794
- onAfterEntryCreateRevision: Topic<AfterEntryCreateRevisionTopicParams>;
1795
- onBeforeEntryUpdate: Topic<BeforeEntryUpdateTopicParams>;
1796
- onAfterEntryUpdate: Topic<AfterEntryUpdateTopicParams>;
1797
- onBeforeEntryDelete: Topic<BeforeEntryDeleteTopicParams>;
1798
- onAfterEntryDelete: Topic<AfterEntryDeleteTopicParams>;
1799
- onBeforeEntryDeleteRevision: Topic<BeforeEntryDeleteRevisionTopicParams>;
1800
- onAfterEntryDeleteRevision: Topic<AfterEntryDeleteRevisionTopicParams>;
1801
- onBeforeEntryPublish: Topic<BeforeEntryPublishTopicParams>;
1802
- onAfterEntryPublish: Topic<AfterEntryPublishTopicParams>;
1803
- onBeforeEntryUnpublish: Topic<BeforeEntryUnpublishTopicParams>;
1804
- onAfterEntryUnpublish: Topic<AfterEntryUnpublishTopicParams>;
1805
- onBeforeEntryRequestChanges: Topic<BeforeEntryRequestChangesTopicParams>;
1806
- onAfterEntryRequestChanges: Topic<AfterEntryRequestChangesTopicParams>;
1807
- onBeforeEntryRequestReview: Topic<BeforeEntryRequestReviewTopicParams>;
1808
- onAfterEntryRequestReview: Topic<AfterEntryRequestReviewTopicParams>;
1809
- onBeforeEntryGet: Topic<BeforeEntryGetTopicParams>;
1810
- onBeforeEntryList: Topic<BeforeEntryListTopicParams>;
2092
+ * @deprecated
2093
+ */
2094
+ onAfterEntryUnpublish: Topic<OnEntryAfterUnpublishTopicParams>;
2095
+ /**
2096
+ * @deprecated
2097
+ */
2098
+ onBeforeEntryGet: Topic<OnEntryBeforeGetTopicParams>;
2099
+ /**
2100
+ * @deprecated
2101
+ */
2102
+ onBeforeEntryList: Topic<EntryBeforeListTopicParams>;
2103
+ /**
2104
+ * Lifecycle events released in 5.33.0
2105
+ */
2106
+ onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;
2107
+ onEntryAfterCreate: Topic<OnEntryAfterCreateTopicParams>;
2108
+ onEntryCreateError: Topic<OnEntryCreateErrorTopicParams>;
2109
+ onEntryRevisionBeforeCreate: Topic<OnEntryRevisionBeforeCreateTopicParams>;
2110
+ onEntryRevisionAfterCreate: Topic<OnEntryRevisionAfterCreateTopicParams>;
2111
+ onEntryRevisionCreateError: Topic<OnEntryCreateRevisionErrorTopicParams>;
2112
+ onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;
2113
+ onEntryAfterUpdate: Topic<OnEntryAfterUpdateTopicParams>;
2114
+ onEntryUpdateError: Topic<OnEntryUpdateErrorTopicParams>;
2115
+ onEntryBeforeDelete: Topic<OnEntryBeforeDeleteTopicParams>;
2116
+ onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;
2117
+ onEntryDeleteError: Topic<OnEntryDeleteErrorTopicParams>;
2118
+ onEntryRevisionBeforeDelete: Topic<OnEntryRevisionBeforeDeleteTopicParams>;
2119
+ onEntryRevisionAfterDelete: Topic<OnEntryRevisionAfterDeleteTopicParams>;
2120
+ onEntryRevisionDeleteError: Topic<OnEntryRevisionDeleteErrorTopicParams>;
2121
+ onEntryBeforePublish: Topic<OnEntryBeforePublishTopicParams>;
2122
+ onEntryAfterPublish: Topic<OnEntryAfterPublishTopicParams>;
2123
+ onEntryPublishError: Topic<OnEntryPublishErrorTopicParams>;
2124
+ onEntryBeforeUnpublish: Topic<OnEntryBeforeUnpublishTopicParams>;
2125
+ onEntryAfterUnpublish: Topic<OnEntryAfterUnpublishTopicParams>;
2126
+ onEntryUnpublishError: Topic<OnEntryUnpublishErrorTopicParams>;
2127
+ onEntryBeforeGet: Topic<OnEntryBeforeGetTopicParams>;
2128
+ onEntryBeforeList: Topic<EntryBeforeListTopicParams>;
1811
2129
  }
1812
2130
  /**
1813
2131
  * Parameters for CmsEntryResolverFactory.
@@ -1851,13 +2169,13 @@ export interface BaseCmsSecurityPermission extends SecurityPermission {
1851
2169
  */
1852
2170
  export interface CmsModelPermission extends BaseCmsSecurityPermission {
1853
2171
  /**
1854
- * A object representing `key: model.modelId` values where key is locale code.
2172
+ * An object representing `key: model.modelId` values where key is locale code.
1855
2173
  */
1856
2174
  models?: {
1857
2175
  [key: string]: string[];
1858
2176
  };
1859
2177
  /**
1860
- * A object representing `key: group.id` values where key is locale code.
2178
+ * {locale: groupId[]} map, where key is a locale code.
1861
2179
  */
1862
2180
  groups?: {
1863
2181
  [key: string]: string[];
@@ -1871,7 +2189,7 @@ export interface CmsModelPermission extends BaseCmsSecurityPermission {
1871
2189
  */
1872
2190
  export interface CmsGroupPermission extends BaseCmsSecurityPermission {
1873
2191
  /**
1874
- * A object representing `key: group.id` values where key is locale code.
2192
+ * {locale: groupId[]} map, where key is a locale code.
1875
2193
  */
1876
2194
  groups?: {
1877
2195
  [key: string]: string[];
@@ -1886,13 +2204,13 @@ export interface CmsGroupPermission extends BaseCmsSecurityPermission {
1886
2204
  export interface CmsEntryPermission extends BaseCmsSecurityPermission {
1887
2205
  pw?: string;
1888
2206
  /**
1889
- * A object representing `key: model.modelId` values where key is locale code.
2207
+ * An object representing `key: model.modelId` values where key is locale code.
1890
2208
  */
1891
2209
  models?: {
1892
2210
  [key: string]: string[];
1893
2211
  };
1894
2212
  /**
1895
- * A object representing `key: group.id` values where key is locale code.
2213
+ * {locale: groupId[]} map, where key is a locale code.
1896
2214
  */
1897
2215
  groups?: {
1898
2216
  [key: string]: string[];
@@ -2007,7 +2325,7 @@ export interface CmsEntryStorageOperationsListParams {
2007
2325
  sort?: CmsEntryListSort;
2008
2326
  search?: string;
2009
2327
  fields?: string[];
2010
- limit?: number;
2328
+ limit: number;
2011
2329
  after?: string | null;
2012
2330
  }
2013
2331
  export interface CmsEntryStorageOperationsCreateParams<T extends CmsStorageEntry = CmsStorageEntry> {
@@ -2085,26 +2403,6 @@ export interface CmsEntryStorageOperationsUnpublishParams<T extends CmsStorageEn
2085
2403
  */
2086
2404
  storageEntry: T;
2087
2405
  }
2088
- export interface CmsEntryStorageOperationsRequestChangesParams<T extends CmsStorageEntry = CmsStorageEntry> {
2089
- /**
2090
- * Entry data updated with the required properties.
2091
- */
2092
- entry: CmsEntry;
2093
- /**
2094
- * Entry that is prepared for the storageOperations, with the transformations.
2095
- */
2096
- storageEntry: T;
2097
- }
2098
- export interface CmsEntryStorageOperationsRequestReviewParams<T extends CmsStorageEntry = CmsStorageEntry> {
2099
- /**
2100
- * Entry that is prepared for the storageOperations.
2101
- */
2102
- entry: CmsEntry;
2103
- /**
2104
- * Entry that is prepared for the storageOperations, with the transformations.
2105
- */
2106
- storageEntry: T;
2107
- }
2108
2406
  export interface CmsEntryStorageOperationsGetByIdsParams {
2109
2407
  ids: readonly string[];
2110
2408
  }
@@ -2226,21 +2524,11 @@ export interface CmsEntryStorageOperations<T extends CmsStorageEntry = CmsStorag
2226
2524
  * Unpublish the entry.
2227
2525
  */
2228
2526
  unpublish: (model: StorageOperationsCmsModel, params: CmsEntryStorageOperationsUnpublishParams<T>) => Promise<T>;
2229
- /**
2230
- * Request changes the entry.
2231
- */
2232
- requestChanges: (model: StorageOperationsCmsModel, params: CmsEntryStorageOperationsRequestChangesParams<T>) => Promise<T>;
2233
- /**
2234
- * Request review the entry.
2235
- */
2236
- requestReview: (model: StorageOperationsCmsModel, params: CmsEntryStorageOperationsRequestReviewParams<T>) => Promise<CmsEntry>;
2237
2527
  }
2238
2528
  export declare enum CONTENT_ENTRY_STATUS {
2239
2529
  DRAFT = "draft",
2240
2530
  PUBLISHED = "published",
2241
- UNPUBLISHED = "unpublished",
2242
- CHANGES_REQUESTED = "changesRequested",
2243
- REVIEW_REQUESTED = "reviewRequested"
2531
+ UNPUBLISHED = "unpublished"
2244
2532
  }
2245
2533
  export interface CmsSettingsStorageOperationsGetParams {
2246
2534
  locale: string;
@@ -2297,7 +2585,8 @@ export interface CmsSystemStorageOperations {
2297
2585
  */
2298
2586
  update: (params: CmsSystemStorageOperationsUpdateParams) => Promise<CmsSystem>;
2299
2587
  }
2300
- export interface HeadlessCmsStorageOperations {
2588
+ export interface HeadlessCmsStorageOperations<C = CmsContext> {
2589
+ name: string;
2301
2590
  system: CmsSystemStorageOperations;
2302
2591
  settings: CmsSettingsStorageOperations;
2303
2592
  groups: CmsGroupStorageOperations;
@@ -2306,8 +2595,8 @@ export interface HeadlessCmsStorageOperations {
2306
2595
  /**
2307
2596
  * Either attach something from the storage operations or run something in it.
2308
2597
  */
2309
- beforeInit?: (context: CmsContext) => Promise<void>;
2310
- init?: (context: CmsContext) => Promise<void>;
2598
+ beforeInit?: (context: C) => Promise<void>;
2599
+ init?: (context: C) => Promise<void>;
2311
2600
  /**
2312
2601
  * An upgrade to run if necessary.
2313
2602
  */