@financial-times/cp-content-pipeline-schema 1.3.0 → 1.3.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/lib/generated/index.d.ts +12 -3
  3. package/lib/helpers/decorateHeadshotUrl.d.ts +3 -0
  4. package/lib/helpers/decorateHeadshotUrl.js +39 -0
  5. package/lib/helpers/decorateHeadshotUrl.js.map +1 -0
  6. package/lib/model/Concept.js +44 -14
  7. package/lib/model/Concept.js.map +1 -1
  8. package/lib/model/Concept.test.js +2 -2
  9. package/lib/model/Concept.test.js.map +1 -1
  10. package/lib/model/Picture.js +2 -0
  11. package/lib/model/Picture.js.map +1 -1
  12. package/lib/model/Topper.d.ts +1 -1
  13. package/lib/model/Topper.js +18 -11
  14. package/lib/model/Topper.js.map +1 -1
  15. package/lib/model/schemas/capi/article.d.ts +5 -0
  16. package/lib/model/schemas/capi/audio.d.ts +5 -0
  17. package/lib/model/schemas/capi/base-schema.d.ts +32 -0
  18. package/lib/model/schemas/capi/base-schema.js +1 -0
  19. package/lib/model/schemas/capi/base-schema.js.map +1 -1
  20. package/lib/model/schemas/capi/content-package.d.ts +5 -0
  21. package/lib/model/schemas/capi/live-blog-package.d.ts +5 -0
  22. package/lib/model/schemas/capi/placeholder.d.ts +5 -0
  23. package/lib/resolvers/content-tree/references/ImageSet.js +1 -1
  24. package/lib/resolvers/content-tree/references/ImageSet.js.map +1 -1
  25. package/lib/resolvers/index.d.ts +3 -2
  26. package/lib/resolvers/topper.d.ts +3 -2
  27. package/lib/resolvers/topper.js +2 -3
  28. package/lib/resolvers/topper.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/generated/index.ts +9 -3
  31. package/src/helpers/decorateHeadshotUrl.ts +47 -0
  32. package/src/model/Concept.test.ts +2 -4
  33. package/src/model/Concept.ts +22 -17
  34. package/src/model/Picture.ts +3 -0
  35. package/src/model/Topper.ts +26 -12
  36. package/src/model/schemas/capi/base-schema.ts +1 -0
  37. package/src/resolvers/content-tree/references/ImageSet.ts +1 -1
  38. package/src/resolvers/topper.ts +2 -3
  39. package/tsconfig.tsbuildinfo +1 -1
  40. package/typedefs/topper.graphql +3 -0
@@ -6,6 +6,7 @@ export declare const Annotation: z.ZodObject<{
6
6
  prefLabel: z.ZodString;
7
7
  type: z.ZodOptional<z.ZodString>;
8
8
  types: z.ZodArray<z.ZodString, "many">;
9
+ headshot: z.ZodOptional<z.ZodString>;
9
10
  predicate: z.ZodString;
10
11
  }, "strip", z.ZodTypeAny, {
11
12
  id: string;
@@ -15,6 +16,7 @@ export declare const Annotation: z.ZodObject<{
15
16
  types: string[];
16
17
  predicate: string;
17
18
  type?: string | undefined;
19
+ headshot?: string | undefined;
18
20
  }, {
19
21
  id: string;
20
22
  apiUrl: string;
@@ -23,6 +25,7 @@ export declare const Annotation: z.ZodObject<{
23
25
  types: string[];
24
26
  predicate: string;
25
27
  type?: string | undefined;
28
+ headshot?: string | undefined;
26
29
  }>;
27
30
  export declare const Topper: z.ZodObject<{
28
31
  headline: z.ZodOptional<z.ZodString>;
@@ -747,6 +750,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
747
750
  prefLabel: z.ZodString;
748
751
  type: z.ZodOptional<z.ZodString>;
749
752
  types: z.ZodArray<z.ZodString, "many">;
753
+ headshot: z.ZodOptional<z.ZodString>;
750
754
  }, "strip", z.ZodTypeAny, {
751
755
  id: string;
752
756
  apiUrl: string;
@@ -754,6 +758,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
754
758
  prefLabel: string;
755
759
  types: string[];
756
760
  type?: string | undefined;
761
+ headshot?: string | undefined;
757
762
  }, {
758
763
  id: string;
759
764
  apiUrl: string;
@@ -761,6 +766,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
761
766
  prefLabel: string;
762
767
  types: string[];
763
768
  type?: string | undefined;
769
+ headshot?: string | undefined;
764
770
  }>;
765
771
  roles: z.ZodArray<z.ZodObject<{
766
772
  id: z.ZodString;
@@ -769,6 +775,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
769
775
  prefLabel: z.ZodString;
770
776
  type: z.ZodOptional<z.ZodString>;
771
777
  types: z.ZodArray<z.ZodString, "many">;
778
+ headshot: z.ZodOptional<z.ZodString>;
772
779
  }, "strip", z.ZodTypeAny, {
773
780
  id: string;
774
781
  apiUrl: string;
@@ -776,6 +783,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
776
783
  prefLabel: string;
777
784
  types: string[];
778
785
  type?: string | undefined;
786
+ headshot?: string | undefined;
779
787
  }, {
780
788
  id: string;
781
789
  apiUrl: string;
@@ -783,6 +791,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
783
791
  prefLabel: string;
784
792
  types: string[];
785
793
  type?: string | undefined;
794
+ headshot?: string | undefined;
786
795
  }>, "many">;
787
796
  }, "strip", z.ZodTypeAny, {
788
797
  directType: string;
@@ -795,6 +804,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
795
804
  prefLabel: string;
796
805
  types: string[];
797
806
  type?: string | undefined;
807
+ headshot?: string | undefined;
798
808
  };
799
809
  roles: {
800
810
  id: string;
@@ -803,6 +813,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
803
813
  prefLabel: string;
804
814
  types: string[];
805
815
  type?: string | undefined;
816
+ headshot?: string | undefined;
806
817
  }[];
807
818
  }, {
808
819
  directType: string;
@@ -815,6 +826,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
815
826
  prefLabel: string;
816
827
  types: string[];
817
828
  type?: string | undefined;
829
+ headshot?: string | undefined;
818
830
  };
