@financial-times/cp-content-pipeline-schema 3.11.0 → 3.12.1
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 +15 -0
- package/README.md +4 -4
- package/lib/generated/index.d.ts +17 -4
- package/lib/model/Content.d.ts +1 -0
- package/lib/model/Content.js +6 -0
- package/lib/model/Content.js.map +1 -1
- package/lib/model/schemas/capi/article.d.ts +33 -34
- 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 +31 -34
- package/lib/model/schemas/capi/base-schema.d.ts +61 -68
- package/lib/model/schemas/capi/base-schema.js +8 -0
- package/lib/model/schemas/capi/base-schema.js.map +1 -1
- package/lib/model/schemas/capi/content-package.d.ts +32 -52
- package/lib/model/schemas/capi/custom-code-component.d.ts +37 -39
- package/lib/model/schemas/capi/index.d.ts +193 -227
- package/lib/model/schemas/capi/live-blog-package.d.ts +31 -34
- package/lib/model/schemas/capi/placeholder.d.ts +31 -34
- package/lib/model/schemas/capi/video.d.ts +31 -34
- package/lib/resolvers/content-tree/Workarounds.d.ts +2 -8
- package/lib/resolvers/content-tree/references/Video.d.ts +3 -3
- package/lib/resolvers/content-tree/tagMappings.js +0 -1
- package/lib/resolvers/content-tree/tagMappings.js.map +1 -1
- package/lib/resolvers/content.d.ts +1 -0
- package/lib/resolvers/content.js +1 -0
- package/lib/resolvers/content.js.map +1 -1
- package/lib/resolvers/index.d.ts +2 -0
- package/lib/resolvers/scalars.d.ts +2 -0
- package/lib/resolvers/scalars.js +11 -1
- package/lib/resolvers/scalars.js.map +1 -1
- package/package.json +4 -4
- package/queries/article.graphql +1 -0
- package/src/generated/index.ts +15 -4
- package/src/model/Content.ts +6 -0
- package/src/model/schemas/capi/article.ts +1 -0
- package/src/model/schemas/capi/base-schema.ts +8 -0
- package/src/resolvers/content-tree/Workarounds.ts +2 -9
- package/src/resolvers/content-tree/tagMappings.ts +0 -1
- package/src/resolvers/content.ts +1 -0
- package/src/resolvers/scalars.ts +18 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/typedefs/content.graphql +3 -0
- package/typedefs/scalars.graphql +1 -0
package/src/generated/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { LeadFlourish as LeadFlourishModel } from '../model/LeadFlourish';
|
|
|
12
12
|
import type { FlourishSource as FlourishSourceModel } from '../model/FlourishSource';
|
|
13
13
|
import type { ContentTree } from '@financial-times/content-tree';
|
|
14
14
|
import type { ReferenceWithCAPIData } from '../resolvers/content-tree/references';
|
|
15
|
-
import type {
|
|
15
|
+
import type { Author as AuthorNode, ClipSet as ClipSetNode, OldClip as OldClipNode, RawImage as RawImageNode } from '../resolvers/content-tree/Workarounds';
|
|
16
16
|
import type { QueryContext } from '../';
|
|
17
17
|
export type Maybe<T> = T | null;
|
|
18
18
|
export type InputMaybe<T> = Maybe<T>;
|
|
@@ -34,6 +34,7 @@ export type Scalars = {
|
|
|
34
34
|
CanBeSyndicated: { input: 'yes' | 'no' | 'verify' | 'withContributorPayment' | 'unknown'; output: 'yes' | 'no' | 'verify' | 'withContributorPayment' | 'unknown'; }
|
|
35
35
|
ClipFormat: { input: 'standard-inline' | 'mobile'; output: 'standard-inline' | 'mobile'; }
|
|
36
36
|
ContentType: { input: 'Article' | 'Placeholder' | 'Video' | 'Audio' | 'LiveBlogPackage' | 'LiveBlogPost' | 'ContentPackage' | 'Content' | 'MediaResource' | 'CustomCodeComponent'; output: 'Article' | 'Placeholder' | 'Video' | 'Audio' | 'LiveBlogPackage' | 'LiveBlogPost' | 'ContentPackage' | 'Content' | 'MediaResource' | 'CustomCodeComponent'; }
|
|
37
|
+
DisclaimerType: { input: 'co-created-content' | 'client-supplied-content' | 'ft-studios-risky' | 'auditor'; output: 'co-created-content' | 'client-supplied-content' | 'ft-studios-risky' | 'auditor'; }
|
|
37
38
|
FollowButtonVariant: { input: 'standard' | 'inverse' | 'opinion' | 'alphaville' | 'monochrome' | 'inverse-monochrome'; output: 'standard' | 'inverse' | 'opinion' | 'alphaville' | 'monochrome' | 'inverse-monochrome'; }
|
|
38
39
|
ImageFormat: { input: 'standard' | 'standard-inline' | 'desktop' | 'mobile' | 'wide' | 'square' | 'square-ftedit' | 'portrait' | 'landscape'; output: 'standard' | 'standard-inline' | 'desktop' | 'mobile' | 'wide' | 'square' | 'square-ftedit' | 'portrait' | 'landscape'; }
|
|
39
40
|
ImageType: { input: 'image' | 'graphic'; output: 'image' | 'graphic'; }
|
|
@@ -87,6 +88,8 @@ export type Article = Content & {
|
|
|
87
88
|
readonly containedIn?: Maybe<Content>;
|
|
88
89
|
/** A design object containing the theme and layout of the article. */
|
|
89
90
|
readonly design?: Maybe<Design>;
|
|
91
|
+
/** Disclaimer type for commercial Partner Content articles */
|
|
92
|
+
readonly disclaimerType?: Maybe<Scalars['DisclaimerType']['output']>;
|
|
90
93
|
/** The editorial division the article belongs to, eg. 'FT-SpecialReports'. */
|
|
91
94
|
readonly editorialDesk?: Maybe<Scalars['String']['output']>;
|
|
92
95
|
/** The first ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
|
|
@@ -1994,7 +1997,7 @@ export type ResolversInterfaceTypes<RefType extends Record<string, unknown>> = R
|
|
|
1994
1997
|
Content: ( ContentModel ) | ( ContentModel ) | ( ContentModel ) | ( ContentModel ) | ( ContentModel ) | ( ContentModel ) | ( ContentModel );
|
|
1995
1998
|
Image: ( ImageModel ) | ( ImageModel ) | ( ImageModel ) | ( ImageModel ) | ( ImageModel ) | ( ImageModel ) | ( ImageModel ) | ( ImageModel ) | ( ImageModel );
|
|
1996
1999
|
Picture: ( PictureModel ) | ( PictureModel ) | ( PictureModel );
|
|
1997
|
-
Reference: ( ReferenceWithCAPIData<AuthorNode> ) | ( ReferenceWithCAPIData<ClipSetNode|OldClipNode> ) | ( ReferenceWithCAPIData<ContentTree.CustomCodeComponent> ) | ( ReferenceWithCAPIData<ContentTree.Flourish> ) | ( ReferenceWithCAPIData<ContentTree.ImageSet> ) | ( ReferenceWithCAPIData<ContentTree.LayoutImage> ) | ( ReferenceWithCAPIData<ContentTree.ImageSet> ) | ( ReferenceWithCAPIData<RawImageNode> ) | ( ReferenceWithCAPIData<ContentTree.Recommended> ) | ( ReferenceWithCAPIData<ContentTree.ScrollyImage> ) | ( ReferenceWithCAPIData<ContentTree.Tweet> ) | ( ReferenceWithCAPIData<
|
|
2000
|
+
Reference: ( ReferenceWithCAPIData<AuthorNode> ) | ( ReferenceWithCAPIData<ClipSetNode|OldClipNode> ) | ( ReferenceWithCAPIData<ContentTree.CustomCodeComponent> ) | ( ReferenceWithCAPIData<ContentTree.Flourish> ) | ( ReferenceWithCAPIData<ContentTree.ImageSet> ) | ( ReferenceWithCAPIData<ContentTree.LayoutImage> ) | ( ReferenceWithCAPIData<ContentTree.ImageSet> ) | ( ReferenceWithCAPIData<RawImageNode> ) | ( ReferenceWithCAPIData<ContentTree.Recommended> ) | ( ReferenceWithCAPIData<ContentTree.ScrollyImage> ) | ( ReferenceWithCAPIData<ContentTree.Tweet> ) | ( ReferenceWithCAPIData<ContentTree.Video> );
|
|
1998
2001
|
Topper: ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel );
|
|
1999
2002
|
TopperWithBrand: ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel ) | ( TopperModel );
|
|
2000
2003
|
TopperWithHeadshot: ( TopperModel ) | ( TopperModel );
|
|
@@ -2033,6 +2036,7 @@ export type ResolversTypes = ResolversObject<{
|
|
|
2033
2036
|
DeepLandscapeTopper: ResolverTypeWrapper<TopperModel>;
|
|
2034
2037
|
DeepPortraitTopper: ResolverTypeWrapper<TopperModel>;
|
|
2035
2038
|
Design: ResolverTypeWrapper<Design>;
|
|
2039
|
+
DisclaimerType: ResolverTypeWrapper<Scalars['DisclaimerType']['output']>;
|
|
2036
2040
|
Float: ResolverTypeWrapper<Scalars['Float']['output']>;
|
|
2037
2041
|
Flourish: ResolverTypeWrapper<ReferenceWithCAPIData<ContentTree.Flourish>>;
|
|
2038
2042
|
FlourishSource: ResolverTypeWrapper<FlourishSourceModel>;
|
|
@@ -2101,7 +2105,7 @@ export type ResolversTypes = ResolversObject<{
|
|
|
2101
2105
|
TopperWithTheme: ResolverTypeWrapper<TopperModel>;
|
|
2102
2106
|
Tweet: ResolverTypeWrapper<ReferenceWithCAPIData<ContentTree.Tweet>>;
|
|
2103
2107
|
Video: ResolverTypeWrapper<ContentModel>;
|
|
2104
|
-
VideoReference: ResolverTypeWrapper<ReferenceWithCAPIData<
|
|
2108
|
+
VideoReference: ResolverTypeWrapper<ReferenceWithCAPIData<ContentTree.Video>>;
|
|
2105
2109
|
}>;
|
|
2106
2110
|
|
|
2107
2111
|
/** Mapping between all available schema types and the resolvers parents */
|
|
@@ -2134,6 +2138,7 @@ export type ResolversParentTypes = ResolversObject<{
|
|
|
2134
2138
|
DeepLandscapeTopper: TopperModel;
|
|
2135
2139
|
DeepPortraitTopper: TopperModel;
|
|
2136
2140
|
Design: Design;
|
|
2141
|
+
DisclaimerType: Scalars['DisclaimerType']['output'];
|
|
2137
2142
|
Float: Scalars['Float']['output'];
|
|
2138
2143
|
Flourish: ReferenceWithCAPIData<ContentTree.Flourish>;
|
|
2139
2144
|
FlourishSource: FlourishSourceModel;
|
|
@@ -2202,7 +2207,7 @@ export type ResolversParentTypes = ResolversObject<{
|
|
|
2202
2207
|
TopperWithTheme: TopperModel;
|
|
2203
2208
|
Tweet: ReferenceWithCAPIData<ContentTree.Tweet>;
|
|
2204
2209
|
Video: ContentModel;
|
|
2205
|
-
VideoReference: ReferenceWithCAPIData<
|
|
2210
|
+
VideoReference: ReferenceWithCAPIData<ContentTree.Video>;
|
|
2206
2211
|
}>;
|
|
2207
2212
|
|
|
2208
2213
|
export interface AccessLevelScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['AccessLevel'], any> {
|
|
@@ -2238,6 +2243,7 @@ export type ArticleResolvers<ContextType = QueryContext, ParentType extends Reso
|
|
|
2238
2243
|
commentsEnabled: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
2239
2244
|
containedIn: Resolver<Maybe<ResolversTypes['Content']>, ParentType, ContextType>;
|
|
2240
2245
|
design: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
2246
|
+
disclaimerType: Resolver<Maybe<ResolversTypes['DisclaimerType']>, ParentType, ContextType>;
|
|
2241
2247
|
editorialDesk: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
2242
2248
|
firstPublishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
2243
2249
|
id: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
|
|
@@ -2551,6 +2557,10 @@ export type DesignResolvers<ContextType = QueryContext, ParentType extends Resol
|
|
|
2551
2557
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
2552
2558
|
}>;
|
|
2553
2559
|
|
|
2560
|
+
export interface DisclaimerTypeScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['DisclaimerType'], any> {
|
|
2561
|
+
name: 'DisclaimerType';
|
|
2562
|
+
}
|
|
2563
|
+
|
|
2554
2564
|
export type FlourishResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Flourish'] = ResolversParentTypes['Flourish']> = ResolversObject<{
|
|
2555
2565
|
fallbackImage: Resolver<Maybe<ResolversTypes['FlourishSource']>, ParentType, ContextType>;
|
|
2556
2566
|
type: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
@@ -3267,6 +3277,7 @@ export type Resolvers<ContextType = QueryContext> = ResolversObject<{
|
|
|
3267
3277
|
DeepLandscapeTopper: DeepLandscapeTopperResolvers<ContextType>;
|
|
3268
3278
|
DeepPortraitTopper: DeepPortraitTopperResolvers<ContextType>;
|
|
3269
3279
|
Design: DesignResolvers<ContextType>;
|
|
3280
|
+
DisclaimerType: GraphQLScalarType;
|
|
3270
3281
|
Flourish: FlourishResolvers<ContextType>;
|
|
3271
3282
|
FlourishSource: FlourishSourceResolvers<ContextType>;
|
|
3272
3283
|
FollowButtonVariant: GraphQLScalarType;
|
package/src/model/Content.ts
CHANGED
|
@@ -235,6 +235,14 @@ export const baseMetadataSchema = z.object({
|
|
|
235
235
|
.optional(),
|
|
236
236
|
publication: z.array(z.string()).optional(),
|
|
237
237
|
clientName: z.string().optional(),
|
|
238
|
+
disclaimerType: z
|
|
239
|
+
.union([
|
|
240
|
+
z.literal('co-created-content'),
|
|
241
|
+
z.literal('client-supplied-content'),
|
|
242
|
+
z.literal('ft-studios-risky'),
|
|
243
|
+
z.literal('auditor'),
|
|
244
|
+
])
|
|
245
|
+
.optional(),
|
|
238
246
|
internalAnalyticsTags: z.string().optional(),
|
|
239
247
|
})
|
|
240
248
|
|
|
@@ -68,13 +68,6 @@ export type MainImageRaw = Omit<RawImage, 'type'> & {
|
|
|
68
68
|
type: 'main-image-raw'
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
export interface Video extends ContentTree.Node {
|
|
72
|
-
type: 'video'
|
|
73
|
-
id: string
|
|
74
|
-
title?: string
|
|
75
|
-
embedded: boolean
|
|
76
|
-
}
|
|
77
|
-
|
|
78
71
|
export interface CccFallbackText extends ContentTree.Node {
|
|
79
72
|
type: 'ccc-fallback-text'
|
|
80
73
|
children: ContentTree.Paragraph[]
|
|
@@ -205,7 +198,7 @@ export type BodyBlock =
|
|
|
205
198
|
| Table
|
|
206
199
|
| Recommended
|
|
207
200
|
| ContentTree.Tweet
|
|
208
|
-
| Video
|
|
201
|
+
| ContentTree.Video
|
|
209
202
|
| ContentTree.YoutubeVideo
|
|
210
203
|
|
|
211
204
|
export type AnyNode =
|
|
@@ -247,7 +240,7 @@ export type AnyNode =
|
|
|
247
240
|
| TableBody
|
|
248
241
|
| TableRow
|
|
249
242
|
| TableCell
|
|
250
|
-
| Video
|
|
243
|
+
| ContentTree.Video
|
|
251
244
|
| ContentTree.YoutubeVideo
|
|
252
245
|
| MainImage
|
|
253
246
|
| MainImageRaw
|
package/src/resolvers/content.ts
CHANGED
|
@@ -95,6 +95,7 @@ const resolvers = {
|
|
|
95
95
|
containedIn: (parent) => parent.containedIn(),
|
|
96
96
|
publication: (parent) => parent.publication() ?? null,
|
|
97
97
|
clientName: (parent) => parent.clientName() ?? null,
|
|
98
|
+
disclaimerType: (parent) => parent.disclaimerType() ?? null,
|
|
98
99
|
indicators: (parent) => {
|
|
99
100
|
return {
|
|
100
101
|
isPartnerContent: parent.isPartnerContent(),
|
package/src/resolvers/scalars.ts
CHANGED
|
@@ -175,6 +175,23 @@ export const LayoutHint = new LiteralUnionScalar<
|
|
|
175
175
|
values: ['standaloneimage', 'landscape', 'bigstory', 'assassination'],
|
|
176
176
|
})
|
|
177
177
|
|
|
178
|
+
export const DisclaimerType = new LiteralUnionScalar<
|
|
179
|
+
[
|
|
180
|
+
'co-created-content',
|
|
181
|
+
'client-supplied-content',
|
|
182
|
+
'ft-studios-risky',
|
|
183
|
+
'auditor'
|
|
184
|
+
]
|
|
185
|
+
>({
|
|
186
|
+
name: 'DisclaimerType',
|
|
187
|
+
values: [
|
|
188
|
+
'co-created-content',
|
|
189
|
+
'client-supplied-content',
|
|
190
|
+
'ft-studios-risky',
|
|
191
|
+
'auditor',
|
|
192
|
+
],
|
|
193
|
+
})
|
|
194
|
+
|
|
178
195
|
const resolvers = {
|
|
179
196
|
ClipFormat,
|
|
180
197
|
ImageFormat,
|
|
@@ -188,6 +205,7 @@ const resolvers = {
|
|
|
188
205
|
ContentType,
|
|
189
206
|
ListType,
|
|
190
207
|
LayoutHint,
|
|
208
|
+
DisclaimerType,
|
|
191
209
|
JSON: new GraphQLScalarType({ name: 'JSON' }),
|
|
192
210
|
}
|
|
193
211
|
|