@financial-times/cp-content-pipeline-schema 1.3.2 → 1.3.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 (38) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/generated/index.d.ts +2 -2
  3. package/lib/model/CapiResponse.d.ts +4 -3
  4. package/lib/model/CapiResponse.js +18 -10
  5. package/lib/model/CapiResponse.js.map +1 -1
  6. package/lib/model/Image.js +10 -0
  7. package/lib/model/Image.js.map +1 -1
  8. package/lib/model/Topper.d.ts +1 -1
  9. package/lib/model/schemas/capi/article.d.ts +115 -0
  10. package/lib/model/schemas/capi/article.js +1 -0
  11. package/lib/model/schemas/capi/article.js.map +1 -1
  12. package/lib/model/schemas/capi/base-schema.d.ts +201 -5
  13. package/lib/model/schemas/capi/base-schema.js +6 -1
  14. package/lib/model/schemas/capi/base-schema.js.map +1 -1
  15. package/lib/model/schemas/capi/content-package.d.ts +5 -5
  16. package/lib/model/schemas/capi/index.d.ts +3 -3
  17. package/lib/model/schemas/capi/placeholder.d.ts +115 -0
  18. package/lib/model/schemas/capi/placeholder.js +1 -0
  19. package/lib/model/schemas/capi/placeholder.js.map +1 -1
  20. package/lib/model/schemas/capi/video.d.ts +3 -3
  21. package/lib/resolvers/content.d.ts +1 -1
  22. package/lib/resolvers/index.d.ts +3 -3
  23. package/lib/resolvers/scalars.d.ts +2 -2
  24. package/lib/resolvers/scalars.js +4 -1
  25. package/lib/resolvers/scalars.js.map +1 -1
  26. package/lib/resolvers/teaser.js +1 -1
  27. package/lib/resolvers/teaser.js.map +1 -1
  28. package/lib/resolvers/topper.d.ts +1 -1
  29. package/package.json +1 -1
  30. package/src/generated/index.ts +1 -1
  31. package/src/model/CapiResponse.ts +19 -10
  32. package/src/model/Image.ts +12 -0
  33. package/src/model/schemas/capi/article.ts +1 -0
  34. package/src/model/schemas/capi/base-schema.ts +6 -0
  35. package/src/model/schemas/capi/placeholder.ts +1 -0
  36. package/src/resolvers/scalars.ts +5 -2
  37. package/src/resolvers/teaser.ts +1 -1
  38. package/tsconfig.tsbuildinfo +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.baseMediaSchema = exports.baseContentSchema = exports.baseMetadataSchema = exports.CapiPerson = exports.CapiPersonMembership = exports.DataSource = exports.LeadImage = exports.MainImage = exports.ImageSet = exports.Image = exports.Topper = exports.Annotation = void 0;
3
+ exports.baseMediaSchema = exports.baseContentSchema = exports.baseMetadataSchema = exports.CapiPerson = exports.CapiPersonMembership = exports.DataSource = exports.AlternativeImage = exports.LeadImage = exports.MainImage = exports.ImageSet = exports.Image = exports.Topper = exports.Annotation = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const Concept = zod_1.z.object({
6
6
  id: zod_1.z.string(),
@@ -77,6 +77,9 @@ exports.LeadImage = zod_1.z.object({
77
77
  id: zod_1.z.string(),
78
78
  image: exports.Image,
79
79
  });
80
+ exports.AlternativeImage = zod_1.z.object({
81
+ promotionalImage: BaseImage,
82
+ });
80
83
  exports.DataSource = zod_1.z.object({
81
84
  binaryUrl: zod_1.z.string(),
82
85
  duration: zod_1.z.number(),
@@ -184,12 +187,14 @@ exports.baseContentSchema = zod_1.z.object({
184
187
  zod_1.z.literal('special-report'),
185
188
  zod_1.z.literal('extra'),
186
189
  zod_1.z.literal('basic'),
190
+ zod_1.z.literal('extra-wide'),
187
191
  ]),
188
192
  }),
189
193
  });
190
194
  exports.baseMediaSchema = zod_1.z.object({
191
195
  mainImage: exports.MainImage.optional(),
192
196
  leadImages: exports.LeadImage.array().optional(),
197
+ alternativeImages: exports.AlternativeImage.optional(),
193
198
  embeds: exports.ImageSet.array().optional(),
194
199
  dataSource: exports.DataSource.array().optional(),
195
200
  });
@@ -1 +1 @@
1
- {"version":3,"file":"base-schema.js","sourceRoot":"","sources":["../../../../src/model/schemas/capi/base-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-schema.js","sourceRoot":"","sources":["../../../../src/model/schemas/capi/base-schema.ts"],"names":[],"mappings":"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"}
@@ -105,11 +105,11 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
105
105
  apiUrl: string;
106
106
  }>, "many">;
