@financial-times/cp-content-pipeline-schema 2.5.3 → 2.5.4

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 (44) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +187 -41
  3. package/lib/datasources/base.d.ts +1 -0
  4. package/lib/datasources/capi.js +1 -0
  5. package/lib/datasources/capi.js.map +1 -1
  6. package/lib/datasources/instrumented.d.ts +1 -0
  7. package/lib/datasources/instrumented.js +1 -9
  8. package/lib/datasources/instrumented.js.map +1 -1
  9. package/lib/datasources/origami-image.js +1 -0
  10. package/lib/datasources/origami-image.js.map +1 -1
  11. package/lib/datasources/twitter.js +1 -0
  12. package/lib/datasources/twitter.js.map +1 -1
  13. package/lib/datasources/url-management.d.ts +1 -0
  14. package/lib/datasources/url-management.js +2 -0
  15. package/lib/datasources/url-management.js.map +1 -1
  16. package/lib/generated/index.d.ts +546 -2
  17. package/package.json +1 -1
  18. package/src/datasources/base.ts +1 -0
  19. package/src/datasources/capi.ts +1 -0
  20. package/src/datasources/instrumented.ts +1 -11
  21. package/src/datasources/origami-image.ts +3 -0
  22. package/src/datasources/twitter.ts +2 -0
  23. package/src/datasources/url-management.ts +2 -0
  24. package/src/generated/index.ts +546 -2
  25. package/tsconfig.tsbuildinfo +1 -1
  26. package/typedefs/clip.graphql +28 -0
  27. package/typedefs/concept.graphql +21 -2
  28. package/typedefs/content.graphql +441 -36
  29. package/typedefs/core.graphql +6 -0
  30. package/typedefs/image.graphql +210 -15
  31. package/typedefs/picture.graphql +54 -1
  32. package/typedefs/references/clipSet.graphql +34 -1
  33. package/typedefs/references/flourish.graphql +8 -0
  34. package/typedefs/references/imageSet.graphql +6 -0
  35. package/typedefs/references/layoutImage.graphql +3 -0
  36. package/typedefs/references/rawImage.graphql +3 -0
  37. package/typedefs/references/recommended.graphql +3 -0
  38. package/typedefs/references/reference.graphql +1 -0
  39. package/typedefs/references/scrollyImage.graphql +3 -0
  40. package/typedefs/references/tweet.graphql +3 -0
  41. package/typedefs/references/video.graphql +5 -0
  42. package/typedefs/richText.graphql +7 -4
  43. package/typedefs/teaser.graphql +42 -1
  44. package/typedefs/topper.graphql +219 -7
@@ -1,248 +1,653 @@
1
- interface Content {
2
- title: String!
3
- id: ID!
4
- type: ContentType!
5
- standfirst: String
6
- topper: Topper
7
- body: RichText
8
- bodyXML: String
9
- url(vanity: Boolean, relative: Boolean): String!
10
- publishedDate: String!
11
- firstPublishedDate: String!
12
- mainImage: Image
13
- altTitle: AltTitle
14
- altStandfirst: AltStandfirst
15
- byline(vanity: Boolean): StructuredContent
16
- teaser: Teaser
17
- annotations: [Concept]
18
- editorialDesk: String
19
- accessLevel: AccessLevel
20
- instantAlertConcept: Concept
21
- canBeSyndicated: CanBeSyndicated
22
- originatingParty: String
23
- commentsEnabled: Boolean
24
- design: Design
25
- }
26
-
27
1
  type Design {
2
+ "A scalar representing the theme of the design, eg. 'extra-wide'."
28
3
  theme: PackageDesign
4
+
5
+ "The layout, eg. 'default'."
29
6
  layout: String
30
7
  }
31
8
 
32
9
  type AltTitle {
10
+ "A promotional title of the article."
33
11
  promotionalTitle: String
34
12
  }
35
13
 
36
14
  type AltStandfirst {
15
+ "An introductory paragraph of the article."
37
16
  promotionalStandfirst: String
38
17
  }
39
18
 
