@financial-times/cp-content-pipeline-schema 0.7.23 → 0.7.25

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 (58) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/generated/index.d.ts +133 -30
  3. package/lib/model/CapiResponse.d.ts +5 -2
  4. package/lib/model/CapiResponse.js +42 -4
  5. package/lib/model/CapiResponse.js.map +1 -1
  6. package/lib/model/Concept.d.ts +3 -0
  7. package/lib/model/Concept.js +19 -8
  8. package/lib/model/Concept.js.map +1 -1
  9. package/lib/model/RichText.d.ts +1 -0
  10. package/lib/model/RichText.js +3 -0
  11. package/lib/model/RichText.js.map +1 -1
  12. package/lib/model/RichText.test.js +2 -0
  13. package/lib/model/RichText.test.js.map +1 -1
  14. package/lib/model/Topper.d.ts +1 -0
  15. package/lib/model/Topper.js +3 -0
  16. package/lib/model/Topper.js.map +1 -1
  17. package/lib/model/schemas/capi/base-schema.d.ts +18 -0
  18. package/lib/model/schemas/capi/base-schema.js +3 -0
  19. package/lib/model/schemas/capi/base-schema.js.map +1 -1
  20. package/lib/model/schemas/capi/content-package.js +1 -0
  21. package/lib/model/schemas/capi/content-package.js.map +1 -1
  22. package/lib/resolvers/content-tree/extractText.d.ts +2 -0
  23. package/lib/resolvers/content-tree/extractText.js +22 -0
  24. package/lib/resolvers/content-tree/extractText.js.map +1 -0
  25. package/lib/resolvers/content.d.ts +5 -1
  26. package/lib/resolvers/content.js +7 -1
  27. package/lib/resolvers/content.js.map +1 -1
  28. package/lib/resolvers/image.d.ts +1 -0
  29. package/lib/resolvers/image.js +1 -0
  30. package/lib/resolvers/image.js.map +1 -1
  31. package/lib/resolvers/index.d.ts +9 -3
  32. package/lib/resolvers/richText.d.ts +1 -0
  33. package/lib/resolvers/teaser.d.ts +1 -2
  34. package/lib/resolvers/teaser.js +0 -1
  35. package/lib/resolvers/teaser.js.map +1 -1
  36. package/lib/resolvers/topper.d.ts +1 -0
  37. package/lib/resolvers/topper.js +1 -0
  38. package/lib/resolvers/topper.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/generated/index.ts +90 -15
  41. package/src/model/CapiResponse.ts +46 -4
  42. package/src/model/Concept.ts +23 -10
  43. package/src/model/RichText.test.ts +2 -0
  44. package/src/model/RichText.ts +3 -0
  45. package/src/model/Topper.ts +5 -4
  46. package/src/model/__snapshots__/RichText.test.ts.snap +33 -0
  47. package/src/model/schemas/capi/base-schema.ts +3 -0
  48. package/src/model/schemas/capi/content-package.ts +1 -0
  49. package/src/resolvers/content-tree/extractText.ts +21 -0
  50. package/src/resolvers/content.ts +10 -1
  51. package/src/resolvers/image.ts +1 -1
  52. package/src/resolvers/teaser.ts +0 -1
  53. package/src/resolvers/topper.ts +1 -0
  54. package/tsconfig.tsbuildinfo +1 -1
  55. package/typedefs/content.graphql +21 -7
  56. package/typedefs/image.graphql +10 -0
  57. package/typedefs/richText.graphql +1 -0
  58. package/typedefs/topper.graphql +7 -0
@@ -100,6 +100,7 @@ export type AltTitle = {
100
100
  readonly promotionalTitle?: Maybe<Scalars['String']['output']>;
101
101
  };
