@financial-times/cp-content-pipeline-schema 2.3.0 → 2.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.
- package/CHANGELOG.md +7 -0
- package/lib/model/Concept.test.js +0 -9
- package/lib/model/Concept.test.js.map +1 -1
- package/lib/model/RichText.d.ts +1 -1
- package/lib/model/RichText.js +20 -34
- package/lib/model/RichText.js.map +1 -1
- package/lib/model/RichText.test.js +0 -9
- package/lib/model/RichText.test.js.map +1 -1
- package/lib/resolvers/content-tree/bodyXMLToTree.d.ts +4 -3
- package/lib/resolvers/content-tree/bodyXMLToTree.js +2 -2
- package/lib/resolvers/content-tree/bodyXMLToTree.js.map +1 -1
- package/lib/resolvers/content-tree/bodyXMLToTree.test.js +20 -32
- package/lib/resolvers/content-tree/bodyXMLToTree.test.js.map +1 -1
- package/lib/resolvers/content-tree/nodePredicates.d.ts +6 -13
- package/lib/resolvers/content-tree/nodePredicates.js +33 -33
- package/lib/resolvers/content-tree/nodePredicates.js.map +1 -1
- package/lib/resolvers/content-tree/references/Reference.d.ts +1 -1
- package/lib/resolvers/content-tree/tagMappings.d.ts +2 -1
- package/lib/resolvers/content-tree/tagMappings.js +60 -60
- package/lib/resolvers/content-tree/tagMappings.js.map +1 -1
- package/package.json +1 -2
- package/src/model/Concept.test.ts +0 -9
- package/src/model/RichText.test.ts +0 -10
- package/src/model/RichText.ts +27 -39
- package/src/resolvers/content-tree/bodyXMLToTree.test.ts +22 -32
- package/src/resolvers/content-tree/bodyXMLToTree.ts +11 -6
- package/src/resolvers/content-tree/nodePredicates.ts +39 -45
- package/src/resolvers/content-tree/tagMappings.ts +102 -60
- package/tsconfig.tsbuildinfo +1 -1
- package/__mocks__/worker_threads.ts +0 -3
- package/lib/resolvers/content-tree/bodyXMLToTreeWorker.d.ts +0 -9
- package/lib/resolvers/content-tree/bodyXMLToTreeWorker.js +0 -18
- package/lib/resolvers/content-tree/bodyXMLToTreeWorker.js.map +0 -1
- package/src/resolvers/content-tree/bodyXMLToTreeWorker.ts +0 -31
|
@@ -65,9 +65,9 @@ const validScrollytellingOption = (key, attribute) => {
|
|
|
65
65
|
? attribute in scrollytellingOptionsToContentTree[key]
|
|
66
66
|
: false;
|
|
67
67
|
};
|
|
68
|
-
const articleTagMappings = (
|
|
68
|
+
const articleTagMappings = (capiData) => ({
|
|
69
69
|
'body > ft-content[type="http://www.ft.com/ontology/content/ImageSet"]:first-child': ($el) => ({
|
|
70
|
-
type: topperHasImage ? 'image-set' : 'main-image',
|
|
70
|
+
type: capiData?.topperHasImage() ? 'image-set' : 'main-image',
|
|
71
71
|
id: $el.attr('url') || '',
|
|
72
72
|
}),
|
|
73
73
|
'body > ft-content[type="http://www.ft.com/ontology/content/ImageSet"]:not(:first-child),:not(body) > ft-content[type="http://www.ft.com/ontology/content/ImageSet"]': ($el) => ({
|
|
@@ -85,54 +85,54 @@ const liveBlogPostTagMappings = {
|
|
|
85
85
|
exports.liveBlogPostTagMappings = liveBlogPostTagMappings;
|
|
86
86
|
const commonTagMappings = {
|
|
87
87
|
body: ($el, traverse) => ({ type: 'body', version: 1, children: traverse() }),
|
|
88
|
-
'a:not([data-asset-type])': ($el, traverse) => ({
|
|
88
|
+
'a:not([data-asset-type])': ($el, traverse, context) => ({
|
|
89
89
|
type: 'link',
|
|
90
90
|
url: $el.attr('href') || '',
|
|
91
91
|
title: '',
|
|
92
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'link'),
|
|
92
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'link', context),
|
|
93
93
|
}),
|
|
94
|
-
strong: ($el, traverse) => ({
|
|
94
|
+
strong: ($el, traverse, context) => ({
|
|
95
95
|
type: 'strong',
|
|
96
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'strong'),
|
|
96
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'strong', context),
|
|
97
97
|
}),
|
|
98
|
-
em: ($el, traverse) => ({
|
|
98
|
+
em: ($el, traverse, context) => ({
|
|
99
99
|
type: 'emphasis',
|
|
100
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'emphasis'),
|
|
100
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'emphasis', context),
|
|
101
101
|
}),
|
|
102
|
-
blockquote: ($el, traverse) => ({
|
|
102
|
+
blockquote: ($el, traverse, context) => ({
|
|
103
103
|
type: 'blockquote',
|
|
104
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'blockquote'),
|
|
104
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'blockquote', context),
|
|
105
105
|
}),
|
|
106
106
|
// strip any (redundant) line breaks in between two paragraphs
|
|
107
107
|
'p + br': ($el) => ($el.next()[0]?.tagName === 'p' ? [] : { type: 'break' }),
|
|
108
108
|
br: () => ({ type: 'break' }),
|
|
109
109
|
hr: () => ({ type: 'thematic-break' }),
|
|
110
|
-
s: ($el, traverse) => ({
|
|
110
|
+
s: ($el, traverse, context) => ({
|
|
111
111
|
type: 'strikethrough',
|
|
112
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'strikethrough'),
|
|
112
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'strikethrough', context),
|
|
113
113
|
}),
|
|
114
|
-
ul: ($el, traverse) => ({
|
|
114
|
+
ul: ($el, traverse, context) => ({
|
|
115
115
|
type: 'list',
|
|
116
|
-
children: (0, nodePredicates_1.everyChildIsType)('list-item', traverse(), 'list'),
|
|
116
|
+
children: (0, nodePredicates_1.everyChildIsType)('list-item', traverse(), 'list', context),
|
|
117
117
|
ordered: false,
|
|
118
118
|
}),
|
|
119
|
-
ol: ($el, traverse) => ({
|
|
119
|
+
ol: ($el, traverse, context) => ({
|
|
120
120
|
type: 'list',
|
|
121
|
-
children: (0, nodePredicates_1.everyChildIsType)('list-item', traverse(), 'list'),
|
|
121
|
+
children: (0, nodePredicates_1.everyChildIsType)('list-item', traverse(), 'list', context),
|
|
122
122
|
ordered: true,
|
|
123
123
|
}),
|
|
124
|
-
li: ($el, traverse) => ({
|
|
124
|
+
li: ($el, traverse, context) => ({
|
|
125
125
|
type: 'list-item',
|
|
126
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'list-item'),
|
|
126
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'list-item', context),
|
|
127
127
|
}),
|
|
128
128
|
'a[data-asset-type="tweet"]': ($el) => ({
|
|
129
129
|
type: 'tweet',
|
|
130
130
|
id: $el.attr('href') || '',
|
|
131
131
|
}),
|
|
132
|
-
'h4,h5,h6': ($el, traverse) => ({
|
|
132
|
+
'h4,h5,h6': ($el, traverse, context) => ({
|
|
133
133
|
type: 'heading',
|
|
134
134
|
level: 'label',
|
|
135
|
-
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'heading'),
|
|
135
|
+
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'heading', context),
|
|
136
136
|
}),
|
|
137
137
|
'pull-quote': ($el) => ({
|
|
138
138
|
type: 'pullquote',
|
|
@@ -206,7 +206,7 @@ const commonTagMappings = {
|
|
|
206
206
|
description: $description.text(),
|
|
207
207
|
};
|
|
208
208
|
},
|
|
209
|
-
'.n-content-layout': ($el, traverse) => {
|
|
209
|
+
'.n-content-layout': ($el, traverse, context) => {
|
|
210
210
|
//TODO: this is a bit gross??
|
|
211
211
|
const isValidWidth = (str) => {
|
|
212
212
|
return ['inset-left', 'full-grid', 'full-width'].includes(str);
|
|
@@ -221,11 +221,11 @@ const commonTagMappings = {
|
|
|
221
221
|
if (firstChild.type === 'heading') {
|
|
222
222
|
return [
|
|
223
223
|
firstChild,
|
|
224
|
-
...(0, nodePredicates_1.everyChildIsType)('layout-slot', otherChildren, 'layout'),
|
|
224
|
+
...(0, nodePredicates_1.everyChildIsType)('layout-slot', otherChildren, 'layout', context),
|
|
225
225
|
];
|
|
226
226
|
}
|
|
227
227
|
else {
|
|
228
|
-
return (0, nodePredicates_1.everyChildIsType)('layout-slot', children, 'layout');
|
|
228
|
+
return (0, nodePredicates_1.everyChildIsType)('layout-slot', children, 'layout', context);
|
|
229
229
|
}
|
|
230
230
|
};
|
|
231
231
|
return {
|
|
@@ -235,12 +235,12 @@ const commonTagMappings = {
|
|
|
235
235
|
children: getChildren(traverse()),
|
|
236
236
|
};
|
|
237
237
|
},
|
|
238
|
-
'.n-content-layout__slot': ($el, traverse) => ({
|
|
238
|
+
'.n-content-layout__slot': ($el, traverse, context) => ({
|
|
239
239
|
type: 'layout-slot',
|
|
240
240
|
children: (0, nodePredicates_1.childrenOfTypes)(['heading', 'paragraph', 'layout-image'], traverse()
|
|
241
241
|
// HACK:20230516:KB for "Comparison" layouts, Spark used to output nested `.n-content-layout__slot`
|
|
242
242
|
// elements. if we find one, skip it and use its children
|
|
243
|
-
.flatMap((node) => node.type === 'layout-slot' ? node.children : [node]), 'layout-slot'),
|
|
243
|
+
.flatMap((node) => node.type === 'layout-slot' ? node.children : [node]), 'layout-slot', context),
|
|
244
244
|
}),
|
|
245
245
|
'.n-content-layout img': ($el) => ({
|
|
246
246
|
type: 'layout-image',
|
|
@@ -249,29 +249,29 @@ const commonTagMappings = {
|
|
|
249
249
|
alt: $el.attr('alt') || '',
|
|
250
250
|
credit: $el.attr('data-copyright') || '',
|
|
251
251
|
}),
|
|
252
|
-
table: ($el, traverse) => {
|
|
252
|
+
table: ($el, traverse, context) => {
|
|
253
253
|
const layoutSmallscreen = $el.attr('data-table-layout-smallscreen');
|
|
254
254
|
const responsiveStyle = layoutSmallscreen && layoutSmallscreen in tableResponsiveStyleMap
|
|
255
255
|
? tableResponsiveStyleMap[layoutSmallscreen]
|
|
256
256
|
: 'overflow';
|
|
257
257
|
const children = traverse();
|
|
258
258
|
const bodies = children.filter((child) => child.type === 'table-body');
|
|
259
|
-
const caption = (0, nodePredicates_1.findChildOftype)('table-caption', children, 'table');
|
|
260
|
-
const footer = (0, nodePredicates_1.findChildOftype)('table-footer', children, 'table');
|
|
259
|
+
const caption = (0, nodePredicates_1.findChildOftype)('table-caption', children, 'table', context);
|
|
260
|
+
const footer = (0, nodePredicates_1.findChildOftype)('table-footer', children, 'table', context);
|
|
261
261
|
// HACK:KB:20230523 transform single-cell tables into infoboxes, for legacy articles
|
|
262
262
|
if (bodies.length === 1 &&
|
|
263
263
|
bodies[0].children.length === 1 &&
|
|
264
264
|
bodies[0].children[0].children.length === 1) {
|
|
265
265
|
const slot = {
|
|
266
266
|
type: 'layout-slot',
|
|
267
|
-
children: (0, nodePredicates_1.childrenOfTypes)(['paragraph', 'heading'], bodies[0].children[0].children[0].children, 'layout-slot'),
|
|
267
|
+
children: (0, nodePredicates_1.childrenOfTypes)(['paragraph', 'heading'], bodies[0].children[0].children[0].children, 'layout-slot', context),
|
|
268
268
|
};
|
|
269
269
|
const layoutChildren = caption
|
|
270
270
|
? [
|
|
271
271
|
{
|
|
272
272
|
type: 'heading',
|
|
273
273
|
level: 'subheading',
|
|
274
|
-
children: (0, nodePredicates_1.everyChildIsType)('text', caption.children, 'heading'),
|
|
274
|
+
children: (0, nodePredicates_1.everyChildIsType)('text', caption.children, 'heading', context),
|
|
275
275
|
},
|
|
276
276
|
slot,
|
|
277
277
|
]
|
|
@@ -336,34 +336,34 @@ const commonTagMappings = {
|
|
|
336
336
|
// HACK needs to come before tr. TODO sort by selector specificity
|
|
337
337
|
'tfoot > tr': ($el, traverse) => traverse(),
|
|
338
338
|
// HACK needs to come before td. TODO sort by selector specificity
|
|
339
|
-
'tfoot > tr > td': ($el, traverse) => ({
|
|
339
|
+
'tfoot > tr > td': ($el, traverse, context) => ({
|
|
340
340
|
type: 'table-footer',
|
|
341
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-footer'),
|
|
341
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-footer', context),
|
|
342
342
|
}),
|
|
343
|
-
tr: ($el, traverse) => ({
|
|
343
|
+
tr: ($el, traverse, context) => ({
|
|
344
344
|
type: 'table-row',
|
|
345
|
-
children: (0, nodePredicates_1.everyChildIsType)('table-cell', traverse(), 'table-row'),
|
|
345
|
+
children: (0, nodePredicates_1.everyChildIsType)('table-cell', traverse(), 'table-row', context),
|
|
346
346
|
}),
|
|
347
|
-
td: ($el, traverse) => ({
|
|
347
|
+
td: ($el, traverse, context) => ({
|
|
348
348
|
type: 'table-cell',
|
|
349
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-cell'),
|
|
349
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-cell', context),
|
|
350
350
|
}),
|
|
351
|
-
th: ($el, traverse) => ({
|
|
351
|
+
th: ($el, traverse, context) => ({
|
|
352
352
|
type: 'table-cell',
|
|
353
353
|
heading: true,
|
|
354
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-cell'),
|
|
354
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-cell', context),
|
|
355
355
|
}),
|
|
356
|
-
thead: ($el, traverse) => ({
|
|
356
|
+
thead: ($el, traverse, context) => ({
|
|
357
357
|
type: 'table-body',
|
|
358
|
-
children: (0, nodePredicates_1.everyChildIsType)('table-row', traverse(), 'table-body'),
|
|
358
|
+
children: (0, nodePredicates_1.everyChildIsType)('table-row', traverse(), 'table-body', context),
|
|
359
359
|
}),
|
|
360
|
-
tbody: ($el, traverse) => ({
|
|
360
|
+
tbody: ($el, traverse, context) => ({
|
|
361
361
|
type: 'table-body',
|
|
362
|
-
children: (0, nodePredicates_1.everyChildIsType)('table-row', traverse(), 'table-body'),
|
|
362
|
+
children: (0, nodePredicates_1.everyChildIsType)('table-row', traverse(), 'table-body', context),
|
|
363
363
|
}),
|
|
364
|
-
caption: ($el, traverse) => ({
|
|
364
|
+
caption: ($el, traverse, context) => ({
|
|
365
365
|
type: 'table-caption',
|
|
366
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-caption'),
|
|
366
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'table-caption', context),
|
|
367
367
|
}),
|
|
368
368
|
// HACK needs to come after LayoutImage. TODO sort by selector specificity
|
|
369
369
|
'body > img:first-child': ($el) => ({
|
|
@@ -384,18 +384,18 @@ const commonTagMappings = {
|
|
|
384
384
|
width: ($el.attr('width') && Number($el.attr('width'))) || undefined,
|
|
385
385
|
format: 'standard',
|
|
386
386
|
}),
|
|
387
|
-
'scrollable-block': ($el, traverse) => {
|
|
387
|
+
'scrollable-block': ($el, traverse, context) => {
|
|
388
388
|
return {
|
|
389
389
|
type: 'scrolly-block',
|
|
390
390
|
theme: $el.attr('theme') === '2' ? 'serif' : 'sans',
|
|
391
|
-
children: (0, nodePredicates_1.everyChildIsType)('scrolly-section', traverse(), 'scrolly-block'),
|
|
391
|
+
children: (0, nodePredicates_1.everyChildIsType)('scrolly-section', traverse(), 'scrolly-block', context),
|
|
392
392
|
};
|
|
393
393
|
},
|
|
394
394
|
'scrollable-section > ft-content[type="http://www.ft.com/ontology/content/ImageSet"]': ($el) => ({
|
|
395
395
|
type: 'scrolly-image',
|
|
396
396
|
id: $el.attr('url') ?? '',
|
|
397
397
|
}),
|
|
398
|
-
'scrollable-section': ($el, traverse) => {
|
|
398
|
+
'scrollable-section': ($el, traverse, context) => {
|
|
399
399
|
const [firstChild, ...restChildren] = traverse();
|
|
400
400
|
const display = $el.attr('theme-display');
|
|
401
401
|
const position = $el.attr('theme-position');
|
|
@@ -414,43 +414,43 @@ const commonTagMappings = {
|
|
|
414
414
|
: undefined,
|
|
415
415
|
noBox: validScrollytellingOption('noBox', noBox) ? true : undefined,
|
|
416
416
|
children: [
|
|
417
|
-
...(0, nodePredicates_1.everyChildIsType)('scrolly-image', [firstChild], 'scrolly-section'),
|
|
418
|
-
...(0, nodePredicates_1.everyChildIsType)('scrolly-copy', restChildren, 'scrolly-section'),
|
|
417
|
+
...(0, nodePredicates_1.everyChildIsType)('scrolly-image', [firstChild], 'scrolly-section', context),
|
|
418
|
+
...(0, nodePredicates_1.everyChildIsType)('scrolly-copy', restChildren, 'scrolly-section', context),
|
|
419
419
|
],
|
|
420
420
|
};
|
|
421
421
|
},
|
|
422
|
-
'scrollable-text': ($el, traverse) => ({
|
|
422
|
+
'scrollable-text': ($el, traverse, context) => ({
|
|
423
423
|
type: 'scrolly-copy',
|
|
424
|
-
children: (0, nodePredicates_1.childrenOfTypes)(['scrolly-heading', 'paragraph'], traverse(), 'scrolly-copy'),
|
|
424
|
+
children: (0, nodePredicates_1.childrenOfTypes)(['scrolly-heading', 'paragraph'], traverse(), 'scrolly-copy', context),
|
|
425
425
|
}),
|
|
426
|
-
'scrollable-text > p, scrollable-text > h1, scrollable-text > h2': ($el, traverse) => {
|
|
426
|
+
'scrollable-text > p, scrollable-text > h1, scrollable-text > h2': ($el, traverse, context) => {
|
|
427
427
|
const textStyle = $el.attr('theme-style');
|
|
428
428
|
if (validScrollytellingOption('textStyle', textStyle)) {
|
|
429
429
|
return {
|
|
430
430
|
type: 'scrolly-heading',
|
|
431
431
|
level: scrollytellingOptionsToContentTree.textStyle[textStyle],
|
|
432
|
-
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'scrolly-heading'),
|
|
432
|
+
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'scrolly-heading', context),
|
|
433
433
|
};
|
|
434
434
|
}
|
|
435
435
|
return {
|
|
436
436
|
type: 'paragraph',
|
|
437
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'paragraph'),
|
|
437
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'paragraph', context),
|
|
438
438
|
};
|
|
439
439
|
},
|
|
440
440
|
// HACK:KB:20230703 needs to come after `scrollable-text > X`. todo sort by specificity
|
|
441
|
-
p: ($el, traverse) => ({
|
|
441
|
+
p: ($el, traverse, context) => ({
|
|
442
442
|
type: 'paragraph',
|
|
443
|
-
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'paragraph'),
|
|
443
|
+
children: (0, nodePredicates_1.childrenOfTypes)(nodePredicates_1.phrasingTypes, traverse(), 'paragraph', context),
|
|
444
444
|
}),
|
|
445
|
-
h1: ($el, traverse) => ({
|
|
445
|
+
h1: ($el, traverse, context) => ({
|
|
446
446
|
type: 'heading',
|
|
447
447
|
level: 'chapter',
|
|
448
|
-
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'heading'),
|
|
448
|
+
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'heading', context),
|
|
449
449
|
}),
|
|
450
|
-
'h2,h3': ($el, traverse) => ({
|
|
450
|
+
'h2,h3': ($el, traverse, context) => ({
|
|
451
451
|
type: 'heading',
|
|
452
452
|
level: 'subheading',
|
|
453
|
-
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'heading'),
|
|
453
|
+
children: (0, nodePredicates_1.everyChildIsType)('text', traverse(), 'heading', context),
|
|
454
454
|
}),
|
|
455
455
|
'ft-content[type="http://www.ft.com/ontology/content/ClipSet"]': ($el) => ({
|
|
456
456
|
type: 'clip-set',
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@financial-times/cp-content-pipeline-schema",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"graphql": "^16.6.0",
|
|
39
39
|
"graphql-tag": "^2.12.6",
|
|
40
40
|
"lodash.sortby": "^4.7.0",
|
|
41
|
-
"piscina": "^4.4.0",
|
|
42
41
|
"rehype-parse": "^8.0.4",
|
|
43
42
|
"zod": "^3.19.1"
|
|
44
43
|
},
|
|
@@ -6,15 +6,6 @@ import { URLManagementDataSource } from '../datasources/url-management'
|
|
|
6
6
|
import { CapiDataSource } from '../datasources/capi'
|
|
7
7
|
import { Logger } from '@dotcom-reliability-kit/logger'
|
|
8
8
|
|
|
9
|
-
jest.mock('@dotcom-reliability-kit/logger', () => ({
|
|
10
|
-
Logger: jest.fn(() => ({
|
|
11
|
-
debug: jest.fn(),
|
|
12
|
-
error: jest.fn(),
|
|
13
|
-
fatal: jest.fn(),
|
|
14
|
-
info: jest.fn(),
|
|
15
|
-
warn: jest.fn(),
|
|
16
|
-
})),
|
|
17
|
-
}))
|
|
18
9
|
const vanityMock = jest.fn<URLManagementDataSource['get']>()
|
|
19
10
|
const getPersonMock = jest.fn<CapiDataSource['getPerson']>()
|
|
20
11
|
const context = {
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { baseCapiObject } from '../fixtures/capiObject'
|
|
2
2
|
import { RichText } from '../model/RichText'
|
|
3
3
|
|
|
4
|
-
jest.mock('@dotcom-reliability-kit/logger', () => ({
|
|
5
|
-
Logger: jest.fn(() => ({
|
|
6
|
-
debug: jest.fn(),
|
|
7
|
-
error: jest.fn(),
|
|
8
|
-
fatal: jest.fn(),
|
|
9
|
-
info: jest.fn(),
|
|
10
|
-
warn: jest.fn(),
|
|
11
|
-
})),
|
|
12
|
-
}))
|
|
13
|
-
|
|
14
4
|
describe('RichText resolver', () => {
|
|
15
5
|
it('should transform bodyXML to an AST', async () => {
|
|
16
6
|
const model = new RichText('bodyXML', baseCapiObject.bodyXML)
|
package/src/model/RichText.ts
CHANGED
|
@@ -1,26 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import type { QueryContext } from '..'
|
|
4
|
-
import bodyXMLToTreeWorker from '../resolvers/content-tree/bodyXMLToTreeWorker'
|
|
1
|
+
import bodyXMLToTree from '../resolvers/content-tree/bodyXMLToTree'
|
|
5
2
|
import extractText from '../resolvers/content-tree/extractText'
|
|
6
|
-
import type { PredicateError } from '../resolvers/content-tree/nodePredicates'
|
|
7
3
|
import updateTreeWithReferenceIds from '../resolvers/content-tree/updateTreeWithReferenceIds'
|
|
8
4
|
import { LiteralUnionScalarValues } from '../resolvers/literal-union'
|
|
9
5
|
import { RichTextSource } from '../resolvers/scalars'
|
|
10
6
|
import { CapiResponse } from './CapiResponse'
|
|
11
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
commonTagMappings,
|
|
9
|
+
articleTagMappings,
|
|
10
|
+
liveBlogPostTagMappings,
|
|
11
|
+
} from '../resolvers/content-tree/tagMappings'
|
|
12
12
|
import { ContentTree } from '@financial-times/content-tree'
|
|
13
|
-
|
|
14
|
-
let piscina: Piscina | undefined
|
|
15
|
-
// Don't run the thread pool during tests as it creates loads of threads that
|
|
16
|
-
// aren't properly closed and leaves the process hanging. We do our best to
|
|
17
|
-
// keep the same behaviour when running on the main thread vs a worker thread,
|
|
18
|
-
// with the main difference being the lack of logs on the main thread.
|
|
19
|
-
if (process.env.NODE_ENV !== 'test') {
|
|
20
|
-
piscina = new Piscina({
|
|
21
|
-
filename: require.resolve('../resolvers/content-tree/bodyXMLToTreeWorker'),
|
|
22
|
-
})
|
|
23
|
-
}
|
|
13
|
+
import { QueryContext } from '..'
|
|
24
14
|
|
|
25
15
|
export class RichText {
|
|
26
16
|
constructor(
|
|
@@ -34,29 +24,27 @@ export class RichText {
|
|
|
34
24
|
}
|
|
35
25
|
|
|
36
26
|
async structured(context?: QueryContext) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
27
|
+
const tree = await new Promise<ContentTree.Body>((resolve, reject) => {
|
|
28
|
+
// bodyXMLToTree is synchronous and slow. scheduling it in a setImmediate
|
|
29
|
+
// prevents it from blocking the event loop, so the app can still handle
|
|
30
|
+
// requests, and it won't skew resolver timing metrics by blocking the
|
|
31
|
+
// timers for quicker, asynchronous resolvers from finishing.
|
|
32
|
+
|
|
33
|
+
const tagMappings =
|
|
34
|
+
this.contentApiData?.type() === 'LiveBlogPost'
|
|
35
|
+
? { ...commonTagMappings, ...liveBlogPostTagMappings }
|
|
36
|
+
: {
|
|
37
|
+
...commonTagMappings,
|
|
38
|
+
...articleTagMappings(this.contentApiData),
|
|
39
|
+
}
|
|
40
|
+
setImmediate(() => {
|
|
41
|
+
try {
|
|
42
|
+
resolve(bodyXMLToTree(this.value ?? '', tagMappings, context))
|
|
43
|
+
} catch (error) {
|
|
44
|
+
reject(error)
|
|
45
|
+
}
|
|
46
|
+
})
|
|
52
47
|
})
|
|
53
|
-
// bodyXMLToTree is synchronous and slow. Offload its processing to a
|
|
54
|
-
// worker thread so that it does not block the event loop. This allows the
|
|
55
|
-
// app to continue to handle other requests whilst processing an expensive
|
|
56
|
-
// one, as well as not skewing timing metrics.
|
|
57
|
-
const tree: ContentTree.Body = piscina
|
|
58
|
-
? await piscina.run(args)
|
|
59
|
-
: bodyXMLToTreeWorker(args)
|
|
60
48
|
|
|
61
49
|
const { tree: treeWithReferences, references } = updateTreeWithReferenceIds(
|
|
62
50
|
tree,
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { parentPort } from 'worker_threads'
|
|
2
1
|
import { ContentTree } from '@financial-times/content-tree'
|
|
3
2
|
import bodyXMLToTree, { TagMappings } from './bodyXMLToTree'
|
|
4
3
|
import tags from './tagMappings'
|
|
4
|
+
import { Logger } from '@dotcom-reliability-kit/logger'
|
|
5
|
+
import { QueryContext } from '../..'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const mockLogger = new Logger()
|
|
8
|
+
const mockLogError = jest.spyOn(mockLogger, 'error')
|
|
9
|
+
|
|
10
|
+
const mockContext = {
|
|
11
|
+
logger: mockLogger,
|
|
12
|
+
} as QueryContext
|
|
9
13
|
|
|
10
14
|
describe('bodyXMLToTree', () => {
|
|
11
15
|
it('converts XML to tree', () => {
|
|
12
16
|
const xml = `<body><p>Hello world</p></body>`
|
|
13
|
-
expect(bodyXMLToTree(xml, tags)).toMatchInlineSnapshot(`
|
|
17
|
+
expect(bodyXMLToTree(xml, tags, mockContext)).toMatchInlineSnapshot(`
|
|
14
18
|
Object {
|
|
15
19
|
"children": Array [
|
|
16
20
|
Object {
|
|
@@ -216,14 +220,14 @@ describe('bodyXMLToTree', () => {
|
|
|
216
220
|
"version": 1,
|
|
217
221
|
}
|
|
218
222
|
`)
|
|
219
|
-
expect(
|
|
223
|
+
expect(mockLogError).not.toBeCalled()
|
|
220
224
|
})
|
|
221
225
|
|
|
222
226
|
it('should handle heading and slots', () => {
|
|
223
227
|
const xml =
|
|
224
228
|
'<body><div class="n-content-layout"><h3></h3><div class="n-content-layout__slot"></div><div class="n-content-layout__slot"></div></body>'
|
|
225
229
|
|
|
226
|
-
expect(bodyXMLToTree(xml, tags)).toMatchInlineSnapshot(`
|
|
230
|
+
expect(bodyXMLToTree(xml, tags, mockContext)).toMatchInlineSnapshot(`
|
|
227
231
|
Object {
|
|
228
232
|
"children": Array [
|
|
229
233
|
Object {
|
|
@@ -251,14 +255,14 @@ describe('bodyXMLToTree', () => {
|
|
|
251
255
|
"version": 1,
|
|
252
256
|
}
|
|
253
257
|
`)
|
|
254
|
-
expect(
|
|
258
|
+
expect(mockLogError).not.toBeCalled()
|
|
255
259
|
})
|
|
256
260
|
|
|
257
261
|
it('should log an error on unexpected child after heading', () => {
|
|
258
262
|
const xml =
|
|
259
263
|
'<body><div class="n-content-layout"><h3></h3><div class="n-content-layout__slot"></div><p></p></body>'
|
|
260
264
|
|
|
261
|
-
expect(bodyXMLToTree(xml, tags)).toMatchInlineSnapshot(`
|
|
265
|
+
expect(bodyXMLToTree(xml, tags, mockContext)).toMatchInlineSnapshot(`
|
|
262
266
|
Object {
|
|
263
267
|
"children": Array [
|
|
264
268
|
Object {
|
|
@@ -286,19 +290,12 @@ describe('bodyXMLToTree', () => {
|
|
|
286
290
|
"version": 1,
|
|
287
291
|
}
|
|
288
292
|
`)
|
|
289
|
-
expect(
|
|
290
|
-
expect(
|
|
293
|
+
expect(mockLogError).toBeCalled()
|
|
294
|
+
expect(mockLogError.mock.lastCall).toMatchInlineSnapshot(`
|
|
291
295
|
Array [
|
|
292
296
|
Object {
|
|
293
|
-
"
|
|
294
|
-
"layout-slot",
|
|
295
|
-
"paragraph",
|
|
296
|
-
],
|
|
297
|
-
"code": "BODY_XML_UNEXPECTED_STRUCTURE",
|
|
298
|
-
"error": [Error],
|
|
297
|
+
"error": [OperationalError: Unexpected children types for layout],
|
|
299
298
|
"event": "RECOVERABLE_ERROR",
|
|
300
|
-
"expected": "layout-slot",
|
|
301
|
-
"message": "Unexpected children types for layout",
|
|
302
299
|
},
|
|
303
300
|
]
|
|
304
301
|
`)
|
|
@@ -308,7 +305,7 @@ describe('bodyXMLToTree', () => {
|
|
|
308
305
|
const xml =
|
|
309
306
|
'<body><div class="n-content-layout"><div class="n-content-layout__slot"></div><p></p></body>'
|
|
310
307
|
|
|
311
|
-
expect(bodyXMLToTree(xml, tags)).toMatchInlineSnapshot(`
|
|
308
|
+
expect(bodyXMLToTree(xml, tags, mockContext)).toMatchInlineSnapshot(`
|
|
312
309
|
Object {
|
|
313
310
|
"children": Array [
|
|
314
311
|
Object {
|
|
@@ -331,19 +328,12 @@ describe('bodyXMLToTree', () => {
|
|
|
331
328
|
"version": 1,
|
|
332
329
|
}
|
|
333
330
|
`)
|
|
334
|
-
expect(
|
|
335
|
-
expect(
|
|
331
|
+
expect(mockLogError).toBeCalled()
|
|
332
|
+
expect(mockLogError.mock.lastCall).toMatchInlineSnapshot(`
|
|
336
333
|
Array [
|
|
337
334
|
Object {
|
|
338
|
-
"
|
|
339
|
-
"layout-slot",
|
|
340
|
-
"paragraph",
|
|
341
|
-
],
|
|
342
|
-
"code": "BODY_XML_UNEXPECTED_STRUCTURE",
|
|
343
|
-
"error": [Error],
|
|
335
|
+
"error": [OperationalError: Unexpected children types for layout],
|
|
344
336
|
"event": "RECOVERABLE_ERROR",
|
|
345
|
-
"expected": "layout-slot",
|
|
346
|
-
"message": "Unexpected children types for layout",
|
|
347
337
|
},
|
|
348
338
|
]
|
|
349
339
|
`)
|
|
@@ -355,7 +345,7 @@ describe('bodyXMLToTree', () => {
|
|
|
355
345
|
const xml =
|
|
356
346
|
'<table class="data-table" data-table-collapse-rownum="" data-table-layout-largescreen="auto" data-table-layout-smallscreen="auto" data-table-theme="auto"><caption>Nulla iaculis tempus augue</caption><thead><tr><th data-column-hidden="none" data-column-sortable="false" data-column-type="string">libero mollis</th><th data-column-hidden="none" data-column-sortable="false" data-column-type="string">pretium nunc</th><th data-column-hidden="none" data-column-sortable="false" data-column-type="string">euismod nunc</th></tr></thead><tbody><tr><td>Aenean </td><td>14134</td><td>dfdsfd</td></tr><tr><td>lobortis </td><td>3434</td><td>fdsf dsf </td></tr><tr><td>volutpat </td><td>234234</td><td>sd fsd</td></tr><tr><td>vitae </td><td>2423</td><td>s fsdf</td></tr><tr><td>elementumus</td><td>23423</td><td>f sdf</td></tr></tbody><tfoot><tr><td colspan="1000">Aenean sodales sapien</td></tr></tfoot></table>'
|
|
357
347
|
|
|
358
|
-
expect(bodyXMLToTree(xml, tags)).toMatchInlineSnapshot(`
|
|
348
|
+
expect(bodyXMLToTree(xml, tags, mockContext)).toMatchInlineSnapshot(`
|
|
359
349
|
Object {
|
|
360
350
|
"children": Array [
|
|
361
351
|
Object {
|
|
@@ -614,7 +604,7 @@ describe('bodyXMLToTree', () => {
|
|
|
614
604
|
const xml =
|
|
615
605
|
'<table class="data-table" id="U1140244733565W0C"><caption>Emerging markets outlook for 2017</caption><tbody><tr><td colspan="2"><p>Brazil</p><p>Brazilian shares were the best-performing asset globally over the 12 months to the end of January, returning 121 per cent, according to data from BofA Merrill Lynch. Brazilian stocks did very well through January, but investors including Lazard and Eastspring have scaled back their exposure after strong growth last year.</p></td></tr></tbody></table>'
|
|
616
606
|
|
|
617
|
-
expect(bodyXMLToTree(xml, tags)).toMatchInlineSnapshot(`
|
|
607
|
+
expect(bodyXMLToTree(xml, tags, mockContext)).toMatchInlineSnapshot(`
|
|
618
608
|
Object {
|
|
619
609
|
"children": Array [
|
|
620
610
|
Object {
|