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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/lib/generated/index.d.ts +668 -907
  3. package/lib/model/CapiResponse.d.ts +14 -4
  4. package/lib/model/CapiResponse.js +19 -4
  5. package/lib/model/CapiResponse.js.map +1 -1
  6. package/lib/model/RichText.d.ts +1 -1
  7. package/lib/model/RichText.js.map +1 -1
  8. package/lib/model/Topper.d.ts +2 -2
  9. package/lib/model/Topper.js +2 -2
  10. package/lib/model/Topper.js.map +1 -1
  11. package/lib/model/schemas/capi/content-package.d.ts +18 -0
  12. package/lib/model/schemas/capi/content-package.js +1 -0
  13. package/lib/model/schemas/capi/content-package.js.map +1 -1
  14. package/lib/resolvers/clip.d.ts +10 -0
  15. package/lib/resolvers/clip.js +10 -0
  16. package/lib/resolvers/clip.js.map +1 -1
  17. package/lib/resolvers/content-tree/references/ClipSet.d.ts +13 -0
  18. package/lib/resolvers/content-tree/references/ClipSet.js +12 -1
  19. package/lib/resolvers/content-tree/references/ClipSet.js.map +1 -1
  20. package/lib/resolvers/content-tree/references/Flourish.d.ts +6 -0
  21. package/lib/resolvers/content-tree/references/Flourish.js +15 -1
  22. package/lib/resolvers/content-tree/references/Flourish.js.map +1 -1
  23. package/lib/resolvers/content-tree/references/ImageSet.d.ts +1 -0
  24. package/lib/resolvers/content-tree/references/ImageSet.js +3 -0
  25. package/lib/resolvers/content-tree/references/ImageSet.js.map +1 -1
  26. package/lib/resolvers/content-tree/references/LayoutImage.d.ts +1 -0
  27. package/lib/resolvers/content-tree/references/LayoutImage.js +3 -0
  28. package/lib/resolvers/content-tree/references/LayoutImage.js.map +1 -1
  29. package/lib/resolvers/content-tree/references/RawImage.d.ts +1 -0
  30. package/lib/resolvers/content-tree/references/RawImage.js +3 -0
  31. package/lib/resolvers/content-tree/references/RawImage.js.map +1 -1
  32. package/lib/resolvers/content-tree/references/Recommended.d.ts +1 -0
  33. package/lib/resolvers/content-tree/references/Recommended.js +3 -0
  34. package/lib/resolvers/content-tree/references/Recommended.js.map +1 -1
  35. package/lib/resolvers/content-tree/references/Reference.d.ts +1 -1
  36. package/lib/resolvers/content-tree/references/Reference.js +1 -3
  37. package/lib/resolvers/content-tree/references/Reference.js.map +1 -1
  38. package/lib/resolvers/content-tree/references/ScrollyImage.d.ts +1 -0
  39. package/lib/resolvers/content-tree/references/ScrollyImage.js +3 -0
  40. package/lib/resolvers/content-tree/references/ScrollyImage.js.map +1 -1
  41. package/lib/resolvers/content-tree/references/Tweet.d.ts +1 -0
  42. package/lib/resolvers/content-tree/references/Tweet.js +3 -0
  43. package/lib/resolvers/content-tree/references/Tweet.js.map +1 -1
  44. package/lib/resolvers/content-tree/references/Video.d.ts +2 -1
  45. package/lib/resolvers/content-tree/references/Video.js +4 -3
  46. package/lib/resolvers/content-tree/references/Video.js.map +1 -1
  47. package/lib/resolvers/content-tree/references/index.d.ts +5 -1
  48. package/lib/resolvers/content-tree/references/index.js +4 -0
  49. package/lib/resolvers/content-tree/references/index.js.map +1 -1
  50. package/lib/resolvers/content.d.ts +242 -33
  51. package/lib/resolvers/content.js +66 -31
  52. package/lib/resolvers/content.js.map +1 -1
  53. package/lib/resolvers/image.d.ts +142 -12
  54. package/lib/resolvers/image.js +45 -10
  55. package/lib/resolvers/image.js.map +1 -1
  56. package/lib/resolvers/index.d.ts +588 -60
  57. package/lib/resolvers/picture.d.ts +41 -8
  58. package/lib/resolvers/picture.js +19 -21
  59. package/lib/resolvers/picture.js.map +1 -1
  60. package/lib/resolvers/richText.d.ts +14 -2
  61. package/lib/resolvers/richText.js +8 -6
  62. package/lib/resolvers/richText.js.map +1 -1
  63. package/lib/resolvers/scalars.d.ts +2 -0
  64. package/lib/resolvers/scalars.js +2 -0
  65. package/lib/resolvers/scalars.js.map +1 -1
  66. package/lib/resolvers/teaser.d.ts +5 -0
  67. package/lib/resolvers/teaser.js +6 -1
  68. package/lib/resolvers/teaser.js.map +1 -1
  69. package/lib/resolvers/topper.d.ts +127 -7
  70. package/lib/resolvers/topper.js +64 -6
  71. package/lib/resolvers/topper.js.map +1 -1
  72. package/package.json +1 -1
  73. package/src/generated/index.ts +668 -668
  74. package/src/model/CapiResponse.ts +32 -7
  75. package/src/model/RichText.ts +1 -1
  76. package/src/model/Topper.ts +2 -2
  77. package/src/model/schemas/capi/content-package.ts +1 -0
  78. package/src/resolvers/clip.ts +13 -2
  79. package/src/resolvers/content-tree/references/ClipSet.ts +22 -2
  80. package/src/resolvers/content-tree/references/Flourish.ts +20 -1
  81. package/src/resolvers/content-tree/references/ImageSet.ts +4 -0
  82. package/src/resolvers/content-tree/references/LayoutImage.ts +4 -0
  83. package/src/resolvers/content-tree/references/RawImage.ts +4 -0
  84. package/src/resolvers/content-tree/references/Recommended.ts +4 -0
  85. package/src/resolvers/content-tree/references/Reference.ts +1 -3
  86. package/src/resolvers/content-tree/references/ScrollyImage.ts +4 -0
  87. package/src/resolvers/content-tree/references/Tweet.ts +4 -0
  88. package/src/resolvers/content-tree/references/Video.ts +5 -3
  89. package/src/resolvers/content-tree/references/index.ts +13 -2
  90. package/src/resolvers/content.ts +88 -38
  91. package/src/resolvers/image.ts +75 -5
  92. package/src/resolvers/picture.ts +35 -23
  93. package/src/resolvers/richText.ts +13 -8
  94. package/src/resolvers/scalars.ts +2 -0
  95. package/src/resolvers/teaser.ts +6 -2
  96. package/src/resolvers/topper.ts +86 -6
  97. package/tsconfig.tsbuildinfo +1 -1