102
102
  export type Article = Content & {
103
+ readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
103
104
  readonly altStandfirst?: Maybe<AltStandfirst>;
104
105
  readonly altTitle?: Maybe<AltTitle>;
105
106
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
@@ -107,6 +108,7 @@ export type Article = Content & {
107
108
  readonly bodyXML?: Maybe<Scalars['String']['output']>;
108
109
  readonly byline?: Maybe<StructuredContent>;
109
110
  readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
111
+ readonly containedIn?: Maybe<Content>;
110
112
  readonly design?: Maybe<Design>;
111
113
  readonly firstPublishedDate: Scalars['String']['output'];
112
114
  readonly id: Scalars['String']['output'];
@@ -121,8 +123,10 @@ export type Article = Content & {
121
123
  };
122
124
  export type ArticleUrlArgs = {
123
125
  relative?: InputMaybe<Scalars['Boolean']['input']>;
126
+ vanity?: InputMaybe<Scalars['Boolean']['input']>;
124
127
  };
125
128
  export type Audio = Content & {
129
+ readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
126
130
  readonly altStandfirst?: Maybe<AltStandfirst>;
127
131
  readonly altTitle?: Maybe<AltTitle>;
128
132
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
@@ -145,6 +149,7 @@ export type Audio = Content & {
145
149
  };
146
150
  export type AudioUrlArgs = {
147
151
  relative?: InputMaybe<Scalars['Boolean']['input']>;
152
+ vanity?: InputMaybe<Scalars['Boolean']['input']>;
148
153
  };
149
154
  export type BasicTopper = Topper & {
150
155
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
@@ -161,6 +166,7 @@ export type BrandedTopper = Topper & TopperWithBrand & TopperWithTheme & {
161
166
  readonly brandConcept?: Maybe<Concept>;
162
167
  readonly displayConcept?: Maybe<Concept>;
163
168
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
169
+ readonly genreConcept?: Maybe<Concept>;
164
170
  readonly headline: Scalars['String']['output'];
165
171
  readonly intro?: Maybe<RichText>;
166
172
  readonly isLargeHeadline?: Maybe<Scalars['Boolean']['output']>;
@@ -182,6 +188,7 @@ export type ConceptUrlArgs = {
182
188
  vanity?: InputMaybe<Scalars['Boolean']['input']>;
183
189
  };
184
190
  export type Content = {
191
+ readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
185
192
  readonly altStandfirst?: Maybe<AltStandfirst>;
186
193
  readonly altTitle?: Maybe<AltTitle>;
187
194
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
@@ -203,8 +210,10 @@ export type Content = {
203
210
  };
204
211
  export type ContentUrlArgs = {
205
212
  relative?: InputMaybe<Scalars['Boolean']['input']>;
213
+ vanity?: InputMaybe<Scalars['Boolean']['input']>;
206
214
  };
207
215
  export type ContentPackage = Content & {
216
+ readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
208
217
  readonly altStandfirst?: Maybe<AltStandfirst>;
209
218
  readonly altTitle?: Maybe<AltTitle>;
210
219
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
@@ -219,6 +228,7 @@ export type ContentPackage = Content & {
219
228
  readonly mainImage?: Maybe<Image>;
220
229
  readonly publishedDate: Scalars['String']['output'];
221
230
  readonly standfirst?: Maybe<Scalars['String']['output']>;
231
+ readonly tableOfContents?: Maybe<TableOfContents>;
222
232
  readonly teaser?: Maybe<Teaser>;
223
233
  readonly title: Scalars['String']['output'];
224
234
  readonly topper?: Maybe<Topper>;
@@ -227,6 +237,7 @@ export type ContentPackage = Content & {
227
237
  };
228
238
  export type ContentPackageUrlArgs = {
229
239
  relative?: InputMaybe<Scalars['Boolean']['input']>;
240
+ vanity?: InputMaybe<Scalars['Boolean']['input']>;
230
241
  };
231
242
  export type DeepLandscapeTopper = Topper & TopperWithBrand & TopperWithImages & TopperWithTheme & {
232
243
  readonly backgroundBox?: Maybe<Scalars['Boolean']['output']>;
@@ -235,6 +246,7 @@ export type DeepLandscapeTopper = Topper & TopperWithBrand & TopperWithImages &
235
246
  readonly displayConcept?: Maybe<Concept>;
236
247
  readonly fallbackImage?: Maybe<Image>;
237
248
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
249
+ readonly genreConcept?: Maybe<Concept>;
238
250
  readonly headline: Scalars['String']['output'];
239
251
  readonly images: ReadonlyArray<Image>;
240
252
  readonly intro?: Maybe<RichText>;
@@ -249,6 +261,7 @@ export type DeepPortraitTopper = Topper & TopperWithBrand & TopperWithImages & T
249
261
  readonly displayConcept?: Maybe<Concept>;
250
262
  readonly fallbackImage?: Maybe<Image>;
251
263
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
264
+ readonly genreConcept?: Maybe<Concept>;
252
265
  readonly headline: Scalars['String']['output'];
253
266
  readonly images: ReadonlyArray<Image>;
254
267
  readonly intro?: Maybe<RichText>;
@@ -276,6 +289,7 @@ export type FullBleedTopper = Topper & TopperWithBrand & TopperWithImages & Topp
276
289
  readonly displayConcept?: Maybe<Concept>;
277
290
  readonly fallbackImage?: Maybe<Image>;
278
291
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
292
+ readonly genreConcept?: Maybe<Concept>;
279
293
  readonly headline: Scalars['String']['output'];
280
294
  readonly images: ReadonlyArray<Image>;
281
295
  readonly intro?: Maybe<RichText>;
@@ -284,6 +298,7 @@ export type FullBleedTopper = Topper & TopperWithBrand & TopperWithImages & Topp
284
298
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
285
299
  };
286
300
  export type Image = {
301
+ readonly altText?: Maybe<Scalars['String']['output']>;
287
302
  readonly caption?: Maybe<Scalars['String']['output']>;
288
303
  readonly credit?: Maybe<Scalars['String']['output']>;
289
304
  readonly format: Scalars['ImageFormat']['output'];
@@ -299,6 +314,7 @@ export type ImageSourceSetArgs = {
299
314
  width?: InputMaybe<Scalars['Int']['input']>;
300
315
  };
301
316
  export type ImageDesktop = Image & {
317
+ readonly altText?: Maybe<Scalars['String']['output']>;
302
318
  readonly caption?: Maybe<Scalars['String']['output']>;
303
319
  readonly credit?: Maybe<Scalars['String']['output']>;
304
320
  readonly format: Scalars['ImageFormat']['output'];
@@ -314,6 +330,7 @@ export type ImageDesktopSourceSetArgs = {
314
330
  width?: InputMaybe<Scalars['Int']['input']>;
315
331
  };
316
332
  export type ImageLandscape = Image & {
333
+ readonly altText?: Maybe<Scalars['String']['output']>;
317
334
  readonly caption?: Maybe<Scalars['String']['output']>;
318
335
  readonly credit?: Maybe<Scalars['String']['output']>;
319
336
  readonly format: Scalars['ImageFormat']['output'];
@@ -329,6 +346,7 @@ export type ImageLandscapeSourceSetArgs = {
329
346
  width?: InputMaybe<Scalars['Int']['input']>;
330
347
  };
331
348
  export type ImageMobile = Image & {
349
+ readonly altText?: Maybe<Scalars['String']['output']>;
332
350
  readonly caption?: Maybe<Scalars['String']['output']>;
333
351
  readonly credit?: Maybe<Scalars['String']['output']>;
334
352
  readonly format: Scalars['ImageFormat']['output'];
@@ -344,6 +362,7 @@ export type ImageMobileSourceSetArgs = {
344
362
  width?: InputMaybe<Scalars['Int']['input']>;
345
363
  };
346
364
  export type ImagePortrait = Image & {
365
+ readonly altText?: Maybe<Scalars['String']['output']>;
347
366
  readonly caption?: Maybe<Scalars['String']['output']>;
348
367
  readonly credit?: Maybe<Scalars['String']['output']>;
349
368
  readonly format: Scalars['ImageFormat']['output'];
@@ -368,6 +387,7 @@ export type ImageSource = {
368
387
  readonly width?: Maybe<Scalars['Int']['output']>;
369
388
  };
370
389
  export type ImageSquare = Image & {
390
+ readonly altText?: Maybe<Scalars['String']['output']>;
371
391
  readonly caption?: Maybe<Scalars['String']['output']>;
372
392
  readonly credit?: Maybe<Scalars['String']['output']>;
373
393
  readonly format: Scalars['ImageFormat']['output'];
@@ -383,6 +403,7 @@ export type ImageSquareSourceSetArgs = {
383
403
  width?: InputMaybe<Scalars['Int']['input']>;
384
404
  };
385
405
  export type ImageSquareFtEdit = Image & {
406
+ readonly altText?: Maybe<Scalars['String']['output']>;
386
407
  readonly caption?: Maybe<Scalars['String']['output']>;
387
408
  readonly credit?: Maybe<Scalars['String']['output']>;
388
409
  readonly format: Scalars['ImageFormat']['output'];
@@ -398,6 +419,7 @@ export type ImageSquareFtEditSourceSetArgs = {
398
419
  width?: InputMaybe<Scalars['Int']['input']>;
399
420
  };
400
421
  export type ImageStandard = Image & {
422
+ readonly altText?: Maybe<Scalars['String']['output']>;
401
423
  readonly caption?: Maybe<Scalars['String']['output']>;
402
424
  readonly credit?: Maybe<Scalars['String']['output']>;
403
425
  readonly format: Scalars['ImageFormat']['output'];
@@ -413,6 +435,7 @@ export type ImageStandardSourceSetArgs = {
413
435
  width?: InputMaybe<Scalars['Int']['input']>;
414
436
  };
415
437
  export type ImageStandardInline = Image & {
438
+ readonly altText?: Maybe<Scalars['String']['output']>;
416
439
  readonly caption?: Maybe<Scalars['String']['output']>;
417
440
  readonly credit?: Maybe<Scalars['String']['output']>;
418
441
  readonly format: Scalars['ImageFormat']['output'];
@@ -428,6 +451,7 @@ export type ImageStandardInlineSourceSetArgs = {
428
451
  width?: InputMaybe<Scalars['Int']['input']>;
429
452
  };
430
453
  export type ImageWide = Image & {
454
+ readonly altText?: Maybe<Scalars['String']['output']>;
431
455
  readonly caption?: Maybe<Scalars['String']['output']>;
432
456
  readonly credit?: Maybe<Scalars['String']['output']>;
433
457
  readonly format: Scalars['ImageFormat']['output'];
@@ -456,6 +480,7 @@ export type LayoutImage = Reference & {
456
480
  readonly type: Scalars['String']['output'];
457
481
  };
458
482
  export type LiveBlogPackage = Content & {
483
+ readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
459
484
  readonly altStandfirst?: Maybe<AltStandfirst>;
460
485
  readonly altTitle?: Maybe<AltTitle>;
461
486
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
@@ -479,8 +504,10 @@ export type LiveBlogPackage = Content & {
479
504
  };
480
505
  export type LiveBlogPackageUrlArgs = {
481
506
  relative?: InputMaybe<Scalars['Boolean']['input']>;
507
+ vanity?: InputMaybe<Scalars['Boolean']['input']>;
482
508
  };
483
509
  export type LiveBlogPost = Content & {
510
+ readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
484
511
  readonly altStandfirst?: Maybe<AltStandfirst>;
485
512
  readonly altTitle?: Maybe<AltTitle>;
486
513
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
@@ -502,6 +529,7 @@ export type LiveBlogPost = Content & {
502
529
  };
503
530
  export type LiveBlogPostUrlArgs = {
504
531
  relative?: InputMaybe<Scalars['Boolean']['input']>;
532
+ vanity?: InputMaybe<Scalars['Boolean']['input']>;
505
533
  };
506
534
  export type MainImage = Reference & {
507
535
  readonly picture?: Maybe<Picture>;
@@ -579,6 +607,7 @@ export type PodcastTopper = Topper & TopperWithBrand & TopperWithHeadshot & Topp
579
607
  readonly columnist?: Maybe<Concept>;
580
608
  readonly displayConcept?: Maybe<Concept>;
581
609
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
610
+ readonly genreConcept?: Maybe<Concept>;
582
611
  readonly headline: Scalars['String']['output'];
583
612
  readonly headshot?: Maybe<Scalars['String']['output']>;
584
613
  readonly intro?: Maybe<RichText>;
@@ -629,6 +658,7 @@ export type SplitTextTopper = Topper & TopperWithBrand & TopperWithImages & Topp
629
658
  readonly displayConcept?: Maybe<Concept>;
630
659
  readonly fallbackImage?: Maybe<Image>;
631
660
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
661
+ readonly genreConcept?: Maybe<Concept>;
632
662
  readonly headline: Scalars['String']['output'];
633
663
  readonly images: ReadonlyArray<Image>;
634
664
  readonly intro?: Maybe<RichText>;
@@ -638,8 +668,13 @@ export type SplitTextTopper = Topper & TopperWithBrand & TopperWithImages & Topp
638
668
  };
639
669
  export type StructuredContent = {
640
670
  readonly references: ReadonlyArray<Reference>;
671
+ readonly text?: Maybe<Scalars['String']['output']>;
641
672
  readonly tree: Scalars['JSON']['output'];
642
673
  };
674
+ export type TableOfContents = {
675
+ readonly labelType?: Maybe<Scalars['String']['output']>;
676
+ readonly sequence?: Maybe<Scalars['String']['output']>;
677
+ };
643
678
  export type Teaser = {
644
679
  readonly firstPublishedDate?: Maybe<Scalars['String']['output']>;
645
680
  readonly id?: Maybe<Scalars['String']['output']>;
@@ -670,6 +705,7 @@ export type Topper = {
670
705
  };
671
706
  export type TopperWithBrand = {
672
707
  readonly brandConcept?: Maybe<Concept>;
708
+ readonly genreConcept?: Maybe<Concept>;
673
709
  };
674
710
  export type TopperWithHeadshot = {
675
711
  readonly headshot?: Maybe<Scalars['String']['output']>;
@@ -694,6 +730,7 @@ export type Tweet = Reference & {
694
730
  readonly type: Scalars['String']['output'];
695
731
  };
696
732
  export type Video = Content & {
733
+ readonly accessLevel?: Maybe<Scalars['AccessLevel']['output']>;
697
734
  readonly altStandfirst?: Maybe<AltStandfirst>;
698
735
  readonly altTitle?: Maybe<AltTitle>;
699
736
  readonly annotations?: Maybe<ReadonlyArray<Maybe<Concept>>>;
@@ -715,6 +752,7 @@ export type Video = Content & {
715
752
  };
716
753
  export type VideoUrlArgs = {
717
754
  relative?: InputMaybe<Scalars['Boolean']['input']>;
755
+ vanity?: InputMaybe<Scalars['Boolean']['input']>;
718
756
  };
719
757
  export type VideoReference = Reference & {
720
758
  readonly id: Scalars['String']['output'];
@@ -767,123 +805,143 @@ export type ResolversInterfaceTypes<RefType extends Record<string, unknown>> = R
767
805
  Topper: (Omit<BasicTopper, 'displayConcept' | 'intro'> & {
768
806
  displayConcept?: Maybe<RefType['Concept']>;
769
807
  intro?: Maybe<RefType['RichText']>;
770
- }) | (Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'intro'> & {
808
+ }) | (Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & {
771
809
  brandConcept?: Maybe<RefType['Concept']>;
772
810
  displayConcept?: Maybe<RefType['Concept']>;
811
+ genreConcept?: Maybe<RefType['Concept']>;
773
812
  intro?: Maybe<RefType['RichText']>;
774
- }) | (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
813
+ }) | (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
775
814
  brandConcept?: Maybe<RefType['Concept']>;
776
815
  displayConcept?: Maybe<RefType['Concept']>;
777
816
  fallbackImage?: Maybe<RefType['Image']>;
817
+ genreConcept?: Maybe<RefType['Concept']>;
778
818
  images: ReadonlyArray<RefType['Image']>;
779
819
  intro?: Maybe<RefType['RichText']>;
780
- }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
820
+ }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
781
821
  brandConcept?: Maybe<RefType['Concept']>;
782
822
  displayConcept?: Maybe<RefType['Concept']>;
783
823
  fallbackImage?: Maybe<RefType['Image']>;
824
+ genreConcept?: Maybe<RefType['Concept']>;
784
825
  images: ReadonlyArray<RefType['Image']>;
785
826
  intro?: Maybe<RefType['RichText']>;
786
- }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
827
+ }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
787
828
  brandConcept?: Maybe<RefType['Concept']>;
788
829
  displayConcept?: Maybe<RefType['Concept']>;
789
830
  fallbackImage?: Maybe<RefType['Image']>;
831
+ genreConcept?: Maybe<RefType['Concept']>;
790
832
  images: ReadonlyArray<RefType['Image']>;
791
833
  intro?: Maybe<RefType['RichText']>;
792
- }) | (TopperModel) | (TopperModel) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
834
+ }) | (TopperModel) | (TopperModel) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
793
835
  brandConcept?: Maybe<RefType['Concept']>;
794
836
  displayConcept?: Maybe<RefType['Concept']>;
795
837
  fallbackImage?: Maybe<RefType['Image']>;
838
+ genreConcept?: Maybe<RefType['Concept']>;
796
839
  images: ReadonlyArray<RefType['Image']>;
797
840
  intro?: Maybe<RefType['RichText']>;
798
841
  });
799
- TopperWithBrand: (Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'intro'> & {
842
+ TopperWithBrand: (Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & {
800
843
  brandConcept?: Maybe<RefType['Concept']>;
801
844
  displayConcept?: Maybe<RefType['Concept']>;
845
+ genreConcept?: Maybe<RefType['Concept']>;
802
846
  intro?: Maybe<RefType['RichText']>;
803
- }) | (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
847
+ }) | (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
804
848
  brandConcept?: Maybe<RefType['Concept']>;
805
849
  displayConcept?: Maybe<RefType['Concept']>;
806
850
  fallbackImage?: Maybe<RefType['Image']>;
851
+ genreConcept?: Maybe<RefType['Concept']>;
807
852
  images: ReadonlyArray<RefType['Image']>;
808
853
  intro?: Maybe<RefType['RichText']>;
809
- }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
854
+ }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
810
855
  brandConcept?: Maybe<RefType['Concept']>;
811
856
  displayConcept?: Maybe<RefType['Concept']>;
812
857
  fallbackImage?: Maybe<RefType['Image']>;
858
+ genreConcept?: Maybe<RefType['Concept']>;
813
859
  images: ReadonlyArray<RefType['Image']>;
814
860
  intro?: Maybe<RefType['RichText']>;
815
- }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
861
+ }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
816
862
  brandConcept?: Maybe<RefType['Concept']>;
817
863
  displayConcept?: Maybe<RefType['Concept']>;
818
864
  fallbackImage?: Maybe<RefType['Image']>;
865
+ genreConcept?: Maybe<RefType['Concept']>;
819
866
  images: ReadonlyArray<RefType['Image']>;
820
867
  intro?: Maybe<RefType['RichText']>;
821
- }) | (TopperModel) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
868
+ }) | (TopperModel) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
822
869
  brandConcept?: Maybe<RefType['Concept']>;
823
870
  displayConcept?: Maybe<RefType['Concept']>;
824
871
  fallbackImage?: Maybe<RefType['Image']>;
872
+ genreConcept?: Maybe<RefType['Concept']>;
825
873
  images: ReadonlyArray<RefType['Image']>;
826
874
  intro?: Maybe<RefType['RichText']>;
827
875
  });
828
876
  TopperWithHeadshot: (TopperModel) | (TopperModel);
829
- TopperWithImages: (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
877
+ TopperWithImages: (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
830
878
  brandConcept?: Maybe<RefType['Concept']>;
831
879
  displayConcept?: Maybe<RefType['Concept']>;
832
880
  fallbackImage?: Maybe<RefType['Image']>;
881
+ genreConcept?: Maybe<RefType['Concept']>;
833
882
  images: ReadonlyArray<RefType['Image']>;
834
883
  intro?: Maybe<RefType['RichText']>;
835
- }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
884
+ }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
836
885
  brandConcept?: Maybe<RefType['Concept']>;
837
886
  displayConcept?: Maybe<RefType['Concept']>;
838
887
  fallbackImage?: Maybe<RefType['Image']>;
888
+ genreConcept?: Maybe<RefType['Concept']>;
839
889
  images: ReadonlyArray<RefType['Image']>;
840
890
  intro?: Maybe<RefType['RichText']>;
841
- }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
891
+ }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
842
892
  brandConcept?: Maybe<RefType['Concept']>;
843
893
  displayConcept?: Maybe<RefType['Concept']>;
844
894
  fallbackImage?: Maybe<RefType['Image']>;
895
+ genreConcept?: Maybe<RefType['Concept']>;
845
896
  images: ReadonlyArray<RefType['Image']>;
846
897
  intro?: Maybe<RefType['RichText']>;
847
- }) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
898
+ }) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
848
899
  brandConcept?: Maybe<RefType['Concept']>;