107
107
  design: import("zod").ZodObject<{
108
- theme: import("zod").ZodUnion<[import("zod").ZodLiteral<"special-report">, import("zod").ZodLiteral<"extra">, import("zod").ZodLiteral<"basic">]>;
108
+ theme: import("zod").ZodUnion<[import("zod").ZodLiteral<"special-report">, import("zod").ZodLiteral<"extra">, import("zod").ZodLiteral<"basic">, import("zod").ZodLiteral<"extra-wide">]>;
109
109
  }, "strip", import("zod").ZodTypeAny, {
110
- theme: "special-report" | "extra" | "basic";
110
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
111
111
  }, {
112
- theme: "special-report" | "extra" | "basic";
112
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
113
113
  }>;
114
114
  mainImage: import("zod").ZodOptional<import("zod").ZodDiscriminatedUnion<"type", [import("zod").ZodObject<{
115
115
  id: import("zod").ZodString;
@@ -552,7 +552,7 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
552
552
  apiUrl: string;
553
553
  }[];
554
554
  design: {
555
- theme: "special-report" | "extra" | "basic";
555
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
556
556
  };
557
557
  webUrl?: string | undefined;
558
558
  canonicalWebUrl?: string | undefined;
@@ -698,7 +698,7 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
698
698
  apiUrl: string;
699
699
  }[];
700
700
  design: {
701
- theme: "special-report" | "extra" | "basic";
701
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
702
702
  };
703
703
  webUrl?: string | undefined;
704
704
  canonicalWebUrl?: string | undefined;
@@ -38,11 +38,11 @@ export declare const schemas: (contentType: LiteralUnionScalarValues<typeof Cont
38
38
  apiUrl: string;
39
39
  }>, "many">;
40
40
  design: import("zod").ZodObject<{
41
- theme: import("zod").ZodUnion<[import("zod").ZodLiteral<"special-report">, import("zod").ZodLiteral<"extra">, import("zod").ZodLiteral<"basic">]>;
41
+ theme: import("zod").ZodUnion<[import("zod").ZodLiteral<"special-report">, import("zod").ZodLiteral<"extra">, import("zod").ZodLiteral<"basic">, import("zod").ZodLiteral<"extra-wide">]>;
42
42
  }, "strip", import("zod").ZodTypeAny, {
43
- theme: "special-report" | "extra" | "basic";
43
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
44
44
  }, {
45
- theme: "special-report" | "extra" | "basic";
45
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
46
46
  }>;
47
47
  }, "title">, "strip", import("zod").ZodTypeAny, {
48
48
  title: string;
@@ -523,6 +523,87 @@ export declare const placeholderSchema: import("zod").ZodObject<{
523
523
  pixelHeight?: number | undefined;
524
524
  };
525
525
  }>, "many">>;
