@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/src/resolvers/picture.ts
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
PictureResolvers,
|
|
3
|
+
PictureFullBleedResolvers,
|
|
4
|
+
PictureInlineResolvers,
|
|
5
|
+
PictureStandardResolvers,
|
|
6
|
+
} from '../generated'
|
|
7
|
+
|
|
8
|
+
const pictureResolvers: PictureResolvers = {
|
|
9
|
+
alt: (parent) => parent.standard().alt(),
|
|
10
|
+
caption: (parent) => parent.standard().caption(),
|
|
11
|
+
credit: (parent) => parent.standard().credit(),
|
|
12
|
+
fallbackImage: (parent) => parent.standard(),
|
|
13
|
+
images: (parent) => parent.images(),
|
|
14
|
+
imageType: (parent) => parent.standard().type(),
|
|
15
|
+
layoutWidth: (parent) => parent.layoutWidth(),
|
|
16
|
+
}
|
|
2
17
|
|
|
3
18
|
const resolvers = {
|
|
4
19
|
Picture: {
|
|
@@ -11,28 +26,25 @@ const resolvers = {
|
|
|
11
26
|
} as const
|
|
12
27
|
return layoutWidthToType[layoutWidth]
|
|
13
28
|
},
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return parent.standard().credit()
|
|
28
|
-
},
|
|
29
|
-
alt(parent) {
|
|
30
|
-
return parent.standard().alt()
|
|
31
|
-
},
|
|
32
|
-
imageType(parent) {
|
|
33
|
-
return parent.standard().type()
|
|
34
|
-
},
|
|
29
|
+
...pictureResolvers,
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
PictureStandard: {
|
|
33
|
+
...pictureResolvers,
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
PictureInline: {
|
|
37
|
+
...pictureResolvers,
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
PictureFullBleed: {
|
|
41
|
+
...pictureResolvers,
|
|
35
42
|
},
|
|
36
|
-
} satisfies {
|
|
43
|
+
} satisfies {
|
|
44
|
+
Picture: PictureResolvers
|
|
45
|
+
PictureFullBleed: PictureFullBleedResolvers
|
|
46
|
+
PictureInline: PictureInlineResolvers
|
|
47
|
+
PictureStandard: PictureStandardResolvers
|
|
48
|
+
}
|
|
37
49
|
|
|
38
50
|
export default resolvers
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import { RichTextResolvers } from '../generated'
|
|
1
|
+
import { RichTextResolvers, StructuredContentResolvers } from '../generated'
|
|
2
2
|
|
|
3
3
|
const resolvers = {
|
|
4
4
|
RichText: {
|
|
5
|
-
raw(parent)
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
raw: (parent) => parent.raw(),
|
|
6
|
+
structured: (parent, _, context) => parent.structured(context),
|
|
7
|
+
source: (parent) => parent.source,
|
|
8
|
+
},
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
StructuredContent: {
|
|
11
|
+
tree: (parent) => parent.tree,
|
|
12
|
+
references: (parent) => parent.references,
|
|
13
|
+
text: (parent) => parent.text ?? null,
|
|
12
14
|
},
|
|
13
|
-
} satisfies {
|
|
15
|
+
} satisfies {
|
|
16
|
+
RichText: RichTextResolvers
|
|
17
|
+
StructuredContent: StructuredContentResolvers
|
|
18
|
+
}
|
|
14
19
|
|
|
15
20
|
export default resolvers
|
package/src/resolvers/scalars.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GraphQLScalarType } from 'graphql'
|
|
1
2
|
import { LiteralUnionScalar } from './literal-union'
|
|
2
3
|
|
|
3
4
|
export const ImageFormat = new LiteralUnionScalar<
|
|
@@ -155,6 +156,7 @@ const resolvers = {
|
|
|
155
156
|
ImageType,
|
|
156
157
|
RichTextSource,
|
|
157
158
|
ContentType,
|
|
159
|
+
JSON: new GraphQLScalarType({ name: 'JSON' }),
|
|
158
160
|
}
|
|
159
161
|
|
|
160
162
|
export default resolvers
|
package/src/resolvers/teaser.ts
CHANGED
|
@@ -2,8 +2,7 @@ import { TeaserResolvers } from '../generated'
|
|
|
2
2
|
|
|
3
3
|
const resolvers = {
|
|
4
4
|
Teaser: {
|
|
5
|
-
url: (parent, args) =>
|
|
6
|
-
args.relative ? parent.relativeUrl() : parent.url(),
|
|
5
|
+
url: (parent, args) => parent.url(args),
|
|
7
6
|
type: (parent) =>
|
|
8
7
|
parent
|
|
9
8
|
.type()
|
|
@@ -28,6 +27,11 @@ const resolvers = {
|
|
|
28
27
|
}
|
|
29
28
|
},
|
|
30
29
|
standfirst: (parent) => parent.standfirst(),
|
|
30
|
+
firstPublishedDate: (parent) => parent.firstPublishedDate(),
|
|
31
|
+
id: (parent) => parent.id(),
|
|
32
|
+
publishedDate: (parent) => parent.publishedDate(),
|
|
33
|
+
theme: (parent) => parent.design().theme,
|
|
34
|
+
title: (parent) => parent.title(),
|
|
31
35
|
},
|
|
32
36
|
} satisfies { Teaser: TeaserResolvers }
|
|
33
37
|
|
package/src/resolvers/topper.ts
CHANGED
|
@@ -6,17 +6,30 @@ import {
|
|
|
6
6
|
TopperWithPackageResolvers,
|
|
7
7
|
TopperWithThemeResolvers,
|
|
8
8
|
PodcastTopperResolvers,
|
|
9
|
+
TopperWithHeadshotResolvers,
|
|
10
|
+
BasicTopperResolvers,
|
|
11
|
+
SplitTextTopperResolvers,
|
|
12
|
+
FullBleedTopperResolvers,
|
|
13
|
+
DeepLandscapeTopperResolvers,
|
|
14
|
+
DeepPortraitTopperResolvers,
|
|
15
|
+
BrandedTopperResolvers,
|
|
9
16
|
} from '../generated'
|
|
10
17
|
|
|
18
|
+
const topperResolvers: TopperResolvers = {
|
|
19
|
+
backgroundBox: (topper) => topper.backgroundBox(),
|
|
20
|
+
backgroundColour: (topper) => topper.backgroundColour(),
|
|
21
|
+
displayConcept: (topper) => topper.displayConcept(),
|
|
22
|
+
followButtonVariant: (topper) => topper.followButtonVariant(),
|
|
23
|
+
genreConcept: (topper) => topper.genreConcept(),
|
|
24
|
+
headline: (topper) => topper.headline(),
|
|
25
|
+
intro: (topper) => topper.intro(),
|
|
26
|
+
textShadow: (topper) => topper.textShadow(),
|
|
27
|
+
}
|
|
28
|
+
|
|
11
29
|
const resolvers = {
|
|
12
30
|
Topper: {
|
|
13
31
|
__resolveType: (topper) => topper.type(),
|
|
14
|
-
|
|
15
|
-
intro: (topper) => topper.intro(),
|
|
16
|
-
backgroundColour: (topper) => topper.backgroundColour(),
|
|
17
|
-
displayConcept: (topper) => topper.displayConcept(),
|
|
18
|
-
followButtonVariant: (topper) => topper.followButtonVariant(),
|
|
19
|
-
genreConcept: (topper) => topper.genreConcept(),
|
|
32
|
+
...topperResolvers,
|
|
20
33
|
},
|
|
21
34
|
|
|
22
35
|
TopperWithImages: {
|
|
@@ -34,26 +47,93 @@ const resolvers = {
|
|
|
34
47
|
genreConcept: (topper) => topper.genreConcept(),
|
|
35
48
|
},
|
|
36
49
|
|
|
50
|
+
TopperWithHeadshot: {
|
|
51
|
+
headshot: (topper, args) => topper.headshot(args),
|
|
52
|
+
},
|
|
53
|
+
|
|
37
54
|
PodcastTopper: {
|
|
55
|
+
...topperResolvers,
|
|
56
|
+
brandConcept: (topper) => topper.brandConcept(),
|
|
38
57
|
headshot: (topper, args) => topper.headshot(args),
|
|
58
|
+
isLargeHeadline: (topper) => topper.isLargeHeadline(),
|
|
59
|
+
layout: (topper) => topper.layout(),
|
|
60
|
+
columnist: (topper) => topper.columnist(),
|
|
39
61
|
},
|
|
40
62
|
|
|
41
63
|
OpinionTopper: {
|
|
64
|
+
...topperResolvers,
|
|
42
65
|
headshot: (topper, args) => topper.headshot(args),
|
|
66
|
+
isLargeHeadline: (topper) => topper.isLargeHeadline(),
|
|
67
|
+
layout: (topper) => topper.layout(),
|
|
43
68
|
columnist: (topper) => topper.columnist(),
|
|
44
69
|
},
|
|
45
70
|
|
|
46
71
|
TopperWithPackage: {
|
|
47
72
|
design: (topper) => topper.design().theme,
|
|
48
73
|
},
|
|
74
|
+
|
|
75
|
+
BasicTopper: {
|
|
76
|
+
...topperResolvers,
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
BrandedTopper: {
|
|
80
|
+
...topperResolvers,
|
|
81
|
+
brandConcept: (topper) => topper.brandConcept(),
|
|
82
|
+
isLargeHeadline: (topper) => topper.isLargeHeadline(),
|
|
83
|
+
layout: (topper) => topper.layout(),
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
DeepLandscapeTopper: {
|
|
87
|
+
...topperResolvers,
|
|
88
|
+
brandConcept: (topper) => topper.brandConcept(),
|
|
89
|
+
isLargeHeadline: (topper) => topper.isLargeHeadline(),
|
|
90
|
+
layout: (topper) => topper.layout(),
|
|
91
|
+
fallbackImage: (topper) => topper.fallbackImage(),
|
|
92
|
+
images: (topper) => topper.images(),
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
DeepPortraitTopper: {
|
|
96
|
+
...topperResolvers,
|
|
97
|
+
brandConcept: (topper) => topper.brandConcept(),
|
|
98
|
+
isLargeHeadline: (topper) => topper.isLargeHeadline(),
|
|
99
|
+
layout: (topper) => topper.layout(),
|
|
100
|
+
fallbackImage: (topper) => topper.fallbackImage(),
|
|
101
|
+
images: (topper) => topper.images(),
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
FullBleedTopper: {
|
|
105
|
+
...topperResolvers,
|
|
106
|
+
brandConcept: (topper) => topper.brandConcept(),
|
|
107
|
+
isLargeHeadline: (topper) => topper.isLargeHeadline(),
|
|
108
|
+
layout: (topper) => topper.layout(),
|
|
109
|
+
fallbackImage: (topper) => topper.fallbackImage(),
|
|
110
|
+
images: (topper) => topper.images(),
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
SplitTextTopper: {
|
|
114
|
+
...topperResolvers,
|
|
115
|
+
design: (topper) => topper.design().theme,
|
|
116
|
+
brandConcept: (topper) => topper.brandConcept(),
|
|
117
|
+
isLargeHeadline: (topper) => topper.isLargeHeadline(),
|
|
118
|
+
layout: (topper) => topper.layout(),
|
|
119
|
+
fallbackImage: (topper) => topper.fallbackImage(),
|
|
120
|
+
images: (topper) => topper.images(),
|
|
121
|
+
},
|
|
49
122
|
} satisfies {
|
|
50
123
|
Topper: TopperResolvers
|
|
51
124
|
TopperWithImages: TopperWithImagesResolvers
|
|
52
125
|
TopperWithTheme: TopperWithThemeResolvers
|
|
53
126
|
TopperWithBrand: TopperWithBrandResolvers
|
|
127
|
+
TopperWithHeadshot: TopperWithHeadshotResolvers
|
|
54
128
|
TopperWithPackage: TopperWithPackageResolvers
|
|
55
129
|
PodcastTopper: PodcastTopperResolvers
|
|
56
130
|
OpinionTopper: OpinionTopperResolvers
|
|
131
|
+
BasicTopper: BasicTopperResolvers
|
|
132
|
+
BrandedTopper: BrandedTopperResolvers
|
|
133
|
+
DeepLandscapeTopper: DeepLandscapeTopperResolvers
|
|
134
|
+
DeepPortraitTopper: DeepPortraitTopperResolvers
|
|
135
|
+
FullBleedTopper: FullBleedTopperResolvers
|
|
136
|
+
SplitTextTopper: SplitTextTopperResolvers
|
|
57
137
|
}
|
|
58
138
|
|
|
59
139
|
export default resolvers
|