@financial-times/cp-content-pipeline-schema 3.7.3 → 3.8.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.
- package/CHANGELOG.md +12 -0
- package/lib/datasources/capi.d.ts +4 -4
- package/lib/datasources/capi.js +4 -4
- package/lib/datasources/capi.js.map +1 -1
- package/lib/datasources/capi.test.js +3 -3
- package/lib/datasources/capi.test.js.map +1 -1
- package/lib/fixtures/dummyContext.js +2 -2
- package/lib/fixtures/dummyContext.js.map +1 -1
- package/lib/generated/index.d.ts +41 -23
- package/lib/model/Byline.d.ts +2 -2
- package/lib/model/Byline.js.map +1 -1
- package/lib/model/{CapiResponse.d.ts → Content.d.ts} +13 -12
- package/lib/model/{CapiResponse.js → Content.js} +14 -7
- package/lib/model/Content.js.map +1 -0
- package/lib/model/{CapiResponse.test.js → Content.test.js} +56 -15
- package/lib/model/Content.test.js.map +1 -0
- package/lib/model/LeadFlourish.d.ts +2 -2
- package/lib/model/LeadFlourish.js.map +1 -1
- package/lib/model/LeadFlourish.test.js +3 -3
- package/lib/model/LeadFlourish.test.js.map +1 -1
- package/lib/model/{CapiList.d.ts → List.d.ts} +5 -5
- package/lib/model/{CapiList.js → List.js} +5 -5
- package/lib/model/List.js.map +1 -0
- package/lib/model/RichText.d.ts +2 -2
- package/lib/model/RichText.js.map +1 -1
- package/lib/model/Topper.d.ts +2 -2
- package/lib/model/Topper.js.map +1 -1
- package/lib/model/Topper.test.js +22 -22
- package/lib/model/Topper.test.js.map +1 -1
- package/lib/model/schemas/capi/article.d.ts +5 -1
- package/lib/model/schemas/capi/article.js +1 -0
- package/lib/model/schemas/capi/article.js.map +1 -1
- package/lib/model/schemas/capi/audio.d.ts +5 -1
- package/lib/model/schemas/capi/audio.js +1 -0
- package/lib/model/schemas/capi/audio.js.map +1 -1
- package/lib/model/schemas/capi/base-schema.d.ts +5 -0
- package/lib/model/schemas/capi/base-schema.js +1 -0
- package/lib/model/schemas/capi/base-schema.js.map +1 -1
- package/lib/model/schemas/capi/content-package.d.ts +5 -1
- package/lib/model/schemas/capi/content-package.js +1 -0
- package/lib/model/schemas/capi/content-package.js.map +1 -1
- package/lib/model/schemas/capi/custom-code-component.d.ts +3 -0
- package/lib/model/schemas/capi/index.d.ts +28 -5
- package/lib/model/schemas/capi/live-blog-package.d.ts +5 -1
- package/lib/model/schemas/capi/live-blog-package.js +1 -0
- package/lib/model/schemas/capi/live-blog-package.js.map +1 -1
- package/lib/model/schemas/capi/placeholder.d.ts +5 -1
- package/lib/model/schemas/capi/placeholder.js +1 -0
- package/lib/model/schemas/capi/placeholder.js.map +1 -1
- package/lib/model/schemas/capi/video.d.ts +5 -1
- package/lib/model/schemas/capi/video.js +1 -0
- package/lib/model/schemas/capi/video.js.map +1 -1
- package/lib/resolvers/content-tree/references/CustomCodeComponent.js.map +1 -1
- package/lib/resolvers/content-tree/references/Recommended.d.ts +1 -1
- package/lib/resolvers/content-tree/references/index.d.ts +2 -2
- package/lib/resolvers/content-tree/tagMappings.d.ts +2 -2
- package/lib/resolvers/content-tree/tagMappings.js.map +1 -1
- package/lib/resolvers/content-tree/updateTreeWithReferenceIds.d.ts +2 -2
- package/lib/resolvers/content-tree/updateTreeWithReferenceIds.js.map +1 -1
- package/lib/resolvers/content.d.ts +251 -235
- package/lib/resolvers/content.js +27 -0
- package/lib/resolvers/content.js.map +1 -1
- package/lib/resolvers/core.d.ts +4 -4
- package/lib/resolvers/core.js +2 -2
- package/lib/resolvers/core.js.map +1 -1
- package/lib/resolvers/index.d.ts +276 -260
- package/lib/resolvers/list.d.ts +9 -9
- package/lib/resolvers/teaser.d.ts +13 -13
- package/package.json +1 -1
- package/queries/article.graphql +19 -0
- package/src/datasources/capi.test.ts +3 -3
- package/src/datasources/capi.ts +6 -9
- package/src/fixtures/dummyContext.ts +2 -2
- package/src/generated/index.ts +41 -23
- package/src/model/Byline.ts +2 -2
- package/src/model/{CapiResponse.test.ts → Content.test.ts} +65 -17
- package/src/model/{CapiResponse.ts → Content.ts} +24 -17
- package/src/model/LeadFlourish.test.ts +6 -5
- package/src/model/LeadFlourish.ts +2 -5
- package/src/model/{CapiList.ts → List.ts} +5 -5
- package/src/model/RichText.ts +2 -2
- package/src/model/Topper.test.ts +23 -26
- package/src/model/Topper.ts +2 -5
- package/src/model/schemas/capi/article.ts +1 -0
- package/src/model/schemas/capi/audio.ts +1 -0
- package/src/model/schemas/capi/base-schema.ts +1 -0
- package/src/model/schemas/capi/content-package.ts +1 -0
- package/src/model/schemas/capi/live-blog-package.ts +1 -0
- package/src/model/schemas/capi/placeholder.ts +1 -0
- package/src/model/schemas/capi/video.ts +1 -0
- package/src/resolvers/content-tree/references/CustomCodeComponent.ts +2 -2
- package/src/resolvers/content-tree/references/index.ts +2 -2
- package/src/resolvers/content-tree/tagMappings.ts +2 -2
- package/src/resolvers/content-tree/updateTreeWithReferenceIds.ts +2 -2
- package/src/resolvers/content.ts +27 -0
- package/src/resolvers/core.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/typedefs/content.graphql +19 -1
- package/lib/model/CapiList.js.map +0 -1
- package/lib/model/CapiResponse.js.map +0 -1
- package/lib/model/CapiResponse.test.js.map +0 -1
- /package/lib/model/{CapiResponse.test.d.ts → Content.test.d.ts} +0 -0
|
@@ -3,7 +3,7 @@ import { CustomCodeComponentResolvers } from '../../../generated'
|
|
|
3
3
|
import { ReferenceWithCAPIData } from '.'
|
|
4
4
|
import { ContentTree } from '@financial-times/content-tree'
|
|
5
5
|
import { RichText } from '../../../model/RichText'
|
|
6
|
-
import {
|
|
6
|
+
import { Content } from '../../../model/Content'
|
|
7
7
|
import type { QueryContext } from '../../..'
|
|
8
8
|
import isError from '../../../helpers/isError'
|
|
9
9
|
import { OperationalError } from '@dotcom-reliability-kit/errors'
|
|
@@ -18,7 +18,7 @@ async function getReferencesFromBody(
|
|
|
18
18
|
return null
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
let customCodeComponentContentData:
|
|
21
|
+
let customCodeComponentContentData: Content
|
|
22
22
|
try {
|
|
23
23
|
customCodeComponentContentData = await context.dataSources.capi.getContent(
|
|
24
24
|
uuidFromUrl(customCodeComponentEmbedData.apiUrl)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ContentTree } from '@financial-times/content-tree'
|
|
2
|
-
import type {
|
|
2
|
+
import type { Content } from '../../../model/Content'
|
|
3
3
|
|
|
4
4
|
import { Reference } from './Reference'
|
|
5
5
|
|
|
@@ -35,7 +35,7 @@ import { Author } from './Author'
|
|
|
35
35
|
|
|
36
36
|
export type ReferenceWithCAPIData<ReferenceType = ContentTree.Node> = {
|
|
37
37
|
reference: ReferenceType
|
|
38
|
-
contentApiData?:
|
|
38
|
+
contentApiData?: Content
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
export const resolvers: {
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
|
|
22
22
|
import * as scrollytelling from '@financial-times/n-scrollytelling-image/server'
|
|
23
23
|
import { LiteralToPrimitiveDeep } from 'type-fest'
|
|
24
|
-
import {
|
|
24
|
+
import { Content } from '../../model/Content'
|
|
25
25
|
import type { Cheerio, Element } from 'cheerio'
|
|
26
26
|
|
|
27
27
|
const tableResponsiveStyleMap: Record<string, Table['responsiveStyle']> = {
|
|
@@ -85,7 +85,7 @@ const validScrollytellingOption = <
|
|
|
85
85
|
: false
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
const articleTagMappings = (capiData?:
|
|
88
|
+
const articleTagMappings = (capiData?: Content): TagMappings => ({
|
|
89
89
|
'body > ft-content[type="http://www.ft.com/ontology/content/ImageSet"]:first-child':
|
|
90
90
|
($el) => ({
|
|
91
91
|
// CustomCodeComponent uses an inner bodyXML parsed as a RichText
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContentTree } from '@financial-times/content-tree'
|
|
2
|
-
import {
|
|
2
|
+
import { Content } from '../../model/Content'
|
|
3
3
|
import { ReferenceWithCAPIData, mapNodeToReference } from './references'
|
|
4
4
|
|
|
5
5
|
function isParent(node: ContentTree.Node): node is ContentTree.Parent {
|
|
@@ -12,7 +12,7 @@ const isValidReferenceType = (
|
|
|
12
12
|
|
|
13
13
|
export default function updateTreeWithReferenceIds(
|
|
14
14
|
tree: ContentTree.Parent,
|
|
15
|
-
contentApiData?:
|
|
15
|
+
contentApiData?: Content
|
|
16
16
|
): {
|
|
17
17
|
tree: ContentTree.Parent
|
|
18
18
|
references: ReferenceWithCAPIData[]
|
package/src/resolvers/content.ts
CHANGED
|
@@ -98,6 +98,7 @@ const resolvers = {
|
|
|
98
98
|
indicators: (parent) => {
|
|
99
99
|
return {
|
|
100
100
|
isPartnerContent: parent.isPartnerContent(),
|
|
101
|
+
isFTEdit: parent.isFTEdit(),
|
|
101
102
|
}
|
|
102
103
|
},
|
|
103
104
|
},
|
|
@@ -105,6 +106,11 @@ const resolvers = {
|
|
|
105
106
|
Placeholder: {
|
|
106
107
|
...contentResolvers,
|
|
107
108
|
containedIn: (parent) => parent.containedIn(),
|
|
109
|
+
indicators(parent) {
|
|
110
|
+
return {
|
|
111
|
+
isFTEdit: parent.isFTEdit(),
|
|
112
|
+
}
|
|
113
|
+
},
|
|
108
114
|
},
|
|
109
115
|
|
|
110
116
|
LiveBlogPost: {
|
|
@@ -131,6 +137,11 @@ const resolvers = {
|
|
|
131
137
|
}),
|
|
132
138
|
pinnedPost: (parent) => parent.pinnedPost(),
|
|
133
139
|
realtime: (parent) => parent.realtime(),
|
|
140
|
+
indicators(parent) {
|
|
141
|
+
return {
|
|
142
|
+
isFTEdit: parent.isFTEdit(),
|
|
143
|
+
}
|
|
144
|
+
},
|
|
134
145
|
},
|
|
135
146
|
|
|
136
147
|
ContentPackage: {
|
|
@@ -138,6 +149,11 @@ const resolvers = {
|
|
|
138
149
|
contains: (parent, args) => parent.contains(args),
|
|
139
150
|
tableOfContents: (parent) => parent.tableOfContents(),
|
|
140
151
|
containsLength: (parent) => parent.containsLength(),
|
|
152
|
+
indicators(parent) {
|
|
153
|
+
return {
|
|
154
|
+
isFTEdit: parent.isFTEdit(),
|
|
155
|
+
}
|
|
156
|
+
},
|
|
141
157
|
},
|
|
142
158
|
|
|
143
159
|
Audio: {
|
|
@@ -146,10 +162,20 @@ const resolvers = {
|
|
|
146
162
|
// TODO:20230712:IM should probably return captions too
|
|
147
163
|
parent.media()?.filter(({ mediaType }) => mediaType === 'audio/mpeg') ??
|
|
148
164
|
null,
|
|
165
|
+
indicators(parent) {
|
|
166
|
+
return {
|
|
167
|
+
isFTEdit: parent.isFTEdit(),
|
|
168
|
+
}
|
|
169
|
+
},
|
|
149
170
|
},
|
|
150
171
|
|
|
151
172
|
Video: {
|
|
152
173
|
...contentResolvers,
|
|
174
|
+
indicators(parent) {
|
|
175
|
+
return {
|
|
176
|
+
isFTEdit: parent.isFTEdit(),
|
|
177
|
+
}
|
|
178
|
+
},
|
|
153
179
|
},
|
|
154
180
|
|
|
155
181
|
AltStandfirst: {
|
|
@@ -168,6 +194,7 @@ const resolvers = {
|
|
|
168
194
|
// TODO:20240829:IM Rename this to ContentIndicators to clearly differentiate
|
|
169
195
|
// it from other Indicators types in the next major release.
|
|
170
196
|
Indicators: {
|
|
197
|
+
isFTEdit: (parent) => parent.isFTEdit ?? null,
|
|
171
198
|
isOpinion: (parent) => parent.isOpinion ?? null,
|
|
172
199
|
isPartnerContent: (parent) => parent.isPartnerContent ?? null,
|
|
173
200
|
},
|
package/src/resolvers/core.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'fs'
|
|
2
2
|
import path from 'path'
|
|
3
3
|
import { QueryResolvers, MutationResolvers } from '../generated'
|
|
4
|
-
import {
|
|
4
|
+
import { Content } from '../model/Content'
|
|
5
5
|
import { BaseError, HttpError } from '@dotcom-reliability-kit/errors'
|
|
6
6
|
|
|
7
7
|
const packageJson = JSON.parse(
|
|
@@ -59,7 +59,7 @@ const resolvers = {
|
|
|
59
59
|
return context.dataSources.capi.getList(args.uuid)
|
|
60
60
|
},
|
|
61
61
|
contentFromJSON(_, { content }, context) {
|
|
62
|
-
return
|
|
62
|
+
return Content.fromJSON(content, context)
|
|
63
63
|
},
|
|
64
64
|
},
|
|
65
65
|
Mutation: {
|