@financial-times/cp-content-pipeline-schema 1.4.3 → 1.4.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/generated/index.d.ts +16 -0
  3. package/lib/model/CapiResponse.d.ts +1 -0
  4. package/lib/model/CapiResponse.js +9 -0
  5. package/lib/model/CapiResponse.js.map +1 -1
  6. package/lib/model/schemas/capi/article.d.ts +3 -0
  7. package/lib/model/schemas/capi/article.js +1 -0
  8. package/lib/model/schemas/capi/article.js.map +1 -1
  9. package/lib/model/schemas/capi/audio.d.ts +3 -0
  10. package/lib/model/schemas/capi/audio.js +1 -0
  11. package/lib/model/schemas/capi/audio.js.map +1 -1
  12. package/lib/model/schemas/capi/base-schema.d.ts +3 -0
  13. package/lib/model/schemas/capi/base-schema.js +5 -0
  14. package/lib/model/schemas/capi/base-schema.js.map +1 -1
  15. package/lib/model/schemas/capi/content-package.d.ts +3 -0
  16. package/lib/model/schemas/capi/content-package.js +1 -0
  17. package/lib/model/schemas/capi/content-package.js.map +1 -1
  18. package/lib/model/schemas/capi/live-blog-package.d.ts +3 -0
  19. package/lib/model/schemas/capi/live-blog-package.js +1 -0
  20. package/lib/model/schemas/capi/live-blog-package.js.map +1 -1
  21. package/lib/model/schemas/capi/placeholder.d.ts +3 -0
  22. package/lib/model/schemas/capi/placeholder.js +1 -0
  23. package/lib/model/schemas/capi/placeholder.js.map +1 -1
  24. package/lib/resolvers/content.d.ts +1 -0
  25. package/lib/resolvers/content.js +1 -0
  26. package/lib/resolvers/content.js.map +1 -1
  27. package/lib/resolvers/index.d.ts +1 -0
  28. package/package.json +1 -1
  29. package/src/generated/index.ts +16 -0
  30. package/src/model/CapiResponse.ts +9 -0
  31. package/src/model/schemas/capi/article.ts +1 -0
  32. package/src/model/schemas/capi/audio.ts +1 -0
  33. package/src/model/schemas/capi/base-schema.ts +5 -0
  34. package/src/model/schemas/capi/content-package.ts +1 -0
  35. package/src/model/schemas/capi/live-blog-package.ts +1 -0
  36. package/src/model/schemas/capi/placeholder.ts +1 -0
  37. package/src/resolvers/content.ts +1 -0
  38. package/tsconfig.tsbuildinfo +1 -1
  39. package/typedefs/content.graphql +8 -2