40
19
  type Media {
20
+ "The url of the media, eg. 'https://next-media-api.ft.com/renditions/16868569859480/0x0.mp3'."
41
21
  url: String
22
+
23
+ "The duration of the media in milliseconds."
42
24
  duration: Int
25
+
26
+ "The filesize of the media in bytes."
27
+
43
28
  filesize: Int
29
+
30
+ "The media type eg. video/mp4."
44
31
  mediaType: String
45
32
  }
46
33
 
47
34
  type TableOfContents {
35
+ "The formatting of the label, eg. 'part-number'."
48
36
  labelType: String
37
+
38
+ "The ordering, eg. 'exact-order'."
49
39
  sequence: String
50
40
  }
51
41
 
42
+ type Indicators {
43
+ "Whether the content is an opinion piece."
44
+ isOpinion: Boolean
45
+ }
46
+
47
+ interface Content {
48
+ "The unique identifier of the article - a uuid or a url."
49
+ id: ID!
50
+
51
+ "The title of the article."
52
+ title: String!
53
+
54
+ "The type of the article, eg. 'Article' or 'Video'."
55
+ type: ContentType!
56
+
57
+ "An introductory paragraph of the article."
58
+ standfirst: String
59
+
60
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
61
+ topper: Topper
62
+
63
+ "An abstract syntax tree of the article content."
64
+ body: RichText
65
+
66
+ "The raw string of the XML as returned from ContentAPI."
67
+ bodyXML: String
68
+
69
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
70
+ url(vanity: Boolean, relative: Boolean): String!
71
+
72
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
73
+ publishedDate: String!
74
+
75
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
76
+ firstPublishedDate: String!
77
+
78
+ "An image object containing the url and the caption, to be displayed usually before the article content."
79
+ mainImage: Image
80
+
81
+ "An alternative title of the article."
82
+ altTitle: AltTitle
83
+
84
+ "An alternative introductory paragraph of the article."
85
+ altStandfirst: AltStandfirst
86
+
87
+ "An abstract syntax tree of the authors of the article."
88
+ byline(vanity: Boolean): StructuredContent
89
+
90
+ "A promotional thumbnail / snapshot of the article."
91
+ teaser: Teaser
92
+
93
+ "An array of concepts related to the article, eg. organisations or topics."
94
+ annotations: [Concept]
95
+
96
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
97
+ editorialDesk: String
98
+
99
+ "A scalar representing the access level of the article, eg. 'free'."
100
+ accessLevel: AccessLevel
101
+
102
+ "The concept to use for instant alert CTAs."
103
+ instantAlertConcept: Concept
104
+
105
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
106
+ canBeSyndicated: CanBeSyndicated
107
+
108
+ "The party that originated the article, eg. 'FT'."
109
+ originatingParty: String
110
+
111
+ "Whether comments are enabled on the article."
112
+ commentsEnabled: Boolean
113
+
114
+ "A design object containing the theme and layout of the article."
115
+ design: Design
116
+ }
117
+
52
118
  type Article implements Content {
119
+ "The title of the article."
53
120
  title: String!
121
+
122
+ "The unique identifier of the article - a uuid or a url."
54
123
  id: ID!
124
+
125
+ "The type of the article, eg. 'Article' or 'Video'."
55
126
  type: ContentType!
127
+
128
+ "An introductory paragraph of the article."
56
129
  standfirst: String
130
+
131
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
57
132
  topper: Topper
133
+
134
+ "An abstract syntax tree of the article content."
58
135
  body: RichText
136
+
137
+ "The raw string of the XML as returned from ContentAPI."
59
138
  bodyXML: String
139
+
140
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
60
141
  url(vanity: Boolean, relative: Boolean): String!
142
+
143
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
61
144
  publishedDate: String!
145
+
146
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
62
147
  firstPublishedDate: String!
148
+
149
+ "An image object containing the url and the caption, to be displayed usually before the article content."
63
150
  mainImage: Image
151
+
152
+ "An alternative title of the article."
64
153
  altTitle: AltTitle
154
+
155
+ "An alternative introductory paragraph of the article."
65
156
  altStandfirst: AltStandfirst
157
+
158
+ "An abstract syntax tree of the authors of the article."
66
159
  byline(vanity: Boolean): StructuredContent
160
+
161
+ "A promotional thumbnail / snapshot of the article."
67
162
  teaser: Teaser
163
+
164
+ "An array of concepts related to the article, eg. organisations or topics."
165
+
68
166
  annotations: [Concept]
167
+
168
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
69
169
  editorialDesk: String
170
+
171
+ "A scalar representing the access level of the article, eg. 'free'."
70
172
  accessLevel: AccessLevel
71
- canBeSyndicated: CanBeSyndicated
173
+
174
+ "The concept to use for instant alert CTAs."
72
175
  instantAlertConcept: Concept
176
+
177
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
178
+ canBeSyndicated: CanBeSyndicated
179
+
180
+ "The party that originated the article, eg. 'FT'."
73
181
  originatingParty: String
182
+
183
+ "Whether comments are enabled on the article."
184
+
74
185
  commentsEnabled: Boolean
186
+
187
+ "A design object containing the theme and layout of the article."
75
188
  design: Design
189
+
190
+ "The parent article, indicating this article is a part of a series or package."
76
191
  containedIn: Content
77
192
  }
