@financial-times/cp-content-pipeline-schema 3.5.0 → 3.5.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 (52) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/generated/index.d.ts +4 -21
  3. package/lib/model/FlourishSource.d.ts +12 -5
  4. package/lib/model/FlourishSource.js +32 -28
  5. package/lib/model/FlourishSource.js.map +1 -1
  6. package/lib/model/FlourishSource.test.js +5 -5
  7. package/lib/model/FlourishSource.test.js.map +1 -1
  8. package/lib/model/Image.js +11 -20
  9. package/lib/model/Image.js.map +1 -1
  10. package/lib/model/Image.test.js +24 -54
  11. package/lib/model/Image.test.js.map +1 -1
  12. package/lib/model/LeadFlourish.d.ts +1 -1
  13. package/lib/model/LeadFlourish.js +4 -1
  14. package/lib/model/LeadFlourish.js.map +1 -1
  15. package/lib/model/LeadFlourish.test.js +5 -7
  16. package/lib/model/LeadFlourish.test.js.map +1 -1
  17. package/lib/model/schemas/capi/article.d.ts +3 -3
  18. package/lib/model/schemas/capi/audio.d.ts +5 -5
  19. package/lib/model/schemas/capi/base-schema.d.ts +5 -5
  20. package/lib/model/schemas/capi/base-schema.js +1 -1
  21. package/lib/model/schemas/capi/base-schema.js.map +1 -1
  22. package/lib/model/schemas/capi/content-package.d.ts +3 -3
  23. package/lib/model/schemas/capi/custom-code-component.d.ts +3 -3
  24. package/lib/model/schemas/capi/index.d.ts +20 -20
  25. package/lib/model/schemas/capi/live-blog-package.d.ts +3 -3
  26. package/lib/model/schemas/capi/placeholder.d.ts +3 -3
  27. package/lib/model/schemas/capi/video.d.ts +3 -3
  28. package/lib/resolvers/content-tree/references/Flourish.d.ts +9 -19
  29. package/lib/resolvers/content-tree/references/Flourish.js +10 -32
  30. package/lib/resolvers/content-tree/references/Flourish.js.map +1 -1
  31. package/lib/resolvers/content-tree/references/Flourish.test.js +3 -3
  32. package/lib/resolvers/content-tree/references/Flourish.test.js.map +1 -1
  33. package/lib/resolvers/content-tree/references/index.d.ts +2 -2
  34. package/lib/resolvers/content-tree/references/index.js +1 -1
  35. package/lib/resolvers/content-tree/references/index.js.map +1 -1
  36. package/lib/resolvers/index.d.ts +1 -2
  37. package/lib/resolvers/leadFlourish.d.ts +1 -1
  38. package/package.json +1 -1
  39. package/src/generated/index.ts +4 -23
  40. package/src/model/FlourishSource.test.ts +5 -5
  41. package/src/model/FlourishSource.ts +57 -39
  42. package/src/model/Image.test.ts +37 -60
  43. package/src/model/Image.ts +14 -22
  44. package/src/model/LeadFlourish.test.ts +6 -9
  45. package/src/model/LeadFlourish.ts +5 -1
  46. package/src/model/schemas/capi/base-schema.ts +1 -1
  47. package/src/resolvers/content-tree/references/Flourish.test.ts +4 -3
  48. package/src/resolvers/content-tree/references/Flourish.ts +16 -32
  49. package/src/resolvers/content-tree/references/index.ts +4 -4
  50. package/tsconfig.tsbuildinfo +1 -1
  51. package/typedefs/leadFlourish.graphql +1 -1
  52. package/typedefs/references/flourish.graphql +1 -11