@@ -60,6 +60,7 @@ export type Article = Content & {
60
60
  readonly firstPublishedDate: Scalars['String']['output'];
61
61
  readonly id: Scalars['ID']['output'];
62
62
  readonly mainImage?: Maybe<Image>;
63
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
63
64
  readonly publishedDate: Scalars['String']['output'];
64
65
  readonly standfirst?: Maybe<Scalars['String']['output']>;
65
66
  readonly teaser?: Maybe<Teaser>;
@@ -95,6 +96,7 @@ export type Audio = Content & {
95
96
  readonly id: Scalars['ID']['output'];
96
97
  readonly mainImage?: Maybe<Image>;
97
98
  readonly media?: Maybe<ReadonlyArray<Maybe<Media>>>;
99
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
98
100
  readonly publishedDate: Scalars['String']['output'];
99
101
  readonly standfirst?: Maybe<Scalars['String']['output']>;
100
102
  readonly teaser?: Maybe<Teaser>;
@@ -172,6 +174,7 @@ export type Content = {
172
174
  readonly firstPublishedDate: Scalars['String']['output'];
173
175
  readonly id: Scalars['ID']['output'];
174
176
  readonly mainImage?: Maybe<Image>;
177
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
175
178
  readonly publishedDate: Scalars['String']['output'];
176
179
  readonly standfirst?: Maybe<Scalars['String']['output']>;
177
180
  readonly teaser?: Maybe<Teaser>;
@@ -208,6 +211,7 @@ export type ContentPackage = Content & {
208
211
  readonly firstPublishedDate: Scalars['String']['output'];
209
212
  readonly id: Scalars['ID']['output'];
210
213
  readonly mainImage?: Maybe<Image>;
214
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
211
215
  readonly publishedDate: Scalars['String']['output'];
212
216
  readonly standfirst?: Maybe<Scalars['String']['output']>;
213
217
  readonly tableOfContents?: Maybe<TableOfContents>;
@@ -530,6 +534,7 @@ export type LiveBlogPackage = Content & {
530
534
  readonly id: Scalars['ID']['output'];
531
535
  readonly liveBlogPosts?: Maybe<ReadonlyArray<Maybe<Content>>>;
532
536
  readonly mainImage?: Maybe<Image>;
537
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
533
538
  readonly pinnedPost?: Maybe<Content>;
534
539
  readonly publishedDate: Scalars['String']['output'];
535
540
  readonly realtime?: Maybe<Scalars['Boolean']['output']>;
@@ -567,6 +572,7 @@ export type LiveBlogPost = Content & {
567
572
  readonly firstPublishedDate: Scalars['String']['output'];
568
573
  readonly id: Scalars['ID']['output'];
569
574
  readonly mainImage?: Maybe<Image>;
575
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
570
576
  readonly publishedDate: Scalars['String']['output'];
571
577
  readonly standfirst?: Maybe<Scalars['String']['output']>;
572
578
  readonly teaser?: Maybe<Teaser>;
@@ -686,6 +692,7 @@ export type Placeholder = Content & {
686
692
  readonly firstPublishedDate: Scalars['String']['output'];
687
693
  readonly id: Scalars['ID']['output'];
688
694
  readonly mainImage?: Maybe<Image>;
695
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
689
696
  readonly publishedDate: Scalars['String']['output'];
690
697
  readonly standfirst?: Maybe<Scalars['String']['output']>;
691
698
  readonly teaser?: Maybe<Teaser>;
@@ -878,6 +885,7 @@ export type Video = Content & {
878
885
  readonly firstPublishedDate: Scalars['String']['output'];
879
886
  readonly id: Scalars['ID']['output'];
880
887
  readonly mainImage?: Maybe<Image>;
888
+ readonly originatingParty?: Maybe<Scalars['String']['output']>;
881
889
  readonly publishedDate: Scalars['String']['output'];
882
890
  readonly standfirst?: Maybe<Scalars['String']['output']>;
883
891
  readonly teaser?: Maybe<Teaser>;
@@ -1178,6 +1186,7 @@ export type ArticleResolvers<ContextType = QueryContext, ParentType extends Reso
1178
1186
  firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1179
1187
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1180
1188
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1189
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1181
1190
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1182
1191
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1183
1192
  teaser?: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -1203,6 +1212,7 @@ export type AudioResolvers<ContextType = QueryContext, ParentType extends Resolv
1203
1212
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1204
1213
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1205
1214
  media?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Media']>>>, ParentType, ContextType>;
1215
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1206
1216
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1207
1217
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1208
1218
  teaser?: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -1272,6 +1282,7 @@ export type ContentResolvers<ContextType = QueryContext, ParentType extends Reso
1272
1282
  firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1273
1283
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1274
1284
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1285
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1275
1286
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1276
1287
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1277
1288
  teaser?: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -1297,6 +1308,7 @@ export type ContentPackageResolvers<ContextType = QueryContext, ParentType exten
1297
1308
  firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1298
1309
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1299
1310
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1311
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1300
1312
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1301
1313
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1302
1314
  tableOfContents?: Resolver<Maybe<ResolversTypes['TableOfContents']>, ParentType, ContextType>;
@@ -1583,6 +1595,7 @@ export type LiveBlogPackageResolvers<ContextType = QueryContext, ParentType exte
1583
1595
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1584
1596
  liveBlogPosts?: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Content']>>>, ParentType, ContextType>;
1585
1597
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1598
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1586
1599
  pinnedPost?: Resolver<Maybe<ResolversTypes['Content']>, ParentType, ContextType>;
1587
1600
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1588
1601
  realtime?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -1610,6 +1623,7 @@ export type LiveBlogPostResolvers<ContextType = QueryContext, ParentType extends
1610
1623
  firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1611
1624
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1612
1625
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1626
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1613
1627
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1614
1628
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1615
1629
  teaser?: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -1721,6 +1735,7 @@ export type PlaceholderResolvers<ContextType = QueryContext, ParentType extends
1721
1735
  firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1722
1736
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1723
1737
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1738
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1724
1739
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1725
1740
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1726
1741
  teaser?: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -1901,6 +1916,7 @@ export type VideoResolvers<ContextType = QueryContext, ParentType extends Resolv
1901
1916
  firstPublishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1902
1917
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
1903
1918
  mainImage?: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1919
+ originatingParty?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1904
1920
  publishedDate?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1905
1921
  standfirst?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1906
1922
  teaser?: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -239,6 +239,15 @@ export class CapiResponse {
239
239
  canBeSyndicated(): LiteralUnionScalarValues<typeof CanBeSyndicated> {
240
240
  return this.capiData.canBeSyndicated
241
241
  }
242
+ originatingParty(): string | null {
243
+ return this.capiData.canBeDistributed === 'no' &&
244
+ this.annotations().some((annotation) => {
245
+ annotation.id() ===
246
+ 'http://api.ft.com/things/ed3b6ec5-6466-47ef-b1d8-16952fd522c7'
247
+ })
248
+ ? 'Reuters'
249
+ : 'FT'
250
+ }
242
251
  summary() {
243
252
  if ('summary' in this.capiData) return this.capiData.summary
244
253
  return null
@@ -25,6 +25,7 @@ const articleMetadataSchema = baseMetadataSchema.pick({
25
25
  firstPublishedDate: true,
26
26
  accessLevel: true,
27
27
  canBeSyndicated: true,
28
+ canBeDistributed: true,
28
29
  topper: true,
29
30
  comments: true,
30
31
  containedIn: true,
@@ -20,6 +20,7 @@ const audioMetadataSchema = baseMetadataSchema.pick({
20
20
  firstPublishedDate: true,
21
21
  accessLevel: true,
22
22
  canBeSyndicated: true,
23
+ canBeDistributed: true,
23
24
  })
24
25
 
25
26
  const audioMediaSchema = baseMediaSchema.pick({
@@ -154,6 +154,11 @@ export const baseMetadataSchema = z.object({
154
154
  z.literal('withContributorPayment'),
155
155
  z.literal('unknown'),
156
156
  ]),
157
+ canBeDistributed: z.union([
158
+ z.literal('yes'),
159
+ z.literal('no'),
160
+ z.literal('verify'),
161
+ ]),
157
162
  topper: Topper.optional(),
158
163
  comments: z
159
164
  .object({
@@ -34,6 +34,7 @@ const contentPackageMetadataSchema = baseMetadataSchema.pick({
34
34
  firstPublishedDate: true,
35
35
  accessLevel: true,
36
36
  canBeSyndicated: true,
37
+ canBeDistributed: true,
37
38
  topper: true,
38
39
  comments: true,
39
40
  })
@@ -26,6 +26,7 @@ const liveBlogPackageMetadataSchema = baseMetadataSchema.pick({
26
26
  firstPublishedDate: true,
27
27
  accessLevel: true,
28
28
  canBeSyndicated: true,
29
+ canBeDistributed: true,
29
30
  topper: true,
30
31
  comments: true,
31
32
  })
@@ -25,6 +25,7 @@ const placeholderMetadataSchema = baseMetadataSchema.pick({
25
25
  firstPublishedDate: true,
26
26
  accessLevel: true,
27
27
  canBeSyndicated: true,
28
+ canBeDistributed: true,
28
29
  topper: true,
29
30
  comments: true,
30
31
  containedIn: true,
@@ -55,6 +55,7 @@ const resolvers = {
55
55
  annotations: (parent) => parent.annotations(),
56
56
  accessLevel: (parent) => parent.accessLevel(),
57
57
  canBeSyndicated: (parent) => parent.canBeSyndicated(),
58
+ originatingParty: (parent) => parent.originatingParty(),
58
59
  commentsEnabled: (parent) => parent.commentsEnabled(),
59
60
  design: (parent) => parent.design(),
60
61
  },