819
831
  roles: {
820
832
  id: string;
@@ -823,6 +835,7 @@ export declare const CapiPersonMembership: z.ZodObject<{
823
835
  prefLabel: string;
824
836
  types: string[];
825
837
  type?: string | undefined;
838
+ headshot?: string | undefined;
826
839
  }[];
827
840
  }>;
828
841
  export declare const CapiPerson: z.ZodObject<{
@@ -843,6 +856,7 @@ export declare const CapiPerson: z.ZodObject<{
843
856
  prefLabel: z.ZodString;
844
857
  type: z.ZodOptional<z.ZodString>;
845
858
  types: z.ZodArray<z.ZodString, "many">;
859
+ headshot: z.ZodOptional<z.ZodString>;
846
860
  }, "strip", z.ZodTypeAny, {
847
861
  id: string;
848
862
  apiUrl: string;
@@ -850,6 +864,7 @@ export declare const CapiPerson: z.ZodObject<{
850
864
  prefLabel: string;
851
865
  types: string[];
852
866
  type?: string | undefined;
867
+ headshot?: string | undefined;
853
868
  }, {
854
869
  id: string;
855
870
  apiUrl: string;
@@ -857,6 +872,7 @@ export declare const CapiPerson: z.ZodObject<{
857
872
  prefLabel: string;
858
873
  types: string[];
859
874
  type?: string | undefined;
875
+ headshot?: string | undefined;
860
876
  }>;
861
877
  roles: z.ZodArray<z.ZodObject<{
862
878
  id: z.ZodString;
@@ -865,6 +881,7 @@ export declare const CapiPerson: z.ZodObject<{
865
881
  prefLabel: z.ZodString;
866
882
  type: z.ZodOptional<z.ZodString>;
867
883
  types: z.ZodArray<z.ZodString, "many">;
884
+ headshot: z.ZodOptional<z.ZodString>;
868
885
  }, "strip", z.ZodTypeAny, {
869
886
  id: string;
870
887
  apiUrl: string;
@@ -872,6 +889,7 @@ export declare const CapiPerson: z.ZodObject<{
872
889
  prefLabel: string;
873
890
  types: string[];
874
891
  type?: string | undefined;
892
+ headshot?: string | undefined;
875
893
  }, {
876
894
  id: string;
877
895
  apiUrl: string;
@@ -879,6 +897,7 @@ export declare const CapiPerson: z.ZodObject<{
879
897
  prefLabel: string;
880
898
  types: string[];
881
899
  type?: string | undefined;
900
+ headshot?: string | undefined;
882
901
  }>, "many">;
883
902
  }, "strip", z.ZodTypeAny, {
884
903
  directType: string;
@@ -891,6 +910,7 @@ export declare const CapiPerson: z.ZodObject<{
891
910
  prefLabel: string;
892
911
  types: string[];
893
912
  type?: string | undefined;
913
+ headshot?: string | undefined;
894
914
  };
895
915
  roles: {
896
916
  id: string;
@@ -899,6 +919,7 @@ export declare const CapiPerson: z.ZodObject<{
899
919
  prefLabel: string;
900
920
  types: string[];
901
921
  type?: string | undefined;
922
+ headshot?: string | undefined;
902
923
  }[];
903
924
  }, {
904
925
  directType: string;
@@ -911,6 +932,7 @@ export declare const CapiPerson: z.ZodObject<{
911
932
  prefLabel: string;
912
933
  types: string[];
913
934
  type?: string | undefined;
935
+ headshot?: string | undefined;
914
936
  };
915
937
  roles: {
916
938
  id: string;
@@ -919,6 +941,7 @@ export declare const CapiPerson: z.ZodObject<{
919
941
  prefLabel: string;
920
942
  types: string[];
921
943
  type?: string | undefined;
944
+ headshot?: string | undefined;
922
945
  }[];
923
946
  }>, "many">;
924
947
  emailAddress: z.ZodOptional<z.ZodString>;
@@ -943,6 +966,7 @@ export declare const CapiPerson: z.ZodObject<{
943
966
  prefLabel: string;
944
967
  types: string[];
945
968
  type?: string | undefined;
969
+ headshot?: string | undefined;
946
970
  };
947
971
  roles: {
948
972
  id: string;
@@ -951,6 +975,7 @@ export declare const CapiPerson: z.ZodObject<{
951
975
  prefLabel: string;
952
976
  types: string[];
953
977
  type?: string | undefined;
978
+ headshot?: string | undefined;
954
979
  }[];
955
980
  }[];
956
981
  emailAddress?: string | undefined;
@@ -975,6 +1000,7 @@ export declare const CapiPerson: z.ZodObject<{
975
1000
  prefLabel: string;
976
1001
  types: string[];
977
1002
  type?: string | undefined;
1003
+ headshot?: string | undefined;
978
1004
  };
979
1005
  roles: {
980
1006
  id: string;
@@ -983,6 +1009,7 @@ export declare const CapiPerson: z.ZodObject<{
983
1009
  prefLabel: string;
984
1010
  types: string[];
985
1011
  type?: string | undefined;
1012
+ headshot?: string | undefined;
986
1013
  }[];
987
1014
  }[];
988
1015
  emailAddress?: string | undefined;
@@ -999,6 +1026,7 @@ export declare const baseMetadataSchema: z.ZodObject<{
999
1026
  prefLabel: z.ZodString;
1000
1027
  type: z.ZodOptional<z.ZodString>;
1001
1028
  types: z.ZodArray<z.ZodString, "many">;
1029
+ headshot: z.ZodOptional<z.ZodString>;
1002
1030
  predicate: z.ZodString;
1003
1031
  }, "strip", z.ZodTypeAny, {
1004
1032
  id: string;
@@ -1008,6 +1036,7 @@ export declare const baseMetadataSchema: z.ZodObject<{
1008
1036
  types: string[];
1009
1037
  predicate: string;
1010
1038
  type?: string | undefined;
1039
+ headshot?: string | undefined;
1011
1040
  }, {
1012
1041
  id: string;
1013
1042
  apiUrl: string;
@@ -1016,6 +1045,7 @@ export declare const baseMetadataSchema: z.ZodObject<{
1016
1045
  types: string[];
1017
1046
  predicate: string;
1018
1047
  type?: string | undefined;
1048
+ headshot?: string | undefined;
1019
1049
  }>, "many">;
1020
1050
  webUrl: z.ZodOptional<z.ZodString>;
1021
1051
  canonicalWebUrl: z.ZodOptional<z.ZodString>;
@@ -1100,6 +1130,7 @@ export declare const baseMetadataSchema: z.ZodObject<{
1100
1130
  types: string[];
1101
1131
  predicate: string;
1102
1132
  type?: string | undefined;
1133
+ headshot?: string | undefined;
1103
1134
  }[];
1104
1135
  publishedDate: string;
1105
1136
  firstPublishedDate: string;
@@ -1144,6 +1175,7 @@ export declare const baseMetadataSchema: z.ZodObject<{
1144
1175
  types: string[];
1145
1176
  predicate: string;
1146
1177
  type?: string | undefined;
1178
+ headshot?: string | undefined;
1147
1179
  }[];
1148
1180
  publishedDate: string;
1149
1181
  firstPublishedDate: string;
@@ -9,6 +9,7 @@ const Concept = zod_1.z.object({
9
9
  prefLabel: zod_1.z.string(),
10
10
  type: zod_1.z.string().optional(),
11
11
  types: zod_1.z.string().array(),
12
+ headshot: zod_1.z.string().optional(),
12
13
  });
13
14
  exports.Annotation = Concept.extend({
14
15
  predicate: zod_1.z.string(),
@@ -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":";;;AAAA,6BAAuB;AAEvB,MAAM,OAAO,GAAG,OAAC,CAAC,MAAM,CAAC;IACvB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAA;AAEW,QAAA,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE;IAC5B,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC;IACzB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC;IAC3D,MAAM,EAAE,OAAC;SACN,KAAK,CAAC;QACL,OAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC3B,OAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnB,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACpB,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACrB,OAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnB,OAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QACzB,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACjB,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACrB,OAAC,CAAC,OAAO,CAAC,WAAW,CAAC;KACvB,CAAC;SACD,QAAQ,EAAE;IACb,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,OAAC;SACT,MAAM,CAAC;QACN,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;KACnB,CAAC;SACD,QAAQ,EAAE;IACb,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,4CAA4C,CAAC;CAC9D,CAAC,CAAA;AAEW,QAAA,KAAK,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;AAErC,QAAA,QAAQ,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,6CAA6C,CAAC;IAC9D,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,aAAK,CAAC,KAAK,EAAE;CACvB,CAAC,CAAA;AAEW,QAAA,SAAS,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACpD,gBAAQ;IACR,SAAS;IACT,OAAO;CACR,CAAC,CAAA;AAEW,QAAA,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC;QACZ,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACrB,OAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnB,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACjB,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACrB,OAAC,CAAC,OAAO,CAAC,WAAW,CAAC;KACvB,CAAC;IACF,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,aAAK;CACb,CAAC,CAAA;AAEW,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAA;AAEW,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;CACvB,CAAC,CAAA;AAEW,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IAC1B,WAAW,EAAE,4BAAoB,CAAC,KAAK,EAAE;IACzC,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAA;AAEF;;;;GAIG;AACU,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,kBAAU,CAAC,KAAK,EAAE;IAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,QAAQ,EAAE,OAAC;SACR,MAAM,CAAC;QACN,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE;QAC1B,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;QACtB,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE;KACnB,CAAC;SACD,QAAQ,EAAE;IACb,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE;IAC9B,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;IACrB,WAAW,EAAE,OAAC;SACX,KAAK,CAAC;QACL,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QACpB,OAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QACvB,OAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QACvB,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC;KAClB,CAAC;SACD,QAAQ,EAAE;IACb,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC;QACvB,OAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAChB,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACf,OAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnB,OAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;QACnC,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,cAAM,CAAC,QAAQ,EAAE;IACzB,QAAQ,EAAE,OAAC;SACR,MAAM,CAAC;QACN,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;KACrB,CAAC;SACD,QAAQ,EAAE;IACb,WAAW,EAAE,OAAC;SACX,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SAC9C,KAAK,EAAE;SACP,QAAQ,EAAE;IACb,eAAe,EAAE,OAAC;SACf,MAAM,CAAC,EAAE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACvD,QAAQ,EAAE;CACd,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;KACpB,CAAC;IACF,iBAAiB,EAAE,OAAC;SACjB,MAAM,CAAC;QACN,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE;KAC7B,CAAC;SACD,QAAQ,EAAE;IACb,sBAAsB,EAAE,OAAC;SACtB,MAAM,CAAC;QACN,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7C,CAAC;SACD,QAAQ,EAAE;IACb,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IAC/B,QAAQ,EAAE,OAAC;SACR,MAAM,CAAC;QACN,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;QACd,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;KACnB,CAAC;SACD,KAAK,EAAE;IACV,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC;YACb,OAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC3B,OAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YAClB,OAAC,CAAC,OAAO,CAAC,OAAO,CAAC;SACnB,CAAC;KACH,CAAC;CACH,CAAC,CAAA;AAEW,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,iBAAS,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,iBAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACxC,MAAM,EAAE,gBAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,kBAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAA"}
@@ -10,6 +10,7 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
10
10
  prefLabel: import("zod").ZodString;
11
11
  type: import("zod").ZodOptional<import("zod").ZodString>;
12
12
  types: import("zod").ZodArray<import("zod").ZodString, "many">;
13
+ headshot: import("zod").ZodOptional<import("zod").ZodString>;
13
14
  predicate: import("zod").ZodString;
14
15
  }, "strip", import("zod").ZodTypeAny, {
15
16
  id: string;
@@ -19,6 +20,7 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
19
20
  types: string[];
20
21
  predicate: string;
21
22
  type?: string | undefined;
23
+ headshot?: string | undefined;
22
24
  }, {
23
25
  id: string;
24
26
  apiUrl: string;
@@ -27,6 +29,7 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
27
29
  types: string[];
28
30
  predicate: string;
29
31
  type?: string | undefined;
32
+ headshot?: string | undefined;
30
33
  }>, "many">;
31
34
  webUrl: import("zod").ZodOptional<import("zod").ZodString>;
32
35
  canonicalWebUrl: import("zod").ZodOptional<import("zod").ZodString>;
@@ -538,6 +541,7 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
538
541
  types: string[];
539
542
  predicate: string;
540
543
  type?: string | undefined;
544
+ headshot?: string | undefined;
541
545
  }[];
542
546
  publishedDate: string;
543
547
  firstPublishedDate: string;
@@ -683,6 +687,7 @@ export declare const contentPackageSchema: import("zod").ZodObject<{
683
687
  types: string[];
684
688
  predicate: string;
685
689
  type?: string | undefined;
690
+ headshot?: string | undefined;
686
691
  }[];
687
692
  publishedDate: string;
688
693
  firstPublishedDate: string;
@@ -10,6 +10,7 @@ export declare const liveBlogPackageSchema: import("zod").ZodObject<{
10
10
  prefLabel: import("zod").ZodString;
11
11
  type: import("zod").ZodOptional<import("zod").ZodString>;
12
12
  types: import("zod").ZodArray<import("zod").ZodString, "many">;
13
+ headshot: import("zod").ZodOptional<import("zod").ZodString>;
13
14
  predicate: import("zod").ZodString;
14
15
  }, "strip", import("zod").ZodTypeAny, {
15
16
  id: string;
@@ -19,6 +20,7 @@ export declare const liveBlogPackageSchema: import("zod").ZodObject<{
19
20
  types: string[];
20
21
  predicate: string;
21
22
  type?: string | undefined;
23
+ headshot?: string | undefined;
22
24
  }, {
23
25
  id: string;
24
26
  apiUrl: string;
@@ -27,6 +29,7 @@ export declare const liveBlogPackageSchema: import("zod").ZodObject<{
27
29
  types: string[];
28
30
  predicate: string;
29
31
  type?: string | undefined;
32
+ headshot?: string | undefined;
30
33
  }>, "many">;
31
34
  webUrl: import("zod").ZodOptional<import("zod").ZodString>;
32
35
  canonicalWebUrl: import("zod").ZodOptional<import("zod").ZodString>;
@@ -696,6 +699,7 @@ export declare const liveBlogPackageSchema: import("zod").ZodObject<{
696
699
  types: string[];
697
700
  predicate: string;
698
701
  type?: string | undefined;
702
+ headshot?: string | undefined;
699
703
  }[];
700
704
  publishedDate: string;
701
705
  firstPublishedDate: string;
@@ -873,6 +877,7 @@ export declare const liveBlogPackageSchema: import("zod").ZodObject<{
873
877
  types: string[];
874
878
  predicate: string;
875
879
  type?: string | undefined;
880
+ headshot?: string | undefined;
876
881
  }[];
877
882
  publishedDate: string;
878
883
  firstPublishedDate: string;
@@ -11,6 +11,7 @@ export declare const placeholderSchema: import("zod").ZodObject<{
11
11
  prefLabel: import("zod").ZodString;
12
12
  type: import("zod").ZodOptional<import("zod").ZodString>;
13
13
  types: import("zod").ZodArray<import("zod").ZodString, "many">;
14
+ headshot: import("zod").ZodOptional<import("zod").ZodString>;
14
15
  predicate: import("zod").ZodString;
15
16
  }, "strip", import("zod").ZodTypeAny, {
16
17
  id: string;
@@ -20,6 +21,7 @@ export declare const placeholderSchema: import("zod").ZodObject<{
20
21
  types: string[];
21
22
  predicate: string;
22
23
  type?: string | undefined;
24
+ headshot?: string | undefined;
23
25
  }, {
24
26
  id: string;
25
27
  apiUrl: string;
@@ -28,6 +30,7 @@ export declare const placeholderSchema: import("zod").ZodObject<{
28
30
  types: string[];
29
31
  predicate: string;
30
32
  type?: string | undefined;
33
+ headshot?: string | undefined;
31
34
  }>, "many">;
32
35
  webUrl: import("zod").ZodOptional<import("zod").ZodString>;
33
36
  canonicalWebUrl: import("zod").ZodOptional<import("zod").ZodString>;
@@ -697,6 +700,7 @@ export declare const placeholderSchema: import("zod").ZodObject<{
697
700
  types: string[];
698
701
  predicate: string;
699
702
  type?: string | undefined;
703
+ headshot?: string | undefined;
700
704
  }[];
701
705
  publishedDate: string;
702
706
  firstPublishedDate: string;
@@ -875,6 +879,7 @@ export declare const placeholderSchema: import("zod").ZodObject<{
875
879
  types: string[];
876
880
  predicate: string;
877
881
  type?: string | undefined;
882
+ headshot?: string | undefined;
878
883
  }[];
879
884
  publishedDate: string;
880
885
  firstPublishedDate: string;
@@ -9,7 +9,7 @@ exports.ImageSet = {
9
9
  const imageSet = parent.contentApiData
10
10
  ?.embeds()
11
11
  ?.find((embed) => (0, metadata_1.uuidFromUrl)(embed.id) === (0, metadata_1.uuidFromUrl)(parent.reference.id));
12
- return imageSet && imageSet.members
12
+ return imageSet && imageSet.members && imageSet.members.length > 0
13
13
  ? new Picture_1.Picture(imageSet, isLiveBlog, context)
14
14
  : null;
15
15
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSet.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/ImageSet.ts"],"names":[],"mappings":";;;AACA,wDAAuD;AACvD,oDAAgD;AAGnC,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,cAAc,CAAA;QAEnE,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc;YACpC,EAAE,MAAM,EAAE;YACV,EAAE,IAAI,CACJ,CAAC,KAAmB,EAAE,EAAE,CACtB,IAAA,sBAAW,EAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAA,sBAAW,EAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAC7D,CAAA;QAEH,OAAO,QAAQ,IAAI,QAAQ,CAAC,OAAO;YACjC,CAAC,CAAC,IAAI,iBAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAA;IACV,CAAC;CAC0B,CAAA"}
1
+ {"version":3,"file":"ImageSet.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/ImageSet.ts"],"names":[],"mappings":";;;AACA,wDAAuD;AACvD,oDAAgD;AAGnC,QAAA,QAAQ,GAAG;IACtB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,cAAc,CAAA;QAEnE,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc;YACpC,EAAE,MAAM,EAAE;YACV,EAAE,IAAI,CACJ,CAAC,KAAmB,EAAE,EAAE,CACtB,IAAA,sBAAW,EAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAA,sBAAW,EAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAC7D,CAAA;QAEH,OAAO,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAChE,CAAC,CAAC,IAAI,iBAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAA;IACV,CAAC;CAC0B,CAAA"}
@@ -15,6 +15,7 @@ declare const resolvers: {
15
15
  backgroundColour: (topper: import("../model/Topper").Topper) => "paper" | "wheat" | "white" | "black" | "claret" | "oxford" | "slate" | "crimson" | "sky" | "matisse";
16
16
  displayConcept: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
17
17
  followButtonVariant: (topper: import("../model/Topper").Topper) => "standard" | "inverse" | "opinion" | "alphaville" | "monochrome" | "inverse-monochrome";
18
+ genreConcept: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
18
19
  };
19
20
  TopperWithImages: {
20
21
  images: (topper: import("../model/Topper").Topper) => import("../model/Image").CAPIImage[];
@@ -29,10 +30,10 @@ declare const resolvers: {
29
30
  genreConcept: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
30
31
  };
31
32
  PodcastTopper: {
32
- headshot: (topper: import("../model/Topper").Topper, args: Partial<import("../generated").PodcastTopperHeadshotArgs>) => string | null;
33
+ headshot: (topper: import("../model/Topper").Topper, args: Partial<import("../generated").PodcastTopperHeadshotArgs>) => Promise<string | null>;
33
34
  };
34
35
  OpinionTopper: {
35
- headshot(topper: import("../model/Topper").Topper, args: Partial<import("../generated").OpinionTopperHeadshotArgs>): Promise<string | null>;
36
+ headshot: (topper: import("../model/Topper").Topper, args: Partial<import("../generated").OpinionTopperHeadshotArgs>) => Promise<string | null>;
36
37
  columnist: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
37
38
  };
38
39
  TopperWithPackage: {
@@ -6,6 +6,7 @@ declare const resolvers: {
6
6
  backgroundColour: (topper: import("../model/Topper").Topper) => "paper" | "wheat" | "white" | "black" | "claret" | "oxford" | "slate" | "crimson" | "sky" | "matisse";
7
7
  displayConcept: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
8
8
  followButtonVariant: (topper: import("../model/Topper").Topper) => "standard" | "inverse" | "opinion" | "alphaville" | "monochrome" | "inverse-monochrome";
9
+ genreConcept: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
9
10
  };
10
11
  TopperWithImages: {
11
12
  images: (topper: import("../model/Topper").Topper) => import("../model/Image").CAPIImage[];
@@ -20,10 +21,10 @@ declare const resolvers: {
20
21
  genreConcept: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
21
22
  };
22
23
  PodcastTopper: {
23
- headshot: (topper: import("../model/Topper").Topper, args: Partial<import("../generated").PodcastTopperHeadshotArgs>) => string | null;
24
+ headshot: (topper: import("../model/Topper").Topper, args: Partial<import("../generated").PodcastTopperHeadshotArgs>) => Promise<string | null>;
24
25
  };
25
26
  OpinionTopper: {
26
- headshot(topper: import("../model/Topper").Topper, args: Partial<import("../generated").OpinionTopperHeadshotArgs>): Promise<string | null>;
27
+ headshot: (topper: import("../model/Topper").Topper, args: Partial<import("../generated").OpinionTopperHeadshotArgs>) => Promise<string | null>;
27
28
  columnist: (topper: import("../model/Topper").Topper) => import("../model/Concept").Concept | null;
28
29
  };
29
30
  TopperWithPackage: {
@@ -8,6 +8,7 @@ const resolvers = {
8
8
  backgroundColour: (topper) => topper.backgroundColour(),
9
9
  displayConcept: (topper) => topper.displayConcept(),
10
10
  followButtonVariant: (topper) => topper.followButtonVariant(),
11
+ genreConcept: (topper) => topper.genreConcept(),
11
12
  },
12
13
  TopperWithImages: {
13
14
  images: (topper) => topper.images(),
@@ -25,9 +26,7 @@ const resolvers = {
25
26
  headshot: (topper, args) => topper.headshot(args),
26
27
  },
27
28
  OpinionTopper: {
28
- async headshot(topper, args) {
29
- return topper.columnist()?.headshot(args) || null;
30
- },
29
+ headshot: (topper, args) => topper.headshot(args),
31
30
  columnist: (topper) => topper.columnist(),
32
31
  },
33
32
  TopperWithPackage: {
@@ -1 +1 @@
1
- {"version":3,"file":"topper.js","sourceRoot":"","sources":["../../src/resolvers/topper.ts"],"names":[],"mappings":";;AAUA,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE;QACN,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QACjC,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;QACvD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE;QACnD,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE;KAC9D;IAED,gBAAgB,EAAE;QAChB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;QACnC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE;KAClD;IAED,eAAe,EAAE;QACf,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE;QACrD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;KACpC;IAED,eAAe,EAAE;QACf,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;QAC/C,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;KAChD;IAED,aAAa,EAAE;QACb,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KAClD;IAED,aAAa,EAAE;QACb,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI;YACzB,OAAO,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;QACnD,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;KAC1C;IAED,iBAAiB,EAAE;QACjB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK;KAC1C;CASF,CAAA;AAED,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"topper.js","sourceRoot":"","sources":["../../src/resolvers/topper.ts"],"names":[],"mappings":";;AAUA,MAAM,SAAS,GAAG;IAChB,MAAM,EAAE;QACN,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QACjC,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;QACvD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE;QACnD,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE;QAC7D,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;KAChD;IAED,gBAAgB,EAAE;QAChB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;QACnC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE;KAClD;IAED,eAAe,EAAE;QACf,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE;QACrD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;KACpC;IAED,eAAe,EAAE;QACf,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;QAC/C,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE;KAChD;IAED,aAAa,EAAE;QACb,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KAClD;IAED,aAAa,EAAE;QACb,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;KAC1C;IAED,iBAAiB,EAAE;QACjB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK;KAC1C;CASF,CAAA;AAED,kBAAe,SAAS,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/cp-content-pipeline-schema",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -120,6 +120,7 @@ export type BasicTopper = Topper & {
120
120
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
121
121
  readonly displayConcept?: Maybe<Concept>;
122
122
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
123
+ readonly genreConcept?: Maybe<Concept>;
123
124
  readonly headline: Scalars['String']['output'];
124
125
  readonly intro?: Maybe<RichText>;
125
126
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
@@ -613,6 +614,7 @@ export type OpinionTopper = Topper & TopperWithHeadshot & TopperWithTheme & {
613
614
  readonly columnist?: Maybe<Concept>;
614
615
  readonly displayConcept?: Maybe<Concept>;
615
616
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
617
+ readonly genreConcept?: Maybe<Concept>;
616
618
  readonly headline: Scalars['String']['output'];
617
619
  readonly headshot?: Maybe<Scalars['String']['output']>;
618
620
  readonly intro?: Maybe<RichText>;
@@ -820,6 +822,7 @@ export type Topper = {
820
822
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
821
823
  readonly displayConcept?: Maybe<Concept>;
822
824
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
825
+ readonly genreConcept?: Maybe<Concept>;
823
826
  readonly headline: Scalars['String']['output'];
824
827
  readonly intro?: Maybe<RichText>;
825
828
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
@@ -974,7 +977,7 @@ export type ResolversInterfaceTypes<RefType extends Record<string, unknown>> = R
974
977
  Image: ( ImageDesktop ) | ( ImageLandscape ) | ( ImageMobile ) | ( ImagePortrait ) | ( ImageSquare ) | ( ImageSquareFtEdit ) | ( ImageStandard ) | ( ImageStandardInline ) | ( ImageWide );
975
978
  Picture: ( Omit<PictureFullBleed, 'fallbackImage' | 'images'> & { fallbackImage: RefType['Image'], images: ReadonlyArray<RefType['Image']> } ) | ( Omit<PictureInline, 'fallbackImage' | 'images'> & { fallbackImage: RefType['Image'], images: ReadonlyArray<RefType['Image']> } ) | ( Omit<PictureStandard, 'fallbackImage' | 'images'> & { fallbackImage: RefType['Image'], images: ReadonlyArray<RefType['Image']> } );
976
979
  Reference: ( ReferenceWithCAPIData<ContentTree.Flourish> ) | ( ReferenceWithCAPIData<ContentTree.ImageSet> ) | ( ReferenceWithCAPIData<ContentTree.LayoutImage> ) | ( ReferenceWithCAPIData<ContentTree.ImageSet> ) | ( ReferenceWithCAPIData<RawImageNode> ) | ( ReferenceWithCAPIData<ContentTree.Recommended> ) | ( ReferenceWithCAPIData<ContentTree.ScrollyImage> ) | ( ReferenceWithCAPIData<ContentTree.Tweet> ) | ( ReferenceWithCAPIData<VideoNode> );
977
- Topper: ( Omit<BasicTopper, 'displayConcept' | 'intro'> & { displayConcept?: Maybe<RefType['Concept']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, genreConcept?: Maybe<RefType['Concept']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( TopperModel ) | ( TopperModel ) | ( Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } );
980
+ Topper: ( Omit<BasicTopper, 'displayConcept' | 'genreConcept' | 'intro'> & { displayConcept?: Maybe<RefType['Concept']>, genreConcept?: Maybe<RefType['Concept']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, genreConcept?: Maybe<RefType['Concept']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( TopperModel ) | ( TopperModel ) | ( Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } );
978
981
  TopperWithBrand: ( Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, genreConcept?: Maybe<RefType['Concept']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( TopperModel ) | ( Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } );
979
982
  TopperWithHeadshot: ( TopperModel ) | ( TopperModel );
980
983
  TopperWithImages: ( Omit<DeepLandscapeTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<DeepPortraitTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<FullBleedTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } ) | ( Omit<SplitTextTopper, 'brandConcept' | 'displayConcept' | 'fallbackImage' | 'genreConcept' | 'images' | 'intro'> & { brandConcept?: Maybe<RefType['Concept']>, displayConcept?: Maybe<RefType['Concept']>, fallbackImage?: Maybe<RefType['Image']>, genreConcept?: Maybe<RefType['Concept']>, images: ReadonlyArray<RefType['Image']>, intro?: Maybe<RefType['RichText']> } );
@@ -989,7 +992,7 @@ export type ResolversTypes = ResolversObject<{
989
992
  AltTitle: ResolverTypeWrapper<AltTitle>;
990
993
  Article: ResolverTypeWrapper<CapiResponse>;
991
994
  Audio: ResolverTypeWrapper<CapiResponse>;
992
- BasicTopper: ResolverTypeWrapper<Omit<BasicTopper, 'displayConcept' | 'intro'> & { displayConcept?: Maybe<ResolversTypes['Concept']>, intro?: Maybe<ResolversTypes['RichText']> }>;
995
+ BasicTopper: ResolverTypeWrapper<Omit<BasicTopper, 'displayConcept' | 'genreConcept' | 'intro'> & { displayConcept?: Maybe<ResolversTypes['Concept']>, genreConcept?: Maybe<ResolversTypes['Concept']>, intro?: Maybe<ResolversTypes['RichText']> }>;
993
996
  Boolean: ResolverTypeWrapper<Scalars['Boolean']['output']>;
994
997
  BrandedTopper: ResolverTypeWrapper<Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & { brandConcept?: Maybe<ResolversTypes['Concept']>, displayConcept?: Maybe<ResolversTypes['Concept']>, genreConcept?: Maybe<ResolversTypes['Concept']>, intro?: Maybe<ResolversTypes['RichText']> }>;
995
998
  CanBeSyndicated: ResolverTypeWrapper<Scalars['CanBeSyndicated']['output']>;
@@ -1067,7 +1070,7 @@ export type ResolversParentTypes = ResolversObject<{
1067
1070
  AltTitle: AltTitle;
1068
1071
  Article: CapiResponse;
1069
1072
  Audio: CapiResponse;
1070
- BasicTopper: Omit<BasicTopper, 'displayConcept' | 'intro'> & { displayConcept?: Maybe<ResolversParentTypes['Concept']>, intro?: Maybe<ResolversParentTypes['RichText']> };
1073
+ BasicTopper: Omit<BasicTopper, 'displayConcept' | 'genreConcept' | 'intro'> & { displayConcept?: Maybe<ResolversParentTypes['Concept']>, genreConcept?: Maybe<ResolversParentTypes['Concept']>, intro?: Maybe<ResolversParentTypes['RichText']> };
1071
1074
  Boolean: Scalars['Boolean']['output'];
1072
1075
  BrandedTopper: Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & { brandConcept?: Maybe<ResolversParentTypes['Concept']>, displayConcept?: Maybe<ResolversParentTypes['Concept']>, genreConcept?: Maybe<ResolversParentTypes['Concept']>, intro?: Maybe<ResolversParentTypes['RichText']> };
1073
1076
  CanBeSyndicated: Scalars['CanBeSyndicated']['output'];
@@ -1207,6 +1210,7 @@ export type BasicTopperResolvers<ContextType = QueryContext, ParentType extends
1207
1210
  backgroundColour?: Resolver<Maybe<ResolversTypes['TopperBackgroundColour']>, ParentType, ContextType>;
1208
1211
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1209
1212
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1213
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1210
1214
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1211
1215
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
1212
1216
  textShadow?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -1632,6 +1636,7 @@ export type OpinionTopperResolvers<ContextType = QueryContext, ParentType extend
1632
1636
  columnist?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1633
1637
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1634
1638
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1639
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1635
1640
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1636
1641
  headshot?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, Partial<OpinionTopperHeadshotArgs>>;
1637
1642
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
@@ -1826,6 +1831,7 @@ export type TopperResolvers<ContextType = QueryContext, ParentType extends Resol
1826
1831
  backgroundColour?: Resolver<Maybe<ResolversTypes['TopperBackgroundColour']>, ParentType, ContextType>;
1827
1832
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1828
1833
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1834
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1829
1835
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1830
1836
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
1831
1837
  textShadow?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -0,0 +1,47 @@
1
+ import { CapiPerson } from '../types/internal-content'
2
+
3
+ export const UUID_REGEX =
4
+ /\b[0-9a-f]{8}-[0-9a-f]{4}-[1-9][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\b/i
5
+
6
+ const IMAGESET_REGEX = /fthead(?:-v\d)?\:[^?]+/
7
+
8
+ export default function decorateHeadshotUrl(person: CapiPerson) {
9
+ const url = person?._imageUrl
10
+
11
+ if (!url) return null
12
+
13
+ if (isCloudfrontUrl(url)) {
14
+ return url
15
+ }
16
+
17
+ const ftcmsMatch = executeFtcmsMatch(url)
18
+
19
+ if (ftcmsMatch) {
20
+ return `ftcms:${ftcmsMatch.pop()}`
21
+ }
22
+
23
+ const ftheadSchemeMatch = executeFtheadMatch(url)
24
+
25
+ if (ftheadSchemeMatch) {
26
+ return ftheadSchemeMatch.pop()
27
+ }
28
+ }
29
+
30
+ function isCloudfrontUrl(url: string) {
31
+ const AWS_CLOUDFRONT_HOSTNAME = 'd1e00ek4ebabms.cloudfront.net'
32
+
33
+ try {
34
+ const urlHostname = new URL(url).hostname
35
+ return urlHostname && urlHostname === AWS_CLOUDFRONT_HOSTNAME
36
+ } catch {
37
+ return false
38
+ }
39
+ }
40
+
41
+ function executeFtcmsMatch(url: string) {
42
+ return UUID_REGEX.exec(url)
43
+ }
44
+
45
+ function executeFtheadMatch(url: string) {
46
+ return IMAGESET_REGEX.exec(url)
47
+ }