@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.
- package/CHANGELOG.md +22 -0
- package/README.md +187 -41
- package/lib/datasources/base.d.ts +1 -0
- package/lib/datasources/capi.js +1 -0
- package/lib/datasources/capi.js.map +1 -1
- package/lib/datasources/instrumented.d.ts +1 -0
- package/lib/datasources/instrumented.js +1 -9
- package/lib/datasources/instrumented.js.map +1 -1
- package/lib/datasources/origami-image.js +1 -0
- package/lib/datasources/origami-image.js.map +1 -1
- package/lib/datasources/twitter.js +1 -0
- package/lib/datasources/twitter.js.map +1 -1
- package/lib/datasources/url-management.d.ts +1 -0
- package/lib/datasources/url-management.js +2 -0
- package/lib/datasources/url-management.js.map +1 -1
- package/lib/generated/index.d.ts +1214 -909
- package/lib/model/CapiResponse.d.ts +14 -4
- package/lib/model/CapiResponse.js +19 -4
- package/lib/model/CapiResponse.js.map +1 -1
- package/lib/model/RichText.d.ts +1 -1
- package/lib/model/RichText.js.map +1 -1
- package/lib/model/Topper.d.ts +2 -2
- package/lib/model/Topper.js +2 -2
- package/lib/model/Topper.js.map +1 -1
- package/lib/model/schemas/capi/content-package.d.ts +18 -0
- package/lib/model/schemas/capi/content-package.js +1 -0
- package/lib/model/schemas/capi/content-package.js.map +1 -1
- package/lib/resolvers/clip.d.ts +10 -0
- package/lib/resolvers/clip.js +10 -0
- package/lib/resolvers/clip.js.map +1 -1
- package/lib/resolvers/content-tree/references/ClipSet.d.ts +13 -0
- package/lib/resolvers/content-tree/references/ClipSet.js +12 -1
- package/lib/resolvers/content-tree/references/ClipSet.js.map +1 -1
- package/lib/resolvers/content-tree/references/Flourish.d.ts +6 -0
- package/lib/resolvers/content-tree/references/Flourish.js +15 -1
- package/lib/resolvers/content-tree/references/Flourish.js.map +1 -1
- package/lib/resolvers/content-tree/references/ImageSet.d.ts +1 -0
- package/lib/resolvers/content-tree/references/ImageSet.js +3 -0
- package/lib/resolvers/content-tree/references/ImageSet.js.map +1 -1
- package/lib/resolvers/content-tree/references/LayoutImage.d.ts +1 -0
- package/lib/resolvers/content-tree/references/LayoutImage.js +3 -0
- package/lib/resolvers/content-tree/references/LayoutImage.js.map +1 -1
- package/lib/resolvers/content-tree/references/RawImage.d.ts +1 -0
- package/lib/resolvers/content-tree/references/RawImage.js +3 -0
- package/lib/resolvers/content-tree/references/RawImage.js.map +1 -1
- package/lib/resolvers/content-tree/references/Recommended.d.ts +1 -0
- package/lib/resolvers/content-tree/references/Recommended.js +3 -0
- package/lib/resolvers/content-tree/references/Recommended.js.map +1 -1
- package/lib/resolvers/content-tree/references/Reference.d.ts +1 -1
- package/lib/resolvers/content-tree/references/Reference.js +1 -3
- package/lib/resolvers/content-tree/references/Reference.js.map +1 -1
- package/lib/resolvers/content-tree/references/ScrollyImage.d.ts +1 -0
- package/lib/resolvers/content-tree/references/ScrollyImage.js +3 -0
- package/lib/resolvers/content-tree/references/ScrollyImage.js.map +1 -1
- package/lib/resolvers/content-tree/references/Tweet.d.ts +1 -0
- package/lib/resolvers/content-tree/references/Tweet.js +3 -0
- package/lib/resolvers/content-tree/references/Tweet.js.map +1 -1
- package/lib/resolvers/content-tree/references/Video.d.ts +2 -1
- package/lib/resolvers/content-tree/references/Video.js +4 -3
- package/lib/resolvers/content-tree/references/Video.js.map +1 -1
- package/lib/resolvers/content-tree/references/index.d.ts +5 -1
- package/lib/resolvers/content-tree/references/index.js +4 -0
- package/lib/resolvers/content-tree/references/index.js.map +1 -1
- package/lib/resolvers/content.d.ts +242 -33
- package/lib/resolvers/content.js +66 -31
- package/lib/resolvers/content.js.map +1 -1
- package/lib/resolvers/image.d.ts +142 -12
- package/lib/resolvers/image.js +45 -10
- package/lib/resolvers/image.js.map +1 -1
- package/lib/resolvers/index.d.ts +588 -60
- package/lib/resolvers/picture.d.ts +41 -8
- package/lib/resolvers/picture.js +19 -21
- package/lib/resolvers/picture.js.map +1 -1
- package/lib/resolvers/richText.d.ts +14 -2
- package/lib/resolvers/richText.js +8 -6
- package/lib/resolvers/richText.js.map +1 -1
- package/lib/resolvers/scalars.d.ts +2 -0
- package/lib/resolvers/scalars.js +2 -0
- package/lib/resolvers/scalars.js.map +1 -1
- package/lib/resolvers/teaser.d.ts +5 -0
- package/lib/resolvers/teaser.js +6 -1
- package/lib/resolvers/teaser.js.map +1 -1
- package/lib/resolvers/topper.d.ts +127 -7
- package/lib/resolvers/topper.js +64 -6
- package/lib/resolvers/topper.js.map +1 -1
- package/package.json +1 -1
- package/src/datasources/base.ts +1 -0
- package/src/datasources/capi.ts +1 -0
- package/src/datasources/instrumented.ts +1 -11
- package/src/datasources/origami-image.ts +3 -0
- package/src/datasources/twitter.ts +2 -0
- package/src/datasources/url-management.ts +2 -0
- package/src/generated/index.ts +1214 -670
- package/src/model/CapiResponse.ts +32 -7
- package/src/model/RichText.ts +1 -1
- package/src/model/Topper.ts +2 -2
- package/src/model/schemas/capi/content-package.ts +1 -0
- package/src/resolvers/clip.ts +13 -2
- package/src/resolvers/content-tree/references/ClipSet.ts +22 -2
- package/src/resolvers/content-tree/references/Flourish.ts +20 -1
- package/src/resolvers/content-tree/references/ImageSet.ts +4 -0
- package/src/resolvers/content-tree/references/LayoutImage.ts +4 -0
- package/src/resolvers/content-tree/references/RawImage.ts +4 -0
- package/src/resolvers/content-tree/references/Recommended.ts +4 -0
- package/src/resolvers/content-tree/references/Reference.ts +1 -3
- package/src/resolvers/content-tree/references/ScrollyImage.ts +4 -0
- package/src/resolvers/content-tree/references/Tweet.ts +4 -0
- package/src/resolvers/content-tree/references/Video.ts +5 -3
- package/src/resolvers/content-tree/references/index.ts +13 -2
- package/src/resolvers/content.ts +88 -38
- package/src/resolvers/image.ts +75 -5
- package/src/resolvers/picture.ts +35 -23
- package/src/resolvers/richText.ts +13 -8
- package/src/resolvers/scalars.ts +2 -0
- package/src/resolvers/teaser.ts +6 -2
- package/src/resolvers/topper.ts +86 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/typedefs/clip.graphql +28 -0
- package/typedefs/concept.graphql +21 -2
- package/typedefs/content.graphql +441 -36
- package/typedefs/core.graphql +6 -0
- package/typedefs/image.graphql +210 -15
- package/typedefs/picture.graphql +54 -1
- package/typedefs/references/clipSet.graphql +34 -1
- package/typedefs/references/flourish.graphql +8 -0
- package/typedefs/references/imageSet.graphql +6 -0
- package/typedefs/references/layoutImage.graphql +3 -0
- package/typedefs/references/rawImage.graphql +3 -0
- package/typedefs/references/recommended.graphql +3 -0
- package/typedefs/references/reference.graphql +1 -0
- package/typedefs/references/scrollyImage.graphql +3 -0
- package/typedefs/references/tweet.graphql +3 -0
- package/typedefs/references/video.graphql +5 -0
- package/typedefs/richText.graphql +7 -4
- package/typedefs/teaser.graphql +42 -1
- package/typedefs/topper.graphql +219 -7
package/typedefs/content.graphql
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
247
|
-
isOpinion: Boolean
|
|
248
|
-
}
|
|
653
|
+
|
package/typedefs/core.graphql
CHANGED
|
@@ -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
|
}
|