78
193
 
79
194
  type Placeholder implements Content {
195
+ "The title of the article."
80
196
  title: String!
197
+
198
+ "The unique identifier of the article - a uuid or a url."
81
199
  id: ID!
200
+
201
+ "The type of the article, eg. 'Article' or 'Video'."
82
202
  type: ContentType!
203
+
204
+ "An introductory paragraph of the article."
83
205
  standfirst: String
206
+
207
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
84
208
  topper: Topper
209
+
210
+ "An abstract syntax tree of the article content."
85
211
  body: RichText
212
+
213
+ "The raw string of the XML as returned from ContentAPI."
86
214
  bodyXML: String
215
+
216
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
87
217
  url(vanity: Boolean, relative: Boolean): String!
218
+
219
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
88
220
  publishedDate: String!
221
+
222
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
89
223
  firstPublishedDate: String!
224
+
225
+ "An image object containing the url and the caption, to be displayed usually before the article content."
90
226
  mainImage: Image
227
+
228
+ "An alternative title of the article."
91
229
  altTitle: AltTitle
230
+
231
+ "An alternative introductory paragraph of the article."
92
232
  altStandfirst: AltStandfirst
233
+
234
+ "An abstract syntax tree of the authors of the article."
93
235
  byline(vanity: Boolean): StructuredContent
236
+
237
+ "A promotional thumbnail / snapshot of the article."
94
238
  teaser: Teaser
239
+
240
+ "An array of concepts related to the article, eg. organisations or topics."
95
241
  annotations: [Concept]
242
+
243
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
96
244
  editorialDesk: String
245
+
246
+ "A scalar representing the access level of the article, eg. 'free'."
97
247
  accessLevel: AccessLevel
98
- canBeSyndicated: CanBeSyndicated
248
+
249
+ "The concept to use for instant alert CTAs."
99
250
  instantAlertConcept: Concept
251
+
252
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
253
+ canBeSyndicated: CanBeSyndicated
254
+
255
+ "The party that originated the article, eg. 'FT'."
100
256
  originatingParty: String
257
+
258
+ "Whether comments are enabled on the article."
101
259
  commentsEnabled: Boolean
260
+
261
+ "A design object containing the theme and layout of the article."
102
262
  design: Design
263
+
264
+ "The parent article, indicating this article is a part of a series or package."
103
265
  containedIn: Content
104
266
  }
105
267
 
