@financial-times/cp-content-pipeline-schema 3.18.0 → 3.20.0

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 (50) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/lib/generated/index.d.ts +11 -2
  3. package/lib/helpers/qualityWorkaround.d.ts +2 -0
  4. package/lib/helpers/qualityWorkaround.js +38 -0
  5. package/lib/helpers/qualityWorkaround.js.map +1 -0
  6. package/lib/model/Clip.d.ts +1 -17
  7. package/lib/model/Clip.js +27 -8
  8. package/lib/model/Clip.js.map +1 -1
  9. package/lib/model/Clip.test.js +77 -0
  10. package/lib/model/Clip.test.js.map +1 -1
  11. package/lib/model/schemas/capi/article.d.ts +18 -0
  12. package/lib/model/schemas/capi/audio.d.ts +14 -0
  13. package/lib/model/schemas/capi/base-schema.d.ts +42 -0
  14. package/lib/model/schemas/capi/base-schema.js +2 -0
  15. package/lib/model/schemas/capi/base-schema.js.map +1 -1
  16. package/lib/model/schemas/capi/content-package.d.ts +14 -0
  17. package/lib/model/schemas/capi/custom-code-component.d.ts +18 -0
  18. package/lib/model/schemas/capi/index.d.ts +96 -0
  19. package/lib/model/schemas/capi/live-blog-package.d.ts +18 -0
  20. package/lib/model/schemas/capi/placeholder.d.ts +18 -0
  21. package/lib/model/schemas/capi/video.d.ts +14 -0
  22. package/lib/resolvers/clip.d.ts +4 -9
  23. package/lib/resolvers/clip.js +3 -0
  24. package/lib/resolvers/clip.js.map +1 -1
  25. package/lib/resolvers/content-tree/Workarounds.d.ts +1 -0
  26. package/lib/resolvers/content-tree/references/RecommendedList.d.ts +4 -3
  27. package/lib/resolvers/content-tree/references/RecommendedList.js +5 -32
  28. package/lib/resolvers/content-tree/references/RecommendedList.js.map +1 -1
  29. package/lib/resolvers/content-tree/tagMappings.js +1 -0
  30. package/lib/resolvers/content-tree/tagMappings.js.map +1 -1
  31. package/lib/resolvers/index.d.ts +4 -9
  32. package/lib/types/clip.d.ts +21 -0
  33. package/lib/types/clip.js +3 -0
  34. package/lib/types/clip.js.map +1 -0
  35. package/package.json +1 -1
  36. package/queries/article.graphql +5 -3
  37. package/src/generated/index.ts +11 -2
  38. package/src/helpers/qualityWorkaround.ts +44 -0
  39. package/src/model/Clip.test.ts +95 -0
  40. package/src/model/Clip.ts +33 -27
  41. package/src/model/__snapshots__/RichText.test.ts.snap +3 -1
  42. package/src/model/schemas/capi/base-schema.ts +2 -0
  43. package/src/resolvers/clip.ts +3 -0
  44. package/src/resolvers/content-tree/Workarounds.ts +1 -0
  45. package/src/resolvers/content-tree/references/RecommendedList.ts +5 -45
  46. package/src/resolvers/content-tree/tagMappings.ts +1 -0
  47. package/src/types/clip.ts +23 -0
  48. package/tsconfig.tsbuildinfo +1 -1
  49. package/typedefs/clip.graphql +9 -0
  50. package/typedefs/references/recommendedList.graphql +1 -1
@@ -17,6 +17,9 @@ const resolvers = {
17
17
  pixelWidth: (parent) => parent.pixelWidth ?? null,
18
18
  pixelHeight: (parent) => parent.pixelHeight ?? null,
19
19
  videoCodec: (parent) => parent.videoCodec ?? null,
20
+ quality: (parent) => parent.quality ?? null,
21
+ dppx: (parent) => parent.dppx ?? null,
22
+ previousSourceWidth: (parent) => parent.previousSourceWidth ?? null,
20
23
  },
21
24
  };
22
25
  exports.default = resolvers;