@@ -1,4 +1,19 @@
1
- import { PictureResolvers } from '../generated'
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
- layoutWidth(parent) {
15
- return parent.layoutWidth()
16
- },
17
- images(parent) {
18
- return parent.images()
19
- },
20
- fallbackImage(parent) {
21
- return parent.standard()
22
- },
23
- caption(parent) {
24
- return parent.standard().caption()
25
- },
26
- credit(parent) {
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 { Picture: PictureResolvers }
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
- return parent.raw()
7
- },
5
+ raw: (parent) => parent.raw(),
6
+ structured: (parent, _, context) => parent.structured(context),
7
+ source: (parent) => parent.source,
8
+ },
8
9
 
9
- structured(parent, args, context) {
10
- return parent.structured(context)
11
- },
10
+ StructuredContent: {
11
+ tree: (parent) => parent.tree,
12
+ references: (parent) => parent.references,
13
+ text: (parent) => parent.text ?? null,
12
14
  },
13
- } satisfies { RichText: RichTextResolvers }
15
+ } satisfies {
16
+ RichText: RichTextResolvers
17
+ StructuredContent: StructuredContentResolvers
18
+ }
14
19
 
15
20
  export default resolvers
@@ -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
@@ -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
 
@@ -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
- headline: (topper) => topper.headline(),
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