106
268
  type LiveBlogPackage implements Content {
269
+ "The title of the article."
107
270
  title: String!
271
+
272
+ "The unique identifier of the article - a uuid or a url."
108
273
  id: ID!
274
+
275
+ "The type of the article, eg. 'Article' or 'Video'."
109
276
  type: ContentType!
277
+
278
+ "An introductory paragraph of the article."
110
279
  standfirst: String
280
+
281
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
111
282
  topper: Topper
283
+
284
+ "An abstract syntax tree of the article content."
112
285
  body: RichText
286
+
287
+ "The raw string of the XML as returned from ContentAPI."
113
288
  bodyXML: String
289
+
290
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
114
291
  url(vanity: Boolean, relative: Boolean): String!
292
+
293
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
115
294
  publishedDate: String!
295
+
296
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
116
297
  firstPublishedDate: String!
298
+
299
+ "An image object containing the url and the caption, to be displayed usually before the article content."
117
300
  mainImage: Image
301
+
302
+ "An alternative title of the article."
118
303
  altTitle: AltTitle
304
+
305
+ "An alternative introductory paragraph of the article."
119
306
  altStandfirst: AltStandfirst
307
+
308
+ "An abstract syntax tree of the authors of the article."
120
309
  byline(vanity: Boolean): StructuredContent
310
+
311
+ "A promotional thumbnail / snapshot of the article."
121
312
  teaser: Teaser
313
+
314
+ "An array of concepts related to the article, eg. organisations or topics."
122
315
  annotations: [Concept]
316
+
317
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
123
318
  editorialDesk: String
319
+
320
+ "A scalar representing the access level of the article, eg. 'free'."
124
321
  accessLevel: AccessLevel
125
- canBeSyndicated: CanBeSyndicated
322
+
323
+ "The concept to use for instant alert CTAs."
126
324
  instantAlertConcept: Concept
325
+
326
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
327
+ canBeSyndicated: CanBeSyndicated
328
+
329
+ "The party that originated the article, eg. 'FT'."
127
330
  originatingParty: String
331
+
332
+ "Whether comments are enabled on the article."
128
333
  commentsEnabled: Boolean
334
+
335
+ "A design object containing the theme and layout of the article."
129
336
  design: Design
337
+
338
+ "The child articles of this live blog package."
130
339
  liveBlogPosts(includePinned: Boolean @deprecated(reason: "avoiding breaking change, will remove argument on next major release")): [Content]
340
+
341
+ "The pinned article of this live blog package."
131
342
  pinnedPost: Content
343
+
344
+ "Whether the live blog package should be updated in real time."
132
345
  realtime: Boolean
133
346
  }
134
347
 
135
348
  type LiveBlogPost implements Content {
349
+ "The title of the article."
136
350
  title: String!
351
+
352
+ "The unique identifier of the article - a uuid or a url."
137
353
  id: ID!
354
+
355
+ "The type of the article, eg. 'Article' or 'Video'."
138
356
  type: ContentType!
357
+
358
+ "An introductory paragraph of the article."
139
359
  standfirst: String
360
+
361
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
140
362
  topper: Topper
363
+
364
+ "An abstract syntax tree of the article content."
141
365
  body: RichText
366
+
367
+ "The raw string of the XML as returned from ContentAPI."
142
368
  bodyXML: String
369
+
370
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
143
371
  url(vanity: Boolean, relative: Boolean): String!
372
+
373
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
144
374
  publishedDate: String!
375
+
376
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
145
377
  firstPublishedDate: String!
378
+
379
+ "An image object containing the url and the caption, to be displayed usually before the article content."
146
380
  mainImage: Image
381
+
382
+ "An alternative title of the article."
147
383
  altTitle: AltTitle
384
+
385
+ "An alternative introductory paragraph of the article."
148
386
  altStandfirst: AltStandfirst
387
+
388
+ "An abstract syntax tree of the authors of the article."
149
389
  byline(vanity: Boolean): StructuredContent
390
+
391
+ "A promotional thumbnail / snapshot of the article."
150
392
  teaser: Teaser
393
+
394
+ "An array of concepts related to the article, eg. organisations or topics."
151
395
  annotations: [Concept]
396
+
397
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
152
398
  editorialDesk: String
399
+
400
+ "A scalar representing the access level of the article, eg. 'free'."
153
401
  accessLevel: AccessLevel
154
- canBeSyndicated: CanBeSyndicated
402
+
403
+ "The concept to use for instant alert CTAs."
155
404
  instantAlertConcept: Concept
405
+
406
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
407
+ canBeSyndicated: CanBeSyndicated
408
+
409
+ "The party that originated the article, eg. 'FT'."
156
410
  originatingParty: String
411
+
412
+ "Whether comments are enabled on the article."
157
413
  commentsEnabled: Boolean
414
+
415
+ "A design object containing the theme and layout of the article."
158
416
  design: Design
417
+
418
+ "The parent article, indicating this article is a part of a series or package."
159
419
  containedIn: Content
420
+
421
+ "An object indicating whether the article is an opinion piece."
160
422
  indicators: Indicators
423
+
424
+ "Whether the live-blog-post should be pinned."
161
425
  isPinned: Boolean
162
426
  }