@@ -30,6 +30,7 @@ describe('Flourish Model', () => {
30
30
  timestamp: '2022-01-06T14:41:01.102Z',
31
31
  description: 'Example description',
32
32
  }
33
+
33
34
  const fallbackResponse = await Flourish.fallbackImage(
34
35
  { reference },
35
36
  {},
@@ -42,7 +43,7 @@ describe('Flourish Model', () => {
42
43
  /https:\/\/public.flourish.studio\/.*\/.*\/thumbnail/
43
44
  )
44
45
 
45
- expect(decodeURIComponent(fallbackResponse.url as string)).toMatch(
46
+ expect(decodeURIComponent(fallbackResponse?.url() as string)).toMatch(
46
47
  flourishImageUrlRegex
47
48
  )
48
49
  })
@@ -66,7 +67,7 @@ describe('Flourish Model', () => {
66
67
  /https:\/\/public.flourish.studio\/.*\/example-id/
67
68
  )
68
69
 
69
- expect(decodeURIComponent(fallbackResponse.url as string)).toMatch(
70
+ expect(decodeURIComponent(fallbackResponse?.url() as string)).toMatch(
70
71
  flourishImageUrlRegex
71
72
  )
72
73
  })
@@ -88,7 +89,7 @@ describe('Flourish Model', () => {
88
89
 
89
90
  const flourishImageUrl = 'https://public.flourish.studio/example-type'
90
91
 
91
- expect(fallbackResponse.url).toContain(
92
+ expect(fallbackResponse?.url() ?? '').toContain(
92
93
  encodeURIComponent(flourishImageUrl)
93
94
  )
94
95
  })
@@ -1,38 +1,25 @@
1
- import imageServiceUrl from '../../../helpers/imageService'
2
1
  import {
3
- FlourishFallbackResolvers,
4
2
  FlourishResolvers,
3
+ FlourishSourceResolvers,
5
4
  } from '../../../generated'
6
- import { FlourishSource } from '../../../model/FlourishSource'
5
+ import { FlourishSource as FlourishSourceModel } from '../../../model/FlourishSource'
7
6
 
8
7
  export const Flourish = {
9
8
  async fallbackImage(parent, _args, context) {
10
9
  if (!parent.reference) {
11
- return {}
10
+ return null
12
11
  }
12
+
13
13
  const flourishData = {
14
14
  id: parent.reference.id,
15
15
  type: parent.reference.flourishType,
16
16
  description: parent.reference.description,
17
17
  }
18
- const flourishSource = new FlourishSource(flourishData, context)
19
- const width = await flourishSource.width()
20
- const height = await flourishSource.height()
21
-
22
- const imageServiceWrappedUrl = imageServiceUrl({
23
- url: flourishSource.flourishUrl(),
24
- systemCode: context.systemCode ?? 'cp-content-pipeline',
25
- width,
26
- })
27
18
 
28
- return {
29
- url: imageServiceWrappedUrl,
30
- type: flourishSource.type(),
31
- format: flourishSource.format(),
32
- sourceSet: [],
33
- width,
34
- height,
35
- }
19
+ return FlourishSourceModel.createWithMetadata(
20
+ flourishData,
21
+ context
22
+ )
36
23
  },
37
24
 
38
25
  type(parent) {
@@ -40,14 +27,11 @@ export const Flourish = {
40
27
  },
41
28
  } satisfies FlourishResolvers
42
29
 
43
- export const FlourishFallback = {
44
- async height(parent) {
45
- return parent.height ?? null
46
- },
47
- async width(parent) {
48
- return parent.width ?? null
49
- },
50
- async url(parent) {
51
- return parent.url ?? null
52
- },
53
- } satisfies FlourishFallbackResolvers
30
+ export const FlourishSource = {
31
+ id: (parent) => parent.id(),
32
+ url: (parent) => parent.flourishUrl(),
33
+ type: (parent) => parent.type(),
34
+ width: (parent) => parent.width(),
35
+ height: (parent) => parent.height(),
36
+ format: (parent) => parent.format(),
37
+ } satisfies FlourishSourceResolvers
@@ -8,7 +8,7 @@ import { ImageSet } from './ImageSet'
8
8
  import { ClipSet, Accessibility, Caption } from './ClipSet'
9
9
  import { CustomCodeComponent } from './CustomCodeComponent'
10
10
  import { Video } from './Video'
11
- import { Flourish, FlourishFallback } from './Flourish'
11
+ import { Flourish, FlourishSource } from './Flourish'
12
12
  import { Recommended } from './Recommended'
13
13
  import { LayoutImage } from './LayoutImage'
14
14
  import { RawImage } from './RawImage'
@@ -27,8 +27,8 @@ import {
27
27
  VideoReferenceResolvers,
28
28
  CaptionResolvers,
29
29
  AccessibilityResolvers,
30
- FlourishFallbackResolvers,
31
30
  AuthorReferenceResolvers,
31
+ FlourishSourceResolvers,
32
32
  } from '../../../generated'
33
33
  import { AnyNode } from '../Workarounds'
34
34
  import { Author } from './Author'
@@ -46,6 +46,7 @@ export const resolvers: {
46
46
  CustomCodeComponent: CustomCodeComponentResolvers
47
47
  VideoReference: VideoReferenceResolvers
48
48
  Flourish: FlourishResolvers
49
+ FlourishSource: FlourishSourceResolvers
49
50
  Recommended: RecommendedResolvers
50
51
  LayoutImage: LayoutImageResolvers
51
52
  RawImage: RawImageResolvers
@@ -53,7 +54,6 @@ export const resolvers: {
53
54
  MainImage: ImageSetResolvers
54
55
  Caption: CaptionResolvers
55
56
  Accessibility: AccessibilityResolvers
56
- FlourishFallback: FlourishFallbackResolvers
57
57
  AuthorReference: AuthorReferenceResolvers
58
58
  } = {
59
59
  Reference,
@@ -63,6 +63,7 @@ export const resolvers: {
63
63
  CustomCodeComponent,
64
64
  VideoReference: Video,
65
65
  Flourish,
66
+ FlourishSource,
66
67
  Recommended,
67
68
  LayoutImage,
68
69
  RawImage,
@@ -70,7 +71,6 @@ export const resolvers: {
70
71
  MainImage: ImageSet,
71
72
  Caption,
72
73
  Accessibility,
73
- FlourishFallback,
74
74
  AuthorReference: Author,
75
75
  }
76
76