849
900
  displayConcept?: Maybe<RefType['Concept']>;
850
901
  fallbackImage?: Maybe<RefType['Image']>;
902
+ genreConcept?: Maybe<RefType['Concept']>;
851
903
  images: ReadonlyArray<RefType['Image']>;
852
904
  intro?: Maybe<RefType['RichText']>;
853
905
  });
854
- TopperWithPackage: (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
906
+ TopperWithPackage: (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
855
907
  brandConcept?: Maybe<RefType['Concept']>;
856
908
  displayConcept?: Maybe<RefType['Concept']>;
857
909
  fallbackImage?: Maybe<RefType['Image']>;
910
+ genreConcept?: Maybe<RefType['Concept']>;
858
911
  images: ReadonlyArray<RefType['Image']>;
859
912
  intro?: Maybe<RefType['RichText']>;
860
913
  });
861
- TopperWithTheme: (Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'intro'> & {
914
+ TopperWithTheme: (Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & {
862
915
  brandConcept?: Maybe<RefType['Concept']>;
863
916
  displayConcept?: Maybe<RefType['Concept']>;
917
+ genreConcept?: Maybe<RefType['Concept']>;
864
918
  intro?: Maybe<RefType['RichText']>;
865
- }) | (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
919
+ }) | (Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
866
920
  brandConcept?: Maybe<RefType['Concept']>;
867
921
  displayConcept?: Maybe<RefType['Concept']>;
868
922
  fallbackImage?: Maybe<RefType['Image']>;
923
+ genreConcept?: Maybe<RefType['Concept']>;
869
924
  images: ReadonlyArray<RefType['Image']>;
870
925
  intro?: Maybe<RefType['RichText']>;
871
- }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
926
+ }) | (Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
872
927
  brandConcept?: Maybe<RefType['Concept']>;
873
928
  displayConcept?: Maybe<RefType['Concept']>;
874
929
  fallbackImage?: Maybe<RefType['Image']>;
930
+ genreConcept?: Maybe<RefType['Concept']>;
875
931
  images: ReadonlyArray<RefType['Image']>;
876
932
  intro?: Maybe<RefType['RichText']>;
877
- }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
933
+ }) | (Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
878
934
  brandConcept?: Maybe<RefType['Concept']>;
879
935
  displayConcept?: Maybe<RefType['Concept']>;
880
936
  fallbackImage?: Maybe<RefType['Image']>;
937
+ genreConcept?: Maybe<RefType['Concept']>;
881
938
  images: ReadonlyArray<RefType['Image']>;
882
939
  intro?: Maybe<RefType['RichText']>;
883
- }) | (TopperModel) | (TopperModel) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
940
+ }) | (TopperModel) | (TopperModel) | (Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
884
941
  brandConcept?: Maybe<RefType['Concept']>;
885
942
  displayConcept?: Maybe<RefType['Concept']>;
886
943
  fallbackImage?: Maybe<RefType['Image']>;
944
+ genreConcept?: Maybe<RefType['Concept']>;
887
945
  images: ReadonlyArray<RefType['Image']>;
888
946
  intro?: Maybe<RefType['RichText']>;
889
947
  });
