@financial-times/cp-content-pipeline-schema 2.5.2 → 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 (136) hide show
  1. package/CHANGELOG.md +22 -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 +1214 -909
  17. package/lib/model/CapiResponse.d.ts +14 -4
  18. package/lib/model/CapiResponse.js +19 -4
  19. package/lib/model/CapiResponse.js.map +1 -1
  20. package/lib/model/RichText.d.ts +1 -1
  21. package/lib/model/RichText.js.map +1 -1
  22. package/lib/model/Topper.d.ts +2 -2
  23. package/lib/model/Topper.js +2 -2
  24. package/lib/model/Topper.js.map +1 -1
  25. package/lib/model/schemas/capi/content-package.d.ts +18 -0
  26. package/lib/model/schemas/capi/content-package.js +1 -0
  27. package/lib/model/schemas/capi/content-package.js.map +1 -1
  28. package/lib/resolvers/clip.d.ts +10 -0
  29. package/lib/resolvers/clip.js +10 -0
  30. package/lib/resolvers/clip.js.map +1 -1
  31. package/lib/resolvers/content-tree/references/ClipSet.d.ts +13 -0
  32. package/lib/resolvers/content-tree/references/ClipSet.js +12 -1
  33. package/lib/resolvers/content-tree/references/ClipSet.js.map +1 -1
  34. package/lib/resolvers/content-tree/references/Flourish.d.ts +6 -0
  35. package/lib/resolvers/content-tree/references/Flourish.js +15 -1
  36. package/lib/resolvers/content-tree/references/Flourish.js.map +1 -1
  37. package/lib/resolvers/content-tree/references/ImageSet.d.ts +1 -0
  38. package/lib/resolvers/content-tree/references/ImageSet.js +3 -0
  39. package/lib/resolvers/content-tree/references/ImageSet.js.map +1 -1
  40. package/lib/resolvers/content-tree/references/LayoutImage.d.ts +1 -0
  41. package/lib/resolvers/content-tree/references/LayoutImage.js +3 -0
  42. package/lib/resolvers/content-tree/references/LayoutImage.js.map +1 -1
  43. package/lib/resolvers/content-tree/references/RawImage.d.ts +1 -0
  44. package/lib/resolvers/content-tree/references/RawImage.js +3 -0
  45. package/lib/resolvers/content-tree/references/RawImage.js.map +1 -1
  46. package/lib/resolvers/content-tree/references/Recommended.d.ts +1 -0
  47. package/lib/resolvers/content-tree/references/Recommended.js +3 -0
  48. package/lib/resolvers/content-tree/references/Recommended.js.map +1 -1
  49. package/lib/resolvers/content-tree/references/Reference.d.ts +1 -1
  50. package/lib/resolvers/content-tree/references/Reference.js +1 -3
  51. package/lib/resolvers/content-tree/references/Reference.js.map +1 -1
  52. package/lib/resolvers/content-tree/references/ScrollyImage.d.ts +1 -0
  53. package/lib/resolvers/content-tree/references/ScrollyImage.js +3 -0
  54. package/lib/resolvers/content-tree/references/ScrollyImage.js.map +1 -1
  55. package/lib/resolvers/content-tree/references/Tweet.d.ts +1 -0
  56. package/lib/resolvers/content-tree/references/Tweet.js +3 -0
  57. package/lib/resolvers/content-tree/references/Tweet.js.map +1 -1
  58. package/lib/resolvers/content-tree/references/Video.d.ts +2 -1
  59. package/lib/resolvers/content-tree/references/Video.js +4 -3
  60. package/lib/resolvers/content-tree/references/Video.js.map +1 -1
  61. package/lib/resolvers/content-tree/references/index.d.ts +5 -1
  62. package/lib/resolvers/content-tree/references/index.js +4 -0
  63. package/lib/resolvers/content-tree/references/index.js.map +1 -1
  64. package/lib/resolvers/content.d.ts +242 -33
  65. package/lib/resolvers/content.js +66 -31
  66. package/lib/resolvers/content.js.map +1 -1
  67. package/lib/resolvers/image.d.ts +142 -12
  68. package/lib/resolvers/image.js +45 -10
  69. package/lib/resolvers/image.js.map +1 -1
  70. package/lib/resolvers/index.d.ts +588 -60
  71. package/lib/resolvers/picture.d.ts +41 -8
  72. package/lib/resolvers/picture.js +19 -21
  73. package/lib/resolvers/picture.js.map +1 -1
  74. package/lib/resolvers/richText.d.ts +14 -2
  75. package/lib/resolvers/richText.js +8 -6
  76. package/lib/resolvers/richText.js.map +1 -1
  77. package/lib/resolvers/scalars.d.ts +2 -0
  78. package/lib/resolvers/scalars.js +2 -0
  79. package/lib/resolvers/scalars.js.map +1 -1
  80. package/lib/resolvers/teaser.d.ts +5 -0
  81. package/lib/resolvers/teaser.js +6 -1
  82. package/lib/resolvers/teaser.js.map +1 -1
  83. package/lib/resolvers/topper.d.ts +127 -7
  84. package/lib/resolvers/topper.js +64 -6
  85. package/lib/resolvers/topper.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/datasources/base.ts +1 -0
  88. package/src/datasources/capi.ts +1 -0
  89. package/src/datasources/instrumented.ts +1 -11
  90. package/src/datasources/origami-image.ts +3 -0
  91. package/src/datasources/twitter.ts +2 -0
  92. package/src/datasources/url-management.ts +2 -0
  93. package/src/generated/index.ts +1214 -670
  94. package/src/model/CapiResponse.ts +32 -7
  95. package/src/model/RichText.ts +1 -1
  96. package/src/model/Topper.ts +2 -2
  97. package/src/model/schemas/capi/content-package.ts +1 -0
  98. package/src/resolvers/clip.ts +13 -2
  99. package/src/resolvers/content-tree/references/ClipSet.ts +22 -2
  100. package/src/resolvers/content-tree/references/Flourish.ts +20 -1
  101. package/src/resolvers/content-tree/references/ImageSet.ts +4 -0
  102. package/src/resolvers/content-tree/references/LayoutImage.ts +4 -0
  103. package/src/resolvers/content-tree/references/RawImage.ts +4 -0
  104. package/src/resolvers/content-tree/references/Recommended.ts +4 -0
  105. package/src/resolvers/content-tree/references/Reference.ts +1 -3
  106. package/src/resolvers/content-tree/references/ScrollyImage.ts +4 -0
  107. package/src/resolvers/content-tree/references/Tweet.ts +4 -0
  108. package/src/resolvers/content-tree/references/Video.ts +5 -3
  109. package/src/resolvers/content-tree/references/index.ts +13 -2
  110. package/src/resolvers/content.ts +88 -38
  111. package/src/resolvers/image.ts +75 -5
  112. package/src/resolvers/picture.ts +35 -23
  113. package/src/resolvers/richText.ts +13 -8
  114. package/src/resolvers/scalars.ts +2 -0
  115. package/src/resolvers/teaser.ts +6 -2
  116. package/src/resolvers/topper.ts +86 -6
  117. package/tsconfig.tsbuildinfo +1 -1
  118. package/typedefs/clip.graphql +28 -0
  119. package/typedefs/concept.graphql +21 -2
  120. package/typedefs/content.graphql +441 -36
  121. package/typedefs/core.graphql +6 -0
  122. package/typedefs/image.graphql +210 -15
  123. package/typedefs/picture.graphql +54 -1
  124. package/typedefs/references/clipSet.graphql +34 -1
  125. package/typedefs/references/flourish.graphql +8 -0
  126. package/typedefs/references/imageSet.graphql +6 -0
  127. package/typedefs/references/layoutImage.graphql +3 -0
  128. package/typedefs/references/rawImage.graphql +3 -0
  129. package/typedefs/references/recommended.graphql +3 -0
  130. package/typedefs/references/reference.graphql +1 -0
  131. package/typedefs/references/scrollyImage.graphql +3 -0
  132. package/typedefs/references/tweet.graphql +3 -0
  133. package/typedefs/references/video.graphql +5 -0
  134. package/typedefs/richText.graphql +7 -4
  135. package/typedefs/teaser.graphql +42 -1
  136. package/typedefs/topper.graphql +219 -7