526
+ alternativeImages: import("zod").ZodOptional<import("zod").ZodObject<{
527
+ promotionalImage: import("zod").ZodObject<{
528
+ id: import("zod").ZodString;
529
+ type: import("zod").ZodLiteral<"http://www.ft.com/ontology/content/Image">;
530
+ format: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodLiteral<"standardInline">, import("zod").ZodLiteral<"mobile">, import("zod").ZodLiteral<"desktop">, import("zod").ZodLiteral<"standard">, import("zod").ZodLiteral<"square">, import("zod").ZodLiteral<"ftEditSquare">, import("zod").ZodLiteral<"wide">, import("zod").ZodLiteral<"portrait">, import("zod").ZodLiteral<"landscape">]>>;
531
+ title: import("zod").ZodOptional<import("zod").ZodString>;
532
+ description: import("zod").ZodOptional<import("zod").ZodString>;
533
+ binaryUrl: import("zod").ZodString;
534
+ copyright: import("zod").ZodOptional<import("zod").ZodObject<{
535
+ notice: import("zod").ZodString;
536
+ }, "strip", import("zod").ZodTypeAny, {
537
+ notice: string;
538
+ }, {
539
+ notice: string;
540
+ }>>;
541
+ minDisplayWidth: import("zod").ZodOptional<import("zod").ZodString>;
542
+ maxDisplayWidth: import("zod").ZodOptional<import("zod").ZodString>;
543
+ pixelWidth: import("zod").ZodOptional<import("zod").ZodNumber>;
544
+ pixelHeight: import("zod").ZodOptional<import("zod").ZodNumber>;
545
+ }, "strip", import("zod").ZodTypeAny, {
546
+ id: string;
547
+ type: "http://www.ft.com/ontology/content/Image";
548
+ binaryUrl: string;
549
+ format?: "standardInline" | "mobile" | "desktop" | "standard" | "square" | "ftEditSquare" | "wide" | "portrait" | "landscape" | undefined;
550
+ title?: string | undefined;
551
+ description?: string | undefined;
552
+ copyright?: {
553
+ notice: string;
554
+ } | undefined;
555
+ minDisplayWidth?: string | undefined;
556
+ maxDisplayWidth?: string | undefined;
557
+ pixelWidth?: number | undefined;
558
+ pixelHeight?: number | undefined;
559
+ }, {
560
+ id: string;
561
+ type: "http://www.ft.com/ontology/content/Image";
562
+ binaryUrl: string;
563
+ format?: "standardInline" | "mobile" | "desktop" | "standard" | "square" | "ftEditSquare" | "wide" | "portrait" | "landscape" | undefined;
564
+ title?: string | undefined;
565
+ description?: string | undefined;
566
+ copyright?: {
567
+ notice: string;
568
+ } | undefined;
569
+ minDisplayWidth?: string | undefined;
570
+ maxDisplayWidth?: string | undefined;
571
+ pixelWidth?: number | undefined;
572
+ pixelHeight?: number | undefined;
573
+ }>;
574
+ }, "strip", import("zod").ZodTypeAny, {
575
+ promotionalImage: {
576
+ id: string;
577
+ type: "http://www.ft.com/ontology/content/Image";
578
+ binaryUrl: string;
579
+ format?: "standardInline" | "mobile" | "desktop" | "standard" | "square" | "ftEditSquare" | "wide" | "portrait" | "landscape" | undefined;
580
+ title?: string | undefined;
581
+ description?: string | undefined;
582
+ copyright?: {
583
+ notice: string;
584
+ } | undefined;
585
+ minDisplayWidth?: string | undefined;
586
+ maxDisplayWidth?: string | undefined;
587
+ pixelWidth?: number | undefined;
588
+ pixelHeight?: number | undefined;
589
+ };
590
+ }, {
591
+ promotionalImage: {
592
+ id: string;
593
+ type: "http://www.ft.com/ontology/content/Image";
594
+ binaryUrl: string;
595
+ format?: "standardInline" | "mobile" | "desktop" | "standard" | "square" | "ftEditSquare" | "wide" | "portrait" | "landscape" | undefined;
596
+ title?: string | undefined;
597
+ description?: string | undefined;
598
+ copyright?: {
599
+ notice: string;
600
+ } | undefined;
601
+ minDisplayWidth?: string | undefined;
602
+ maxDisplayWidth?: string | undefined;
603
+ pixelWidth?: number | undefined;
604
+ pixelHeight?: number | undefined;
605
+ };
606
+ }>>;
526
607
  embeds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
527
608
  id: import("zod").ZodString;
528
609
  type: import("zod").ZodLiteral<"http://www.ft.com/ontology/content/ImageSet">;
@@ -832,6 +913,23 @@ export declare const placeholderSchema: import("zod").ZodObject<{
832
913
  pixelHeight?: number | undefined;
833
914
  };
834
915
  }[] | undefined;
916
+ alternativeImages?: {
917
+ promotionalImage: {
918
+ id: string;
919
+ type: "http://www.ft.com/ontology/content/Image";
920
+ binaryUrl: string;
921
+ format?: "standardInline" | "mobile" | "desktop" | "standard" | "square" | "ftEditSquare" | "wide" | "portrait" | "landscape" | undefined;
922
+ title?: string | undefined;
923
+ description?: string | undefined;
924
+ copyright?: {
925
+ notice: string;
926
+ } | undefined;
927
+ minDisplayWidth?: string | undefined;
928
+ maxDisplayWidth?: string | undefined;
929
+ pixelWidth?: number | undefined;
930
+ pixelHeight?: number | undefined;
931
+ };
932
+ } | undefined;
835
933
  embeds?: {
836
934
  id: string;
837
935
  type: "http://www.ft.com/ontology/content/ImageSet";
@@ -1011,6 +1109,23 @@ export declare const placeholderSchema: import("zod").ZodObject<{
1011
1109
  pixelHeight?: number | undefined;
1012
1110
  };
1013
1111
  }[] | undefined;