@@ -900,26 +958,29 @@ export type ResolversTypes = ResolversObject<{
900
958
  intro?: Maybe<ResolversTypes['RichText']>;
901
959
  }>;
902
960
  Boolean: ResolverTypeWrapper<Scalars['Boolean']['output']>;
903
- BrandedTopper: ResolverTypeWrapper<Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'intro'> & {
961
+ BrandedTopper: ResolverTypeWrapper<Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & {
904
962
  brandConcept?: Maybe<ResolversTypes['Concept']>;
905
963
  displayConcept?: Maybe<ResolversTypes['Concept']>;
964
+ genreConcept?: Maybe<ResolversTypes['Concept']>;
906
965
  intro?: Maybe<ResolversTypes['RichText']>;
907
966
  }>;
908
967
  Concept: ResolverTypeWrapper<ConceptModel>;
909
968
  Content: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['Content']>;
910
969
  ContentPackage: ResolverTypeWrapper<CapiResponse>;
911
970
  ContentType: ResolverTypeWrapper<Scalars['ContentType']['output']>;
912
- DeepLandscapeTopper: ResolverTypeWrapper<Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
971
+ DeepLandscapeTopper: ResolverTypeWrapper<Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
913
972
  brandConcept?: Maybe<ResolversTypes['Concept']>;
914
973
  displayConcept?: Maybe<ResolversTypes['Concept']>;
915
974
  fallbackImage?: Maybe<ResolversTypes['Image']>;
975
+ genreConcept?: Maybe<ResolversTypes['Concept']>;
916
976
  images: ReadonlyArray<ResolversTypes['Image']>;
917
977
  intro?: Maybe<ResolversTypes['RichText']>;
918
978
  }>;