163
427
 
164
428
  type Audio implements Content {
429
+ "The title of the article."
165
430
  title: String!
431
+
432
+ "The unique identifier of the article - a uuid or a url."
166
433
  id: ID!
434
+
435
+ "The type of the article, eg. 'Article' or 'Video'."
167
436
  type: ContentType!
437
+
438
+ "An introductory paragraph of the article."
168
439
  standfirst: String
440
+
441
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
169
442
  topper: Topper
443
+
444
+ "An abstract syntax tree of the article content."
170
445
  body: RichText
446
+
447
+ "The raw string of the XML as returned from ContentAPI."
171
448
  bodyXML: String
449
+
450
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
172
451
  url(vanity: Boolean, relative: Boolean): String!
452
+
453
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
173
454
  publishedDate: String!
455
+
456
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
174
457
  firstPublishedDate: String!
458
+
459
+ "An image object containing the url and the caption, to be displayed usually before the article content."
175
460
  mainImage: Image
461
+
462
+ "An alternative title of the article."
176
463
  altTitle: AltTitle
464
+
465
+ "An alternative introductory paragraph of the article."
177
466
  altStandfirst: AltStandfirst
467
+
468
+ "An abstract syntax tree of the authors of the article."
178
469
  byline(vanity: Boolean): StructuredContent
470
+
471
+ "A promotional thumbnail / snapshot of the article."
179
472
  teaser: Teaser
473
+
474
+ "An array of concepts related to the article, eg. organisations or topics."
180
475
  annotations: [Concept]
476
+
477
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
181
478
  editorialDesk: String
479
+
480
+ "A scalar representing the access level of the article, eg. 'free'."
182
481
  accessLevel: AccessLevel
183
- canBeSyndicated: CanBeSyndicated
482
+
483
+ "The concept to use for instant alert CTAs."
184
484
  instantAlertConcept: Concept
485
+
486
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
487
+ canBeSyndicated: CanBeSyndicated
488
+
489
+ "The party that originated the article, eg. 'FT'."
185
490
  originatingParty: String
491
+
492
+ "Whether comments are enabled on the article."
186
493
  commentsEnabled: Boolean
494
+
495
+ "A design object containing the theme and layout of the article."
187
496
  design: Design
497
+
498
+ "An array of media objects containing the url, the duration, the filesize and the media type."
188
499
  media: [Media]
189
500
  }
190
501
 
191
502
  type Video implements Content {
503
+ "The title of the article."
192
504
  title: String!
505
+
506
+ "The unique identifier of the article - a uuid or a url."
193
507
  id: ID!
508
+
509
+ "The type of the article, eg. 'Article' or 'Video'."
194
510
  type: ContentType!
511
+
512
+ "An introductory paragraph of the article."
195
513
  standfirst: String
514
+
515
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
196
516
  topper: Topper
517
+
518
+ "An abstract syntax tree of the article content."
197
519
  body: RichText
520
+
521
+ "The raw string of the XML as returned from ContentAPI."
198
522
  bodyXML: String
523
+
524
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
199
525
  url(vanity: Boolean, relative: Boolean): String!
526
+
527
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
200
528
  publishedDate: String!
529
+
530
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
201
531
  firstPublishedDate: String!
532
+
533
+ "An image object containing the url and the caption, to be displayed usually before the article content."
202
534
  mainImage: Image
535
+
536
+ "An alternative title of the article."
203
537
  altTitle: AltTitle
538
+
539
+ "An alternative introductory paragraph of the article."
204
540
  altStandfirst: AltStandfirst
541
+
542
+ "An abstract syntax tree of the authors of the article."
205
543
  byline(vanity: Boolean): StructuredContent
544
+
545
+ "A promotional thumbnail / snapshot of the article."
206
546
  teaser: Teaser
547
+
548
+ "An array of concepts related to the article, eg. organisations or topics."
207
549
  annotations: [Concept]
550
+
551
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
208
552
  editorialDesk: String
553
+
554
+ "A scalar representing the access level of the article, eg. 'free'."
209
555
  accessLevel: AccessLevel
210
- canBeSyndicated: CanBeSyndicated
556
+
557
+ "The concept to use for instant alert CTAs."
211
558
  instantAlertConcept: Concept
559
+
560
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
561
+ canBeSyndicated: CanBeSyndicated
562
+
563
+ "The party that originated the article, eg. 'FT'."
212
564
  originatingParty: String
565
+
566
+ "Whether comments are enabled on the article."
213
567
  commentsEnabled: Boolean
568
+
569
+ "A design object containing the theme and layout of the article."
214
570
  design: Design
215
571
  }