@@ -1 +1 @@
1
- {"version":3,"file":"clip.js","sourceRoot":"","sources":["../../src/resolvers/clip.ts"],"names":[],"mappings":";;AAEA,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE;QACJ,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;QAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;QACvC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;QAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;QAC/B,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;KACxB;IAED,UAAU,EAAE;QACV,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI;QACjD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS;QACvC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI;QAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS;QACvC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI;QACjD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;QACnD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI;KAClD;CACiE,CAAA;AAEpE,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"clip.js","sourceRoot":"","sources":["../../src/resolvers/clip.ts"],"names":[],"mappings":";;AAEA,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE;QACJ,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM;QAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;QACvC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;QAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;QAC/B,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;KACxB;IAED,UAAU,EAAE;QACV,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI;QACjD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS;QACvC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI;QAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS;QACvC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI;QACjD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;QACnD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI;QACjD,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI;QAC3C,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI;QACrC,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI;KACpE;CACiE,CAAA;AAEpE,kBAAe,SAAS,CAAA"}
@@ -57,6 +57,7 @@ export interface ClipSet extends ContentTree.Node {
57
57
  loop: boolean;
58
58
  muted: boolean;
59
59
  dataLayout: 'in-line' | 'mid-grid' | 'full-grid';
60
+ fragmentIdentifier?: string;
60
61
  }
61
62
  export type TableColumnSettings = {
62
63
  hideOnMobile: boolean;
@@ -1,5 +1,6 @@
1
- import { ContentTree } from '@financial-times/content-tree';
2
1
  export declare const RecommendedList: {
3
- teasers(parent: import(".").ReferenceWithCAPIData<ContentTree.RecommendedList>, _args: {}, context: import("../../..").QueryContext): Promise<import("../../../model/Content").Content[]>;
4
- type(parent: import(".").ReferenceWithCAPIData<ContentTree.RecommendedList>): "recommended-list";
2
+ type(parent: import(".").ReferenceWithCAPIData<import("@financial-times/content-tree").ContentTree.RecommendedList>): "recommended-list";
3
+ children(parent: import(".").ReferenceWithCAPIData<import("@financial-times/content-tree").ContentTree.RecommendedList>): {
4
+ reference: import("@financial-times/content-tree").ContentTree.Recommended;
5
+ }[];
5
6
  };
@@ -1,41 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RecommendedList = void 0;
4
- const metadata_1 = require("../../../helpers/metadata");
5
- const errors_1 = require("@dotcom-reliability-kit/errors");
6
- function getTeaser(context) {
7
- return async function (child) {
8
- try {
9
- let content = await context.dataSources.capi.getContent((0, metadata_1.uuidFromUrl)(child.id));
10
- if (!content) {
11
- throw new Error('Invalid content from recommended article teaser');
12
- }
13
- if (child.teaserTitleOverride) {
14
- content = content.overrideTitle(child.teaserTitleOverride);
15
- }
16
- return content;
17
- }
18
- catch (error) {
19
- if (error instanceof Error) {
20
- context.logger.warn({
21
- event: 'RECOVERABLE_ERROR',
22
- error: new errors_1.OperationalError({
23
- code: 'RECOMMENDED_TEASER_ERROR',
24
- message: `Couldn't load teaser for recommended article ${child.id}`,
25
- cause: error,
26
- }),
27
- });
28
- }
29
- }
30
- };
31
- }
32
4
  exports.RecommendedList = {
33
- async teasers(parent, _args, context) {
34
- const responses = await Promise.all(parent.reference.children.map(getTeaser(context)));
35
- return responses.filter((response) => response !== undefined);
36
- },
37
5
  type(parent) {
38
6
  return parent.reference.type;
39
7
  },
8
+ children(parent) {
9
+ return parent.reference.children.map((child) => ({
10
+ reference: child,
11
+ }));
12
+ },
40
13
  };
41
14
  //# sourceMappingURL=RecommendedList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendedList.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/RecommendedList.ts"],"names":[],"mappings":";;;AAAA,wDAAuD;AAEvD,2DAAiE;AAKjE,SAAS,SAAS,CAAC,OAGlB;IACC,OAAO,KAAK,WAAW,KAA8B;QACnD,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CACrD,IAAA,sBAAW,EAAC,KAAK,CAAC,EAAE,CAAC,CACtB,CAAA;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;YACpE,CAAC;YAED,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAC5D,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,mBAAmB;oBAC1B,KAAK,EAAE,IAAI,yBAAgB,CAAC;wBAC1B,IAAI,EAAE,0BAA0B;wBAChC,OAAO,EAAE,gDAAgD,KAAK,CAAC,EAAE,EAAE;wBACnE,KAAK,EAAE,KAAK;qBACb,CAAC;iBACH,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO;QAClC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAClD,CAAA;QAED,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,CAAC,MAAM;QACT,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAA;IAC9B,CAAC;CACiC,CAAA"}
1
+ {"version":3,"file":"RecommendedList.js","sourceRoot":"","sources":["../../../../src/resolvers/content-tree/references/RecommendedList.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAG;IAC7B,IAAI,CAAC,MAAM;QACT,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAA;IAC9B,CAAC;IACD,QAAQ,CAAC,MAAM;QACb,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/C,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC,CAAA;IACL,CAAC;CACiC,CAAA"}
@@ -531,6 +531,7 @@ const commonTagMappings = {
531
531
  muted: (0, exports.getBooleanAttributeValue)($el, 'muted'),
532
532
  dataLayout: $el.attr('data-layout') ||
533
533
  'in-line',
534
+ fragmentIdentifier: $el.attr('data-fragment-identifier') || undefined,
534
535
  }),
535
536
  };
536
537
  exports.commonTagMappings = commonTagMappings;
@@ -1 +1 @@
1
- {"version":3,"file":"tagMappings.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/tagMappings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagMappings.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/tagMappings.ts"],"names":[],"mappings":"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"}
@@ -344,15 +344,7 @@ declare const resolvers: {
344
344
  MetaLink: import("../generated").MetaLinkResolvers;
345
345
  Clip: {
346
346
  __resolveType: () => string;
347
- dataSource: (clip: import("../model/Clip").Clip) => {
348
- binaryUrl: string;
349
- mediaType: string;
350
- audioCodec?: string;
351
- duration?: number;
352
- pixelHeight?: number;
353
- pixelWidth?: number;
354
- videoCodec?: string;
355
- }[];
347
+ dataSource: (clip: import("../model/Clip").Clip) => import("../types/clip").ClipSource[];
356
348
  type: (clip: import("../model/Clip").Clip) => string;
357
349
  format: (clip: import("../model/Clip").Clip) => "mobile" | "standard-inline";
358
350
  poster: (clip: import("../model/Clip").Clip) => string;
@@ -366,6 +358,9 @@ declare const resolvers: {
366
358
  pixelWidth: (parent: import("../generated").ClipSource) => number | null;
367
359
  pixelHeight: (parent: import("../generated").ClipSource) => number | null;
368
360
  videoCodec: (parent: import("../generated").ClipSource) => string | null;
361
+ quality: (parent: import("../generated").ClipSource) => string | null;
362
+ dppx: (parent: import("../generated").ClipSource) => number | null;
363
+ previousSourceWidth: (parent: import("../generated").ClipSource) => number | null;
369
364
  };
370
365
  Image: {
371
366
  __resolveType: import("../generated").TypeResolveFn<"ImageDesktop" | "ImageLandscape" | "ImageMobile" | "ImagePortrait" | "ImageSquare" | "ImageSquareFTEdit" | "ImageStandard" | "ImageStandardInline" | "ImageWide", import("../model/Image").Image, import("..").QueryContext>;
@@ -0,0 +1,21 @@
1
+ import { LiteralUnionScalarValues } from '../resolvers/literal-union';
2
+ import { ClipFormat } from '../resolvers/scalars';
3
+ export type ClipSource = {
4
+ binaryUrl: string;
5
+ mediaType: string;
6
+ audioCodec?: string;
7
+ duration?: number;
8
+ pixelHeight?: number;
9
+ pixelWidth?: number;
10
+ videoCodec?: string;
11
+ quality?: string;
12
+ dppx?: number;
13
+ previousSourceWidth?: number;
14
+ };
15
+ export interface ClipVideo {
16
+ id(): string;
17
+ type(): string;
18
+ format(): LiteralUnionScalarValues<typeof ClipFormat>;
19
+ poster(): string;
20
+ dataSource(): ClipSource[];
21
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=clip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clip.js","sourceRoot":"","sources":["../../src/types/clip.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/cp-content-pipeline-schema",
3
- "version": "3.18.0",
3
+ "version": "3.20.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -358,6 +358,9 @@ fragment Clip on Clip {
358
358
  pixelHeight
359
359
  pixelWidth
360
360
  videoCodec
361
+ quality
362
+ dppx
363
+ previousSourceWidth
361
364
  }
362
365
  poster
363
366
  }
@@ -433,12 +436,11 @@ fragment Recommended on Recommended {
433
436
  }
434
437
 
435
438
  fragment RecommendedList on RecommendedList {
436
- teasers {
437
- ...Teaser
439
+ children {
440
+ ...Recommended
438
441
  }
439
442
  }
440
443
 
441
-
442
444
  fragment Tweet on Tweet {
443
445
  html
444
446
  }
@@ -377,6 +377,8 @@ export type ClipSource = {
377
377
  readonly audioCodec?: Maybe<Scalars['String']['output']>;
378
378
  /** The url of the clip source, eg. 'https://next-media-api.ft.com/renditions/16868569859480/0x0.mp3'. */
379
379
  readonly binaryUrl: Scalars['String']['output'];
380
+ /** The encoding settings intention for the video media */
381
+ readonly dppx?: Maybe<Scalars['Int']['output']>;
380
382
  /** The duration of the clip in milliseconds. */
381
383
  readonly duration?: Maybe<Scalars['Int']['output']>;
382
384
  /** The media type eg. video/mp4. */
@@ -385,6 +387,10 @@ export type ClipSource = {
385
387
  readonly pixelHeight?: Maybe<Scalars['Int']['output']>;
386
388
  /** The width of the clip in pixels. */
387
389
  readonly pixelWidth?: Maybe<Scalars['Int']['output']>;
390
+ /** The width of the source immediately narrower than this one. */
391
+ readonly previousSourceWidth?: Maybe<Scalars['Int']['output']>;
392
+ /** The encoding quality of the video media */
393
+ readonly quality?: Maybe<Scalars['String']['output']>;
388
394
  /** The video encoding format of the source, eg. h264. */
389
395
  readonly videoCodec?: Maybe<Scalars['String']['output']>;
390
396
  };
@@ -1632,7 +1638,7 @@ export type Recommended = Reference & {
1632
1638
 
1633
1639
  export type RecommendedList = Reference & {
1634
1640
  /** Recommended references contain teaser thumbnails of related articles. */
1635
- readonly teasers: ReadonlyArray<Teaser>;
1641
+ readonly children: ReadonlyArray<Recommended>;
1636
1642
  /** The type of the reference, eg. 'recommended'. */
1637
1643
  readonly type: Scalars['String']['output'];
1638
1644
  };
@@ -2413,10 +2419,13 @@ export type ClipSetResolvers<ContextType = QueryContext, ParentType extends Reso
2413
2419
  export type ClipSourceResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['ClipSource'] = ResolversParentTypes['ClipSource']> = ResolversObject<{
2414
2420
  audioCodec: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2415
2421
  binaryUrl: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2422
+ dppx: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
2416
2423
  duration: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
2417
2424
  mediaType: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2418
2425
  pixelHeight: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
2419
2426
  pixelWidth: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
2427
+ previousSourceWidth: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;
2428
+ quality: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2420
2429
  videoCodec: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2421
2430
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
2422
2431
  }>;
@@ -3086,7 +3095,7 @@ export type RecommendedResolvers<ContextType = QueryContext, ParentType extends
3086
3095
  }>;
3087
3096
 
3088
3097
  export type RecommendedListResolvers<ContextType = QueryContext, ParentType extends ResolversParentTypes['RecommendedList'] = ResolversParentTypes['RecommendedList']> = ResolversObject<{
3089
- teasers: Resolver<ReadonlyArray<ResolversTypes['Teaser']>, ParentType, ContextType>;
3098
+ children: Resolver<ReadonlyArray<ResolversTypes['Recommended']>, ParentType, ContextType>;
3090
3099
  type: Resolver<ResolversTypes['String'], ParentType, ContextType>;
3091
3100
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
3092
3101
  }>;
@@ -0,0 +1,44 @@
1
+ // until we get quality setting data through from CAPI, we infer the quality and ddpx from the details in the filename
2
+ // once we have quality data from CAPI, we can remove this module
3
+ import type { ClipSource } from '../types/clip'
4
+
5
+ // possible output sizes are set in https://github.com/Financial-Times/ip-ovide/tree/main/common/n-zencoder/src/profiles
6
+ const dimensions = new Map([
7
+ [1920, 1080],
8
+ [1280, 720],
9
+ [960, 540],
10
+ [640, 360],
11
+ [480, 270],
12
+ ])
13
+
14
+ // utility to extract width from filename pattern like /640x360.mp4
15
+ function getDimensionsFromFilename(url: string): number[] {
16
+ // regex: get the first set of digits after a "/" and before "x", followed by 1+ digits, followed by ".mp" and 1 digit, then end of string.
17
+ const widthRegex = /\/(\d+)x(\d+)\.mp\d$/i
18
+ const widthMatch = url.match(widthRegex)
19
+ return [
20
+ parseInt(widthMatch?.[1] ?? '0', 10),
21
+ parseInt(widthMatch?.[2] ?? '0', 10),
22
+ ]
23
+ }
24
+
25
+ export default function qualityWorkaround(
26
+ dataSource: ClipSource[]
27
+ ): ClipSource[] {
28
+ return dataSource.map((source) => {
29
+ const originalDimensions = getDimensionsFromFilename(source.binaryUrl ?? '')
30
+ if (originalDimensions[0] === 0) {
31
+ // this will apply to audio files
32
+ return source
33
+ }
34
+ const smallerDimension = Math.min(...originalDimensions)
35
+ source.quality = `${
36
+ Array.from(dimensions.values()).includes(smallerDimension)
37
+ ? smallerDimension
38
+ : dimensions.get(smallerDimension)
39
+ }p`
40
+ // hot fix to for all video sources to have a dppx of 1
41
+ source.dppx = 1
42
+ return source
43
+ })
44
+ }
@@ -4,6 +4,42 @@ const mockContext = {
4
4
  systemCode: 'cp-content-pipeline',
5
5
  } as unknown as QueryContext
6
6
 
7
+ const mockDataSources = [
8
+ {
9
+ audioCodec: 'mp3',
10
+ binaryUrl: 'https://clips.ft.com/someguid/0x0.mp3',
11
+ duration: 21720,
12
+ mediaType: 'audio/mpeg',
13
+ },
14
+ {
15
+ audioCodec: 'aac',
16
+ binaryUrl: 'https://clips.ft.com/someguid/640x360.mp4',
17
+ duration: 21684,
18
+ mediaType: 'video/mp4',
19
+ pixelHeight: 360,
20
+ pixelWidth: 640,
21
+ videoCodec: 'h264',
22
+ },
23
+ {
24
+ audioCodec: 'aac',
25
+ binaryUrl: 'https://clips.ft.com/someguid/1280x720.mp4',
26
+ duration: 21684,
27
+ mediaType: 'video/mp4',
28
+ pixelHeight: 720,
29
+ pixelWidth: 1280,
30
+ videoCodec: 'h264',
31
+ },
32
+ {
33
+ audioCodec: 'aac',
34
+ binaryUrl: 'https://clips.ft.com/someguid/1920x1080.mp4',
35
+ duration: 21684,
36
+ mediaType: 'video/mp4',
37
+ pixelHeight: 720,
38
+ pixelWidth: 1280,
39
+ videoCodec: 'h264',
40
+ },
41
+ ]
42
+
7
43
  describe('Clip', () => {
8
44
  describe('poster', () => {
9
45
  it('uses the Origami Image Service when a url is provided', () => {
@@ -170,4 +206,63 @@ describe('Clip', () => {
170
206
  expect(clip.poster()).toContain('width=1200')
171
207
  })
172
208
  })
209
+ describe('datasources', () => {
210
+ xit('creates a quality value and dppx value based on the width in the URL when quality is not provided', () => {
211
+ const clip = new Clip(
212
+ {
213
+ id: 'http://api.ft.com/things/1234',
214
+ type: 'http://www.ft.com/ontology/content/Clip',
215
+ dataSource: mockDataSources,
216
+ },
217
+ mockContext
218
+ )
219
+ const dataSource = clip.dataSource()
220
+ expect(dataSource).toHaveLength(4)
221
+ expect(dataSource?.[0]?.quality).toBe('1080p')
222
+ expect(dataSource?.[0]?.dppx).toBe(2)
223
+ expect(dataSource?.[1]?.quality).toBe('720p')
224
+ expect(dataSource?.[2]?.quality).toBe('360p')
225
+ expect(dataSource?.[3]?.quality).toBeUndefined()
226
+ })
227
+ xit('orders the data sources by width and then dppx', () => {
228
+ const clip = new Clip(
229
+ {
230
+ id: 'http://api.ft.com/things/1234',
231
+ type: 'http://www.ft.com/ontology/content/Clip',
232
+ dataSource: mockDataSources,
233
+ },
234
+ mockContext
235
+ )
236
+ const dataSource = clip.dataSource()
237
+ expect(dataSource).toHaveLength(4)
238
+ expect(dataSource?.[0]?.binaryUrl).toBe(
239
+ 'https://clips.ft.com/someguid/1920x1080.mp4'
240
+ )
241
+ expect(dataSource?.[1]?.binaryUrl).toBe(
242
+ 'https://clips.ft.com/someguid/1280x720.mp4'
243
+ )
244
+ expect(dataSource?.[2]?.binaryUrl).toBe(
245
+ 'https://clips.ft.com/someguid/640x360.mp4'
246
+ )
247
+ expect(dataSource?.[3]?.binaryUrl).toBe(
248
+ 'https://clips.ft.com/someguid/0x0.mp3'
249
+ )
250
+ })
251
+ it('sets the previousSourceWidth to the next most narrow source', () => {
252
+ const clip = new Clip(
253
+ {
254
+ id: 'http://api.ft.com/things/1234',
255
+ type: 'http://www.ft.com/ontology/content/Clip',
256
+ dataSource: mockDataSources,
257
+ },
258
+ mockContext
259
+ )
260
+ const dataSource = clip.dataSource()
261
+ expect(dataSource).toHaveLength(4)
262
+ expect(dataSource?.[0]?.previousSourceWidth).toBe(640)
263
+ expect(dataSource?.[1]?.previousSourceWidth).toBe(640)
264
+ expect(dataSource?.[2]?.previousSourceWidth).toBeUndefined()
265
+ expect(dataSource?.[3]?.previousSourceWidth).toBeUndefined()
266
+ })
267
+ })
173
268
  })
package/src/model/Clip.ts CHANGED
@@ -6,25 +6,9 @@ import {
6
6
  } from '../resolvers/literal-union'
7
7
  import { ClipFormat } from '../resolvers/scalars'
8
8
  import imageServiceUrl from '../helpers/imageService'
9
+ import qualityWorkaround from '../helpers/qualityWorkaround'
9
10
  import { QueryContext } from '..'
10
-
11
- type ClipSource = {
12
- binaryUrl: string
13
- mediaType: string
14
- audioCodec?: string
15
- duration?: number
16
- pixelHeight?: number
17
- pixelWidth?: number
18
- videoCodec?: string
19
- }
20
-
21
- interface ClipVideo {
22
- id(): string
23
- type(): string
24
- format(): LiteralUnionScalarValues<typeof ClipFormat>
25
- poster(): string
26
- dataSource(): ClipSource[]
27
- }
11
+ import type { ClipSource, ClipVideo } from '../types/clip'
28
12
 
29
13
  export class Clip implements ClipVideo {
30
14
  constructor(
@@ -60,18 +44,40 @@ export class Clip implements ClipVideo {
60
44
  return 'standard-inline'
61
45
  }
62
46
 
47
+ // apply 'quality' workaround
48
+ // order sources by width and then quality
49
+ // get the min width from the first previous more narrow item
63
50
  dataSource() {
64
- // Order clip dataSource to have an order of video formats first then audio/mpeg, as the browser will first check if it can play the MIME type of the first source
65
- const dataSource = this.clip.dataSource.slice().sort((a, b) => {
66
- if (a.mediaType === 'video/mp4' && b.mediaType !== 'video/mp4') {
67
- return -1
68
- }
69
- if (a.mediaType !== 'video/mp4' && b.mediaType === 'video/mp4') {
70
- return 1
51
+ // create a copy of the array so we don't modify the original data
52
+ let dataSource = this.clip.dataSource.map((src) => ({
53
+ ...src,
54
+ })) as ClipSource[]
55
+ dataSource = qualityWorkaround(dataSource as ClipSource[])
56
+ dataSource = dataSource.sort((a, b) => {
57
+ const widthDiff = (b.pixelWidth ?? 0) - (a.pixelWidth ?? 0)
58
+ if (widthDiff !== 0) {
59
+ return widthDiff
71
60
  }
72
- return 0
61
+ return (b?.dppx ?? 0) - (a?.dppx ?? 0)
73
62
  })
74
- return dataSource as ClipSource[]
63
+
64
+ // get the min width from the previous item if it has pixelWidth set, checking it is not the same as pixelWidth as the current item
65
+ for (let i = 0; i < dataSource.length; i++) {
66
+ let next = 1
67
+ let minWidth = dataSource[i + next]?.pixelWidth
68
+ while (
69
+ typeof minWidth !== 'undefined' &&
70
+ minWidth === dataSource[i]?.pixelWidth
71
+ ) {
72
+ next++
73
+ minWidth = dataSource[i + next]?.pixelWidth
74
+ }
75
+ if (minWidth && dataSource[i]) {
76
+ dataSource[i]!.previousSourceWidth = minWidth
77
+ }
78
+ }
79
+
80
+ return dataSource
75
81
  }
76
82
 
77
83
  poster() {
@@ -112,6 +112,7 @@ exports[`RichText resolver should transform bodyXML to an AST 1`] = `
112
112
  "referenceIndex": 9,
113
113
  },
114
114
  "dataLayout": "in-line",
115
+ "fragmentIdentifier": undefined,
115
116
  "id": "http://api-t.ft.com/content/f17fe25b-cdea-4d5f-a6af-40e56e33e888",
116
117
  "loop": true,
117
118
  "muted": true,
@@ -944,6 +945,7 @@ Join our online book group on Facebook at FT Books Café",
944
945
  "referenceIndex": 9,
945
946
  },
946
947
  "dataLayout": "in-line",
948
+ "fragmentIdentifier": undefined,
947
949
  "id": "http://api-t.ft.com/content/f17fe25b-cdea-4d5f-a6af-40e56e33e888",
948
950
  "loop": true,
949
951
  "muted": true,
@@ -1040,4 +1042,4 @@ Join our online book group on Facebook at FT Books Café",
1040
1042
  "version": 1,
1041
1043
  },
1042
1044
  }
1043
- `;
1045
+ `;
@@ -103,6 +103,8 @@ const ClipSource = z.object({
103
103
  pixelHeight: z.number().optional(),
104
104
  pixelWidth: z.number().optional(),
105
105
  videoCodec: z.string().optional(),
106
+ quality: z.string().optional(),
107
+ dppx: z.number().optional(),
106
108
  })
107
109
 
108
110
  export const Clip = z.object({
@@ -18,6 +18,9 @@ const resolvers = {
18
18
  pixelWidth: (parent) => parent.pixelWidth ?? null,
19
19
  pixelHeight: (parent) => parent.pixelHeight ?? null,
20
20
  videoCodec: (parent) => parent.videoCodec ?? null,
21
+ quality: (parent) => parent.quality ?? null,
22
+ dppx: (parent) => parent.dppx ?? null,
23
+ previousSourceWidth: (parent) => parent.previousSourceWidth ?? null,
21
24
  },
22
25
  } satisfies { Clip: ClipResolvers; ClipSource: ClipSourceResolvers }
23
26
 
@@ -96,6 +96,7 @@ export interface ClipSet extends ContentTree.Node {
96
96
  loop: boolean
97
97
  muted: boolean
98
98
  dataLayout: 'in-line' | 'mid-grid' | 'full-grid'
99
+ fragmentIdentifier?: string
99
100
  }
100
101
 
101
102
  export type TableColumnSettings = {