919
- DeepPortraitTopper: ResolverTypeWrapper<Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
979
+ DeepPortraitTopper: ResolverTypeWrapper<Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
920
980
  brandConcept?: Maybe<ResolversTypes['Concept']>;
921
981
  displayConcept?: Maybe<ResolversTypes['Concept']>;
922
982
  fallbackImage?: Maybe<ResolversTypes['Image']>;
983
+ genreConcept?: Maybe<ResolversTypes['Concept']>;
923
984
  images: ReadonlyArray<ResolversTypes['Image']>;
924
985
  intro?: Maybe<ResolversTypes['RichText']>;
925
986
  }>;
@@ -927,10 +988,11 @@ export type ResolversTypes = ResolversObject<{
927
988
  Flourish: ResolverTypeWrapper<ReferenceWithCAPIData<ContentTree.Flourish>>;
928
989
  FlourishFallback: ResolverTypeWrapper<FlourishFallback>;
929
990
  FollowButtonVariant: ResolverTypeWrapper<Scalars['FollowButtonVariant']['output']>;
930
- FullBleedTopper: ResolverTypeWrapper<Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
991
+ FullBleedTopper: ResolverTypeWrapper<Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
931
992
  brandConcept?: Maybe<ResolversTypes['Concept']>;
932
993
  displayConcept?: Maybe<ResolversTypes['Concept']>;
933
994
  fallbackImage?: Maybe<ResolversTypes['Image']>;
995
+ genreConcept?: Maybe<ResolversTypes['Concept']>;
934
996
  images: ReadonlyArray<ResolversTypes['Image']>;
935
997
  intro?: Maybe<ResolversTypes['RichText']>;
936
998
  }>;
@@ -981,10 +1043,11 @@ export type ResolversTypes = ResolversObject<{
981
1043
  RichText: ResolverTypeWrapper<RichTextModel>;
982
1044
  RichTextSource: ResolverTypeWrapper<Scalars['RichTextSource']['output']>;
983
1045
  ScrollyImage: ResolverTypeWrapper<ReferenceWithCAPIData<ContentTree.ScrollyImage>>;
984
- SplitTextTopper: ResolverTypeWrapper<Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
1046
+ SplitTextTopper: ResolverTypeWrapper<Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
985
1047
  brandConcept?: Maybe<ResolversTypes['Concept']>;
986
1048
  displayConcept?: Maybe<ResolversTypes['Concept']>;
987
1049
  fallbackImage?: Maybe<ResolversTypes['Image']>;
1050
+ genreConcept?: Maybe<ResolversTypes['Concept']>;
988
1051
  images: ReadonlyArray<ResolversTypes['Image']>;
989
1052
  intro?: Maybe<ResolversTypes['RichText']>;
990
1053
  }>;
