@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.
Files changed (34) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/model/Concept.test.js +0 -9
  3. package/lib/model/Concept.test.js.map +1 -1
  4. package/lib/model/RichText.d.ts +1 -1
  5. package/lib/model/RichText.js +20 -34
  6. package/lib/model/RichText.js.map +1 -1
  7. package/lib/model/RichText.test.js +0 -9
  8. package/lib/model/RichText.test.js.map +1 -1
  9. package/lib/resolvers/content-tree/bodyXMLToTree.d.ts +4 -3
  10. package/lib/resolvers/content-tree/bodyXMLToTree.js +2 -2
  11. package/lib/resolvers/content-tree/bodyXMLToTree.js.map +1 -1
  12. package/lib/resolvers/content-tree/bodyXMLToTree.test.js +20 -32
  13. package/lib/resolvers/content-tree/bodyXMLToTree.test.js.map +1 -1
  14. package/lib/resolvers/content-tree/nodePredicates.d.ts +6 -13
  15. package/lib/resolvers/content-tree/nodePredicates.js +33 -33
  16. package/lib/resolvers/content-tree/nodePredicates.js.map +1 -1
  17. package/lib/resolvers/content-tree/references/Reference.d.ts +1 -1
  18. package/lib/resolvers/content-tree/tagMappings.d.ts +2 -1
  19. package/lib/resolvers/content-tree/tagMappings.js +60 -60
  20. package/lib/resolvers/content-tree/tagMappings.js.map +1 -1
  21. package/package.json +1 -2
  22. package/src/model/Concept.test.ts +0 -9
  23. package/src/model/RichText.test.ts +0 -10
  24. package/src/model/RichText.ts +27 -39
  25. package/src/resolvers/content-tree/bodyXMLToTree.test.ts +22 -32
  26. package/src/resolvers/content-tree/bodyXMLToTree.ts +11 -6
  27. package/src/resolvers/content-tree/nodePredicates.ts +39 -45
  28. package/src/resolvers/content-tree/tagMappings.ts +102 -60
  29. package/tsconfig.tsbuildinfo +1 -1
  30. package/__mocks__/worker_threads.ts +0 -3
  31. package/lib/resolvers/content-tree/bodyXMLToTreeWorker.d.ts +0 -9
  32. package/lib/resolvers/content-tree/bodyXMLToTreeWorker.js +0 -18
  33. package/lib/resolvers/content-tree/bodyXMLToTreeWorker.js.map +0 -1
  34. package/src/resolvers/content-tree/bodyXMLToTreeWorker.ts +0 -31
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.3.1](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v2.3.0...cp-content-pipeline-schema-v2.3.1) (2024-03-18)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * revert "CPP-1964 Process CAPI's XML on worker threads" ([e7ac056](https://github.com/Financial-Times/cp-content-pipeline/commit/e7ac05629bd25d033ded87133d0a04c2c9b8f4fd))
9
+
3
10
  ## [2.3.0](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v2.2.2...cp-content-pipeline-schema-v2.3.0) (2024-03-18)
4
11
 
5
12
 
@@ -4,15 +4,6 @@ const Concept_1 = require("./Concept");
4
4
  const globals_1 = require("@jest/globals");
5
5
  const capiPerson_1 = require("../fixtures/capiPerson");
6
6
  const logger_1 = require("@dotcom-reliability-kit/logger");
7
- globals_1.jest.mock('@dotcom-reliability-kit/logger', () => ({
8
- Logger: globals_1.jest.fn(() => ({
9
- debug: globals_1.jest.fn(),
10
- error: globals_1.jest.fn(),
11
- fatal: globals_1.jest.fn(),
12
- info: globals_1.jest.fn(),
13
- warn: globals_1.jest.fn(),
14
- })),
15
- }));
16
7
  const vanityMock = globals_1.jest.fn();
17
8
  const getPersonMock = globals_1.jest.fn();
18
9
  const context = {
@@ -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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"}
@@ -1,8 +1,8 @@
1
- import type { QueryContext } from '..';
2
1
  import { LiteralUnionScalarValues } from '../resolvers/literal-union';
3
2
  import { RichTextSource } from '../resolvers/scalars';
4
3
  import { CapiResponse } from './CapiResponse';
5
4
  import { ContentTree } from '@financial-times/content-tree';
5
+ import { QueryContext } from '..';
6
6
  export declare class RichText {
7
7
  private source;
8
8
  private value;
@@ -4,21 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.RichText = void 0;
7
- const piscina_1 = __importDefault(require("piscina"));
8
- const bodyXMLToTreeWorker_1 = __importDefault(require("../resolvers/content-tree/bodyXMLToTreeWorker"));
7
+ const bodyXMLToTree_1 = __importDefault(require("../resolvers/content-tree/bodyXMLToTree"));
9
8
  const extractText_1 = __importDefault(require("../resolvers/content-tree/extractText"));
10
9
  const updateTreeWithReferenceIds_1 = __importDefault(require("../resolvers/content-tree/updateTreeWithReferenceIds"));
11
- const errors_1 = require("@dotcom-reliability-kit/errors");
12
- let piscina;
13
- // Don't run the thread pool during tests as it creates loads of threads that
14
- // aren't properly closed and leaves the process hanging. We do our best to
15
- // keep the same behaviour when running on the main thread vs a worker thread,
16
- // with the main difference being the lack of logs on the main thread.
17
- if (process.env.NODE_ENV !== 'test') {
18
- piscina = new piscina_1.default({
19
- filename: require.resolve('../resolvers/content-tree/bodyXMLToTreeWorker'),
20
- });
21
- }
10
+ const tagMappings_1 = require("../resolvers/content-tree/tagMappings");
22
11
  class RichText {
23
12
  constructor(source, value, contentApiData) {
24
13
  this.source = source;
@@ -29,29 +18,26 @@ class RichText {
29
18
  return this.value;
30
19
  }
31
20
  async structured(context) {
32
- const args = {
33
- xml: this.value ?? '',
34
- responseMetadata: this.contentApiData
35
- ? {
36
- isLiveBlogPost: this.contentApiData.type() === 'LiveBlogPost',
37
- topperHasImage: this.contentApiData.topperHasImage(),
21
+ const tree = await new Promise((resolve, reject) => {
22
+ // bodyXMLToTree is synchronous and slow. scheduling it in a setImmediate
23
+ // prevents it from blocking the event loop, so the app can still handle
24
+ // requests, and it won't skew resolver timing metrics by blocking the
25
+ // timers for quicker, asynchronous resolvers from finishing.
26
+ const tagMappings = this.contentApiData?.type() === 'LiveBlogPost'
27
+ ? { ...tagMappings_1.commonTagMappings, ...tagMappings_1.liveBlogPostTagMappings }
28
+ : {
29
+ ...tagMappings_1.commonTagMappings,
30
+ ...(0, tagMappings_1.articleTagMappings)(this.contentApiData),
31
+ };
32
+ setImmediate(() => {
33
+ try {
34
+ resolve((0, bodyXMLToTree_1.default)(this.value ?? '', tagMappings, context));
38
35
  }
39
- : undefined,
40
- };
41
- // forward errors from the worker threads to the logger
42
- piscina?.on('message', ({ event, error, ...predError }) => {
43
- const { stack } = error;
44
- const opError = new errors_1.OperationalError(predError);
45
- opError.stack = stack;
46
- context?.logger.error({ event, error: opError });
36
+ catch (error) {
37
+ reject(error);
38
+ }
39
+ });
47
40
  });
48
- // bodyXMLToTree is synchronous and slow. Offload its processing to a
49
- // worker thread so that it does not block the event loop. This allows the
50
- // app to continue to handle other requests whilst processing an expensive
51
- // one, as well as not skewing timing metrics.
52
- const tree = piscina
53
- ? await piscina.run(args)
54
- : (0, bodyXMLToTreeWorker_1.default)(args);
55
41
  const { tree: treeWithReferences, references } = (0, updateTreeWithReferenceIds_1.default)(tree, this.contentApiData);
56
42
  const text = (0, extractText_1.default)(tree);
57
43
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../src/model/RichText.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAG7B,wGAA+E;AAC/E,wFAA+D;AAE/D,sHAA6F;AAI7F,2DAAiE;AAGjE,IAAI,OAA4B,CAAA;AAChC,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,sEAAsE;AACtE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;IACnC,OAAO,GAAG,IAAI,iBAAO,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,+CAA+C,CAAC;KAC3E,CAAC,CAAA;CACH;AAED,MAAa,QAAQ;IACnB,YACU,MAAuD,EACvD,KAAoB,EACpB,cAA6B;QAF7B,WAAM,GAAN,MAAM,CAAiD;QACvD,UAAK,GAAL,KAAK,CAAe;QACpB,mBAAc,GAAd,cAAc,CAAe;IACpC,CAAC;IAEJ,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,IAAI,GAAG;YACX,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACrB,gBAAgB,EAAE,IAAI,CAAC,cAAc;gBACnC,CAAC,CAAC;oBACE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,cAAc;oBAC7D,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;iBACrD;gBACH,CAAC,CAAC,SAAS;SACd,CAAA;QACD,uDAAuD;QACvD,OAAO,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS,EAAkB,EAAE,EAAE;YACxE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAgB,CAAC,SAAS,CAAC,CAAA;YAC/C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;YACrB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QACF,qEAAqE;QACrE,0EAA0E;QAC1E,0EAA0E;QAC1E,8CAA8C;QAC9C,MAAM,IAAI,GAAqB,OAAO;YACpC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACzB,CAAC,CAAC,IAAA,6BAAmB,EAAC,IAAI,CAAC,CAAA;QAE7B,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,GAAG,IAAA,oCAA0B,EACzE,IAAI,EACJ,IAAI,CAAC,cAAc,CACpB,CAAA;QACD,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAA;QAE9B,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,IAAI;YACJ,UAAU;SACX,CAAA;IACH,CAAC;CACF;AAhDD,4BAgDC"}
1
+ {"version":3,"file":"RichText.js","sourceRoot":"","sources":["../../src/model/RichText.ts"],"names":[],"mappings":";;;;;;AAAA,4FAAmE;AACnE,wFAA+D;AAC/D,sHAA6F;AAI7F,uEAI8C;AAI9C,MAAa,QAAQ;IACnB,YACU,MAAuD,EACvD,KAAoB,EACpB,cAA6B;QAF7B,WAAM,GAAN,MAAM,CAAiD;QACvD,UAAK,GAAL,KAAK,CAAe;QACpB,mBAAc,GAAd,cAAc,CAAe;IACpC,CAAC;IAEJ,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnE,yEAAyE;YACzE,wEAAwE;YACxE,sEAAsE;YACtE,6DAA6D;YAE7D,MAAM,WAAW,GACf,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,cAAc;gBAC5C,CAAC,CAAC,EAAE,GAAG,+BAAiB,EAAE,GAAG,qCAAuB,EAAE;gBACtD,CAAC,CAAC;oBACE,GAAG,+BAAiB;oBACpB,GAAG,IAAA,gCAAkB,EAAC,IAAI,CAAC,cAAc,CAAC;iBAC3C,CAAA;YACP,YAAY,CAAC,GAAG,EAAE;gBAChB,IAAI;oBACF,OAAO,CAAC,IAAA,uBAAa,EAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;iBAC/D;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,CAAC,KAAK,CAAC,CAAA;iBACd;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,GAAG,IAAA,oCAA0B,EACzE,IAAI,EACJ,IAAI,CAAC,cAAc,CACpB,CAAA;QACD,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,IAAI,CAAC,CAAA;QAE9B,OAAO;YACL,IAAI,EAAE,kBAAkB;YACxB,IAAI;YACJ,UAAU;SACX,CAAA;IACH,CAAC;CACF;AA9CD,4BA8CC"}
@@ -2,15 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const capiObject_1 = require("../fixtures/capiObject");
4
4
  const RichText_1 = require("../model/RichText");
5
- jest.mock('@dotcom-reliability-kit/logger', () => ({
6
- Logger: jest.fn(() => ({
7
- debug: jest.fn(),
8
- error: jest.fn(),
9
- fatal: jest.fn(),
10
- info: jest.fn(),
11
- warn: jest.fn(),
12
- })),
13
- }));
14
5
  describe('RichText resolver', () => {
15
6
  it('should transform bodyXML to an AST', async () => {
16
7
  const model = new RichText_1.RichText('bodyXML', capiObject_1.baseCapiObject.bodyXML);
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.test.js","sourceRoot":"","sources":["../../src/model/RichText.test.ts"],"names":[],"mappings":";;AAAA,uDAAuD;AACvD,gDAA4C;AAE5C,IAAI,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACrB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;KAChB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAA;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,SAAS,EAAE,2BAAc,CAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,mBAAQ,CACxB,YAAY,EACZ,4HAA4H,CAC7H,CAAA;QACD,MAAM,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;KAetD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC9C,MAAM,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;KAUtD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,OAAO,GAAG;;;;;gBAKN,CAAA;YAEV,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;YAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,iFAAiF;YACjF,MAAM,OAAO,GAAG;;;;;;cAMR,CAAA;YAER,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;YAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"RichText.test.js","sourceRoot":"","sources":["../../src/model/RichText.test.ts"],"names":[],"mappings":";;AAAA,uDAAuD;AACvD,gDAA4C;AAE5C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,SAAS,EAAE,2BAAc,CAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,mBAAQ,CACxB,YAAY,EACZ,4HAA4H,CAC7H,CAAA;QACD,MAAM,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;KAetD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC9C,MAAM,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;KAUtD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,OAAO,GAAG;;;;;gBAKN,CAAA;YAEV,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;YAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,iFAAiF;YACjF,MAAM,OAAO,GAAG;;;;;;cAMR,CAAA;YAER,MAAM,KAAK,GAAG,IAAI,mBAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;YAEvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACjE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,7 +1,8 @@
1
- import type { ContentTree } from '@financial-times/content-tree';
2
1
  import * as cheerio from 'cheerio';
2
+ import type { ContentTree } from '@financial-times/content-tree';
3
3
  import { AnyNode } from './Workarounds';
4
- type ContentTreeTransform = ($el: cheerio.Cheerio<any>, traverse: () => AnyNode[]) => AnyNode | AnyNode[];
4
+ import { QueryContext } from '../..';
5
+ type ContentTreeTransform = ($el: cheerio.Cheerio<any>, traverse: () => AnyNode[], context?: QueryContext) => AnyNode | AnyNode[];
5
6
  export type TagMappings = Record<string, ContentTreeTransform>;
6
- export default function bodyXMLToTree(xml: string, tagMappings: TagMappings): ContentTree.Body;
7
+ export default function bodyXMLToTree(xml: string, tagMappings: TagMappings, context?: QueryContext): ContentTree.Body;
7
8
  export {};
@@ -32,7 +32,7 @@ function isNode(node) {
32
32
  Function that converts an XML string to a Body node from
33
33
  the Content Tree spec - https://github.com/Financial-Times/content-tree#Body
34
34
  */
35
- function bodyXMLToTree(xml, tagMappings) {
35
+ function bodyXMLToTree(xml, tagMappings, context) {
36
36
  const $ = cheerio.load(xml);
37
37
  const flattenAndTraverseChildren = (children) => children.flatMap(traverse);
38
38
  function traverse(node) {
@@ -46,7 +46,7 @@ function bodyXMLToTree(xml, tagMappings) {
46
46
  const matchedSelector = Object.keys(tagMappings).find((selector) => node.name === selector || $(node).is(selector));
47
47
  if (matchedSelector) {
48
48
  const contentTreeTransform = tagMappings[matchedSelector];
49
- return contentTreeTransform($(node), () => flattenAndTraverseChildren(node.children));
49
+ return contentTreeTransform($(node), () => flattenAndTraverseChildren(node.children), context);
50
50
  }
51
51
  return flattenAndTraverseChildren(node.children);
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bodyXMLToTree.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/bodyXMLToTree.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAkC;AAClC,2CAA0C;AAI1C,SAAS,MAAM,CAAC,IAAkC;IAChD,OAAO,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,CAAA;AACxC,CAAC;AASD;;;EAGE;AACF,SAAwB,aAAa,CACnC,GAAW,EACX,WAAwB;IAExB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE3B,MAAM,0BAA0B,GAAG,CAAC,QAAwB,EAAa,EAAE,CACzE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE5B,SAAS,QAAQ,CAAC,IAAkB;QAClC,IAAI,IAAA,mBAAM,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI,CAAC,IAAI;aACjB,CAAA;SACF;aAAM,IAAI,IAAA,kBAAK,EAAC,IAAI,CAAC,EAAE;YACtB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACnD,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAC7D,CAAA;YAED,IAAI,eAAe,EAAE;gBACnB,MAAM,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAC,CAAA;gBACzD,OAAO,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CACxC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC1C,CAAA;aACF;YAED,OAAO,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACjD;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,CAAC,SAAS,CACjE,IAAI,CACL,EAAE,CACJ,CAAA;KACF;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;KACzE;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAhDD,gCAgDC"}
1
+ {"version":3,"file":"bodyXMLToTree.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/bodyXMLToTree.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAKlC,2CAA0C;AAE1C,SAAS,MAAM,CAAC,IAAkC;IAChD,OAAO,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,CAAA;AACxC,CAAC;AAUD;;;EAGE;AACF,SAAwB,aAAa,CACnC,GAAW,EACX,WAAwB,EACxB,OAAsB;IAEtB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE3B,MAAM,0BAA0B,GAAG,CAAC,QAAwB,EAAa,EAAE,CACzE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE5B,SAAS,QAAQ,CAAC,IAAkB;QAClC,IAAI,IAAA,mBAAM,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI,CAAC,IAAI;aACjB,CAAA;SACF;aAAM,IAAI,IAAA,kBAAK,EAAC,IAAI,CAAC,EAAE;YACtB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACnD,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAC7D,CAAA;YAED,IAAI,eAAe,EAAE;gBACnB,MAAM,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAC,CAAA;gBACzD,OAAO,oBAAoB,CACzB,CAAC,CAAC,IAAI,CAAC,EACP,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC/C,OAAO,CACR,CAAA;aACF;YAED,OAAO,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACjD;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,CAAC,SAAS,CACjE,IAAI,CACL,EAAE,CACJ,CAAA;KACF;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;KACzE;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAnDD,gCAmDC"}
@@ -3,16 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const worker_threads_1 = require("worker_threads");
7
6
  const bodyXMLToTree_1 = __importDefault(require("./bodyXMLToTree"));
8
7
  const tagMappings_1 = __importDefault(require("./tagMappings"));
9
- jest.mock('worker_threads');
10
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
11
- const mockPostMessage = jest.mocked(worker_threads_1.parentPort).postMessage;
8
+ const logger_1 = require("@dotcom-reliability-kit/logger");
9
+ const mockLogger = new logger_1.Logger();
10
+ const mockLogError = jest.spyOn(mockLogger, 'error');
11
+ const mockContext = {
12
+ logger: mockLogger,
13
+ };
12
14
  describe('bodyXMLToTree', () => {
13
15
  it('converts XML to tree', () => {
14
16
  const xml = `<body><p>Hello world</p></body>`;
15
- expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
17
+ expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
16
18
  Object {
17
19
  "children": Array [
18
20
  Object {
@@ -199,11 +201,11 @@ describe('bodyXMLToTree', () => {
199
201
  "version": 1,
200
202
  }
201
203
  `);
202
- expect(mockPostMessage).not.toBeCalled();
204
+ expect(mockLogError).not.toBeCalled();
203
205
  });
204
206
  it('should handle heading and slots', () => {
205
207
  const xml = '<body><div class="n-content-layout"><h3></h3><div class="n-content-layout__slot"></div><div class="n-content-layout__slot"></div></body>';
206
- expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
208
+ expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
207
209
  Object {
208
210
  "children": Array [
209
211
  Object {
@@ -231,11 +233,11 @@ describe('bodyXMLToTree', () => {
231
233
  "version": 1,
232
234
  }
233
235
  `);
234
- expect(mockPostMessage).not.toBeCalled();
236
+ expect(mockLogError).not.toBeCalled();
235
237
  });
236
238
  it('should log an error on unexpected child after heading', () => {
237
239
  const xml = '<body><div class="n-content-layout"><h3></h3><div class="n-content-layout__slot"></div><p></p></body>';
238
- expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
240
+ expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
239
241
  Object {
240
242
  "children": Array [
241
243
  Object {
@@ -263,26 +265,19 @@ describe('bodyXMLToTree', () => {
263
265
  "version": 1,
264
266
  }
265
267
  `);
266
- expect(mockPostMessage).toBeCalled();
267
- expect(mockPostMessage.mock.lastCall).toMatchInlineSnapshot(`
268
+ expect(mockLogError).toBeCalled();
269
+ expect(mockLogError.mock.lastCall).toMatchInlineSnapshot(`
268
270
  Array [
269
271
  Object {
270
- "actual": Array [
271
- "layout-slot",
272
- "paragraph",
273
- ],
274
- "code": "BODY_XML_UNEXPECTED_STRUCTURE",
275
- "error": [Error],
272
+ "error": [OperationalError: Unexpected children types for layout],
276
273
  "event": "RECOVERABLE_ERROR",
277
- "expected": "layout-slot",
278
- "message": "Unexpected children types for layout",
279
274
  },
280
275
  ]
281
276
  `);
282
277
  });
283
278
  it('should log an error on unexpected child after slots', () => {
284
279
  const xml = '<body><div class="n-content-layout"><div class="n-content-layout__slot"></div><p></p></body>';
285
- expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
280
+ expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
286
281
  Object {
287
282
  "children": Array [
288
283
  Object {
@@ -305,19 +300,12 @@ describe('bodyXMLToTree', () => {
305
300
  "version": 1,
306
301
  }
307
302
  `);
308
- expect(mockPostMessage).toBeCalled();
309
- expect(mockPostMessage.mock.lastCall).toMatchInlineSnapshot(`
303
+ expect(mockLogError).toBeCalled();
304
+ expect(mockLogError.mock.lastCall).toMatchInlineSnapshot(`
310
305
  Array [
311
306
  Object {
312
- "actual": Array [
313
- "layout-slot",
314
- "paragraph",
315
- ],
316
- "code": "BODY_XML_UNEXPECTED_STRUCTURE",
317
- "error": [Error],
307
+ "error": [OperationalError: Unexpected children types for layout],
318
308
  "event": "RECOVERABLE_ERROR",
319
- "expected": "layout-slot",
320
- "message": "Unexpected children types for layout",
321
309
  },
322
310
  ]
323
311
  `);
@@ -326,7 +314,7 @@ describe('bodyXMLToTree', () => {
326
314
  describe('tables', () => {
327
315
  it('parses tables', () => {
328
316
  const xml = '<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>';
329
- expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
317
+ expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
330
318
  Object {
331
319
  "children": Array [
332
320
  Object {
@@ -582,7 +570,7 @@ describe('bodyXMLToTree', () => {
582
570
  });
583
571
  it('parses single cell tables as infoboxes', () => {
584
572
  const xml = '<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>';
585
- expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default)).toMatchInlineSnapshot(`
573
+ expect((0, bodyXMLToTree_1.default)(xml, tagMappings_1.default, mockContext)).toMatchInlineSnapshot(`
586
574
  Object {
587
575
  "children": Array [
588
576
  Object {
@@ -1 +1 @@
1
- {"version":3,"file":"bodyXMLToTree.test.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/bodyXMLToTree.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bodyXMLToTree.test.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/bodyXMLToTree.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { AnyNode } from './Workarounds';
1
+ import { AnyNode } from './Workarounds';
2
+ import { QueryContext } from '../..';
2
3
  type ValuesOfTuple<Tuple extends readonly string[]> = Tuple[number];
3
4
  type NodeOfType<Type extends AnyNode['type']> = Extract<AnyNode, {
4
5
  type: Type;
@@ -7,17 +8,9 @@ type NodesOfTypes<Types extends readonly AnyNode['type'][]> = {
7
8
  -readonly [key in keyof Types]: NodeOfType<Types[key]>;
8
9
  };
9
10
  export declare const phrasingTypes: readonly ["text", "break", "strong", "emphasis", "strikethrough", "link"];
10
- export interface PredicateError {
11
- event: string;
12
- code: string;
13
- message: string;
14
- expected: AnyNode['type'] | readonly AnyNode['type'][];
15
- actual: AnyNode['type'][];
16
- error: Error;
17
- }
18
- export declare const findChildOftype: <NodeType extends AnyNode>(type: NodeType["type"], nodes: AnyNode[], parentType: AnyNode['type']) => NodeType | undefined;
19
- export declare const everyChildIsType: <NodeType extends AnyNode>(type: NodeType["type"], nodes: AnyNode[], parentType: AnyNode['type']) => NodeType[];
20
- export declare const childrenOfTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: AnyNode[], parentType: AnyNode['type']) => NodeOfType<ValuesOfTuple<Types>>[];
11
+ export declare const findChildOftype: <NodeType extends AnyNode>(type: NodeType["type"], nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodeType | undefined;
12
+ export declare const everyChildIsType: <NodeType extends AnyNode>(type: NodeType["type"], nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodeType[];
13
+ export declare const childrenOfTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodeOfType<ValuesOfTuple<Types>>[];
21
14
  export declare const nodesAreOrderedTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: readonly AnyNode[]) => nodes is NodesOfTypes<Types>;
22
- export declare const childrenOfOrderedTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: AnyNode[], parentType: AnyNode['type']) => NodesOfTypes<Types>;
15
+ export declare const childrenOfOrderedTypes: <Types extends readonly ("layout" | "clip" | "text" | "author-link" | "raw-image" | "main-image" | "main-image-raw" | "video" | "youtube-video" | "clip-set" | "table-caption" | "table-body" | "table-footer" | "table" | "break" | "strong" | "emphasis" | "strikethrough" | "link" | "table-row" | "table-cell" | "image-set" | "root" | "body" | "thematic-break" | "paragraph" | "heading" | "list" | "list-item" | "blockquote" | "pullquote" | "recommended" | "tweet" | "flourish" | "big-number" | "scrolly-block" | "scrolly-section" | "scrolly-copy" | "scrolly-heading" | "scrolly-image" | "layout-slot" | "layout-image")[]>(types: Types, nodes: AnyNode[], parentType: AnyNode['type'], context?: QueryContext) => NodesOfTypes<Types>;
23
16
  export {};
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.childrenOfOrderedTypes = exports.nodesAreOrderedTypes = exports.childrenOfTypes = exports.everyChildIsType = exports.findChildOftype = exports.phrasingTypes = void 0;
4
- const worker_threads_1 = require("worker_threads");
4
+ const errors_1 = require("@dotcom-reliability-kit/errors");
5
5
  exports.phrasingTypes = [
6
6
  'text',
7
7
  'break',
@@ -10,54 +10,52 @@ exports.phrasingTypes = [
10
10
  'strikethrough',
11
11
  'link',
12
12
  ];
13
- // reliability-kit's logger creates a worker thread under the hood but we can't
14
- // access this thread directly from these worker threads. Instead let's send
15
- // all our recoverable errors to the piscina pool managing us.
16
- const postLoggerError = (error) => {
17
- // stacks will only copy over if they're in an Error object
18
- const errorWithStack = { ...error, error: new Error() };
19
- worker_threads_1.parentPort?.postMessage(errorWithStack);
20
- };
21
- const findChildOftype = (type, nodes, parentType) => {
13
+ const findChildOftype = (type, nodes, parentType, context) => {
22
14
  const predicate = (node) => node.type === type;
23
15
  const child = nodes.find(predicate);
24
16
  if (!child) {
25
- postLoggerError({
17
+ context?.logger.error({
26
18
  event: 'RECOVERABLE_ERROR',
27
- code: 'BODY_XML_UNEXPECTED_STRUCTURE',
28
- message: `Didn't find expected child type in ${parentType}`,
29
- expected: type,
30
- actual: nodes.map((node) => node.type),
19
+ error: new errors_1.OperationalError({
20
+ code: 'BODY_XML_UNEXPECTED_STRUCTURE',
21
+ message: `Didn't find expected child type in ${parentType}`,
22
+ expected: type,
23
+ actual: nodes.map((node) => node.type),
24
+ }),
31
25
  });
32
26
  }
33
27
  return child;
34
28
  };
35
29
  exports.findChildOftype = findChildOftype;
36
- const everyChildIsType = (type, nodes, parentType) => {
30
+ const everyChildIsType = (type, nodes, parentType, context) => {
37
31
  const predicate = (node) => node.type === type;
38
32
  const allChildrenAreType = nodes.every(predicate);
39
33
  if (!allChildrenAreType) {
40
- postLoggerError({
34
+ context?.logger.error({
41
35
  event: 'RECOVERABLE_ERROR',
42
- code: 'BODY_XML_UNEXPECTED_STRUCTURE',
43
- message: `Unexpected children types for ${parentType}`,
44
- expected: type,
45
- actual: nodes.map((node) => node.type),
36
+ error: new errors_1.OperationalError({
37
+ code: 'BODY_XML_UNEXPECTED_STRUCTURE',
38
+ message: `Unexpected children types for ${parentType}`,
39
+ expected: type,
40
+ actual: nodes.map((node) => node.type),
41
+ }),
46
42
  });
47
43
  }
48
44
  return nodes;
49
45
  };
50
46
  exports.everyChildIsType = everyChildIsType;
51
- const childrenOfTypes = (types, nodes, parentType) => {
47
+ const childrenOfTypes = (types, nodes, parentType, context) => {
52
48
  const predicate = (node) => types.includes(node.type);
53
49
  const allChildrenAreType = nodes.every(predicate);
54
50
  if (!allChildrenAreType) {
55
- postLoggerError({
51
+ context?.logger.error({
56
52
  event: 'RECOVERABLE_ERROR',
57
- code: 'BODY_XML_UNEXPECTED_STRUCTURE',
58
- message: `Unexpected ordered children types for ${parentType}`,
59
- expected: types,
60
- actual: nodes.map((node) => node.type),
53
+ error: new errors_1.OperationalError({
54
+ code: 'BODY_XML_UNEXPECTED_STRUCTURE',
55
+ message: `Unexpected ordered children types for ${parentType}`,
56
+ expected: types,
57
+ actual: nodes.map((node) => node.type),
58
+ }),
61
59
  });
62
60
  }
63
61
  return nodes;
@@ -72,16 +70,18 @@ const nodesAreOrderedTypes = (types, nodes) => {
72
70
  return true;
73
71
  };
74
72
  exports.nodesAreOrderedTypes = nodesAreOrderedTypes;
75
- const childrenOfOrderedTypes = (types, nodes, parentType) => {
73
+ const childrenOfOrderedTypes = (types, nodes, parentType, context) => {
76
74
  if ((0, exports.nodesAreOrderedTypes)(types, nodes)) {
77
75
  return nodes;
78
76
  }
79
- postLoggerError({
77
+ context?.logger.error({
80
78
  event: 'RECOVERABLE_ERROR',
81
- code: 'BODY_XML_UNEXPECTED_STRUCTURE',
82
- message: `Unexpected children types for ${parentType}`,
83
- expected: types,
84
- actual: nodes.map((node) => node.type),
79
+ error: new errors_1.OperationalError({
80
+ code: 'BODY_XML_UNEXPECTED_STRUCTURE',
81
+ message: `Unexpected children types for ${parentType}`,
82
+ expected: types,
83
+ actual: nodes.map((node) => node.type),
84
+ }),
85
85
  });
86
86
  return nodes;
87
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"nodePredicates.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/nodePredicates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodePredicates.js","sourceRoot":"","sources":["../../../src/resolvers/content-tree/nodePredicates.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export declare const Reference: {
2
- __resolveType(parent: import(".").ReferenceWithCAPIData<import("@financial-times/content-tree").ContentTree.Node>): "Recommended" | "Tweet" | "ImageSet" | "ClipSet" | "VideoReference" | "Flourish" | "LayoutImage" | "RawImage" | "ScrollyImage";
2
+ __resolveType(parent: import(".").ReferenceWithCAPIData<import("@financial-times/content-tree").ContentTree.Node>): "Tweet" | "ImageSet" | "ClipSet" | "VideoReference" | "Flourish" | "Recommended" | "LayoutImage" | "RawImage" | "ScrollyImage";
3
3
  type(parent: import(".").ReferenceWithCAPIData<import("@financial-times/content-tree").ContentTree.Node>): string;
4
4
  };
@@ -1,5 +1,6 @@
1
1
  import type { TagMappings } from './bodyXMLToTree';
2
- declare const articleTagMappings: (topperHasImage: boolean) => TagMappings;
2
+ import { CapiResponse } from '../../model/CapiResponse';
3
+ declare const articleTagMappings: (capiData?: CapiResponse) => TagMappings;
3
4
  declare const liveBlogPostTagMappings: TagMappings;
4
5
  declare const commonTagMappings: TagMappings;
5
6
  export declare const getBooleanAttributeValue: ($el: any, attribute: string) => boolean;