@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.
@@ -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.PictureFragmentDoc = (0, graphql_tag_1.default) `
211
- fragment Picture on Picture {
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.ImageFragmentDoc}
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -4,5 +4,6 @@ type ClientOptions = {
4
4
  baseUrl?: string;
5
5
  timeout?: number;
6
6
  };
7
+ export declare function apiUrl(apiMajorVersion: string, baseUrl?: string): string;
7
8
  export default function init(options: ClientOptions): Sdk;
8
9
  export * from './generated';
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 apiUrl = options.baseUrl ?? `https://www.ft.com/__content/${apiMajorVersion}`;
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":";;;;;;;;;;;;;;;;;;;AAAA,2CAAyC;AACzC,qDAA2D;AAC3D,qDAA+C;AAC/C,oDAA2B;AAQ3B,MAAM,sBAAsB,GAAG,KAAK,CAAA,CAAC,YAAY;AAEjD,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,aAAa,GAAG,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAE3C,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAA;KACF;IAED;;;OAGG;IACH,OAAO,aAAa,CAAC,KAAK,GAAG,CAAC;QAC5B,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE;QAC3B,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,CAAA;AACtD,CAAC;AAED,SAAwB,IAAI,CAAC,OAAsB;IACjD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,4HAA4H,CAC7H,CAAA;KACF;IAED,MAAM,eAAe,GAAG,UAAU,CAAC,wBAAa,CAAC,CAAA;IACjD,MAAM,MAAM,GACV,OAAO,CAAC,OAAO,IAAI,gCAAgC,eAAe,EAAE,CAAA;IAEtE,MAAM,MAAM,GAAG,IAAI,+BAAa,CAAC,MAAM,EAAE;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,sBAAsB;QAClD,OAAO,EAAE;YACP,aAAa,EAAE,OAAO,CAAC,UAAU;YACjC,yFAAyF;YACzF,gBAAgB,EAAE,wBAAa;SAChC;KACF,CAAC,CAAA;IAEF,OAAO,IAAA,kBAAM,EAAC,MAAM,CAAC,CAAA;AACvB,CAAC;AArBD,uBAqBC;AAED,8CAA2B"}
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"}
@@ -1 +1 @@
1
- export declare const version = "0.7.15";
1
+ export declare const version = "0.7.17";
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
4
  // Generated by genversion.
5
- exports.version = '0.7.15';
5
+ exports.version = '0.7.17';
6
6
  //# sourceMappingURL=schema-version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/cp-content-pipeline-client",
3
- "version": "0.6.16",
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:Financial-Times/content-tree#5983f6eacd67a5d4c8dd87660ebb217eecab4761",
14
- "@financial-times/cp-content-pipeline-schema": "^0.7.15",
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",
@@ -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 Picture on Picture {
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
  }
@@ -0,0 +1,2 @@
1
+ // Generated by genversion.
2
+ export const version = '0.6.18'