@@ -992,6 +1055,7 @@ export type ResolversTypes = ResolversObject<{
992
1055
  StructuredContent: ResolverTypeWrapper<Omit<StructuredContent, 'references'> & {
993
1056
  references: ReadonlyArray<ResolversTypes['Reference']>;
994
1057
  }>;
1058
+ TableOfContents: ResolverTypeWrapper<TableOfContents>;
995
1059
  Teaser: ResolverTypeWrapper<CapiResponse>;
996
1060
  Topper: ResolverTypeWrapper<TopperModel>;
997
1061
  TopperBackgroundColour: ResolverTypeWrapper<Scalars['TopperBackgroundColour']['output']>;
@@ -1016,26 +1080,29 @@ export type ResolversParentTypes = ResolversObject<{
1016
1080
  intro?: Maybe<ResolversParentTypes['RichText']>;
1017
1081
  };
1018
1082
  Boolean: Scalars['Boolean']['output'];
1019
- BrandedTopper: Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'intro'> & {
1083
+ BrandedTopper: Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & {
1020
1084
  brandConcept?: Maybe<ResolversParentTypes['Concept']>;
1021
1085
  displayConcept?: Maybe<ResolversParentTypes['Concept']>;
1086
+ genreConcept?: Maybe<ResolversParentTypes['Concept']>;
1022
1087
  intro?: Maybe<ResolversParentTypes['RichText']>;
1023
1088
  };
1024
1089
  Concept: ConceptModel;
1025
1090
  Content: ResolversInterfaceTypes<ResolversParentTypes>['Content'];
1026
1091
  ContentPackage: CapiResponse;
1027
1092
  ContentType: Scalars['ContentType']['output'];
1028
- DeepLandscapeTopper: Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
1093
+ DeepLandscapeTopper: Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
1029
1094
  brandConcept?: Maybe<ResolversParentTypes['Concept']>;
1030
1095
  displayConcept?: Maybe<ResolversParentTypes['Concept']>;
1031
1096
  fallbackImage?: Maybe<ResolversParentTypes['Image']>;
1097
+ genreConcept?: Maybe<ResolversParentTypes['Concept']>;
1032
1098
  images: ReadonlyArray<ResolversParentTypes['Image']>;
1033
1099
  intro?: Maybe<ResolversParentTypes['RichText']>;
1034
1100
  };
1035
- DeepPortraitTopper: Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
1101
+ DeepPortraitTopper: Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
1036
1102
  brandConcept?: Maybe<ResolversParentTypes['Concept']>;
1037
1103
  displayConcept?: Maybe<ResolversParentTypes['Concept']>;
1038
1104
  fallbackImage?: Maybe<ResolversParentTypes['Image']>;
1105
+ genreConcept?: Maybe<ResolversParentTypes['Concept']>;
1039
1106
  images: ReadonlyArray<ResolversParentTypes['Image']>;
1040
1107
  intro?: Maybe<ResolversParentTypes['RichText']>;
1041
1108
  };
@@ -1043,10 +1110,11 @@ export type ResolversParentTypes = ResolversObject<{
1043
1110
  Flourish: ReferenceWithCAPIData<ContentTree.Flourish>;
1044
1111
  FlourishFallback: FlourishFallback;
1045
1112
  FollowButtonVariant: Scalars['FollowButtonVariant']['output'];
1046
- FullBleedTopper: Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
1113
+ FullBleedTopper: Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
1047
1114
  brandConcept?: Maybe<ResolversParentTypes['Concept']>;
1048
1115
  displayConcept?: Maybe<ResolversParentTypes['Concept']>;
1049
1116
  fallbackImage?: Maybe<ResolversParentTypes['Image']>;
1117
+ genreConcept?: Maybe<ResolversParentTypes['Concept']>;
1050
1118
  images: ReadonlyArray<ResolversParentTypes['Image']>;
1051
1119
  intro?: Maybe<ResolversParentTypes['RichText']>;
1052
1120
  };
@@ -1097,10 +1165,11 @@ export type ResolversParentTypes = ResolversObject<{
1097
1165
  RichText: RichTextModel;
1098
1166
  RichTextSource: Scalars['RichTextSource']['output'];
1099
1167
  ScrollyImage: ReferenceWithCAPIData<ContentTree.ScrollyImage>;
1100
- SplitTextTopper: Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'images' | 'intro'> & {
1168
+ SplitTextTopper: Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & {
1101
1169
  brandConcept?: Maybe<ResolversParentTypes['Concept']>;
1102
1170
  displayConcept?: Maybe<ResolversParentTypes['Concept']>;
1103
1171
  fallbackImage?: Maybe<ResolversParentTypes['Image']>;
1172
+ genreConcept?: Maybe<ResolversParentTypes['Concept']>;
1104
1173
  images: ReadonlyArray<ResolversParentTypes['Image']>;
1105
1174
  intro?: Maybe<ResolversParentTypes['RichText']>;
1106
1175
  };
@@ -1108,6 +1177,7 @@ export type ResolversParentTypes = ResolversObject<{
1108
1177
  StructuredContent: Omit<StructuredContent, 'references'> & {
1109
1178
  references: ReadonlyArray<ResolversParentTypes['Reference']>;
1110
1179
  };
1180
+ TableOfContents: TableOfContents;
1111
1181
  Teaser: CapiResponse;
1112
1182
  Topper: TopperModel;
1113
1183
  TopperBackgroundColour: Scalars['TopperBackgroundColour']['output'];
@@ -1132,6 +1202,7 @@ export type AltTitleResolvers<ContextType = QueryContext, ParentType extends Res
1132
1202
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1133
1203
  }>;
1134
1204
  export type ArticleResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Article'] = ResolversParentTypes['Article']> = ResolversObject<{
1205
+ accessLevel?: Resolver<Maybe<ResolversTypes['AccessLevel']>, ParentType, ContextType>;
1135
1206
  altStandfirst?: Resolver<Maybe<ResolversTypes['AltStandfirst']>, ParentType, ContextType>;
1136
1207
  altTitle?: Resolver<Maybe<ResolversTypes['AltTitle']>, ParentType, ContextType>;
1137
1208
  annotations?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Concept']>>>, ParentType, ContextType>;
@@ -1139,6 +1210,7 @@ export type ArticleResolvers<ContextType = QueryContext, ParentType extends Reso
1139
1210
  bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1140
1211
  byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
1141
1212
  commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
1213
+ containedIn?: Resolver<Maybe<ResolversTypes['Content']>, ParentType, ContextType>;
1142
1214
  design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
1143
1215
  firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1144
1216
  id?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -1153,6 +1225,7 @@ export type ArticleResolvers<ContextType = QueryContext, ParentType extends Reso
1153
1225
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1154
1226
  }>;
1155
1227
  export type AudioResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Audio'] = ResolversParentTypes['Audio']> = ResolversObject<{
1228
+ accessLevel?: Resolver<Maybe<ResolversTypes['AccessLevel']>, ParentType, ContextType>;
1156
1229
  altStandfirst?: Resolver<Maybe<ResolversTypes['AltStandfirst']>, ParentType, ContextType>;
1157
1230
  altTitle?: Resolver<Maybe<ResolversTypes['AltTitle']>, ParentType, ContextType>;
1158
1231
  annotations?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Concept']>>>, ParentType, ContextType>;
@@ -1190,6 +1263,7 @@ export type BrandedTopperResolvers<ContextType = QueryContext, ParentType extend
1190
1263
  brandConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1191
1264
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1192
1265
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1266
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1193
1267
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1194
1268
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
1195
1269
  isLargeHeadline?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -1210,6 +1284,7 @@ export type ConceptResolvers<ContextType = QueryContext, ParentType extends Reso
1210
1284
  }>;