1112
+ alternativeImages?: {
1113
+ promotionalImage: {
1114
+ id: string;
1115
+ type: "http://www.ft.com/ontology/content/Image";
1116
+ binaryUrl: string;
1117
+ format?: "standardInline" | "mobile" | "desktop" | "standard" | "square" | "ftEditSquare" | "wide" | "portrait" | "landscape" | undefined;
1118
+ title?: string | undefined;
1119
+ description?: string | undefined;
1120
+ copyright?: {
1121
+ notice: string;
1122
+ } | undefined;
1123
+ minDisplayWidth?: string | undefined;
1124
+ maxDisplayWidth?: string | undefined;
1125
+ pixelWidth?: number | undefined;
1126
+ pixelHeight?: number | undefined;
1127
+ };
1128
+ } | undefined;
1014
1129
  embeds?: {
1015
1130
  id: string;
1016
1131
  type: "http://www.ft.com/ontology/content/ImageSet";
@@ -29,6 +29,7 @@ const placeholderMetadataSchema = base_schema_1.baseMetadataSchema.pick({
29
29
  const placeholderMediaSchema = base_schema_1.baseMediaSchema.pick({
30
30
  mainImage: true,
31
31
  leadImages: true,
32
+ alternativeImages: true,
32
33
  embeds: true,
33
34
  });
34
35
  exports.placeholderSchema = placeholderContentSchema
@@ -1 +1 @@
1
- {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../../src/model/schemas/capi/placeholder.ts"],"names":[],"mappings":";;;AAAA,+CAIsB;AAEtB,MAAM,wBAAwB,GAAG,+BAAiB,CAAC,IAAI,CAAC;IACtD,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,IAAI;CAC7B,CAAC,CAAA;AAEF,MAAM,yBAAyB,GAAG,gCAAkB,CAAC,IAAI,CAAC;IACxD,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;CAClB,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,6BAAe,CAAC,IAAI,CAAC;IAClD,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;CACb,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,wBAAwB;KACtD,KAAK,CAAC,yBAAyB,CAAC;KAChC,KAAK,CAAC,sBAAsB,CAAC,CAAA"}
1
+ {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../../src/model/schemas/capi/placeholder.ts"],"names":[],"mappings":";;;AAAA,+CAIsB;AAEtB,MAAM,wBAAwB,GAAG,+BAAiB,CAAC,IAAI,CAAC;IACtD,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,IAAI;CAC7B,CAAC,CAAA;AAEF,MAAM,yBAAyB,GAAG,gCAAkB,CAAC,IAAI,CAAC;IACxD,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;CAClB,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,6BAAe,CAAC,IAAI,CAAC;IAClD,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;CACb,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,wBAAwB;KACtD,KAAK,CAAC,yBAAyB,CAAC;KAChC,KAAK,CAAC,sBAAsB,CAAC,CAAA"}
@@ -36,11 +36,11 @@ export declare const videoSchema: import("zod").ZodObject<Pick<{
36
36
  apiUrl: string;
37
37
  }>, "many">;
38
38
  design: import("zod").ZodObject<{
39
- theme: import("zod").ZodUnion<[import("zod").ZodLiteral<"special-report">, import("zod").ZodLiteral<"extra">, import("zod").ZodLiteral<"basic">]>;
39
+ theme: import("zod").ZodUnion<[import("zod").ZodLiteral<"special-report">, import("zod").ZodLiteral<"extra">, import("zod").ZodLiteral<"basic">, import("zod").ZodLiteral<"extra-wide">]>;
40
40
  }, "strip", import("zod").ZodTypeAny, {
41
- theme: "special-report" | "extra" | "basic";
41
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
42
42
  }, {
43
- theme: "special-report" | "extra" | "basic";
43
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
44
44
  }>;
45
45
  }, "title">, "strip", import("zod").ZodTypeAny, {
46
46
  title: string;
@@ -27,7 +27,7 @@ declare const resolvers: {
27
27
  canBeSyndicated: (parent: import("../model/CapiResponse").CapiResponse) => "unknown" | "yes" | "no" | "verify" | "withContributorPayment";
28
28
  commentsEnabled: (parent: import("../model/CapiResponse").CapiResponse) => boolean;
29
29
  design: (parent: import("../model/CapiResponse").CapiResponse) => {
30
- theme: "special-report" | "extra" | "basic";
30
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
31
31
  layout?: "wide" | "default" | undefined;
32
32
  };
33
33
  };
@@ -37,7 +37,7 @@ declare const resolvers: {
37
37
  columnist: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
38
38
  };
39
39
  TopperWithPackage: {
40
- design: (topper: import("../model/Topper").Topper) => "special-report" | "extra" | "basic";
40
+ design: (topper: import("../model/Topper").Topper) => "special-report" | "extra" | "basic" | "extra-wide";
41
41
  };
42
42
  Teaser: {
43
43
  url: (parent: import("../model/CapiResponse").CapiResponse, args: Partial<import("../generated").TeaserUrlArgs>) => Promise<string>;
@@ -59,7 +59,7 @@ declare const resolvers: {
59
59
  standfirst: (parent: import("../model/CapiResponse").CapiResponse) => string | null;
60
60
  };
61
61
  ImageFormat: import("./literal-union").LiteralUnionScalar<["standard", "standard-inline", "desktop", "mobile", "wide", "square", "square-ftedit", "portrait", "landscape"]>;
62
- PackageDesign: import("./literal-union").LiteralUnionScalar<["special-report", "extra", "basic"]>;
62
+ PackageDesign: import("./literal-union").LiteralUnionScalar<["special-report", "extra", "basic", "extra-wide"]>;
63
63
  TopperBackgroundColour: import("./literal-union").LiteralUnionScalar<["paper", "wheat", "white", "black", "claret", "oxford", "slate", "crimson", "sky", "matisse"]>;
64
64
  FollowButtonVariant: import("./literal-union").LiteralUnionScalar<["standard", "inverse", "opinion", "alphaville", "monochrome", "inverse-monochrome"]>;
65
65
  AccessLevel: import("./literal-union").LiteralUnionScalar<["premium", "subscribed", "registered", "free"]>;
@@ -132,7 +132,7 @@ declare const resolvers: {
132
132
  canBeSyndicated: (parent: import("../model/CapiResponse").CapiResponse) => "unknown" | "yes" | "no" | "verify" | "withContributorPayment";
133
133
  commentsEnabled: (parent: import("../model/CapiResponse").CapiResponse) => boolean;
134
134
  design: (parent: import("../model/CapiResponse").CapiResponse) => {
135
- theme: "special-report" | "extra" | "basic";
135
+ theme: "special-report" | "extra" | "basic" | "extra-wide";
136
136
  layout?: "wide" | "default" | undefined;
137
137
  };
138
138
  };
@@ -1,6 +1,6 @@
1
1
  import { LiteralUnionScalar } from './literal-union';
2
2
  export declare const ImageFormat: LiteralUnionScalar<["standard", "standard-inline", "desktop", "mobile", "wide", "square", "square-ftedit", "portrait", "landscape"]>;
3
- export declare const PackageDesign: LiteralUnionScalar<["special-report", "extra", "basic"]>;
3
+ export declare const PackageDesign: LiteralUnionScalar<["special-report", "extra", "basic", "extra-wide"]>;
4
4
  export declare const TopperBackgroundColour: LiteralUnionScalar<["paper", "wheat", "white", "black", "claret", "oxford", "slate", "crimson", "sky", "matisse"]>;
5
5
  export declare const FollowButtonVariant: LiteralUnionScalar<["standard", "inverse", "opinion", "alphaville", "monochrome", "inverse-monochrome"]>;
6
6
  export declare const AccessLevel: LiteralUnionScalar<["premium", "subscribed", "registered", "free"]>;
@@ -10,7 +10,7 @@ export declare const RichTextSource: LiteralUnionScalar<["standfirst", "summary"
10
10
  export declare const ContentType: LiteralUnionScalar<["Article", "Placeholder", "Video", "Audio", "LiveBlogPackage", "LiveBlogPost", "ContentPackage", "Content", "MediaResource"]>;
11
11
  declare const resolvers: {
12
12
  ImageFormat: LiteralUnionScalar<["standard", "standard-inline", "desktop", "mobile", "wide", "square", "square-ftedit", "portrait", "landscape"]>;
13
- PackageDesign: LiteralUnionScalar<["special-report", "extra", "basic"]>;
13
+ PackageDesign: LiteralUnionScalar<["special-report", "extra", "basic", "extra-wide"]>;
14
14
  TopperBackgroundColour: LiteralUnionScalar<["paper", "wheat", "white", "black", "claret", "oxford", "slate", "crimson", "sky", "matisse"]>;
15
15
  FollowButtonVariant: LiteralUnionScalar<["standard", "inverse", "opinion", "alphaville", "monochrome", "inverse-monochrome"]>;
16
16
  AccessLevel: LiteralUnionScalar<["premium", "subscribed", "registered", "free"]>;
@@ -16,7 +16,10 @@ exports.ImageFormat = new literal_union_1.LiteralUnionScalar({
16
16
  'landscape',
17
17
  ],
18
18
  });
19
- exports.PackageDesign = new literal_union_1.LiteralUnionScalar({ name: 'PackageDesign', values: ['special-report', 'extra', 'basic'] });
19
+ exports.PackageDesign = new literal_union_1.LiteralUnionScalar({
20
+ name: 'PackageDesign',
21
+ values: ['special-report', 'extra', 'basic', 'extra-wide'],
22
+ });
20
23
  exports.TopperBackgroundColour = new literal_union_1.LiteralUnionScalar({
21
24
  name: 'TopperBackgroundColour',
22
25
  values: [
@@ -1 +1 @@
1
- {"version":3,"file":"scalars.js","sourceRoot":"","sources":["../../src/resolvers/scalars.ts"],"names":[],"mappings":";;;AAAA,mDAAoD;AAEvC,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAY/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,UAAU;QACV,iBAAiB;QACjB,SAAS;QACT,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,eAAe;QACf,UAAU;QACV,WAAW;KACZ;CACF,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAI,kCAAkB,CAEjD,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;AAE7D,QAAA,sBAAsB,GAAG,IAAI,kCAAkB,CAa1D;IACA,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,KAAK;QACL,SAAS;KACV;CACF,CAAC,CAAA;AAEW,QAAA,mBAAmB,GAAG,IAAI,kCAAkB,CASvD;IACA,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE;QACN,UAAU;QACV,SAAS;QACT,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,oBAAoB;KACrB;CACF,CAAC,CAAA;AAEW,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAE/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC;CACxD,CAAC,CAAA;AAEW,QAAA,eAAe,GAAG,IAAI,kCAAkB,CAEnD;IACA,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,SAAS,CAAC;CACrE,CAAC,CAAA;AAEW,QAAA,SAAS,GAAG,IAAI,kCAAkB,CAAuB;IACpE,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B,CAAC,CAAA;AAEW,QAAA,cAAc,GAAG,IAAI,kCAAkB,CAElD;IACA,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;CAC7C,CAAC,CAAA;AAEW,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAY/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,SAAS;QACT,aAAa;QACb,OAAO;QACP,OAAO;QACP,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,SAAS;QACT,eAAe;KAChB;CACF,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG;IAChB,WAAW,EAAX,mBAAW;IACX,aAAa,EAAb,qBAAa;IACb,sBAAsB,EAAtB,8BAAsB;IACtB,mBAAmB,EAAnB,2BAAmB;IACnB,WAAW,EAAX,mBAAW;IACX,eAAe,EAAf,uBAAe;IACf,SAAS,EAAT,iBAAS;IACT,cAAc,EAAd,sBAAc;IACd,WAAW,EAAX,mBAAW;CACZ,CAAA;AAED,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"scalars.js","sourceRoot":"","sources":["../../src/resolvers/scalars.ts"],"names":[],"mappings":";;;AAAA,mDAAoD;AAEvC,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAY/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,UAAU;QACV,iBAAiB;QACjB,SAAS;QACT,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,eAAe;QACf,UAAU;QACV,WAAW;KACZ;CACF,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAI,kCAAkB,CAEjD;IACA,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC;CAC3D,CAAC,CAAA;AAEW,QAAA,sBAAsB,GAAG,IAAI,kCAAkB,CAa1D;IACA,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,KAAK;QACL,SAAS;KACV;CACF,CAAC,CAAA;AAEW,QAAA,mBAAmB,GAAG,IAAI,kCAAkB,CASvD;IACA,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE;QACN,UAAU;QACV,SAAS;QACT,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,oBAAoB;KACrB;CACF,CAAC,CAAA;AAEW,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAE/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC;CACxD,CAAC,CAAA;AAEW,QAAA,eAAe,GAAG,IAAI,kCAAkB,CAEnD;IACA,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,SAAS,CAAC;CACrE,CAAC,CAAA;AAEW,QAAA,SAAS,GAAG,IAAI,kCAAkB,CAAuB;IACpE,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B,CAAC,CAAA;AAEW,QAAA,cAAc,GAAG,IAAI,kCAAkB,CAElD;IACA,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;CAC7C,CAAC,CAAA;AAEW,QAAA,WAAW,GAAG,IAAI,kCAAkB,CAY/C;IACA,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,SAAS;QACT,aAAa;QACb,OAAO;QACP,OAAO;QACP,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,SAAS;QACT,eAAe;KAChB;CACF,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG;IAChB,WAAW,EAAX,mBAAW;IACX,aAAa,EAAb,qBAAa;IACb,sBAAsB,EAAtB,8BAAsB;IACtB,mBAAmB,EAAnB,2BAAmB;IACnB,WAAW,EAAX,mBAAW;IACX,eAAe,EAAf,uBAAe;IACf,SAAS,EAAT,iBAAS;IACT,cAAc,EAAd,sBAAc;IACd,WAAW,EAAX,mBAAW;CACZ,CAAA;AAED,kBAAe,SAAS,CAAA"}
@@ -11,7 +11,7 @@ const resolvers = {
11
11
  metaAltLink: (parent) => parent.teaserMetadataLink('altLink'),
12
12
  metaPrefixText: (parent) => parent.teaserMetadataText('prefixText'),
13
13
  metaSuffixText: (parent) => parent.teaserMetadataText('suffixText'),
14
- image: (parent) => parent.mainImage(),
14
+ image: (parent) => parent.teaserImage(),
15
15
  indicators(parent) {
16
16
  return {
17
17
  accessLevel: parent.accessLevel(),
@@ -1 +1 @@
1
- {"version":3,"file":"teaser.js","sourceRoot":"","sources":["../../src/resolvers/teaser.ts"],"names":[],"mappings":";;AAEA,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACrD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,MAAM;aACH,IAAI,EAAE;aACN,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;aACzD,KAAK,CAAC,CAAC,CAAC;QACb,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACvD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC;QAC7D,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC;QACnE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC;QACnE,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;QACrC,UAAU,CAAC,MAAM;YACf,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;gBAC7B,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE;gBACzC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;gBACjC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;aAC1B,CAAA;QACH,CAAC;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;KAC5C;CACoC,CAAA;AAEvC,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"teaser.js","sourceRoot":"","sources":["../../src/resolvers/teaser.ts"],"names":[],"mappings":";;AAEA,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACrD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,MAAM;aACH,IAAI,EAAE;aACN,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;aACzD,KAAK,CAAC,CAAC,CAAC;QACb,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACvD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC;QAC7D,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC;QACnE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC;QACnE,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;QACvC,UAAU,CAAC,MAAM;YACf,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;gBAC7B,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE;gBACzC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;gBACjC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;aAC1B,CAAA;QACH,CAAC;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;KAC5C;CACoC,CAAA;AAEvC,kBAAe,SAAS,CAAA"}
@@ -28,7 +28,7 @@ declare const resolvers: {
28
28
  columnist: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
29
29
  };
30
30
  TopperWithPackage: {
31
- design: (topper: import("../model/Topper").Topper) => "special-report" | "extra" | "basic";
31
+ design: (topper: import("../model/Topper").Topper) => "special-report" | "extra" | "basic" | "extra-wide";
32
32
  };
33
33
  };
34
34
  export default resolvers;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/cp-content-pipeline-schema",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -32,7 +32,7 @@ export type Scalars = {
32
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'; }
33
33
  ImageType: { input: 'image' | 'graphic'; output: 'image' | 'graphic'; }
34
34
  JSON: { input: any; output: any; }
35
- PackageDesign: { input: 'special-report' | 'extra' | 'basic'; output: 'special-report' | 'extra' | 'basic'; }
35
+ PackageDesign: { input: 'special-report' | 'extra' | 'basic' | 'extra-wide'; output: 'special-report' | 'extra' | 'basic' | 'extra-wide'; }
36
36
  RichTextSource: { input: 'standfirst' | 'summary' | 'bodyXML'; output: 'standfirst' | 'summary' | 'bodyXML'; }
37
37
  TopperBackgroundColour: { input: 'paper' | 'wheat' | 'white' | 'black' | 'claret' | 'oxford' | 'slate' | 'crimson' | 'sky' | 'matisse'; output: 'paper' | 'wheat' | 'white' | 'black' | 'claret' | 'oxford' | 'slate' | 'crimson' | 'sky' | 'matisse'; }
38
38
  };
@@ -2,6 +2,7 @@ import type {
2
2
  ImageSet,
3
3
  Annotation,
4
4
  ContentTypeSchemas,
5
+ MainImage,
5
6
  } from '../types/internal-content'
6
7
  import conceptIds from '@financial-times/n-concept-ids'
7
8
  import metadata, { TeaserMetadata } from '@financial-times/n-display-metadata'
@@ -373,16 +374,24 @@ export class CapiResponse {
373
374
  }
374
375
 
375
376
  mainImage() {
376
- if (
377
- this.capiData.mainImage?.type ===
378
- 'http://www.ft.com/ontology/content/Image'
379
- ) {
380
- return new CAPIImage(this.capiData.mainImage, this.context)
381
- } else if (
382
- this.capiData.mainImage?.type ===
383
- 'http://www.ft.com/ontology/content/ImageSet'
384
- ) {
385
- return new CAPIImage(this.capiData.mainImage.members[0], this.context)
377
+ return this.#createCAPIImage(this.capiData.mainImage)
378
+ }
379
+
380
+ teaserImage() {
381
+ // Some content published via methode uses promotionalImage for teasers
382
+ const alternativeImage =
383
+ 'alternativeImages' in this.capiData
384
+ ? this.capiData.alternativeImages?.promotionalImage
385
+ : undefined
386
+ const image = alternativeImage ?? this.capiData.mainImage
387
+ return this.#createCAPIImage(image)
388
+ }
389
+
390
+ #createCAPIImage(image: MainImage | undefined) {
391
+ if (image?.type === 'http://www.ft.com/ontology/content/Image') {
392
+ return new CAPIImage(image, this.context)
393
+ } else if (image?.type === 'http://www.ft.com/ontology/content/ImageSet') {
394
+ return new CAPIImage(image.members[0], this.context)
386
395
  }
387
396
 
388
397
  return null
@@ -13,6 +13,7 @@ import {
13
13
  } from '../resolvers/literal-union'
14
14
  import { ImageFormat, ImageType } from '../resolvers/scalars'
15
15
  import isError from '../helpers/isError'
16
+ import { BaseError } from '@dotcom-reliability-kit/errors'
16
17
 
17
18
  export type ImageSource = {
18
19
  url: string
@@ -57,6 +58,17 @@ export class CAPIImage implements Image {
57
58
  case 'http://www.ft.com/ontology/content/Image':
58
59
  return 'image'
59
60
  }
61
+
62
+ // we shouldn't be here. but just in case,
63
+ logRecoverableError({
64
+ error: new BaseError({
65
+ code: 'INVALID_IMAGE_TYPE',
66
+ type: this.capiImage['type'], // capiImage is `never` here because we've exhausted all the "possible" types in the switch
67
+ image: this.capiImage['id'],
68
+ }),
69
+ })
70
+
71
+ return 'image'
60
72
  }
61
73
 
62
74
  id() {
@@ -33,6 +33,7 @@ const articleMetadataSchema = baseMetadataSchema.pick({
33
33
  const articleMediaSchema = baseMediaSchema.pick({
34
34
  mainImage: true,
35
35
  leadImages: true,
36
+ alternativeImages: true,
36
37
  embeds: true,
37
38
  })
38
39
 
@@ -84,6 +84,10 @@ export const LeadImage = z.object({
84
84
  image: Image,
85
85
  })
86
86
 
87
+ export const AlternativeImage = z.object({
88
+ promotionalImage: BaseImage,
89
+ })
90
+
87
91
  export const DataSource = z.object({
88
92
  binaryUrl: z.string(),
89
93
  duration: z.number(),
@@ -195,6 +199,7 @@ export const baseContentSchema = z.object({
195
199
  z.literal('special-report'),
196
200
  z.literal('extra'),
197
201
  z.literal('basic'),
202
+ z.literal('extra-wide'),
198
203
  ]),
199
204
  }),
200
205
  })
@@ -202,6 +207,7 @@ export const baseContentSchema = z.object({
202
207
  export const baseMediaSchema = z.object({
203
208
  mainImage: MainImage.optional(),
204
209
  leadImages: LeadImage.array().optional(),
210
+ alternativeImages: AlternativeImage.optional(),
205
211
  embeds: ImageSet.array().optional(),
206
212
  dataSource: DataSource.array().optional(),
207
213
  })
@@ -33,6 +33,7 @@ const placeholderMetadataSchema = baseMetadataSchema.pick({
33
33
  const placeholderMediaSchema = baseMediaSchema.pick({
34
34
  mainImage: true,
35
35
  leadImages: true,
36
+ alternativeImages: true,
36
37
  embeds: true,
37
38
  })
38
39
 
@@ -28,8 +28,11 @@ export const ImageFormat = new LiteralUnionScalar<
28
28
  })
29
29
 
30
30
  export const PackageDesign = new LiteralUnionScalar<
31
- ['special-report', 'extra', 'basic']
32
- >({ name: 'PackageDesign', values: ['special-report', 'extra', 'basic'] })
31
+ ['special-report', 'extra', 'basic', 'extra-wide']
32
+ >({
33
+ name: 'PackageDesign',
34
+ values: ['special-report', 'extra', 'basic', 'extra-wide'],
35
+ })
33
36
 
34
37
  export const TopperBackgroundColour = new LiteralUnionScalar<
35
38
  [
@@ -13,7 +13,7 @@ const resolvers = {
13
13
  metaAltLink: (parent) => parent.teaserMetadataLink('altLink'),
14
14
  metaPrefixText: (parent) => parent.teaserMetadataText('prefixText'),
15
15
  metaSuffixText: (parent) => parent.teaserMetadataText('suffixText'),
16
- image: (parent) => parent.mainImage(),
16
+ image: (parent) => parent.teaserImage(),
17
17
  indicators(parent) {
18
18
  return {
19
19
  accessLevel: parent.accessLevel(),