@financial-times/cp-content-pipeline-client 0.6.17 → 0.6.19

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,14 +3,8 @@ 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.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;
6
+ exports.getSdk = exports.ArticleFromJsonDocument = exports.ArticleDocument = exports.ArticleFieldsFragmentDoc = exports.MediaFragmentDoc = 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 = 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
- `;
14
8
  exports.StructuredTreeFragmentDoc = (0, graphql_tag_1.default) `
15
9
  fragment StructuredTree on StructuredContent {
16
10
  tree
@@ -62,6 +56,7 @@ exports.TopperFragmentDoc = (0, graphql_tag_1.default) `
62
56
  backgroundColour
63
57
  backgroundBox
64
58
  textShadow
59
+ followButtonVariant
65
60
  intro {
66
61
  ...Intro
67
62
  }
@@ -435,37 +430,58 @@ exports.ContentFragmentDoc = (0, graphql_tag_1.default) `
435
430
  ${exports.StructuredContentFragmentDoc}
436
431
  ${exports.ConceptFragmentDoc}
437
432
  ${exports.DesignFragmentDoc}`;
438
- exports.ArticleDocument = (0, graphql_tag_1.default) `
439
- query Article($uuid: String!, $useVanities: Boolean!) {
440
- content(uuid: $uuid) {
441
- ...Content
442
- ... on LiveBlogPackage {
443
- liveBlogPosts {
444
- ...Content
445
- }
446
- realtime
433
+ exports.MediaFragmentDoc = (0, graphql_tag_1.default) `
434
+ fragment Media on Media {
435
+ url
436
+ mediaType
437
+ }
438
+ `;
439
+ exports.ArticleFieldsFragmentDoc = (0, graphql_tag_1.default) `
440
+ fragment ArticleFields on Content {
441
+ ...Content
442
+ ... on LiveBlogPackage {
443
+ liveBlogPosts {
444
+ ...Content
447
445
  }
448
- ... on ContentPackage {
449
- contains {
450
- ...Teaser
451
- standfirst
452
- }
446
+ realtime
447
+ }
448
+ ... on ContentPackage {
449
+ contains {
450
+ ...Teaser
451
+ standfirst
453
452
  }
454
- ... on Audio {
455
- media {
456
- ...Media
457
- }
453
+ }
454
+ ... on Audio {
455
+ media {
456
+ ...Media
458
457
  }
459
458
  }
460
459
  }
461
460
  ${exports.ContentFragmentDoc}
462
461
  ${exports.TeaserFragmentDoc}
463
462
  ${exports.MediaFragmentDoc}`;
463
+ exports.ArticleDocument = (0, graphql_tag_1.default) `
464
+ query Article($uuid: String!, $useVanities: Boolean!) {
465
+ content(uuid: $uuid) {
466
+ ...ArticleFields
467
+ }
468
+ }
469
+ ${exports.ArticleFieldsFragmentDoc}`;
470
+ exports.ArticleFromJsonDocument = (0, graphql_tag_1.default) `
471
+ query ArticleFromJSON($content: JSON!, $useVanities: Boolean!) {
472
+ contentFromJSON(content: $content) {
473
+ ...ArticleFields
474
+ }
475
+ }
476
+ ${exports.ArticleFieldsFragmentDoc}`;
464
477
  const defaultWrapper = (action, _operationName, _operationType) => action();
465
478
  function getSdk(client, withWrapper = defaultWrapper) {
466
479
  return {
467
480
  Article(variables, requestHeaders) {
468
481
  return withWrapper((wrappedRequestHeaders) => client.request(exports.ArticleDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'Article', 'query');
482
+ },
483
+ ArticleFromJSON(variables, requestHeaders) {
484
+ return withWrapper((wrappedRequestHeaders) => client.request(exports.ArticleFromJsonDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), 'ArticleFromJSON', 'query');
469
485
  }
470
486
  };
471
487
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":";;;;;;AAEA,8DAA8B;AAy2BjB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkH9B,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"}
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,22 +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: {
47
- 'user-agent': `cp-content-pipeline-client/${schema_version_1.version}; (+${options.systemCode})`,
75
+ 'user-agent': `cp-content-pipeline-client/${client_version_1.version}; cp-content-pipeline-schema/${schema_version_1.version}; (+${options.systemCode})`,
48
76
  'system-code': options.systemCode,
49
77
  // Include the full schema version number as a header as it might be useful for debugging
50
78
  'schema-version': schema_version_1.version,
51
79
  },
52
80
  });
53
- 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
+ }));
54
95
  }
55
96
  exports.default = init;
56
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,YAAY,EAAE,8BAA8B,wBAAa,OAAO,OAAO,CAAC,UAAU,GAAG;YACrF,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;AAtBD,uBAsBC;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.16";
1
+ export declare const version = "0.7.18";
@@ -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.16';
5
+ exports.version = '0.7.18';
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.17",
3
+ "version": "0.6.19",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -11,7 +11,7 @@
11
11
  "devDependencies": {
12
12
  "@dotcom-tool-kit/npm": "^3.1.0",
13
13
  "@financial-times/content-tree": "github:financial-times/content-tree#14370e3",
14
- "@financial-times/cp-content-pipeline-schema": "^0.7.16",
14
+ "@financial-times/cp-content-pipeline-schema": "^0.7.18",
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
@@ -399,25 +400,35 @@ fragment Content on Content {
399
400
  url
400
401
  }
401
402
 
402
- query Article($uuid: String!, $useVanities: Boolean!) {
403
- content(uuid: $uuid) {
404
- ...Content
405
- ... on LiveBlogPackage {
406
- liveBlogPosts {
407
- ...Content
408
- }
409
- realtime
403
+ fragment ArticleFields on Content {
404
+ ...Content
405
+ ... on LiveBlogPackage {
406
+ liveBlogPosts {
407
+ ...Content
410
408
  }
411
- ... on ContentPackage {
412
- contains {
413
- ...Teaser
414
- standfirst
415
- }
409
+ realtime
410
+ }
411
+ ... on ContentPackage {
412
+ contains {
413
+ ...Teaser
414
+ standfirst
416
415
  }
417
- ... on Audio {
418
- media {
419
- ...Media
420
- }
416
+ }
417
+ ... on Audio {
418
+ media {
419
+ ...Media
421
420
  }
422
421
  }
423
422
  }
423
+
424
+ query Article($uuid: String!, $useVanities: Boolean!) {
425
+ content(uuid: $uuid) {
426
+ ...ArticleFields
427
+ }
428
+ }
429
+
430
+ query ArticleFromJSON($content: JSON!, $useVanities: Boolean!) {
431
+ contentFromJSON(content: $content) {
432
+ ...ArticleFields
433
+ }
434
+ }
@@ -0,0 +1,2 @@
1
+ // Generated by genversion.
2
+ export const version = '0.6.19'