1211
1285
  export type ContentResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Content'] = ResolversParentTypes['Content']> = ResolversObject<{
1212
1286
  __resolveType?: TypeResolveFn<'Article' | 'Audio' | 'ContentPackage' | 'LiveBlogPackage' | 'LiveBlogPost' | 'Video', ParentType, ContextType>;
1287
+ accessLevel?: Resolver<Maybe<ResolversTypes['AccessLevel']>, ParentType, ContextType>;
1213
1288
  altStandfirst?: Resolver<Maybe<ResolversTypes['AltStandfirst']>, ParentType, ContextType>;
1214
1289
  altTitle?: Resolver<Maybe<ResolversTypes['AltTitle']>, ParentType, ContextType>;
1215
1290
  annotations?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Concept']>>>, ParentType, ContextType>;
@@ -1230,6 +1305,7 @@ export type ContentResolvers<ContextType = QueryContext, ParentType extends Reso
1230
1305
  url?: Resolver<ResolversTypes['String'], ParentType, ContextType, Partial<ContentUrlArgs>>;
1231
1306
  }>;
1232
1307
  export type ContentPackageResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ContentPackage'] = ResolversParentTypes['ContentPackage']> = ResolversObject<{
1308
+ accessLevel?: Resolver<Maybe<ResolversTypes['AccessLevel']>, ParentType, ContextType>;
1233
1309
  altStandfirst?: Resolver<Maybe<ResolversTypes['AltStandfirst']>, ParentType, ContextType>;
1234
1310
  altTitle?: Resolver<Maybe<ResolversTypes['AltTitle']>, ParentType, ContextType>;
1235
1311
  annotations?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Concept']>>>, ParentType, ContextType>;
@@ -1244,6 +1320,7 @@ export type ContentPackageResolvers<ContextType = QueryContext, ParentType exten
1244
1320
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1245
1321
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1246
1322
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1323
+ tableOfContents?: Resolver<Maybe<ResolversTypes['TableOfContents']>, ParentType, ContextType>;
1247
1324
  teaser?: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
1248
1325
  title?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1249
1326
  topper?: Resolver<Maybe<ResolversTypes['Topper']>, ParentType, ContextType>;
@@ -1261,6 +1338,7 @@ export type DeepLandscapeTopperResolvers<ContextType = QueryContext, ParentType
1261
1338
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1262
1339
  fallbackImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1263
1340
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1341
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1264
1342
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1265
1343
  images?: Resolver<ReadonlyArray<ResolversTypes['Image']>, ParentType, ContextType>;
1266
1344
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
@@ -1276,6 +1354,7 @@ export type DeepPortraitTopperResolvers<ContextType = QueryContext, ParentType e
1276
1354
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1277
1355
  fallbackImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1278
1356
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1357
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1279
1358
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1280
1359
  images?: Resolver<ReadonlyArray<ResolversTypes['Image']>, ParentType, ContextType>;
1281
1360
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
@@ -1310,6 +1389,7 @@ export type FullBleedTopperResolvers<ContextType = QueryContext, ParentType exte
1310
1389
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1311
1390
  fallbackImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1312
1391
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1392
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1313
1393
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1314
1394
  images?: Resolver<ReadonlyArray<ResolversTypes['Image']>, ParentType, ContextType>;
1315
1395
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
@@ -1320,6 +1400,7 @@ export type FullBleedTopperResolvers<ContextType = QueryContext, ParentType exte
1320
1400
  }>;
1321
1401
  export type ImageResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Image'] = ResolversParentTypes['Image']> = ResolversObject<{
1322
1402
  __resolveType?: TypeResolveFn<'ImageDesktop' | 'ImageLandscape' | 'ImageMobile' | 'ImagePortrait' | 'ImageSquare' | 'ImageSquareFTEdit' | 'ImageStandard' | 'ImageStandardInline' | 'ImageWide', ParentType, ContextType>;
1403
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1323
1404
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1324
1405
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1325
1406
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1331,6 +1412,7 @@ export type ImageResolvers<ContextType = QueryContext, ParentType extends Resolv
1331
1412
  width?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
1332
1413
  }>;
1333
1414
  export type ImageDesktopResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageDesktop'] = ResolversParentTypes['ImageDesktop']> = ResolversObject<{
1415
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1334
1416
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1335
1417
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1336
1418
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1346,6 +1428,7 @@ export interface ImageFormatScalarConfig extends GraphQLScalarTypeConfig<Resolve
1346
1428
  name: 'ImageFormat';
1347
1429
  }
1348
1430
  export type ImageLandscapeResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageLandscape'] = ResolversParentTypes['ImageLandscape']> = ResolversObject<{
1431
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1349
1432
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1350
1433
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1351
1434
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1358,6 +1441,7 @@ export type ImageLandscapeResolvers<ContextType = QueryContext, ParentType exten
1358
1441
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1359
1442
  }>;
1360
1443
  export type ImageMobileResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageMobile'] = ResolversParentTypes['ImageMobile']> = ResolversObject<{
1444
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1361
1445
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1362
1446
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1363
1447
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1370,6 +1454,7 @@ export type ImageMobileResolvers<ContextType = QueryContext, ParentType extends
1370
1454
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1371
1455
  }>;
1372
1456
  export type ImagePortraitResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImagePortrait'] = ResolversParentTypes['ImagePortrait']> = ResolversObject<{
1457
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1373
1458
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1374
1459
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1375
1460
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1393,6 +1478,7 @@ export type ImageSourceResolvers<ContextType = QueryContext, ParentType extends
1393
1478
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1394
1479
  }>;
1395
1480
  export type ImageSquareResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageSquare'] = ResolversParentTypes['ImageSquare']> = ResolversObject<{
1481
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1396
1482
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1397
1483
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1398
1484
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1405,6 +1491,7 @@ export type ImageSquareResolvers<ContextType = QueryContext, ParentType extends
1405
1491
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1406
1492
  }>;
1407
1493
  export type ImageSquareFtEditResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageSquareFTEdit'] = ResolversParentTypes['ImageSquareFTEdit']> = ResolversObject<{
1494
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1408
1495
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1409
1496
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1410
1497
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1417,6 +1504,7 @@ export type ImageSquareFtEditResolvers<ContextType = QueryContext, ParentType ex
1417
1504
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1418
1505
  }>;
