@financial-times/cp-content-pipeline-schema 2.15.0 → 3.0.0
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 +39 -0
- package/lib/datasources/capi.d.ts +2 -2
- package/lib/datasources/capi.js +4 -2
- package/lib/datasources/capi.js.map +1 -1
- package/lib/datasources/capi.test.js +2 -2
- package/lib/fixtures/capiObject.d.ts +2 -2
- package/lib/fixtures/capiObject.js +2 -0
- package/lib/fixtures/capiObject.js.map +1 -1
- package/lib/fixtures/capiPerson.d.ts +1 -1
- package/lib/generated/index.d.ts +296 -131
- package/lib/helpers/decorateHeadshotUrl.d.ts +1 -2
- package/lib/helpers/decorateHeadshotUrl.js +2 -3
- package/lib/helpers/decorateHeadshotUrl.js.map +1 -1
- package/lib/model/Byline.d.ts +8 -10
- package/lib/model/Byline.js +34 -33
- package/lib/model/Byline.js.map +1 -1
- package/lib/model/Byline.test.js +105 -52
- package/lib/model/Byline.test.js.map +1 -1
- package/lib/model/CapiResponse.d.ts +12 -16
- package/lib/model/CapiResponse.js +38 -41
- package/lib/model/CapiResponse.js.map +1 -1
- package/lib/model/CapiResponse.test.js +7 -18
- package/lib/model/CapiResponse.test.js.map +1 -1
- package/lib/model/Clip.d.ts +1 -1
- package/lib/model/Concept.d.ts +1 -1
- package/lib/model/Concept.js +1 -2
- package/lib/model/Concept.js.map +1 -1
- package/lib/model/FlourishSource.d.ts +1 -1
- package/lib/model/FlourishSource.js.map +1 -1
- package/lib/model/Image.d.ts +1 -1
- package/lib/model/LeadFlourish.test.js +1 -0
- package/lib/model/LeadFlourish.test.js.map +1 -1
- package/lib/model/Person.d.ts +6 -12
- package/lib/model/Person.js +39 -66
- package/lib/model/Person.js.map +1 -1
- package/lib/model/Person.test.js +7 -60
- package/lib/model/Person.test.js.map +1 -1
- package/lib/model/Picture.d.ts +1 -1
- package/lib/model/RichText.d.ts +1 -2
- package/lib/model/Topper.d.ts +1 -1
- package/lib/model/Topper.js +10 -8
- package/lib/model/Topper.js.map +1 -1
- package/lib/model/Topper.test.js +9 -10
- package/lib/model/Topper.test.js.map +1 -1
- package/lib/model/schemas/capi/article.d.ts +7 -4
- package/lib/model/schemas/capi/article.js +1 -0
- package/lib/model/schemas/capi/article.js.map +1 -1
- package/lib/model/schemas/capi/audio.d.ts +7 -4
- package/lib/model/schemas/capi/audio.js +1 -0
- package/lib/model/schemas/capi/audio.js.map +1 -1
- package/lib/model/schemas/capi/base-schema.d.ts +14 -123
- package/lib/model/schemas/capi/base-schema.js +7 -6
- package/lib/model/schemas/capi/base-schema.js.map +1 -1
- package/lib/model/schemas/capi/content-package.d.ts +10 -5
- package/lib/model/schemas/capi/content-package.js +2 -0
- package/lib/model/schemas/capi/content-package.js.map +1 -1
- package/lib/model/schemas/capi/index.d.ts +41 -22
- package/lib/model/schemas/capi/internal-content.d.ts +24 -0
- package/lib/model/schemas/capi/internal-content.js +3 -0
- package/lib/model/schemas/capi/internal-content.js.map +1 -0
- package/lib/model/schemas/capi/live-blog-package.d.ts +7 -4
- package/lib/model/schemas/capi/live-blog-package.js +1 -0
- package/lib/model/schemas/capi/live-blog-package.js.map +1 -1
- package/lib/model/schemas/capi/placeholder.d.ts +7 -4
- package/lib/model/schemas/capi/placeholder.js +1 -0
- package/lib/model/schemas/capi/placeholder.js.map +1 -1
- package/lib/model/schemas/capi/video.d.ts +10 -5
- package/lib/model/schemas/capi/video.js +2 -0
- package/lib/model/schemas/capi/video.js.map +1 -1
- package/lib/resolvers/concept.d.ts +37 -2
- package/lib/resolvers/concept.js +17 -10
- package/lib/resolvers/concept.js.map +1 -1
- package/lib/resolvers/content-tree/Workarounds.d.ts +19 -11
- package/lib/resolvers/content-tree/references/Author.d.ts +4 -0
- package/lib/resolvers/content-tree/references/Author.js +14 -0
- package/lib/resolvers/content-tree/references/Author.js.map +1 -0
- package/lib/resolvers/content-tree/references/ClipSet.d.ts +1 -1
- package/lib/resolvers/content-tree/references/ClipSet.js +1 -1
- package/lib/resolvers/content-tree/references/ClipSet.js.map +1 -1
- package/lib/resolvers/content-tree/references/Flourish.d.ts +1 -1
- package/lib/resolvers/content-tree/references/Reference.d.ts +1 -1
- package/lib/resolvers/content-tree/references/index.d.ts +4 -2
- package/lib/resolvers/content-tree/references/index.js +4 -1
- package/lib/resolvers/content-tree/references/index.js.map +1 -1
- package/lib/resolvers/content-tree/updateTreeWithReferenceIds.d.ts +3 -3
- package/lib/resolvers/content-tree/updateTreeWithReferenceIds.js +2 -3
- package/lib/resolvers/content-tree/updateTreeWithReferenceIds.js.map +1 -1
- package/lib/resolvers/content.d.ts +27 -18
- package/lib/resolvers/content.js +4 -2
- package/lib/resolvers/content.js.map +1 -1
- package/lib/resolvers/image.d.ts +12 -12
- package/lib/resolvers/index.d.ts +89 -42
- package/lib/resolvers/leadFlourish.d.ts +2 -1
- package/lib/resolvers/leadFlourish.js +1 -0
- package/lib/resolvers/leadFlourish.js.map +1 -1
- package/lib/resolvers/person.d.ts +1 -1
- package/lib/resolvers/person.js +1 -1
- package/lib/resolvers/person.js.map +1 -1
- package/lib/resolvers/picture.d.ts +4 -4
- package/lib/resolvers/richText.d.ts +1 -1
- package/lib/resolvers/teaser.d.ts +1 -1
- package/lib/resolvers/topper.d.ts +3 -3
- package/package.json +1 -1
- package/queries/article.graphql +35 -13
- package/src/datasources/capi.test.ts +3 -3
- package/src/datasources/capi.ts +5 -3
- package/src/fixtures/capiObject.ts +4 -2
- package/src/fixtures/capiPerson.ts +1 -1
- package/src/generated/index.ts +321 -132
- package/src/helpers/decorateHeadshotUrl.ts +2 -2
- package/src/model/Byline.test.ts +136 -55
- package/src/model/Byline.ts +49 -39
- package/src/model/CapiResponse.test.ts +9 -25
- package/src/model/CapiResponse.ts +83 -56
- package/src/model/Clip.ts +1 -1
- package/src/model/Concept.ts +3 -3
- package/src/model/FlourishSource.ts +1 -1
- package/src/model/Image.test.ts +1 -1
- package/src/model/Image.ts +1 -1
- package/src/model/LeadFlourish.test.ts +1 -0
- package/src/model/Person.test.ts +11 -62
- package/src/model/Person.ts +47 -51
- package/src/model/Picture.test.ts +1 -1
- package/src/model/Picture.ts +1 -1
- package/src/model/Topper.test.ts +22 -18
- package/src/model/Topper.ts +10 -9
- package/src/model/__snapshots__/Byline.test.ts.snap +166 -27
- package/src/model/schemas/capi/article.ts +1 -0
- package/src/model/schemas/capi/audio.ts +1 -0
- package/src/model/schemas/capi/base-schema.ts +5 -4
- package/src/model/schemas/capi/content-package.ts +2 -0
- package/src/model/schemas/capi/internal-content.ts +45 -0
- package/src/model/schemas/capi/live-blog-package.ts +1 -0
- package/src/model/schemas/capi/placeholder.ts +1 -0
- package/src/model/schemas/capi/video.ts +2 -0
- package/src/resolvers/concept.ts +29 -12
- package/src/resolvers/content-tree/Workarounds.ts +39 -20
- package/src/resolvers/content-tree/references/Author.ts +18 -0
- package/src/resolvers/content-tree/references/ClipSet.ts +6 -8
- package/src/resolvers/content-tree/references/ImageSet.ts +1 -1
- package/src/resolvers/content-tree/references/ScrollyImage.ts +1 -1
- package/src/resolvers/content-tree/references/index.ts +6 -1
- package/src/resolvers/content-tree/updateTreeWithReferenceIds.ts +6 -8
- package/src/resolvers/content.ts +4 -2
- package/src/resolvers/leadFlourish.ts +1 -0
- package/src/resolvers/person.ts +1 -1
- package/src/types/n-display-metadata.d.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/typedefs/clip.graphql +2 -2
- package/typedefs/concept.graphql +64 -2
- package/typedefs/content.graphql +63 -39
- package/typedefs/image.graphql +12 -12
- package/typedefs/leadFlourish.graphql +32 -0
- package/typedefs/person.graphql +2 -2
- package/typedefs/picture.graphql +6 -6
- package/typedefs/references/author.graphql +7 -0
- package/typedefs/references/clipSet.graphql +14 -2
- package/typedefs/references/tweet.graphql +1 -1
- package/typedefs/teaser.graphql +10 -10
- package/src/types/internal-content.d.ts +0 -55
- package/typedefs/leadFlouish.graphql +0 -29
package/typedefs/clip.graphql
CHANGED
|
@@ -11,7 +11,7 @@ type ClipSource {
|
|
|
11
11
|
"The media type eg. video/mp4."
|
|
12
12
|
mediaType: String!
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
"The height of the clip in pixels."
|
|
15
15
|
pixelHeight: Int
|
|
16
16
|
|
|
17
17
|
"The width of the clip in pixels."
|
|
@@ -48,7 +48,7 @@ type Caption {
|
|
|
48
48
|
|
|
49
49
|
type Accessibility {
|
|
50
50
|
"An array of captions for the clip."
|
|
51
|
-
captions: [Caption]
|
|
51
|
+
captions: [Caption!]
|
|
52
52
|
|
|
53
53
|
"An abstract syntax tree of the transcript for the clip."
|
|
54
54
|
transcript: RichText
|
package/typedefs/concept.graphql
CHANGED
|
@@ -1,6 +1,65 @@
|
|
|
1
1
|
"A concept is supplemtary information item, like a location, person, organisation or topic. It is used to provide context to an article."
|
|
2
|
+
interface ConceptInterface {
|
|
3
|
+
"The unique identifier of the concept - a uuid or a url."
|
|
4
|
+
id: ID!
|
|
5
|
+
|
|
6
|
+
"The url of the media, eg. 'https://next-media-api.ft.com/renditions/16868569859480/0x0.mp3'."
|
|
7
|
+
url(vanity: Boolean, relative: Boolean): String!
|
|
8
|
+
|
|
9
|
+
"The api url of the concept, eg. 'http://api.ft.com/things/a579350c-61ce-4c00-97ca-ddaa2e0cacf6'."
|
|
10
|
+
apiUrl: String
|
|
11
|
+
|
|
12
|
+
"The type of the concept, eg. 'http://www.ft.com/ontology/Topic'."
|
|
13
|
+
directType: String
|
|
14
|
+
|
|
15
|
+
"Whether the concept is part of a package brand eg. 'ftSeries' or 'ftGuides'."
|
|
16
|
+
isPackageBrand: Boolean
|
|
17
|
+
|
|
18
|
+
"The relationship between the concept and the article, eg. 'http://www.ft.com/ontology/hasAuthor'."
|
|
19
|
+
predicate: String
|
|
20
|
+
|
|
21
|
+
"The preferred label of the concept, eg. 'Work & Careers'."
|
|
22
|
+
prefLabel: String!
|
|
23
|
+
|
|
24
|
+
"The type of the concept, eg. 'TOPIC'."
|
|
25
|
+
type: String
|
|
26
|
+
|
|
27
|
+
"An array of types, eg. ['http://www.ft.com/ontology/core/Thing', 'http://www.ft.com/ontology/Topic']."
|
|
28
|
+
types: [String!]
|
|
29
|
+
}
|
|
2
30
|
|
|
3
|
-
|
|
31
|
+
"A concept is supplemtary information item, like a location, person, organisation or topic. It is used to provide context to an article."
|
|
32
|
+
type Concept implements ConceptInterface {
|
|
33
|
+
"The unique identifier of the concept - a uuid or a url."
|
|
34
|
+
id: ID!
|
|
35
|
+
|
|
36
|
+
"The url of the media, eg. 'https://next-media-api.ft.com/renditions/16868569859480/0x0.mp3'."
|
|
37
|
+
url(vanity: Boolean, relative: Boolean): String!
|
|
38
|
+
|
|
39
|
+
"The api url of the concept, eg. 'http://api.ft.com/things/a579350c-61ce-4c00-97ca-ddaa2e0cacf6'."
|
|
40
|
+
apiUrl: String!
|
|
41
|
+
|
|
42
|
+
"The type of the concept, eg. 'http://www.ft.com/ontology/Topic'."
|
|
43
|
+
directType: String!
|
|
44
|
+
|
|
45
|
+
"Whether the concept is part of a package brand eg. 'ftSeries' or 'ftGuides'."
|
|
46
|
+
isPackageBrand: Boolean!
|
|
47
|
+
|
|
48
|
+
"The relationship between the concept and the article, eg. 'http://www.ft.com/ontology/hasAuthor'."
|
|
49
|
+
predicate: String!
|
|
50
|
+
|
|
51
|
+
"The preferred label of the concept, eg. 'Work & Careers'."
|
|
52
|
+
prefLabel: String!
|
|
53
|
+
|
|
54
|
+
"The type of the concept, eg. 'TOPIC'."
|
|
55
|
+
type: String
|
|
56
|
+
|
|
57
|
+
"An array of types, eg. ['http://www.ft.com/ontology/core/Thing', 'http://www.ft.com/ontology/Topic']."
|
|
58
|
+
types: [String!]!
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
"An author is a concept that represents a person that was involved in the writing of an item of content."
|
|
62
|
+
type Author implements ConceptInterface {
|
|
4
63
|
"The unique identifier of the concept - a uuid or a url."
|
|
5
64
|
id: ID!
|
|
6
65
|
|
|
@@ -24,7 +83,10 @@ type Concept {
|
|
|
24
83
|
|
|
25
84
|
"The type of the concept, eg. 'TOPIC'."
|
|
26
85
|
type: String
|
|
27
|
-
|
|
86
|
+
|
|
28
87
|
"An array of types, eg. ['http://www.ft.com/ontology/core/Thing', 'http://www.ft.com/ontology/Topic']."
|
|
29
88
|
types: [String!]
|
|
89
|
+
|
|
90
|
+
"The People API data for the person referenced by this Author concept."
|
|
91
|
+
person: Person!
|
|
30
92
|
}
|
package/typedefs/content.graphql
CHANGED
|
@@ -68,17 +68,20 @@ interface Content {
|
|
|
68
68
|
"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."
|
|
69
69
|
url(vanity: Boolean, relative: Boolean): String!
|
|
70
70
|
|
|
71
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
71
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
72
72
|
publishedDate: String!
|
|
73
73
|
|
|
74
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
74
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
75
75
|
publishedTimestamp: Float!
|
|
76
76
|
|
|
77
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
78
|
+
modifiedTimestamp: Float!
|
|
79
|
+
|
|
77
80
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
78
81
|
firstPublishedDate: String!
|
|
79
82
|
|
|
80
83
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
81
|
-
publishReference: String
|
|
84
|
+
publishReference: String
|
|
82
85
|
|
|
83
86
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
84
87
|
mainImage: Image
|
|
@@ -96,7 +99,7 @@ interface Content {
|
|
|
96
99
|
teaser: Teaser
|
|
97
100
|
|
|
98
101
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
99
|
-
annotations: [
|
|
102
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
100
103
|
|
|
101
104
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
102
105
|
editorialDesk: String
|
|
@@ -145,17 +148,20 @@ type Article implements Content {
|
|
|
145
148
|
"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."
|
|
146
149
|
url(vanity: Boolean, relative: Boolean): String!
|
|
147
150
|
|
|
148
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
151
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
149
152
|
publishedDate: String!
|
|
150
153
|
|
|
151
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
154
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
152
155
|
publishedTimestamp: Float!
|
|
153
156
|
|
|
157
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
158
|
+
modifiedTimestamp: Float!
|
|
159
|
+
|
|
154
160
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
155
161
|
firstPublishedDate: String!
|
|
156
162
|
|
|
157
163
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
158
|
-
publishReference: String
|
|
164
|
+
publishReference: String
|
|
159
165
|
|
|
160
166
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
161
167
|
mainImage: Image
|
|
@@ -173,7 +179,7 @@ type Article implements Content {
|
|
|
173
179
|
teaser: Teaser
|
|
174
180
|
|
|
175
181
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
176
|
-
annotations: [
|
|
182
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
177
183
|
|
|
178
184
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
179
185
|
editorialDesk: String
|
|
@@ -225,17 +231,20 @@ type Placeholder implements Content {
|
|
|
225
231
|
"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."
|
|
226
232
|
url(vanity: Boolean, relative: Boolean): String!
|
|
227
233
|
|
|
228
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
234
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
229
235
|
publishedDate: String!
|
|
230
236
|
|
|
231
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
237
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
232
238
|
publishedTimestamp: Float!
|
|
233
239
|
|
|
240
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
241
|
+
modifiedTimestamp: Float!
|
|
242
|
+
|
|
234
243
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
235
244
|
firstPublishedDate: String!
|
|
236
245
|
|
|
237
246
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
238
|
-
publishReference: String
|
|
247
|
+
publishReference: String
|
|
239
248
|
|
|
240
249
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
241
250
|
mainImage: Image
|
|
@@ -253,7 +262,7 @@ type Placeholder implements Content {
|
|
|
253
262
|
teaser: Teaser
|
|
254
263
|
|
|
255
264
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
256
|
-
annotations: [
|
|
265
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
257
266
|
|
|
258
267
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
259
268
|
editorialDesk: String
|
|
@@ -305,17 +314,20 @@ type LiveBlogPackage implements Content {
|
|
|
305
314
|
"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."
|
|
306
315
|
url(vanity: Boolean, relative: Boolean): String!
|
|
307
316
|
|
|
308
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
317
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
309
318
|
publishedDate: String!
|
|
310
319
|
|
|
311
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
320
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
312
321
|
publishedTimestamp: Float!
|
|
313
322
|
|
|
323
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
324
|
+
modifiedTimestamp: Float!
|
|
325
|
+
|
|
314
326
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
315
327
|
firstPublishedDate: String!
|
|
316
328
|
|
|
317
329
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
318
|
-
publishReference: String
|
|
330
|
+
publishReference: String
|
|
319
331
|
|
|
320
332
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
321
333
|
mainImage: Image
|
|
@@ -333,7 +345,7 @@ type LiveBlogPackage implements Content {
|
|
|
333
345
|
teaser: Teaser
|
|
334
346
|
|
|
335
347
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
336
|
-
annotations: [
|
|
348
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
337
349
|
|
|
338
350
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
339
351
|
editorialDesk: String
|
|
@@ -357,12 +369,7 @@ type LiveBlogPackage implements Content {
|
|
|
357
369
|
design: Design
|
|
358
370
|
|
|
359
371
|
"The child articles of this live blog package."
|
|
360
|
-
liveBlogPosts
|
|
361
|
-
includePinned: Boolean
|
|
362
|
-
@deprecated(
|
|
363
|
-
reason: "avoiding breaking change, will remove argument on next major release"
|
|
364
|
-
)
|
|
365
|
-
): [Content]
|
|
372
|
+
liveBlogPosts: [Content]
|
|
366
373
|
|
|
367
374
|
"The pinned article of this live blog package."
|
|
368
375
|
pinnedPost: Content
|
|
@@ -396,17 +403,20 @@ type LiveBlogPost implements Content {
|
|
|
396
403
|
"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."
|
|
397
404
|
url(vanity: Boolean, relative: Boolean): String!
|
|
398
405
|
|
|
399
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
406
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
400
407
|
publishedDate: String!
|
|
401
408
|
|
|
402
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
409
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
403
410
|
publishedTimestamp: Float!
|
|
404
411
|
|
|
412
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
413
|
+
modifiedTimestamp: Float!
|
|
414
|
+
|
|
405
415
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
406
416
|
firstPublishedDate: String!
|
|
407
417
|
|
|
408
418
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
409
|
-
publishReference: String
|
|
419
|
+
publishReference: String
|
|
410
420
|
|
|
411
421
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
412
422
|
mainImage: Image
|
|
@@ -424,7 +434,7 @@ type LiveBlogPost implements Content {
|
|
|
424
434
|
teaser: Teaser
|
|
425
435
|
|
|
426
436
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
427
|
-
annotations: [
|
|
437
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
428
438
|
|
|
429
439
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
430
440
|
editorialDesk: String
|
|
@@ -455,7 +465,12 @@ type LiveBlogPost implements Content {
|
|
|
455
465
|
|
|
456
466
|
"Whether the live-blog-post should be pinned."
|
|
457
467
|
isPinned: Boolean
|
|
458
|
-
|
|
468
|
+
|
|
469
|
+
"The People API data for the authors of the live blog post"
|
|
470
|
+
authors: [Person!]!
|
|
471
|
+
@deprecated(
|
|
472
|
+
reason: "use Content.annotations(byPredicate: \"http://www.ft.com/ontology/annotation/hasAuthor\")"
|
|
473
|
+
)
|
|
459
474
|
}
|
|
460
475
|
|
|
461
476
|
type Audio implements Content {
|
|
@@ -483,17 +498,20 @@ type Audio implements Content {
|
|
|
483
498
|
"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."
|
|
484
499
|
url(vanity: Boolean, relative: Boolean): String!
|
|
485
500
|
|
|
486
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
501
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
487
502
|
publishedDate: String!
|
|
488
503
|
|
|
489
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
504
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
490
505
|
publishedTimestamp: Float!
|
|
491
506
|
|
|
507
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
508
|
+
modifiedTimestamp: Float!
|
|
509
|
+
|
|
492
510
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
493
511
|
firstPublishedDate: String!
|
|
494
512
|
|
|
495
513
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
496
|
-
publishReference: String
|
|
514
|
+
publishReference: String
|
|
497
515
|
|
|
498
516
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
499
517
|
mainImage: Image
|
|
@@ -511,7 +529,7 @@ type Audio implements Content {
|
|
|
511
529
|
teaser: Teaser
|
|
512
530
|
|
|
513
531
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
514
|
-
annotations: [
|
|
532
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
515
533
|
|
|
516
534
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
517
535
|
editorialDesk: String
|
|
@@ -563,17 +581,20 @@ type Video implements Content {
|
|
|
563
581
|
"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."
|
|
564
582
|
url(vanity: Boolean, relative: Boolean): String!
|
|
565
583
|
|
|
566
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
584
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
567
585
|
publishedDate: String!
|
|
568
586
|
|
|
569
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
587
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
570
588
|
publishedTimestamp: Float!
|
|
571
589
|
|
|
590
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
591
|
+
modifiedTimestamp: Float!
|
|
592
|
+
|
|
572
593
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
573
594
|
firstPublishedDate: String!
|
|
574
595
|
|
|
575
596
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
576
|
-
publishReference: String
|
|
597
|
+
publishReference: String
|
|
577
598
|
|
|
578
599
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
579
600
|
mainImage: Image
|
|
@@ -591,7 +612,7 @@ type Video implements Content {
|
|
|
591
612
|
teaser: Teaser
|
|
592
613
|
|
|
593
614
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
594
|
-
annotations: [
|
|
615
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
595
616
|
|
|
596
617
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
597
618
|
editorialDesk: String
|
|
@@ -640,17 +661,20 @@ type ContentPackage implements Content {
|
|
|
640
661
|
"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."
|
|
641
662
|
url(vanity: Boolean, relative: Boolean): String!
|
|
642
663
|
|
|
643
|
-
"The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
664
|
+
"The ISO string date the article was marked as published, eg. '2024-04-03T10:35:52.443Z'."
|
|
644
665
|
publishedDate: String!
|
|
645
666
|
|
|
646
|
-
"The number of milliseconds since the unix epoch the article was published, eg '1712140552443'."
|
|
667
|
+
"The number of milliseconds since the unix epoch the article was marked as published, eg '1712140552443'."
|
|
647
668
|
publishedTimestamp: Float!
|
|
648
669
|
|
|
670
|
+
"The number of milliseconds since the unix epoch the article was last changed, eg '1712140552443'."
|
|
671
|
+
modifiedTimestamp: Float!
|
|
672
|
+
|
|
649
673
|
"The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'."
|
|
650
674
|
firstPublishedDate: String!
|
|
651
675
|
|
|
652
676
|
"A string ID used to trace content publishes through the pipeline, e.g. 'republish_tid_JNhUrBjdXo'."
|
|
653
|
-
publishReference: String
|
|
677
|
+
publishReference: String
|
|
654
678
|
|
|
655
679
|
"An image object containing the url and the caption, to be displayed usually before the article content."
|
|
656
680
|
mainImage: Image
|
|
@@ -668,7 +692,7 @@ type ContentPackage implements Content {
|
|
|
668
692
|
teaser: Teaser
|
|
669
693
|
|
|
670
694
|
"An array of concepts related to the article, eg. organisations or topics."
|
|
671
|
-
annotations: [
|
|
695
|
+
annotations(byPredicate: String): [ConceptInterface!]!
|
|
672
696
|
|
|
673
697
|
"The editorial division the article belongs to, eg. 'FT-SpecialReports'."
|
|
674
698
|
editorialDesk: String
|
package/typedefs/image.graphql
CHANGED
|
@@ -3,10 +3,10 @@ type ImageSource {
|
|
|
3
3
|
url: String!
|
|
4
4
|
|
|
5
5
|
"The width of the image source in pixels."
|
|
6
|
-
width: Int
|
|
6
|
+
width: Int!
|
|
7
7
|
|
|
8
8
|
"The device pixel ratio. DPR is calculated as DPR = Physical Pixels (pixels seen on screen) / Logical Pixels (pixel that can fit in a given space)."
|
|
9
|
-
dpr: Int
|
|
9
|
+
dpr: Int!
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
interface Image {
|
|
@@ -23,7 +23,7 @@ interface Image {
|
|
|
23
23
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
24
24
|
|
|
25
25
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
26
|
-
url: String
|
|
26
|
+
url: String!
|
|
27
27
|
|
|
28
28
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
29
29
|
altText: String
|
|
@@ -55,7 +55,7 @@ type ImageStandardInline implements Image {
|
|
|
55
55
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
56
56
|
|
|
57
57
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
58
|
-
url: String
|
|
58
|
+
url: String!
|
|
59
59
|
|
|
60
60
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
61
61
|
altText: String
|
|
@@ -87,7 +87,7 @@ type ImageDesktop implements Image {
|
|
|
87
87
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
88
88
|
|
|
89
89
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
90
|
-
url: String
|
|
90
|
+
url: String!
|
|
91
91
|
|
|
92
92
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
93
93
|
altText: String
|
|
@@ -119,7 +119,7 @@ type ImageMobile implements Image {
|
|
|
119
119
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
120
120
|
|
|
121
121
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
122
|
-
url: String
|
|
122
|
+
url: String!
|
|
123
123
|
|
|
124
124
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
125
125
|
altText: String
|
|
@@ -151,7 +151,7 @@ type ImageStandard implements Image {
|
|
|
151
151
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
152
152
|
|
|
153
153
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
154
|
-
url: String
|
|
154
|
+
url: String!
|
|
155
155
|
|
|
156
156
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
157
157
|
altText: String
|
|
@@ -183,7 +183,7 @@ type ImageSquare implements Image {
|
|
|
183
183
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
184
184
|
|
|
185
185
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
186
|
-
url: String
|
|
186
|
+
url: String!
|
|
187
187
|
|
|
188
188
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
189
189
|
altText: String
|
|
@@ -215,7 +215,7 @@ type ImageWide implements Image {
|
|
|
215
215
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
216
216
|
|
|
217
217
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
218
|
-
url: String
|
|
218
|
+
url: String!
|
|
219
219
|
|
|
220
220
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
221
221
|
altText: String
|
|
@@ -247,7 +247,7 @@ type ImageSquareFTEdit implements Image {
|
|
|
247
247
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
248
248
|
|
|
249
249
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
250
|
-
url: String
|
|
250
|
+
url: String!
|
|
251
251
|
|
|
252
252
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
253
253
|
altText: String
|
|
@@ -279,7 +279,7 @@ type ImagePortrait implements Image {
|
|
|
279
279
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
280
280
|
|
|
281
281
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
282
|
-
url: String
|
|
282
|
+
url: String!
|
|
283
283
|
|
|
284
284
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
285
285
|
altText: String
|
|
@@ -311,7 +311,7 @@ type ImageLandscape implements Image {
|
|
|
311
311
|
sourceSet(width: Int, maxDpr: Int): [ImageSource!]!
|
|
312
312
|
|
|
313
313
|
"The url of the image, eg. 'https://www.ft.com/__origami/service/image/v2/images/raw/ftcms%3Aimage%3A0e7e7b6e-4e7b-11e9-bde6-79e4b4311f90?source=next&fit=scale-down&width=700'."
|
|
314
|
-
url: String
|
|
314
|
+
url: String!
|
|
315
315
|
|
|
316
316
|
"Text describing the content of the image, usually hidden from the user unless the image is not available. It is to be read by screen readers."
|
|
317
317
|
altText: String
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
type FlourishSource {
|
|
2
|
+
"The id of the source."
|
|
3
|
+
id: String!
|
|
4
|
+
|
|
5
|
+
"The Origami image service url"
|
|
6
|
+
url: String!
|
|
7
|
+
|
|
8
|
+
"The type of the source, e.g. visualisation for leadFlourish "
|
|
9
|
+
type: String!
|
|
10
|
+
|
|
11
|
+
"The format of the source, eg. 'standard'."
|
|
12
|
+
format: ImageFormat!
|
|
13
|
+
|
|
14
|
+
"The width of the source."
|
|
15
|
+
width: Int!
|
|
16
|
+
|
|
17
|
+
"The height of the source."
|
|
18
|
+
height: Int!
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type LeadFlourish {
|
|
22
|
+
"The type of the chart, eg. 'visualisation'."
|
|
23
|
+
type: String
|
|
24
|
+
|
|
25
|
+
"The id of the Flourish chart."
|
|
26
|
+
id: String
|
|
27
|
+
|
|
28
|
+
"The description of the Flourish chart."
|
|
29
|
+
description: String
|
|
30
|
+
|
|
31
|
+
fallbackImage: FlourishSource!
|
|
32
|
+
}
|
package/typedefs/person.graphql
CHANGED
package/typedefs/picture.graphql
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"A wrapper for images."
|
|
2
|
-
interface Picture {
|
|
1
|
+
"A wrapper for images."
|
|
2
|
+
interface Picture {
|
|
3
3
|
"A set of images with different sizes and formats."
|
|
4
4
|
images: [Image!]!
|
|
5
5
|
|
|
@@ -13,7 +13,7 @@ interface Picture {
|
|
|
13
13
|
credit: String
|
|
14
14
|
|
|
15
15
|
"The layout width of the image, eg, 'standard'."
|
|
16
|
-
layoutWidth: String
|
|
16
|
+
layoutWidth: String!
|
|
17
17
|
|
|
18
18
|
"The type of the image, eg. 'image' or 'graphic'."
|
|
19
19
|
imageType: ImageType!
|
|
@@ -36,7 +36,7 @@ type PictureStandard implements Picture {
|
|
|
36
36
|
credit: String
|
|
37
37
|
|
|
38
38
|
"The layout width of the image, eg, 'standard'."
|
|
39
|
-
layoutWidth: String
|
|
39
|
+
layoutWidth: String!
|
|
40
40
|
|
|
41
41
|
"The type of the image, eg. 'image' or 'graphic'."
|
|
42
42
|
imageType: ImageType!
|
|
@@ -59,7 +59,7 @@ type PictureInline implements Picture {
|
|
|
59
59
|
credit: String
|
|
60
60
|
|
|
61
61
|
"The layout width of the image, eg, 'standard'."
|
|
62
|
-
layoutWidth: String
|
|
62
|
+
layoutWidth: String!
|
|
63
63
|
|
|
64
64
|
"The type of the image, eg. 'image' or 'graphic'."
|
|
65
65
|
imageType: ImageType!
|
|
@@ -82,7 +82,7 @@ type PictureFullBleed implements Picture {
|
|
|
82
82
|
credit: String
|
|
83
83
|
|
|
84
84
|
"The layout width of the image, eg, 'standard'."
|
|
85
|
-
layoutWidth: String
|
|
85
|
+
layoutWidth: String!
|
|
86
86
|
|
|
87
87
|
"The type of the image, eg. 'image' or 'graphic'."
|
|
88
88
|
imageType: ImageType!
|
|
@@ -7,18 +7,30 @@ type ClipSet implements Reference {
|
|
|
7
7
|
|
|
8
8
|
"Whether the clip should play automatically when loaded."
|
|
9
9
|
autoplay: Boolean
|
|
10
|
+
@deprecated(
|
|
11
|
+
reason: "field is redundant as already returned in content-tree"
|
|
12
|
+
)
|
|
10
13
|
|
|
11
14
|
"An object containing the accessibility details of the clip."
|
|
12
15
|
accessibility: Accessibility
|
|
13
16
|
|
|
14
17
|
"Whether the clip should loop."
|
|
15
18
|
loop: Boolean
|
|
19
|
+
@deprecated(
|
|
20
|
+
reason: "field is redundant as already returned in content-tree"
|
|
21
|
+
)
|
|
16
22
|
|
|
17
23
|
"Whether the clip should be muted."
|
|
18
24
|
muted: Boolean
|
|
25
|
+
@deprecated(
|
|
26
|
+
reason: "field is redundant as already returned in content-tree"
|
|
27
|
+
)
|
|
19
28
|
|
|
20
29
|
"The layout of the clip set, eg. 'in-line'."
|
|
21
30
|
dataLayout: String
|
|
31
|
+
@deprecated(
|
|
32
|
+
reason: "field is redundant as already returned in content-tree"
|
|
33
|
+
)
|
|
22
34
|
|
|
23
35
|
"Whether the clip set should **not** include audio."
|
|
24
36
|
noAudio: Boolean
|
|
@@ -36,7 +48,7 @@ type ClipSet implements Reference {
|
|
|
36
48
|
displayTitle: String
|
|
37
49
|
|
|
38
50
|
"An array of content warnings for the clip set."
|
|
39
|
-
contentWarning: [String]
|
|
51
|
+
contentWarning: [String!]
|
|
40
52
|
|
|
41
53
|
"The source of the clip set, eg. 'YouTube'."
|
|
42
54
|
source: String
|
|
@@ -48,5 +60,5 @@ type ClipSet implements Reference {
|
|
|
48
60
|
publishedDate: String
|
|
49
61
|
|
|
50
62
|
"An array of clips in the clip set."
|
|
51
|
-
clips: [Clip]
|
|
63
|
+
clips: [Clip!]
|
|
52
64
|
}
|