@financial-times/cp-content-pipeline-schema 0.7.25 → 0.7.26
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 +7 -0
- package/lib/generated/index.d.ts +24 -0
- package/lib/model/CapiResponse.d.ts +2 -1
- package/lib/model/CapiResponse.js +3 -0
- package/lib/model/CapiResponse.js.map +1 -1
- package/lib/model/schemas/capi/article.d.ts +3 -0
- 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 +3 -0
- 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 +3 -0
- package/lib/model/schemas/capi/base-schema.js +5 -0
- package/lib/model/schemas/capi/base-schema.js.map +1 -1
- package/lib/model/schemas/capi/content-package.d.ts +3 -0
- package/lib/model/schemas/capi/content-package.js +1 -0
- package/lib/model/schemas/capi/content-package.js.map +1 -1
- package/lib/model/schemas/capi/live-blog-package.d.ts +3 -0
- 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/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 +6 -1
- package/lib/resolvers/scalars.js.map +1 -1
- package/package.json +1 -1
- package/src/generated/index.ts +22 -0
- package/src/model/CapiResponse.ts +9 -1
- 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 -0
- package/src/model/schemas/capi/content-package.ts +1 -0
- package/src/model/schemas/capi/live-blog-package.ts +1 -0
- package/src/resolvers/content.ts +1 -0
- package/src/resolvers/scalars.ts +6 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/typedefs/content.graphql +8 -0
- package/typedefs/scalars.graphql +1 -0
package/src/generated/index.ts
CHANGED
|
@@ -26,6 +26,7 @@ export type Scalars = {
|
|
|
26
26
|
Int: { input: number; output: number; }
|
|
27
27
|
Float: { input: number; output: number; }
|
|
28
28
|
AccessLevel: { input: 'premium' | 'subscribed' | 'registered' | 'free'; output: 'premium' | 'subscribed' | 'registered' | 'free'; }
|
|
29
|
+
CanBeSyndicated: { input: 'yes' | 'no' | 'verify'; output: 'yes' | 'no' | 'verify'; }
|
|
29
30
|
ContentType: { input: 'Article' | 'Video' | 'Audio' | 'LiveBlogPackage' | 'LiveBlogPost' | 'ContentPackage' | 'Content' | 'MediaResource'; output: 'Article' | 'Video' | 'Audio' | 'LiveBlogPackage' | 'LiveBlogPost' | 'ContentPackage' | 'Content' | 'MediaResource'; }
|
|
30
31
|
FollowButtonVariant: { input: 'standard' | 'inverse' | 'opinion' | 'alphaville' | 'monochrome' | 'inverse-monochrome'; output: 'standard' | 'inverse' | 'opinion' | 'alphaville' | 'monochrome' | 'inverse-monochrome'; }
|
|
31
32
|
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'; }
|
|
@@ -52,6 +53,7 @@ export type Article = Content & {
|
|
|
52
53
|
readonly body?: Maybe<RichText>;
|
|
53
54
|
readonly bodyXML?: Maybe<Scalars['String']['output']>;
|
|
54
55
|
readonly byline?: Maybe<StructuredContent>;
|
|
56
|
+
readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
|
|
55
57
|
readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
56
58
|
readonly containedIn?: Maybe<Content>;
|
|
57
59
|
readonly design?: Maybe<Design>;
|
|
@@ -81,6 +83,7 @@ export type Audio = Content & {
|
|
|
81
83
|
readonly body?: Maybe<RichText>;
|
|
82
84
|
readonly bodyXML?: Maybe<Scalars['String']['output']>;
|
|
83
85
|
readonly byline?: Maybe<StructuredContent>;
|
|
86
|
+
readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
|
|
84
87
|
readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
85
88
|
readonly design?: Maybe<Design>;
|
|
86
89
|
readonly firstPublishedDate: Scalars['String']['output'];
|
|
@@ -151,6 +154,7 @@ export type Content = {
|
|
|
151
154
|
readonly body?: Maybe<RichText>;
|
|
152
155
|
readonly bodyXML?: Maybe<Scalars['String']['output']>;
|
|
153
156
|
readonly byline?: Maybe<StructuredContent>;
|
|
157
|
+
readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
|
|
154
158
|
readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
155
159
|
readonly design?: Maybe<Design>;
|
|
156
160
|
readonly firstPublishedDate: Scalars['String']['output'];
|
|
@@ -179,6 +183,7 @@ export type ContentPackage = Content & {
|
|
|
179
183
|
readonly body?: Maybe<RichText>;
|
|
180
184
|
readonly bodyXML?: Maybe<Scalars['String']['output']>;
|
|
181
185
|
readonly byline?: Maybe<StructuredContent>;
|
|
186
|
+
readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
|
|
182
187
|
readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
183
188
|
readonly contains?: Maybe<ReadonlyArray<Maybe<Teaser>>>;
|
|
184
189
|
readonly design?: Maybe<Design>;
|
|
@@ -489,6 +494,7 @@ export type LiveBlogPackage = Content & {
|
|
|
489
494
|
readonly body?: Maybe<RichText>;
|
|
490
495
|
readonly bodyXML?: Maybe<Scalars['String']['output']>;
|
|
491
496
|
readonly byline?: Maybe<StructuredContent>;
|
|
497
|
+
readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
|
|
492
498
|
readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
493
499
|
readonly design?: Maybe<Design>;
|
|
494
500
|
readonly firstPublishedDate: Scalars['String']['output'];
|
|
@@ -519,6 +525,7 @@ export type LiveBlogPost = Content & {
|
|
|
519
525
|
readonly body?: Maybe<RichText>;
|
|
520
526
|
readonly bodyXML?: Maybe<Scalars['String']['output']>;
|
|
521
527
|
readonly byline?: Maybe<StructuredContent>;
|
|
528
|
+
readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
|
|
522
529
|
readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
523
530
|
readonly design?: Maybe<Design>;
|
|
524
531
|
readonly firstPublishedDate: Scalars['String']['output'];
|
|
@@ -785,6 +792,7 @@ export type Video = Content & {
|
|
|
785
792
|
readonly body?: Maybe<RichText>;
|
|
786
793
|
readonly bodyXML?: Maybe<Scalars['String']['output']>;
|
|
787
794
|
readonly byline?: Maybe<StructuredContent>;
|
|
795
|
+
readonly canBeSyndicated?: Maybe<Scalars['CanBeSyndicated']['output']>;
|
|
788
796
|
readonly commentsEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
789
797
|
readonly design?: Maybe<Design>;
|
|
790
798
|
readonly firstPublishedDate: Scalars['String']['output'];
|
|
@@ -904,6 +912,7 @@ export type ResolversTypes = ResolversObject<{
|
|
|
904
912
|
BasicTopper: ResolverTypeWrapper<Omit<BasicTopper, 'displayConcept' | 'intro'> & { displayConcept?: Maybe<ResolversTypes['Concept']>, intro?: Maybe<ResolversTypes['RichText']> }>;
|
|
905
913
|
Boolean: ResolverTypeWrapper<Scalars['Boolean']['output']>;
|
|
906
914
|
BrandedTopper: ResolverTypeWrapper<Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & { brandConcept?: Maybe<ResolversTypes['Concept']>, displayConcept?: Maybe<ResolversTypes['Concept']>, genreConcept?: Maybe<ResolversTypes['Concept']>, intro?: Maybe<ResolversTypes['RichText']> }>;
|
|
915
|
+
CanBeSyndicated: ResolverTypeWrapper<Scalars['CanBeSyndicated']['output']>;
|
|
907
916
|
Concept: ResolverTypeWrapper<ConceptModel>;
|
|
908
917
|
Content: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['Content']>;
|
|
909
918
|
ContentPackage: ResolverTypeWrapper<CapiResponse>;
|
|
@@ -980,6 +989,7 @@ export type ResolversParentTypes = ResolversObject<{
|
|
|
980
989
|
BasicTopper: Omit<BasicTopper, 'displayConcept' | 'intro'> & { displayConcept?: Maybe<ResolversParentTypes['Concept']>, intro?: Maybe<ResolversParentTypes['RichText']> };
|
|
981
990
|
Boolean: Scalars['Boolean']['output'];
|
|
982
991
|
BrandedTopper: Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & { brandConcept?: Maybe<ResolversParentTypes['Concept']>, displayConcept?: Maybe<ResolversParentTypes['Concept']>, genreConcept?: Maybe<ResolversParentTypes['Concept']>, intro?: Maybe<ResolversParentTypes['RichText']> };
|
|
992
|
+
CanBeSyndicated: Scalars['CanBeSyndicated']['output'];
|
|
983
993
|
Concept: ConceptModel;
|
|
984
994
|
Content: ResolversInterfaceTypes<ResolversParentTypes>['Content'];
|
|
985
995
|
ContentPackage: CapiResponse;
|
|
@@ -1068,6 +1078,7 @@ export type ArticleResolvers<ContextType = QueryContext, ParentType extends Reso
|
|
|
1068
1078
|
body?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
|
|
1069
1079
|
bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
1070
1080
|
byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
|
|
1081
|
+
canBeSyndicated?: Resolver<Maybe<ResolversTypes['CanBeSyndicated']>, ParentType, ContextType>;
|
|
1071
1082
|
commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
1072
1083
|
containedIn?: Resolver<Maybe<ResolversTypes['Content']>, ParentType, ContextType>;
|
|
1073
1084
|
design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
@@ -1092,6 +1103,7 @@ export type AudioResolvers<ContextType = QueryContext, ParentType extends Resolv
|
|
|
1092
1103
|
body?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
|
|
1093
1104
|
bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
1094
1105
|
byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
|
|
1106
|
+
canBeSyndicated?: Resolver<Maybe<ResolversTypes['CanBeSyndicated']>, ParentType, ContextType>;
|
|
1095
1107
|
commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
1096
1108
|
design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
1097
1109
|
firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
@@ -1134,6 +1146,10 @@ export type BrandedTopperResolvers<ContextType = QueryContext, ParentType extend
|
|
|
1134
1146
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
|
1135
1147
|
}>;
|
|
1136
1148
|
|
|
1149
|
+
export interface CanBeSyndicatedScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['CanBeSyndicated'], any> {
|
|
1150
|
+
name: 'CanBeSyndicated';
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1137
1153
|
export type ConceptResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['Concept'] = ResolversParentTypes['Concept']> = ResolversObject<{
|
|
1138
1154
|
apiUrl?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
1139
1155
|
directType?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
@@ -1155,6 +1171,7 @@ export type ContentResolvers<ContextType = QueryContext, ParentType extends Reso
|
|
|
1155
1171
|
body?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
|
|
1156
1172
|
bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
1157
1173
|
byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
|
|
1174
|
+
canBeSyndicated?: Resolver<Maybe<ResolversTypes['CanBeSyndicated']>, ParentType, ContextType>;
|
|
1158
1175
|
commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
1159
1176
|
design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
1160
1177
|
firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
@@ -1177,6 +1194,7 @@ export type ContentPackageResolvers<ContextType = QueryContext, ParentType exten
|
|
|
1177
1194
|
body?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
|
|
1178
1195
|
bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
1179
1196
|
byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
|
|
1197
|
+
canBeSyndicated?: Resolver<Maybe<ResolversTypes['CanBeSyndicated']>, ParentType, ContextType>;
|
|
1180
1198
|
commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
1181
1199
|
contains?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Teaser']>>>, ParentType, ContextType>;
|
|
1182
1200
|
design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
@@ -1462,6 +1480,7 @@ export type LiveBlogPackageResolvers<ContextType = QueryContext, ParentType exte
|
|
|
1462
1480
|
body?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
|
|
1463
1481
|
bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
1464
1482
|
byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
|
|
1483
|
+
canBeSyndicated?: Resolver<Maybe<ResolversTypes['CanBeSyndicated']>, ParentType, ContextType>;
|
|
1465
1484
|
commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
1466
1485
|
design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
1467
1486
|
firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
@@ -1487,6 +1506,7 @@ export type LiveBlogPostResolvers<ContextType = QueryContext, ParentType extends
|
|
|
1487
1506
|
body?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
|
|
1488
1507
|
bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
1489
1508
|
byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
|
|
1509
|
+
canBeSyndicated?: Resolver<Maybe<ResolversTypes['CanBeSyndicated']>, ParentType, ContextType>;
|
|
1490
1510
|
commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
1491
1511
|
design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
1492
1512
|
firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
@@ -1746,6 +1766,7 @@ export type VideoResolvers<ContextType = QueryContext, ParentType extends Resolv
|
|
|
1746
1766
|
body?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
|
|
1747
1767
|
bodyXML?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
|
1748
1768
|
byline?: Resolver<Maybe<ResolversTypes['StructuredContent']>, ParentType, ContextType>;
|
|
1769
|
+
canBeSyndicated?: Resolver<Maybe<ResolversTypes['CanBeSyndicated']>, ParentType, ContextType>;
|
|
1749
1770
|
commentsEnabled?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
|
|
1750
1771
|
design?: Resolver<Maybe<ResolversTypes['Design']>, ParentType, ContextType>;
|
|
1751
1772
|
firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
|
|
@@ -1776,6 +1797,7 @@ export type Resolvers<ContextType = QueryContext> = ResolversObject<{
|
|
|
1776
1797
|
Audio?: AudioResolvers<ContextType>;
|
|
1777
1798
|
BasicTopper?: BasicTopperResolvers<ContextType>;
|
|
1778
1799
|
BrandedTopper?: BrandedTopperResolvers<ContextType>;
|
|
1800
|
+
CanBeSyndicated?: GraphQLScalarType;
|
|
1779
1801
|
Concept?: ConceptResolvers<ContextType>;
|
|
1780
1802
|
Content?: ContentResolvers<ContextType>;
|
|
1781
1803
|
ContentPackage?: ContentPackageResolvers<ContextType>;
|
|
@@ -21,7 +21,12 @@ import { Concept } from './Concept'
|
|
|
21
21
|
import isError from '../helpers/isError'
|
|
22
22
|
import { uuidFromUrl } from '../helpers/metadata'
|
|
23
23
|
import { schemas } from './schemas/capi'
|
|
24
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
AccessLevel,
|
|
26
|
+
ContentType,
|
|
27
|
+
PackageDesign,
|
|
28
|
+
CanBeSyndicated,
|
|
29
|
+
} from '../resolvers/scalars'
|
|
25
30
|
import {
|
|
26
31
|
LiteralUnionScalarValues,
|
|
27
32
|
validLiteralUnionValue,
|
|
@@ -227,6 +232,9 @@ export class CapiResponse {
|
|
|
227
232
|
accessLevel(): LiteralUnionScalarValues<typeof AccessLevel> {
|
|
228
233
|
return this.capiData.accessLevel
|
|
229
234
|
}
|
|
235
|
+
canBeSyndicated(): LiteralUnionScalarValues<typeof CanBeSyndicated> {
|
|
236
|
+
return this.capiData.canBeSyndicated
|
|
237
|
+
}
|
|
230
238
|
summary() {
|
|
231
239
|
if ('summary' in this.capiData) return this.capiData.summary
|
|
232
240
|
return null
|
|
@@ -137,6 +137,11 @@ export const baseMetadataSchema = z.object({
|
|
|
137
137
|
z.literal('registered'),
|
|
138
138
|
z.literal('free'),
|
|
139
139
|
]),
|
|
140
|
+
canBeSyndicated: z.union([
|
|
141
|
+
z.literal('yes'),
|
|
142
|
+
z.literal('no'),
|
|
143
|
+
z.literal('verify'),
|
|
144
|
+
]),
|
|
140
145
|
topper: Topper.optional(),
|
|
141
146
|
comments: z.object({
|
|
142
147
|
enabled: z.boolean(),
|
package/src/resolvers/content.ts
CHANGED
|
@@ -44,6 +44,7 @@ const resolvers = {
|
|
|
44
44
|
publishedDate: (parent) => parent.publishedDate(),
|
|
45
45
|
annotations: (parent) => parent.annotations(),
|
|
46
46
|
accessLevel: (parent) => parent.accessLevel(),
|
|
47
|
+
canBeSyndicated: (parent) => parent.canBeSyndicated(),
|
|
47
48
|
commentsEnabled: (parent) => parent.commentsEnabled(),
|
|
48
49
|
design: (parent) => parent.design(),
|
|
49
50
|
},
|
package/src/resolvers/scalars.ts
CHANGED
|
@@ -88,6 +88,11 @@ export const AccessLevel = new LiteralUnionScalar<
|
|
|
88
88
|
values: ['premium', 'subscribed', 'registered', 'free'],
|
|
89
89
|
})
|
|
90
90
|
|
|
91
|
+
export const CanBeSyndicated = new LiteralUnionScalar<['yes', 'no', 'verify']>({
|
|
92
|
+
name: 'CanBeSyndicated',
|
|
93
|
+
values: ['yes', 'no', 'verify'],
|
|
94
|
+
})
|
|
95
|
+
|
|
91
96
|
export const ImageType = new LiteralUnionScalar<['image', 'graphic']>({
|
|
92
97
|
name: 'ImageType',
|
|
93
98
|
values: ['image', 'graphic'],
|
|
@@ -131,6 +136,7 @@ const resolvers = {
|
|
|
131
136
|
TopperBackgroundColour,
|
|
132
137
|
FollowButtonVariant,
|
|
133
138
|
AccessLevel,
|
|
139
|
+
CanBeSyndicated,
|
|
134
140
|
ImageType,
|
|
135
141
|
RichTextSource,
|
|
136
142
|
ContentType,
|