216
572
 
217
573
  type ContentPackage implements Content {
574
+ "The title of the article."
218
575
  title: String!
576
+
577
+ "The unique identifier of the article - a uuid or a url."
219
578
  id: ID!
579
+
580
+ "The type of the article, eg. 'Article' or 'Video'."
220
581
  type: ContentType!
582
+
583
+ "An introductory paragraph of the article."
221
584
  standfirst: String
585
+
586
+ "A banner located usually at the top of articles containing the title, the standfirst and any images."
222
587
  topper: Topper
588
+
589
+ "An abstract syntax tree of the article content."
223
590
  body: RichText
591
+
592
+ "The raw string of the XML as returned from ContentAPI."
224
593
  bodyXML: String
594
+
595
+ "The url of the concept. Vanity urls replace long, randomly generated urls - they are more user friendly and concise. Relative urls are relative to the current domain."
225
596
  url(vanity: Boolean, relative: Boolean): String!
597
+
598
+ "The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
226
599
  publishedDate: String!
600
+
601
+ "The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
227
602
  firstPublishedDate: String!
603
+
604
+ "An image object containing the url and the caption, to be displayed usually before the article content."
228
605
  mainImage: Image
606
+
607
+ "An alternative title of the article."
229
608
  altTitle: AltTitle
609
+
610
+ "An alternative introductory paragraph of the article."
230
611
  altStandfirst: AltStandfirst
612
+
613
+ "An abstract syntax tree of the authors of the article."
231
614
  byline(vanity: Boolean): StructuredContent
615
+
616
+ "A promotional thumbnail / snapshot of the article."
232
617
  teaser: Teaser
618
+
619
+ "An array of concepts related to the article, eg. organisations or topics."
233
620
  annotations: [Concept]
621
+
622
+ "The editorial division the article belongs to, eg. 'FT-SpecialReports'."
234
623
  editorialDesk: String
624
+
625
+ "A scalar representing the access level of the article, eg. 'free'."
235
626
  accessLevel: AccessLevel
236
- canBeSyndicated: CanBeSyndicated
627
+
628
+ "The concept to use for instant alert CTAs."
237
629
  instantAlertConcept: Concept
630
+
631
+ "A scalar representing whether the article can be syndicated, ie. published by a third party site."
632
+ canBeSyndicated: CanBeSyndicated
633
+
634
+ "The party that originated the article, eg. 'FT'."
238
635
  originatingParty: String
636
+
637
+ "Whether comments are enabled on the article."
239
638
  commentsEnabled: Boolean
639
+
640
+ "A design object containing the theme and layout of the article."
240
641
  design: Design
642
+
643
+ "The child articles of this content package."
241
644
  contains(fromId: String, surroundingArticles: Int): [Teaser]
645
+
646
+ "The number of child articles in this content package."
242
647
  containsLength: Int
648
+
649
+ "The optional table of contents for this content package."
243
650
  tableOfContents: TableOfContents
244
651
  }
245
652
 
246
- type Indicators {
247
- isOpinion: Boolean
248
- }
653
+
@@ -1,11 +1,17 @@
1
1
  scalar JSON
2
2
 
3
3
  type Query {
4
+ "The version of the schema, eg. 2.0.0."
4
5
  version: String!
6
+
7
+ "The resolved article content for given uuid."
5
8
  content(uuid: String!): Content!
9
+
10
+ "The article content as resolved from passed-in content-api json data."
6
11
  contentFromJSON(content: JSON!): Content!
7
12
  }
8
13
 
9
14
  type Mutation {
15
+ "A mutation to invalidate the redis cache for content-api responses for a given uuid."
10
16
  invalidateRedisCache(uuid: String!): String
11
17
  }