@@ -1,154 +1,366 @@
1
- interface Topper {
1
+ interface Topper {
2
+ "The headline text of the topper."
2
3
  headline: String!
4
+
5
+ "An abstract syntax tree of the introduction text."
3
6
  intro: RichText
7
+
8
+ "The background colour of the topper."
4
9
  backgroundColour: TopperBackgroundColour
10
+
11
+ "Whether the topper should have a background box."
5
12
  backgroundBox: Boolean
13
+
14
+ "Whether the topper should have a text shadow."
6
15
  textShadow: Boolean
16
+
17
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
7
18
  displayConcept: Concept
19
+
20
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
8
21
  genreConcept: Concept
22
+
23
+ "The variant of the follow button to be displayed on the topper."
9
24
  followButtonVariant: FollowButtonVariant
10
25
  }
11
26
 
12
27
  interface TopperWithImages {
28
+ "An array of images to be displayed on the topper."
13
29
  images: [Image!]!
30
+
31
+ "A fallback image to be used if the 'images' are not available."
14
32
  fallbackImage: Image
15
33
  }
16
34
 
17
35
  interface TopperWithTheme {
36
+ "Whether the headline should be large."
18
37
  isLargeHeadline: Boolean
38
+
39
+ "The layout of the topper, eg. 'split-text-left'."
19
40
  layout: String
20
41
  }
21
42
 
22
43
  interface TopperWithHeadshot {
44
+ "The url of the headshot image, eg. for columns with one key author."
23
45
  headshot(width: Int, dpr: Int): String
24
46
  }
25
47
 
26
48
  interface TopperWithBrand {
49
+ "The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}."
27
50
  brandConcept: Concept
51
+
52
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
28
53
  genreConcept: Concept
29
54
  }
30
55
 
31
56
  interface TopperWithPackage {
57
+ "The design of the topper, eg. 'standard'."
32
58
  design: String
33
59
  }
34
60
 
35
61
  type BasicTopper implements Topper {
62
+ "The headline text of the topper."
36
63
  headline: String!
64
+
65
+ "An abstract syntax tree of the introduction text."
37
66
  intro: RichText
67
+
68
+ "The background colour of the topper."
38
69
  backgroundColour: TopperBackgroundColour
70
+
71
+ "Whether the topper should have a background box."
39
72
  backgroundBox: Boolean
73
+
74
+ "Whether the topper should have a text shadow."
40
75
  textShadow: Boolean
76
+
77
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
41
78
  displayConcept: Concept
79
+
80
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
42
81
  genreConcept: Concept
82
+
83
+ "The variant of the follow button to be displayed on the topper."
43
84
  followButtonVariant: FollowButtonVariant
44
85
  }
45
86
 
46
87
  type SplitTextTopper implements Topper & TopperWithImages & TopperWithTheme & TopperWithBrand & TopperWithPackage {
88
+ "The headline text of the topper."
47
89
  headline: String!
90
+
91
+ "An abstract syntax tree of the introduction text."
48
92
  intro: RichText
93
+
94
+ "The background colour of the topper."
49
95
  backgroundColour: TopperBackgroundColour
96
+
97
+ "Whether the topper should have a background box."
50
98
  backgroundBox: Boolean
99
+
100
+ "Whether the topper should have a text shadow."
51
101
  textShadow: Boolean
102
+
103
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
52
104
  displayConcept: Concept
105
+
106
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
107
+ genreConcept: Concept
108
+
109
+ "The variant of the follow button to be displayed on the topper."
53
110
  followButtonVariant: FollowButtonVariant
111
+
112
+ "An array of images to be displayed on the topper."
54
113
  images: [Image!]!
114
+
115
+ "A fallback image to be used if the 'images' are not availableimages: [Image!]!."
55
116
  fallbackImage: Image
117
+
118
+ "Whether the headline should be large."
56
119
  isLargeHeadline: Boolean
120
+
121
+ "The layout of the topper, eg. 'split-text-left'."
57
122
  layout: String
123
+
124
+ "The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}."
58
125
  brandConcept: Concept
59
- genreConcept: Concept
126
+
127
+ "The design of the topper, eg. 'standard'."
60
128
  design: String
61
129
  }
62
130
 
63
131
  type FullBleedTopper implements Topper & TopperWithImages & TopperWithTheme & TopperWithBrand {
132
+ "The headline text of the topper."
64
133
  headline: String!
134
+
135
+ "An abstract syntax tree of the introduction text."
65
136
  intro: RichText
137
+
138
+ "The background colour of the topper."
66
139
  backgroundColour: TopperBackgroundColour
140
+
141
+ "Whether the topper should have a background box."
67
142
  backgroundBox: Boolean
143
+
144
+ "Whether the topper should have a text shadow."
68
145
  textShadow: Boolean
146
+
147
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
69
148
  displayConcept: Concept
149
+
150
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
151
+ genreConcept: Concept
152
+
153
+ "The variant of the follow button to be displayed on the topper."
70
154
  followButtonVariant: FollowButtonVariant
155
+
156
+ "An array of images to be displayed on the topper."
71
157
  images: [Image!]!
158
+
159
+ "A fallback image to be used if the 'images' are not availableimages: [Image!]!."
72
160
  fallbackImage: Image
161
+
162
+ "Whether the headline should be large."
73
163
  isLargeHeadline: Boolean
164
+
165
+ "The layout of the topper, eg. 'split-text-left'."
74
166
  layout: String
167
+
168
+ "The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}."
75
169
  brandConcept: Concept
76
- genreConcept: Concept
77
170
  }
78
171
 
79
172
  type PodcastTopper implements Topper & TopperWithTheme & TopperWithHeadshot & TopperWithBrand {
173
+ "The headline text of the topper."
80
174
  headline: String!
175
+
176
+ "An abstract syntax tree of the introduction text."
81
177
  intro: RichText
178
+
179
+ "The background colour of the topper."
82
180
  backgroundColour: TopperBackgroundColour
181
+
182
+ "Whether the topper should have a background box."
83
183
  backgroundBox: Boolean
184
+
185
+ "Whether the topper should have a text shadow."
84
186
  textShadow: Boolean
187
+
188
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
85
189
  displayConcept: Concept
190
+
191
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
192
+ genreConcept: Concept
193
+
194
+ "The variant of the follow button to be displayed on the topper."
86
195
  followButtonVariant: FollowButtonVariant
196
+
197
+ "Whether the headline should be large."
87
198
  isLargeHeadline: Boolean
199
+
200
+ "The layout of the topper, eg. 'split-text-left'."
88
201
  layout: String
202
+
203
+ "The url of the headshot image, eg. for columns with one key author."
89
204
  headshot(width: Int, dpr: Int): String
205
+
206
+ "The concept object describing details of the column author."
90
207
  columnist: Concept
208
+
209
+ "The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}."
91
210
  brandConcept: Concept
92
- genreConcept: Concept
93
211
  }
94
212
 
95
213
  type OpinionTopper implements Topper & TopperWithTheme & TopperWithHeadshot {
214
+ "The headline text of the topper."
96
215
  headline: String!
216
+
217
+ "An abstract syntax tree of the introduction text."
97
218
  intro: RichText
219
+
220
+ "The background colour of the topper."
98
221
  backgroundColour: TopperBackgroundColour
222
+
223
+ "Whether the topper should have a background box."
99
224
  backgroundBox: Boolean
225
+
226
+ "Whether the topper should have a text shadow."
100
227
  textShadow: Boolean
228
+
229
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
101
230
  displayConcept: Concept
231
+
232
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
102
233
  genreConcept: Concept
234
+
235
+ "The variant of the follow button to be displayed on the topper."
103
236
  followButtonVariant: FollowButtonVariant
237
+
238
+ "Whether the headline should be large."
104
239
  isLargeHeadline: Boolean
240
+
241
+ "The layout of the topper, eg. 'split-text-left'."
105
242
  layout: String
243
+
244
+ "The url of the headshot image, eg. for columns with one key author."
106
245
  headshot(width: Int, dpr: Int): String
246
+
247
+ "The concept object describing details of the column author."
107
248
  columnist: Concept
108
249
  }
109
250
 
110
251
  type BrandedTopper implements Topper & TopperWithTheme & TopperWithBrand {
252
+ "The headline text of the topper."
111
253
  headline: String!
254
+
255
+ "An abstract syntax tree of the introduction text."
112
256
  intro: RichText
257
+
258
+ "The background colour of the topper."
113
259
  backgroundColour: TopperBackgroundColour
260
+
261
+ "Whether the topper should have a background box."
114
262
  backgroundBox: Boolean
263
+
264
+ "Whether the topper should have a text shadow."
115
265
  textShadow: Boolean
266
+
267
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
116
268
  displayConcept: Concept
269
+
270
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
271
+ genreConcept: Concept
272
+
273
+ "The variant of the follow button to be displayed on the topper."
117
274
  followButtonVariant: FollowButtonVariant
275
+
276
+ "Whether the headline should be large."
118
277
  isLargeHeadline: Boolean
278
+
279
+ "The layout of the topper, eg. 'split-text-left'."
119
280
  layout: String
281
+
282
+ "The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}."
120
283
  brandConcept: Concept
121
- genreConcept: Concept
122
284
  }
123
285
 
124
286
  type DeepPortraitTopper implements Topper & TopperWithImages & TopperWithTheme & TopperWithBrand {
287
+ "The headline text of the topper."
125
288
  headline: String!
289
+
290
+ "An abstract syntax tree of the introduction text."
126
291
  intro: RichText
292
+
293
+ "The background colour of the topper."
127
294
  backgroundColour: TopperBackgroundColour
295
+
296
+ "Whether the topper should have a background box."
128
297
  backgroundBox: Boolean
298
+
299
+ "Whether the topper should have a text shadow."
129
300
  textShadow: Boolean
301
+
302
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
130
303
  displayConcept: Concept
304
+
305
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
306
+ genreConcept: Concept
307
+
308
+ "The variant of the follow button to be displayed on the topper."
131
309
  followButtonVariant: FollowButtonVariant
310
+
311
+ "An array of images to be displayed on the topper."
132
312
  images: [Image!]!
313
+
314
+ "A fallback image to be used if the 'images' are not availableimages: [Image!]!."
133
315
  fallbackImage: Image
316
+
317
+ "Whether the headline should be large."
134
318
  isLargeHeadline: Boolean
319
+
320
+ "The layout of the topper, eg. 'split-text-left'."
135
321
  layout: String
322
+
323
+ "The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}."
136
324
  brandConcept: Concept
137
- genreConcept: Concept
138
325
  }
139
326
 
140
327
  type DeepLandscapeTopper implements Topper & TopperWithImages & TopperWithTheme & TopperWithBrand {
328
+ "The headline text of the topper."
141
329
  headline: String!
330
+
331
+ "An abstract syntax tree of the introduction text."
142
332
  intro: RichText
333
+
334
+ "The background colour of the topper."
143
335
  backgroundColour: TopperBackgroundColour
336
+
337
+ "Whether the topper should have a background box."
144
338
  backgroundBox: Boolean
339
+
340
+ "Whether the topper should have a text shadow."
145
341
  textShadow: Boolean
342
+
343
+ "The concept object to be displayed, eg. {'type': 'TOPIC', 'prefLabel': 'Non-dom tax status', ...}."
146
344
  displayConcept: Concept
345
+
346
+ "The concept object of the genre, eg. {'type': 'GENRE', 'prefLabel': 'Opinion', ...}."
347
+ genreConcept: Concept
348
+
349
+ "The variant of the follow button to be displayed on the topper."
147
350
  followButtonVariant: FollowButtonVariant
351
+
352
+ "An array of images to be displayed on the topper."
148
353
  images: [Image!]!
354
+
355
+ "A fallback image to be used if the 'images' are not availableimages: [Image!]!."
149
356
  fallbackImage: Image
357
+
358
+ "Whether the headline should be large."
150
359
  isLargeHeadline: Boolean
360
+
361
+ "The layout of the topper, eg. 'split-text-left'."
151
362
  layout: String
363
+
364
+ "The concept object of the brand, eg. {'type': 'BRAND', 'prefLabel': 'FT Magazine', ...}."
152
365
  brandConcept: Concept
153
- genreConcept: Concept
154
366
  }