1419
1506
  export type ImageStandardResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageStandard'] = ResolversParentTypes['ImageStandard']> = ResolversObject<{
1507
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1420
1508
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1421
1509
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1422
1510
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1429,6 +1517,7 @@ export type ImageStandardResolvers<ContextType = QueryContext, ParentType extend
1429
1517
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1430
1518
  }>;
1431
1519
  export type ImageStandardInlineResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageStandardInline'] = ResolversParentTypes['ImageStandardInline']> = ResolversObject<{
1520
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1432
1521
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1433
1522
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1434
1523
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1444,6 +1533,7 @@ export interface ImageTypeScalarConfig extends GraphQLScalarTypeConfig<Resolvers
1444
1533
  name: 'ImageType';
1445
1534
  }
1446
1535
  export type ImageWideResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ImageWide'] = ResolversParentTypes['ImageWide']> = ResolversObject<{
1536
+ altText?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1447
1537
  caption?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1448
1538
  credit?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1449
1539
  format?: Resolver<ResolversTypes['ImageFormat'], ParentType, ContextType>;
@@ -1474,6 +1564,7 @@ export type LayoutImageResolvers<ContextType = QueryContext, ParentType extends
1474
1564
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1475
1565
  }>;
1476
1566
  export type LiveBlogPackageResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['LiveBlogPackage'] = ResolversParentTypes['LiveBlogPackage']> = ResolversObject<{
1567
+ accessLevel?: Resolver<Maybe<ResolversTypes['AccessLevel']>, ParentType, ContextType>;
1477
1568
  altStandfirst?: Resolver<Maybe<ResolversTypes['AltStandfirst']>, ParentType, ContextType>;
1478
1569
  altTitle?: Resolver<Maybe<ResolversTypes['AltTitle']>, ParentType, ContextType>;
1479
1570
  annotations?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Concept']>>>, ParentType, ContextType>;
@@ -1497,6 +1588,7 @@ export type LiveBlogPackageResolvers<ContextType = QueryContext, ParentType exte
1497
1588
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1498
1589
  }>;
1499
1590
  export type LiveBlogPostResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['LiveBlogPost'] = ResolversParentTypes['LiveBlogPost']> = ResolversObject<{
1591
+ accessLevel?: Resolver<Maybe<ResolversTypes['AccessLevel']>, ParentType, ContextType>;
1500
1592
  altStandfirst?: Resolver<Maybe<ResolversTypes['AltStandfirst']>, ParentType, ContextType>;
1501
1593
  altTitle?: Resolver<Maybe<ResolversTypes['AltTitle']>, ParentType, ContextType>;
1502
1594
  annotations?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Concept']>>>, ParentType, ContextType>;
@@ -1596,6 +1688,7 @@ export type PodcastTopperResolvers<ContextType = QueryContext, ParentType extend
1596
1688
  columnist?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1597
1689
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1598
1690
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1691
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1599
1692
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1600
1693
  headshot?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, Partial<PodcastTopperHeadshotArgs>>;
1601
1694
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
@@ -1645,6 +1738,7 @@ export type SplitTextTopperResolvers<ContextType = QueryContext, ParentType exte
1645
1738
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1646
1739
  fallbackImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1647
1740
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1741
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1648
1742
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1649
1743
  images?: Resolver<ReadonlyArray<ResolversTypes['Image']>, ParentType, ContextType>;
1650
1744
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
@@ -1655,9 +1749,15 @@ export type SplitTextTopperResolvers<ContextType = QueryContext, ParentType exte
1655
1749
  }>;
1656
1750
  export type StructuredContentResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['StructuredContent'] = ResolversParentTypes['StructuredContent']> = ResolversObject<{
1657
1751
  references?: Resolver<ReadonlyArray<ResolversTypes['Reference']>, ParentType, ContextType>;
1752
+ text?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1658
1753
  tree?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
1659
1754
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1660
1755
  }>;
1756
+ export type TableOfContentsResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['TableOfContents'] = ResolversParentTypes['TableOfContents']> = ResolversObject<{
1757
+ labelType?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1758
+ sequence?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1759
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1760
+ }>;
1661
1761
  export type TeaserResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Teaser'] = ResolversParentTypes['Teaser']> = ResolversObject<{
1662
1762
  firstPublishedDate?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1663
1763
  id?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
@@ -1691,6 +1791,7 @@ export interface TopperBackgroundColourScalarConfig extends GraphQLScalarTypeCon
1691
1791
  export type TopperWithBrandResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['TopperWithBrand'] = ResolversParentTypes['TopperWithBrand']> = ResolversObject<{
1692
1792
  __resolveType?: TypeResolveFn<'BrandedTopper' | 'DeepLandscapeTopper' | 'DeepPortraitTopper' | 'FullBleedTopper' | 'PodcastTopper' | 'SplitTextTopper', ParentType, ContextType>;
1693
1793
  brandConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1794
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1694
1795
  }>;
1695
1796
  export type TopperWithHeadshotResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['TopperWithHeadshot'] = ResolversParentTypes['TopperWithHeadshot']> = ResolversObject<{
1696
1797
  __resolveType?: TypeResolveFn<'OpinionTopper' | 'PodcastTopper', ParentType, ContextType>;
@@ -1716,6 +1817,7 @@ export type TweetResolvers<ContextType = QueryContext, ParentType extends Resolv
1716
1817
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
1717
1818
  }>;
1718
1819
  export type VideoResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Video'] = ResolversParentTypes['Video']> = ResolversObject<{
1820
+ accessLevel?: Resolver<Maybe<ResolversTypes['AccessLevel']>, ParentType, ContextType>;
1719
1821
  altStandfirst?: Resolver<Maybe<ResolversTypes['AltStandfirst']>, ParentType, ContextType>;
1720
1822
  altTitle?: Resolver<Maybe<ResolversTypes['AltTitle']>, ParentType, ContextType>;
1721
1823
  annotations?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Concept']>>>, ParentType, ContextType>;
@@ -1799,6 +1901,7 @@ export type Resolvers<ContextType = QueryContext> = ResolversObject<{
1799
1901
  ScrollyImage?: ScrollyImageResolvers<ContextType>;
1800
1902
  SplitTextTopper?: SplitTextTopperResolvers<ContextType>;
1801
1903
  StructuredContent?: StructuredContentResolvers<ContextType>;
1904
+ TableOfContents?: TableOfContentsResolvers<ContextType>;
1802
1905
  Teaser?: TeaserResolvers<ContextType>;
1803
1906
  Topper?: TopperResolvers<ContextType>;
1804
1907
  TopperBackgroundColour?: GraphQLScalarType;