@financial-times/cp-content-pipeline-client 0.6.16 → 0.6.18
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/.toolkitrc.yml +0 -13
- package/CHANGELOG.md +37 -0
- package/jest.config.js +3 -0
- package/lib/client-version.d.ts +1 -0
- package/lib/client-version.js +6 -0
- package/lib/client-version.js.map +1 -0
- package/lib/generated/index.d.ts +22940 -4103
- package/lib/generated/index.js +68 -6
- package/lib/generated/index.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +45 -3
- package/lib/index.js.map +1 -1
- package/lib/index.test.d.ts +1 -0
- package/lib/index.test.js +18 -0
- package/lib/index.test.js.map +1 -0
- package/lib/schema-version.d.ts +1 -1
- package/lib/schema-version.js +1 -1
- package/package.json +3 -3
- package/queries/article.graphql +59 -1
- package/src/client-version.ts +2 -0
- package/src/generated/index.ts +141 -42
- package/src/index.test.ts +25 -0
- package/src/index.ts +64 -5
- package/src/schema-version.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/lib/generated/index.js
CHANGED
|
@@ -3,8 +3,14 @@ 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
|
-
exports.getSdk = exports.ArticleDocument = exports.ContentFragmentDoc = exports.DesignFragmentDoc = exports.StructuredContentFragmentDoc = exports.ArticleReferencesFragmentDoc = exports.MainImageFragmentDoc = exports.RawImageFragmentDoc = exports.FlourishFragmentDoc = exports.VideoFragmentDoc = exports.TweetFragmentDoc = exports.LayoutImageFragmentDoc = exports.ImageSetFragmentDoc = exports.PictureFragmentDoc = exports.RecommendedFragmentDoc = exports.TeaserFragmentDoc = exports.TopperFragmentDoc = exports.ImageFragmentDoc = exports.ImageSourceFragmentDoc = exports.ConceptFragmentDoc = exports.IntroFragmentDoc = exports.StructuredTreeFragmentDoc = void 0;
|
|
6
|
+
exports.getSdk = exports.ArticleDocument = exports.ContentFragmentDoc = exports.DesignFragmentDoc = exports.StructuredContentFragmentDoc = exports.ArticleReferencesFragmentDoc = exports.ScrollyImageFragmentDoc = exports.MainImageFragmentDoc = exports.RawImageFragmentDoc = exports.FlourishFragmentDoc = exports.VideoFragmentDoc = exports.TweetFragmentDoc = exports.LayoutImageFragmentDoc = exports.ImageSetFragmentDoc = exports.PictureFragmentDoc = exports.PictureFieldsFragmentDoc = exports.RecommendedFragmentDoc = exports.TeaserFragmentDoc = exports.TopperFragmentDoc = exports.ImageFragmentDoc = exports.ImageSourceFragmentDoc = exports.ConceptFragmentDoc = exports.IntroFragmentDoc = exports.StructuredTreeFragmentDoc = exports.MediaFragmentDoc = void 0;
|
|
7
7
|
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
8
|
+
exports.MediaFragmentDoc = (0, graphql_tag_1.default) `
|
|
9
|
+
fragment Media on Media {
|
|
10
|
+
url
|
|
11
|
+
mediaType
|
|
12
|
+
}
|
|
13
|
+
`;
|
|
8
14
|
exports.StructuredTreeFragmentDoc = (0, graphql_tag_1.default) `
|
|
9
15
|
fragment StructuredTree on StructuredContent {
|
|
10
16
|
tree
|
|
@@ -42,6 +48,7 @@ exports.ImageFragmentDoc = (0, graphql_tag_1.default) `
|
|
|
42
48
|
__typename
|
|
43
49
|
height
|
|
44
50
|
width
|
|
51
|
+
caption
|
|
45
52
|
credit
|
|
46
53
|
format
|
|
47
54
|
url
|
|
@@ -55,6 +62,7 @@ exports.TopperFragmentDoc = (0, graphql_tag_1.default) `
|
|
|
55
62
|
backgroundColour
|
|
56
63
|
backgroundBox
|
|
57
64
|
textShadow
|
|
65
|
+
followButtonVariant
|
|
58
66
|
intro {
|
|
59
67
|
...Intro
|
|
60
68
|
}
|
|
@@ -207,8 +215,8 @@ exports.RecommendedFragmentDoc = (0, graphql_tag_1.default) `
|
|
|
207
215
|
}
|
|
208
216
|
}
|
|
209
217
|
${exports.TeaserFragmentDoc}`;
|
|
210
|
-
exports.
|
|
211
|
-
fragment
|
|
218
|
+
exports.PictureFieldsFragmentDoc = (0, graphql_tag_1.default) `
|
|
219
|
+
fragment PictureFields on Picture {
|
|
212
220
|
__typename
|
|
213
221
|
alt
|
|
214
222
|
caption
|
|
@@ -218,6 +226,11 @@ exports.PictureFragmentDoc = (0, graphql_tag_1.default) `
|
|
|
218
226
|
fallbackImage {
|
|
219
227
|
...Image
|
|
220
228
|
}
|
|
229
|
+
}
|
|
230
|
+
${exports.ImageFragmentDoc}`;
|
|
231
|
+
exports.PictureFragmentDoc = (0, graphql_tag_1.default) `
|
|
232
|
+
fragment Picture on Picture {
|
|
233
|
+
...PictureFields
|
|
221
234
|
images {
|
|
222
235
|
...Image
|
|
223
236
|
}
|
|
@@ -264,7 +277,8 @@ exports.PictureFragmentDoc = (0, graphql_tag_1.default) `
|
|
|
264
277
|
}
|
|
265
278
|
}
|
|
266
279
|
}
|
|
267
|
-
${exports.
|
|
280
|
+
${exports.PictureFieldsFragmentDoc}
|
|
281
|
+
${exports.ImageFragmentDoc}
|
|
268
282
|
${exports.ImageSourceFragmentDoc}`;
|
|
269
283
|
exports.ImageSetFragmentDoc = (0, graphql_tag_1.default) `
|
|
270
284
|
fragment ImageSet on ImageSet {
|
|
@@ -314,6 +328,46 @@ exports.MainImageFragmentDoc = (0, graphql_tag_1.default) `
|
|
|
314
328
|
}
|
|
315
329
|
}
|
|
316
330
|
${exports.PictureFragmentDoc}`;
|
|
331
|
+
exports.ScrollyImageFragmentDoc = (0, graphql_tag_1.default) `
|
|
332
|
+
fragment ScrollyImage on ScrollyImage {
|
|
333
|
+
picture {
|
|
334
|
+
...PictureFields
|
|
335
|
+
images {
|
|
336
|
+
...Image
|
|
337
|
+
... on ImageDesktop {
|
|
338
|
+
s: sourceSet(width: 740) {
|
|
339
|
+
...ImageSource
|
|
340
|
+
}
|
|
341
|
+
m: sourceSet(width: 980) {
|
|
342
|
+
...ImageSource
|
|
343
|
+
}
|
|
344
|
+
l: sourceSet(width: 1220) {
|
|
345
|
+
...ImageSource
|
|
346
|
+
}
|
|
347
|
+
xl: sourceSet(width: 1920) {
|
|
348
|
+
...ImageSource
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
... on ImageMobile {
|
|
352
|
+
s: sourceSet(width: 490) {
|
|
353
|
+
...ImageSource
|
|
354
|
+
}
|
|
355
|
+
m: sourceSet(width: 600) {
|
|
356
|
+
...ImageSource
|
|
357
|
+
}
|
|
358
|
+
l: sourceSet(width: 800) {
|
|
359
|
+
...ImageSource
|
|
360
|
+
}
|
|
361
|
+
xl: sourceSet(width: 1200) {
|
|
362
|
+
...ImageSource
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
${exports.PictureFieldsFragmentDoc}
|
|
369
|
+
${exports.ImageFragmentDoc}
|
|
370
|
+
${exports.ImageSourceFragmentDoc}`;
|
|
317
371
|
exports.ArticleReferencesFragmentDoc = (0, graphql_tag_1.default) `
|
|
318
372
|
fragment ArticleReferences on Reference {
|
|
319
373
|
type
|
|
@@ -325,6 +379,7 @@ exports.ArticleReferencesFragmentDoc = (0, graphql_tag_1.default) `
|
|
|
325
379
|
...Flourish
|
|
326
380
|
...RawImage
|
|
327
381
|
...MainImage
|
|
382
|
+
...ScrollyImage
|
|
328
383
|
}
|
|
329
384
|
${exports.RecommendedFragmentDoc}
|
|
330
385
|
${exports.ImageSetFragmentDoc}
|
|
@@ -333,7 +388,8 @@ ${exports.TweetFragmentDoc}
|
|
|
333
388
|
${exports.VideoFragmentDoc}
|
|
334
389
|
${exports.FlourishFragmentDoc}
|
|
335
390
|
${exports.RawImageFragmentDoc}
|
|
336
|
-
${exports.MainImageFragmentDoc}
|
|
391
|
+
${exports.MainImageFragmentDoc}
|
|
392
|
+
${exports.ScrollyImageFragmentDoc}`;
|
|
337
393
|
exports.StructuredContentFragmentDoc = (0, graphql_tag_1.default) `
|
|
338
394
|
fragment StructuredContent on StructuredContent {
|
|
339
395
|
...StructuredTree
|
|
@@ -396,10 +452,16 @@ exports.ArticleDocument = (0, graphql_tag_1.default) `
|
|
|
396
452
|
standfirst
|
|
397
453
|
}
|
|
398
454
|
}
|
|
455
|
+
... on Audio {
|
|
456
|
+
media {
|
|
457
|
+
...Media
|
|
458
|
+
}
|
|
459
|
+
}
|
|
399
460
|
}
|
|
400
461
|
}
|
|
401
462
|
${exports.ContentFragmentDoc}
|
|
402
|
-
${exports.TeaserFragmentDoc}
|
|
463
|
+
${exports.TeaserFragmentDoc}
|
|
464
|
+
${exports.MediaFragmentDoc}`;
|
|
403
465
|
const defaultWrapper = (action, _operationName, _operationType) => action();
|
|
404
466
|
function getSdk(client, withWrapper = defaultWrapper) {
|
|
405
467
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":";;;;;;AAEA,8DAA8B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":";;;;;;AAEA,8DAA8B;AAm3BjB,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;KAK9B,CAAC;AACO,QAAA,yBAAyB,GAAG,IAAA,qBAAG,EAAA;;;;KAIvC,CAAC;AACO,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;;;MAO7B,iCAAyB,EAAE,CAAC;AACrB,QAAA,kBAAkB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;KAWhC,CAAC;AACO,QAAA,sBAAsB,GAAG,IAAA,qBAAG,EAAA;;;;;;KAMpC,CAAC;AACO,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;KAW9B,CAAC;AACO,QAAA,iBAAiB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmH9B,wBAAgB;EACpB,0BAAkB;EAClB,8BAAsB;EACtB,wBAAgB,EAAE,CAAC;AACR,QAAA,iBAAiB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiC9B,0BAAkB,EAAE,CAAC;AACd,QAAA,sBAAsB,GAAG,IAAA,qBAAG,EAAA;;;;;;MAMnC,yBAAiB,EAAE,CAAC;AACb,QAAA,wBAAwB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;MAYrC,wBAAgB,EAAE,CAAC;AACZ,QAAA,kBAAkB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiD/B,gCAAwB;EAC5B,wBAAgB;EAChB,8BAAsB,EAAE,CAAC;AACd,QAAA,mBAAmB,GAAG,IAAA,qBAAG,EAAA;;;;;;MAMhC,0BAAkB,EAAE,CAAC;AACd,QAAA,sBAAsB,GAAG,IAAA,qBAAG,EAAA;;;;;;MAMnC,0BAAkB,EAAE,CAAC;AACd,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;KAI9B,CAAC;AACO,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;KAK9B,CAAC;AACO,QAAA,mBAAmB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;KAQjC,CAAC;AACO,QAAA,mBAAmB,GAAG,IAAA,qBAAG,EAAA;;;;;;MAMhC,wBAAgB,EAAE,CAAC;AACZ,QAAA,oBAAoB,GAAG,IAAA,qBAAG,EAAA;;;;;;MAMjC,0BAAkB,EAAE,CAAC;AACd,QAAA,uBAAuB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqCpC,gCAAwB;EAC5B,wBAAgB;EAChB,8BAAsB,EAAE,CAAC;AACd,QAAA,4BAA4B,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;MAazC,8BAAsB;EAC1B,2BAAmB;EACnB,8BAAsB;EACtB,wBAAgB;EAChB,wBAAgB;EAChB,2BAAmB;EACnB,2BAAmB;EACnB,4BAAoB;EACpB,+BAAuB,EAAE,CAAC;AACf,QAAA,4BAA4B,GAAG,IAAA,qBAAG,EAAA;;;;;;;MAOzC,iCAAyB;EAC7B,oCAA4B,EAAE,CAAC;AACpB,QAAA,iBAAiB,GAAG,IAAA,qBAAG,EAAA;;;;;KAK/B,CAAC;AACO,QAAA,kBAAkB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2B/B,yBAAiB;EACrB,oCAA4B;EAC5B,0BAAkB;EAClB,yBAAiB,EAAE,CAAC;AACT,QAAA,eAAe,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;MAuB5B,0BAAkB;EACtB,yBAAiB;EACjB,wBAAgB,EAAE,CAAC;AAKrB,MAAM,cAAc,GAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;AAEhG,SAAgB,MAAM,CAAC,MAAqB,EAAE,cAAkC,cAAc;IAC5F,OAAO;QACL,OAAO,CAAC,SAAgC,EAAE,cAA4C;YACpF,OAAO,WAAW,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAe,uBAAe,EAAE,SAAS,EAAE,EAAC,GAAG,cAAc,EAAE,GAAG,qBAAqB,EAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7K,CAAC;KACF,CAAC;AACJ,CAAC;AAND,wBAMC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -17,8 +17,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.apiUrl = void 0;
|
|
20
21
|
const generated_1 = require("./generated");
|
|
21
22
|
const schema_version_1 = require("./schema-version");
|
|
23
|
+
const client_version_1 = require("./client-version");
|
|
22
24
|
const graphql_request_1 = require("graphql-request");
|
|
23
25
|
const semver_1 = __importDefault(require("semver"));
|
|
24
26
|
const DEFAULT_CLIENT_TIMEOUT = 60000; //one minute
|
|
@@ -35,21 +37,61 @@ function apiVersion(version) {
|
|
|
35
37
|
? `v${parsedVersion.major}`
|
|
36
38
|
: `v${parsedVersion.major}.${parsedVersion.minor}`;
|
|
37
39
|
}
|
|
40
|
+
function apiUrl(apiMajorVersion, baseUrl) {
|
|
41
|
+
const baseUrlPathRegex = /\/__content(?<version>\/v(?:0\.)?\d+)?$/;
|
|
42
|
+
if (baseUrl) {
|
|
43
|
+
const pathMatches = baseUrl.match(baseUrlPathRegex);
|
|
44
|
+
if (pathMatches) {
|
|
45
|
+
if (pathMatches.groups?.version) {
|
|
46
|
+
return baseUrl;
|
|
47
|
+
}
|
|
48
|
+
return baseUrl + '/' + apiMajorVersion;
|
|
49
|
+
}
|
|
50
|
+
return baseUrl + '/__content/' + apiMajorVersion;
|
|
51
|
+
}
|
|
52
|
+
return `https://www.ft.com/__content/${apiMajorVersion}`;
|
|
53
|
+
}
|
|
54
|
+
exports.apiUrl = apiUrl;
|
|
55
|
+
// Reliability Kit doesn't provide a base class for non-operational errors.
|
|
56
|
+
// this class is more or less compatible with how log-errors serialises errors.
|
|
57
|
+
// https://github.com/Financial-Times/dotcom-reliability-kit/issues/238
|
|
58
|
+
class CustomError extends Error {
|
|
59
|
+
constructor({ message, cause, ...data }) {
|
|
60
|
+
super(message ?? 'An error occurred in cp-content-pipeline-client');
|
|
61
|
+
this.code = 'CP_CONTENT_PIPELINE_CLIENT_ERROR';
|
|
62
|
+
this.isOperational = false;
|
|
63
|
+
this.cause = cause;
|
|
64
|
+
this.data = data;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
38
67
|
function init(options) {
|
|
39
68
|
if (!options.systemCode) {
|
|
40
69
|
throw new Error('A systemCode option is required. This should be the Biz Ops system code of the app sending requests to cp-content-pipeline');
|
|
41
70
|
}
|
|
42
71
|
const apiMajorVersion = apiVersion(schema_version_1.version);
|
|
43
|
-
const
|
|
44
|
-
const client = new graphql_request_1.GraphQLClient(apiUrl, {
|
|
72
|
+
const client = new graphql_request_1.GraphQLClient(apiUrl(apiMajorVersion, options.baseUrl), {
|
|
45
73
|
timeout: options.timeout ?? DEFAULT_CLIENT_TIMEOUT,
|
|
46
74
|
headers: {
|
|
75
|
+
'user-agent': `cp-content-pipeline-client/${client_version_1.version}; cp-content-pipeline-schema/${schema_version_1.version}; (+${options.systemCode})`,
|
|
47
76
|
'system-code': options.systemCode,
|
|
48
77
|
// Include the full schema version number as a header as it might be useful for debugging
|
|
49
78
|
'schema-version': schema_version_1.version,
|
|
50
79
|
},
|
|
51
80
|
});
|
|
52
|
-
return (0, generated_1.getSdk)(client)
|
|
81
|
+
return (0, generated_1.getSdk)(client, (action, name, type) => action().catch((error) => {
|
|
82
|
+
if (error instanceof graphql_request_1.ClientError) {
|
|
83
|
+
const newError = new CustomError({
|
|
84
|
+
code: 'CP_CONTENT_PIPELINE_CLIENT_ERROR',
|
|
85
|
+
message: error.message,
|
|
86
|
+
schemaVersion: schema_version_1.version,
|
|
87
|
+
clientVersion: client_version_1.version,
|
|
88
|
+
variables: error.request.variables,
|
|
89
|
+
operation: { name, type },
|
|
90
|
+
});
|
|
91
|
+
throw newError;
|
|
92
|
+
}
|
|
93
|
+
throw error;
|
|
94
|
+
}));
|
|
53
95
|
}
|
|
54
96
|
exports.default = init;
|
|
55
97
|
__exportStar(require("./generated"), exports);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const _1 = require(".");
|
|
4
|
+
describe('baseUrl version logic', () => {
|
|
5
|
+
it('should use ft.com/__content with version suffix when no baseUrl', () => {
|
|
6
|
+
expect((0, _1.apiUrl)('v0.7')).toBe('https://www.ft.com/__content/v0.7');
|
|
7
|
+
});
|
|
8
|
+
it('should add version suffix to baseUrl without one', () => {
|
|
9
|
+
expect((0, _1.apiUrl)('v0.7', 'http://base-url.example.com')).toBe('http://base-url.example.com/__content/v0.7');
|
|
10
|
+
});
|
|
11
|
+
it('should add version suffix to baseUrl partial suffix', () => {
|
|
12
|
+
expect((0, _1.apiUrl)('v0.7', 'http://base-url.example.com/__content')).toBe('http://base-url.example.com/__content/v0.7');
|
|
13
|
+
});
|
|
14
|
+
it('should use version suffix from baseUrl with one', () => {
|
|
15
|
+
expect((0, _1.apiUrl)('v0.7', 'http://base-url.example.com/__content/v0.6')).toBe('http://base-url.example.com/__content/v0.6');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":";;AAAA,wBAA0B;AAE1B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,IAAA,SAAM,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,IAAA,SAAM,EAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,CAAC,IAAI,CACxD,4CAA4C,CAC7C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,IAAA,SAAM,EAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAClE,4CAA4C,CAC7C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,IAAA,SAAM,EAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC,CAAC,IAAI,CACvE,4CAA4C,CAC7C,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/lib/schema-version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.7.
|
|
1
|
+
export declare const version = "0.7.17";
|
package/lib/schema-version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@financial-times/cp-content-pipeline-client",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.18",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@dotcom-tool-kit/npm": "^3.1.0",
|
|
13
|
-
"@financial-times/content-tree": "github:
|
|
14
|
-
"@financial-times/cp-content-pipeline-schema": "^0.7.
|
|
13
|
+
"@financial-times/content-tree": "github:financial-times/content-tree#14370e3",
|
|
14
|
+
"@financial-times/cp-content-pipeline-schema": "^0.7.17",
|
|
15
15
|
"@graphql-tools/merge": "^8.3.6",
|
|
16
16
|
"@types/lodash.mapvalues": "^4.6.7",
|
|
17
17
|
"@types/semver": "^7.3.13",
|
package/queries/article.graphql
CHANGED
|
@@ -65,6 +65,7 @@ fragment Topper on Topper {
|
|
|
65
65
|
backgroundColour
|
|
66
66
|
backgroundBox
|
|
67
67
|
textShadow
|
|
68
|
+
followButtonVariant
|
|
68
69
|
|
|
69
70
|
intro {
|
|
70
71
|
...Intro
|
|
@@ -183,22 +184,28 @@ fragment Image on Image {
|
|
|
183
184
|
__typename
|
|
184
185
|
height
|
|
185
186
|
width
|
|
187
|
+
caption
|
|
186
188
|
credit
|
|
187
189
|
format
|
|
188
190
|
url
|
|
189
191
|
id
|
|
190
192
|
}
|
|
191
193
|
|
|
192
|
-
fragment
|
|
194
|
+
fragment PictureFields on Picture {
|
|
193
195
|
__typename
|
|
194
196
|
alt
|
|
195
197
|
caption
|
|
196
198
|
credit
|
|
197
199
|
imageType
|
|
198
200
|
layoutWidth
|
|
201
|
+
|
|
199
202
|
fallbackImage {
|
|
200
203
|
...Image
|
|
201
204
|
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
fragment Picture on Picture {
|
|
208
|
+
...PictureFields
|
|
202
209
|
|
|
203
210
|
images {
|
|
204
211
|
...Image
|
|
@@ -295,11 +302,56 @@ fragment RawImage on RawImage {
|
|
|
295
302
|
}
|
|
296
303
|
}
|
|
297
304
|
|
|
305
|
+
fragment ScrollyImage on ScrollyImage {
|
|
306
|
+
picture {
|
|
307
|
+
...PictureFields
|
|
308
|
+
|
|
309
|
+
images {
|
|
310
|
+
...Image
|
|
311
|
+
|
|
312
|
+
... on ImageDesktop {
|
|
313
|
+
s: sourceSet(width: 740) {
|
|
314
|
+
...ImageSource
|
|
315
|
+
}
|
|
316
|
+
m: sourceSet(width: 980) {
|
|
317
|
+
...ImageSource
|
|
318
|
+
}
|
|
319
|
+
l: sourceSet(width: 1220) {
|
|
320
|
+
...ImageSource
|
|
321
|
+
}
|
|
322
|
+
xl: sourceSet(width: 1920) {
|
|
323
|
+
...ImageSource
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
... on ImageMobile {
|
|
328
|
+
s: sourceSet(width: 490) {
|
|
329
|
+
...ImageSource
|
|
330
|
+
}
|
|
331
|
+
m: sourceSet(width: 600) {
|
|
332
|
+
...ImageSource
|
|
333
|
+
}
|
|
334
|
+
l: sourceSet(width: 800) {
|
|
335
|
+
...ImageSource
|
|
336
|
+
}
|
|
337
|
+
xl: sourceSet(width: 1200) {
|
|
338
|
+
...ImageSource
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
298
345
|
fragment Design on Design {
|
|
299
346
|
theme
|
|
300
347
|
layout
|
|
301
348
|
}
|
|
302
349
|
|
|
350
|
+
fragment Media on Media {
|
|
351
|
+
url
|
|
352
|
+
mediaType
|
|
353
|
+
}
|
|
354
|
+
|
|
303
355
|
fragment ArticleReferences on Reference {
|
|
304
356
|
type
|
|
305
357
|
...Recommended
|
|
@@ -310,6 +362,7 @@ fragment ArticleReferences on Reference {
|
|
|
310
362
|
...Flourish
|
|
311
363
|
...RawImage
|
|
312
364
|
...MainImage
|
|
365
|
+
...ScrollyImage
|
|
313
366
|
}
|
|
314
367
|
|
|
315
368
|
fragment StructuredContent on StructuredContent {
|
|
@@ -362,5 +415,10 @@ query Article($uuid: String!, $useVanities: Boolean!) {
|
|
|
362
415
|
standfirst
|
|
363
416
|
}
|
|
364
417
|
}
|
|
418
|
+
... on Audio {
|
|
419
|
+
media {
|
|
420
|
+
...Media
|
|
421
|
+
}
|
|
422
|
+
}
|
|
365
423
|
}
|
|
366
424
|
}
|