@financial-times/cp-content-pipeline-schema 1.3.0 → 1.3.2

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 (42) hide show
  1. package/CHANGELOG.md +16 -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/content-tree/tagMappings.js +2 -2
  26. package/lib/resolvers/index.d.ts +3 -2
  27. package/lib/resolvers/topper.d.ts +3 -2
  28. package/lib/resolvers/topper.js +2 -3
  29. package/lib/resolvers/topper.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/generated/index.ts +9 -3
  32. package/src/helpers/decorateHeadshotUrl.ts +47 -0
  33. package/src/model/Concept.test.ts +2 -4
  34. package/src/model/Concept.ts +22 -17
  35. package/src/model/Picture.ts +3 -0
  36. package/src/model/Topper.ts +26 -12
  37. package/src/model/schemas/capi/base-schema.ts +1 -0
  38. package/src/resolvers/content-tree/references/ImageSet.ts +1 -1
  39. package/src/resolvers/content-tree/tagMappings.ts +2 -2
  40. package/src/resolvers/topper.ts +2 -3
  41. package/tsconfig.tsbuildinfo +1 -1
  42. package/typedefs/topper.graphql +3 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.2](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v1.3.1...cp-content-pipeline-schema-v1.3.2) (2023-09-14)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * longdesc attribute is lowercase ([aee4bc7](https://github.com/Financial-Times/cp-content-pipeline/commit/aee4bc7b5df83f2c7fc8c1a57423d8bc8cad6235))
9
+
10
+ ## [1.3.1](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v1.3.0...cp-content-pipeline-schema-v1.3.1) (2023-09-13)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * add missing header in topper for letters ([09a9d58](https://github.com/Financial-Times/cp-content-pipeline/commit/09a9d58a32da6ba83bfa7bee7c17b81f4be23371))
16
+ * be even more defensive about constructing picture models ([5134905](https://github.com/Financial-Times/cp-content-pipeline/commit/5134905d19545473492774418cf24577fe7fd970))
17
+ * opinion topper theme and metadata ([5deb513](https://github.com/Financial-Times/cp-content-pipeline/commit/5deb513c79c3f13a9edb2de7bb8a958052df76a0))
18
+
3
19
  ## [1.3.0](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v1.2.4...cp-content-pipeline-schema-v1.3.0) (2023-09-12)
4
20
 
5
21
 
@@ -168,6 +168,7 @@ export type BasicTopper = Topper & {
168
168
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
169
169
  readonly displayConcept?: Maybe<Concept>;
170
170
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
171
+ readonly genreConcept?: Maybe<Concept>;
171
172
  readonly headline: Scalars['String']['output'];
172
173
  readonly intro?: Maybe<RichText>;
173
174
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
@@ -589,6 +590,7 @@ export type OpinionTopper = Topper & TopperWithHeadshot & TopperWithTheme & {
589
590
  readonly columnist?: Maybe<Concept>;
590
591
  readonly displayConcept?: Maybe<Concept>;
591
592
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
593
+ readonly genreConcept?: Maybe<Concept>;
592
594
  readonly headline: Scalars['String']['output'];
593
595
  readonly headshot?: Maybe<Scalars['String']['output']>;
594
596
  readonly intro?: Maybe<RichText>;
@@ -765,6 +767,7 @@ export type Topper = {
765
767
  readonly backgroundColour?: Maybe<Scalars['TopperBackgroundColour']['output']>;
766
768
  readonly displayConcept?: Maybe<Concept>;
767
769
  readonly followButtonVariant?: Maybe<Scalars['FollowButtonVariant']['output']>;
770
+ readonly genreConcept?: Maybe<Concept>;
768
771
  readonly headline: Scalars['String']['output'];
769
772
  readonly intro?: Maybe<RichText>;
770
773
  readonly textShadow?: Maybe<Scalars['Boolean']['output']>;
@@ -872,8 +875,9 @@ export type ResolversInterfaceTypes<RefType extends Record<string, unknown>> = R
872
875
  images: ReadonlyArray<RefType['Image']>;
873
876
  });
874
877
  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>);
875
- Topper: (Omit<BasicTopper, 'displayConcept' | 'intro'> & {
878
+ Topper: (Omit<BasicTopper, 'displayConcept' | 'genreConcept' | 'intro'> & {
876
879
  displayConcept?: Maybe<RefType['Concept']>;
880
+ genreConcept?: Maybe<RefType['Concept']>;
877
881
  intro?: Maybe<RefType['RichText']>;
878
882
  }) | (Omit<BrandedTopper, 'brandConcept' | 'displayConcept' | 'genreConcept' | 'intro'> & {
879
883
  brandConcept?: Maybe<RefType['Concept']>;
@@ -1023,8 +1027,9 @@ export type ResolversTypes = ResolversObject<{
1023
1027
  AltTitle: ResolverTypeWrapper<AltTitle>;
1024
1028
  Article: ResolverTypeWrapper<CapiResponse>;
1025
1029
  Audio: ResolverTypeWrapper<CapiResponse>;
1026
- BasicTopper: ResolverTypeWrapper<Omit<BasicTopper, 'displayConcept' | 'intro'> & {
1030
+ BasicTopper: ResolverTypeWrapper<Omit<BasicTopper, 'displayConcept' | 'genreConcept' | 'intro'> & {
1027
1031
  displayConcept?: Maybe<ResolversTypes['Concept']>;
1032
+ genreConcept?: Maybe<ResolversTypes['Concept']>;
1028
1033
  intro?: Maybe<ResolversTypes['RichText']>;
1029
1034
  }>;
1030
1035
  Boolean: ResolverTypeWrapper<Scalars['Boolean']['output']>;
@@ -1147,8 +1152,9 @@ export type ResolversParentTypes = ResolversObject<{
1147
1152
  AltTitle: AltTitle;
1148
1153
  Article: CapiResponse;
1149
1154
  Audio: CapiResponse;
1150
- BasicTopper: Omit<BasicTopper, 'displayConcept' | 'intro'> & {
1155
+ BasicTopper: Omit<BasicTopper, 'displayConcept' | 'genreConcept' | 'intro'> & {
1151
1156
  displayConcept?: Maybe<ResolversParentTypes['Concept']>;
1157
+ genreConcept?: Maybe<ResolversParentTypes['Concept']>;
1152
1158
  intro?: Maybe<ResolversParentTypes['RichText']>;
1153
1159
  };
1154
1160
  Boolean: Scalars['Boolean']['output'];
@@ -1328,6 +1334,7 @@ export type BasicTopperResolvers<ContextType = QueryContext, ParentType extends
1328
1334
  backgroundColour?: Resolver<Maybe<ResolversTypes['TopperBackgroundColour']>, ParentType, ContextType>;
1329
1335
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1330
1336
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1337
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1331
1338
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1332
1339
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
1333
1340
  textShadow?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -1717,6 +1724,7 @@ export type OpinionTopperResolvers<ContextType = QueryContext, ParentType extend
1717
1724
  columnist?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1718
1725
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1719
1726
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1727
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1720
1728
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1721
1729
  headshot?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType, Partial<OpinionTopperHeadshotArgs>>;
1722
1730
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
@@ -1892,6 +1900,7 @@ export type TopperResolvers<ContextType = QueryContext, ParentType extends Resol
1892
1900
  backgroundColour?: Resolver<Maybe<ResolversTypes['TopperBackgroundColour']>, ParentType, ContextType>;
1893
1901
  displayConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1894
1902
  followButtonVariant?: Resolver<Maybe<ResolversTypes['FollowButtonVariant']>, ParentType, ContextType>;
1903
+ genreConcept?: Resolver<Maybe<ResolversTypes['Concept']>, ParentType, ContextType>;
1895
1904
  headline?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1896
1905
  intro?: Resolver<Maybe<ResolversTypes['RichText']>, ParentType, ContextType>;
1897
1906
  textShadow?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
@@ -0,0 +1,3 @@
1
+ import { CapiPerson } from '../types/internal-content';
2
+ export declare const UUID_REGEX: RegExp;
3
+ export default function decorateHeadshotUrl(person: CapiPerson): string | null | undefined;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UUID_REGEX = void 0;
4
+ exports.UUID_REGEX = /\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
+ const IMAGESET_REGEX = /fthead(?:-v\d)?\:[^?]+/;
6
+ function decorateHeadshotUrl(person) {
7
+ const url = person?._imageUrl;
8
+ if (!url)
9
+ return null;
10
+ if (isCloudfrontUrl(url)) {
11
+ return url;
12
+ }
13
+ const ftcmsMatch = executeFtcmsMatch(url);
14
+ if (ftcmsMatch) {
15
+ return `ftcms:${ftcmsMatch.pop()}`;
16
+ }
17
+ const ftheadSchemeMatch = executeFtheadMatch(url);
18
+ if (ftheadSchemeMatch) {
19
+ return ftheadSchemeMatch.pop();
20
+ }
21
+ }
22
+ exports.default = decorateHeadshotUrl;
23
+ function isCloudfrontUrl(url) {
24
+ const AWS_CLOUDFRONT_HOSTNAME = 'd1e00ek4ebabms.cloudfront.net';
25
+ try {
26
+ const urlHostname = new URL(url).hostname;
27
+ return urlHostname && urlHostname === AWS_CLOUDFRONT_HOSTNAME;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ function executeFtcmsMatch(url) {
34
+ return exports.UUID_REGEX.exec(url);
35
+ }
36
+ function executeFtheadMatch(url) {
37
+ return IMAGESET_REGEX.exec(url);
38
+ }
39
+ //# sourceMappingURL=decorateHeadshotUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorateHeadshotUrl.js","sourceRoot":"","sources":["../../src/helpers/decorateHeadshotUrl.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GACrB,8EAA8E,CAAA;AAEhF,MAAM,cAAc,GAAG,wBAAwB,CAAA;AAE/C,SAAwB,mBAAmB,CAAC,MAAkB;IAC5D,MAAM,GAAG,GAAG,MAAM,EAAE,SAAS,CAAA;IAE7B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAErB,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;QACxB,OAAO,GAAG,CAAA;KACX;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAEzC,IAAI,UAAU,EAAE;QACd,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,EAAE,CAAA;KACnC;IAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAEjD,IAAI,iBAAiB,EAAE;QACrB,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAA;KAC/B;AACH,CAAC;AApBD,sCAoBC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,uBAAuB,GAAG,+BAA+B,CAAA;IAE/D,IAAI;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;QACzC,OAAO,WAAW,IAAI,WAAW,KAAK,uBAAuB,CAAA;KAC9D;IAAC,MAAM;QACN,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,kBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjC,CAAC"}
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
26
  if (kind === "m") throw new TypeError("Private method is not writable");
4
27
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
@@ -21,6 +44,7 @@ const imageService_1 = __importDefault(require("../helpers/imageService"));
21
44
  const isError_1 = __importDefault(require("../helpers/isError"));
22
45
  const log_error_1 = require("@dotcom-reliability-kit/log-error");
23
46
  const n_concept_ids_1 = __importDefault(require("@financial-times/n-concept-ids"));
47
+ const decorateHeadshotUrl_1 = __importStar(require("../helpers/decorateHeadshotUrl"));
24
48
  const CAPI_ID_PREFIX = /^https?:\/\/(?:www|api)\.ft\.com\/things?\//;
25
49
  const BASE_URL = 'https://www.ft.com/stream/';
26
50
  const FT_URL = 'https://www.ft.com';
@@ -126,23 +150,29 @@ class Concept {
126
150
  return url;
127
151
  }
128
152
  async headshot(args) {
129
- if (!this.isAuthor()) {
130
- throw new Error('Cannot request headshot for a non-Author concept');
131
- }
153
+ const uuid = this.apiUrl().match(decorateHeadshotUrl_1.UUID_REGEX)?.[0];
154
+ if (!this.isAuthor() || !uuid)
155
+ return null;
132
156
  try {
133
- const peopleData = await this.context.dataSources.capi.getPerson(this.uuid());
134
- if (!peopleData || !peopleData._imageUrl)
135
- return null;
136
- return (0, imageService_1.default)({
137
- url: peopleData._imageUrl,
138
- systemCode: __classPrivateFieldGet(this, _Concept_systemCode, "f"),
139
- width: args?.width || 150,
140
- dpr: args?.dpr ?? undefined,
141
- });
157
+ const person = await this.context.dataSources.capi.getPerson(uuid);
158
+ const url = (0, decorateHeadshotUrl_1.default)(person);
159
+ return url
160
+ ? (0, imageService_1.default)({
161
+ url,
162
+ systemCode: __classPrivateFieldGet(this, _Concept_systemCode, "f"),
163
+ width: args?.width || 150,
164
+ dpr: args?.dpr ?? undefined,
165
+ })
166
+ : null;
142
167
  }
143
- catch (err) {
168
+ catch (error) {
169
+ if ((0, isError_1.default)(error)) {
170
+ (0, log_error_1.logRecoverableError)({
171
+ logger: this.context.logger,
172
+ error,
173
+ });
174
+ }
144
175
  return null;
145
- //TODO: log operational error here
146
176
  }
147
177
  }
148
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Concept.js","sourceRoot":"","sources":["../../src/model/Concept.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Concept.js","sourceRoot":"","sources":["../../src/model/Concept.ts"],"names":[],"mappings":"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"}
@@ -69,9 +69,9 @@ describe('Concept model', () => {
69
69
  });
70
70
  });
71
71
  describe('headshot()', () => {
72
- it('throws an error if the concept is not for an author', async () => {
72
+ it('returns null if the concept is not for an author', async () => {
73
73
  const model = new Concept_1.Concept(topic, context);
74
- await expect(model.headshot()).rejects.toThrowError('Cannot request headshot for a non-Author concept');
74
+ expect(await model.headshot()).toEqual(null);
75
75
  });
76
76
  it('returns the headshot for an author', async () => {
77
77
  getPersonMock.mockResolvedValue(capiPerson_1.capiPerson);
@@ -1 +1 @@
1
- {"version":3,"file":"Concept.test.js","sourceRoot":"","sources":["../../src/model/Concept.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Concept.test.js","sourceRoot":"","sources":["../../src/model/Concept.test.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ class Picture {
22
22
  standard() {
23
23
  const images = this.images();
24
24
  const standard = images.find((image) => image.format() === 'standard-inline') ?? images[0];
25
+ // this assert will never fail, as a Picture model won't be constructed if
26
+ // the imageset is empty. it's here for Typescript's benefit
25
27
  assertDefined(standard, 'Picture must contain at least one image to display');
26
28
  return standard;
27
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Picture.js","sourceRoot":"","sources":["../../src/model/Picture.ts"],"names":[],"mappings":";;;;;;AAEA,mCAA0C;AAC1C,oDAA2B;AAI3B,8EAA8E;AAC9E,SAAS,aAAa,CACpB,KAAoB,EACpB,OAAgB;IAEhB,gBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC;AAED,MAAa,OAAO;IAClB,YACU,QAAkB,EAClB,UAAmB,EACnB,OAAqB;QAFrB,aAAQ,GAAR,QAAQ,CAAU;QAClB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAc;IAC5B,CAAC;IAEJ,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,iBAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAC9C,CAAA;IACH,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAC5B,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,iBAAiB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3E,aAAa,CACX,QAAQ,EACR,oDAAoD,CACrD,CAAA;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,mCAAmC;QAEnC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1D,OAAO,WAAW,CAAA;SACnB;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAA;QAErD,IAAI,UAAU,EAAE;YACd,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;YACpC,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE;gBAClD,OAAO,YAAY,CAAA;aACpB;SACF;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;CACF;AA3CD,0BA2CC"}
1
+ {"version":3,"file":"Picture.js","sourceRoot":"","sources":["../../src/model/Picture.ts"],"names":[],"mappings":";;;;;;AAEA,mCAA0C;AAC1C,oDAA2B;AAI3B,8EAA8E;AAC9E,SAAS,aAAa,CACpB,KAAoB,EACpB,OAAgB;IAEhB,gBAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC;AAED,MAAa,OAAO;IAClB,YACU,QAAkB,EAClB,UAAmB,EACnB,OAAqB;QAFrB,aAAQ,GAAR,QAAQ,CAAU;QAClB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAc;IAC5B,CAAC;IAEJ,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,iBAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAC9C,CAAA;IACH,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAC5B,MAAM,QAAQ,GACZ,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,iBAAiB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;QAE3E,0EAA0E;QAC1E,4DAA4D;QAC5D,aAAa,CACX,QAAQ,EACR,oDAAoD,CACrD,CAAA;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,mCAAmC;QAEnC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1D,OAAO,WAAW,CAAA;SACnB;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAA;QAErD,IAAI,UAAU,EAAE;YACd,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;YACpC,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE;gBAClD,OAAO,YAAY,CAAA;aACpB;SACF;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;CACF;AA9CD,0BA8CC"}
@@ -34,6 +34,6 @@ export declare class Topper {
34
34
  theme: "special-report" | "extra" | "basic";
35
35
  layout?: "wide" | "default" | undefined;
36
36
  };
37
- headshot(args: HeadshotArguments): string | null;
37
+ headshot(args: HeadshotArguments): Promise<string | null>;
38
38
  }
39
39
  export {};
@@ -97,9 +97,6 @@ class Topper {
97
97
  return this.capiResponse.topper()?.layout || 'branded';
98
98
  }
99
99
  backgroundColour() {
100
- if (this.capiResponse.isAlphaville()) {
101
- return 'matisse';
102
- }
103
100
  if (this.capiResponse.type() === 'ContentPackage' &&
104
101
  this.capiResponse.design()) {
105
102
  const theme = this.capiResponse.design()?.theme;
@@ -116,6 +113,9 @@ class Topper {
116
113
  if (type === 'OpinionTopper') {
117
114
  return this.capiResponse.isContainedInPackage() ? 'wheat' : 'sky';
118
115
  }
116
+ if (this.capiResponse.isAlphaville()) {
117
+ return 'matisse';
118
+ }
119
119
  if (type === 'PodcastTopper') {
120
120
  return 'slate';
121
121
  }
@@ -188,10 +188,9 @@ class Topper {
188
188
  return 'standard';
189
189
  }
190
190
  columnist() {
191
- if (this.capiResponse.isColumn()) {
192
- return this.capiResponse.getAuthors()[0] ?? null;
193
- }
194
- return null;
191
+ const authors = this.capiResponse.getAuthors();
192
+ const isOpinionOrColumn = this.type() === 'OpinionTopper' || this.capiResponse.isColumn();
193
+ return isOpinionOrColumn && authors.length ? authors[0] : null;
195
194
  }
196
195
  brandConcept() {
197
196
  if (this.capiResponse.isPodcast()) {
@@ -208,13 +207,21 @@ class Topper {
208
207
  design() {
209
208
  return this.capiResponse.design();
210
209
  }
211
- headshot(args) {
212
- const headshot = this.capiResponse.mainImage();
213
- if (!headshot) {
210
+ async headshot(args) {
211
+ let headshotUrl;
212
+ if (this.capiResponse.isPodcast()) {
213
+ headshotUrl = this.capiResponse.mainImage()?.url();
214
+ }
215
+ if (this.capiResponse.isOpinion()) {
216
+ const authors = this.capiResponse.getAuthors();
217
+ const headshotUrls = await Promise.all(authors.map(async (author) => await author.headshot(args))).then((res) => res.filter(Boolean));
218
+ headshotUrl = headshotUrls[0] ?? undefined;
219
+ }
220
+ if (!headshotUrl) {
214
221
  return null;
215
222
  }
216
223
  return (0, imageService_1.default)({
217
- url: headshot.url(),
224
+ url: headshotUrl,
218
225
  systemCode: __classPrivateFieldGet(this, _Topper_systemCode, "f"),
219
226
  width: args.width ?? undefined,
220
227
  dpr: args.dpr ?? undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"Topper.js","sourceRoot":"","sources":["../../src/model/Topper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Topper.js","sourceRoot":"","sources":["../../src/model/Topper.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare const articleSchema: 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 articleSchema: 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 articleSchema: 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 articleSchema: 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 articleSchema: 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,6 +9,7 @@ export declare const audioSchema: import("zod").ZodObject<{
9
9
  prefLabel: import("zod").ZodString;
10
10
  type: import("zod").ZodOptional<import("zod").ZodString>;
11
11
  types: import("zod").ZodArray<import("zod").ZodString, "many">;
12
+ headshot: import("zod").ZodOptional<import("zod").ZodString>;
12
13
  predicate: import("zod").ZodString;
13
14
  }, "strip", import("zod").ZodTypeAny, {
14
15
  id: string;
@@ -18,6 +19,7 @@ export declare const audioSchema: import("zod").ZodObject<{
18
19
  types: string[];
19
20
  predicate: string;
20
21
  type?: string | undefined;
22
+ headshot?: string | undefined;
21
23
  }, {
22
24
  id: string;
23
25
  apiUrl: string;
@@ -26,6 +28,7 @@ export declare const audioSchema: import("zod").ZodObject<{
26
28
  types: string[];
27
29
  predicate: string;
28
30
  type?: string | undefined;
31
+ headshot?: string | undefined;
29
32
  }>, "many">;
30
33
  webUrl: import("zod").ZodOptional<import("zod").ZodString>;
31
34
  canonicalWebUrl: import("zod").ZodOptional<import("zod").ZodString>;
@@ -325,6 +328,7 @@ export declare const audioSchema: import("zod").ZodObject<{
325
328
  types: string[];
326
329
  predicate: string;
327
330
  type?: string | undefined;
331
+ headshot?: string | undefined;
328
332
  }[];
329
333
  publishedDate: string;
330
334
  firstPublishedDate: string;
@@ -416,6 +420,7 @@ export declare const audioSchema: import("zod").ZodObject<{
416
420
  types: string[];
417
421
  predicate: string;
418
422
  type?: string | undefined;
423
+ headshot?: string | undefined;
419
424
  }[];
420
425
  publishedDate: string;
421
426
  firstPublishedDate: string;