@financial-times/cp-content-pipeline-schema 2.5.4 → 2.6.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.
@@ -21,6 +21,7 @@ declare const resolvers: {
21
21
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
22
22
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
23
23
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
24
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
24
25
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
25
26
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
26
27
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -50,6 +51,7 @@ declare const resolvers: {
50
51
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
51
52
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
52
53
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
54
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
53
55
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
54
56
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
55
57
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -79,6 +81,7 @@ declare const resolvers: {
79
81
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
80
82
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
81
83
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
84
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
82
85
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
83
86
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
84
87
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -112,6 +115,7 @@ declare const resolvers: {
112
115
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
113
116
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
114
117
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
118
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
115
119
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
116
120
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
117
121
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -143,6 +147,7 @@ declare const resolvers: {
143
147
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
144
148
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
145
149
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
150
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
146
151
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
147
152
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
148
153
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -174,6 +179,7 @@ declare const resolvers: {
174
179
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
175
180
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
176
181
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
182
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
177
183
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
178
184
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
179
185
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -203,6 +209,7 @@ declare const resolvers: {
203
209
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
204
210
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
205
211
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
212
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
206
213
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
207
214
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
208
215
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -232,6 +239,7 @@ declare const resolvers: {
232
239
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
233
240
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
234
241
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
242
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
235
243
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
236
244
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
237
245
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -19,6 +19,7 @@ const contentResolvers = {
19
19
  mainImage: (parent) => parent.mainImage(),
20
20
  originatingParty: (parent) => parent.originatingParty(),
21
21
  publishedDate: (parent) => parent.publishedDate(),
22
+ publishedTimestamp: (parent) => parent.publishedTimestamp(),
22
23
  standfirst: (parent) => parent.standfirst(),
23
24
  teaser: (parent) => parent.teaser(),
24
25
  title: (parent) => parent.title(),
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/resolvers/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/resolvers/content.ts"],"names":[],"mappings":"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"}
@@ -463,6 +463,7 @@ declare const resolvers: {
463
463
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
464
464
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
465
465
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
466
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
466
467
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
467
468
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
468
469
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -492,6 +493,7 @@ declare const resolvers: {
492
493
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
493
494
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
494
495
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
496
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
495
497
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
496
498
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
497
499
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -521,6 +523,7 @@ declare const resolvers: {
521
523
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
522
524
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
523
525
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
526
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
524
527
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
525
528
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
526
529
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -554,6 +557,7 @@ declare const resolvers: {
554
557
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
555
558
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
556
559
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
560
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
557
561
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
558
562
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
559
563
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -585,6 +589,7 @@ declare const resolvers: {
585
589
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
586
590
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
587
591
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
592
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
588
593
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
589
594
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
590
595
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -616,6 +621,7 @@ declare const resolvers: {
616
621
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
617
622
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
618
623
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
624
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
619
625
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
620
626
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
621
627
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -645,6 +651,7 @@ declare const resolvers: {
645
651
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
646
652
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
647
653
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
654
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
648
655
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
649
656
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
650
657
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
@@ -674,6 +681,7 @@ declare const resolvers: {
674
681
  mainImage: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/Image").Image>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
675
682
  originatingParty: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
676
683
  publishedDate: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
684
+ publishedTimestamp: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<number>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
677
685
  standfirst: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<string>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
678
686
  teaser: import("../generated").Resolver<import("../generated").Maybe<import("../generated").ResolverTypeWrapper<import("../model/CapiResponse").CapiResponse>>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
679
687
  title: import("../generated").Resolver<import("../generated").ResolverTypeWrapper<string>, import("../model/CapiResponse").CapiResponse, import("..").QueryContext, {}>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/cp-content-pipeline-schema",
3
- "version": "2.5.4",
3
+ "version": "2.6.1",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -502,6 +502,7 @@ fragment Content on Content {
502
502
  id
503
503
  title
504
504
  publishedDate
505
+ publishedTimestamp
505
506
  firstPublishedDate
506
507
  standfirst
507
508
  topper {
@@ -56,6 +56,6 @@ export const baseCapiObject: InternalContent = {
56
56
  leadImages: [],
57
57
  accessLevel: 'premium' as const,
58
58
  embeds: [],
59
- publishedDate: '',
59
+ publishedDate: '2024-04-02T10:00:09.935Z',
60
60
  firstPublishedDate: '',
61
61
  }
@@ -93,6 +93,8 @@ export type Article = Content & {
93
93
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
94
94
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
95
95
  readonly publishedDate: Scalars['String']['output'];
96
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
97
+ readonly publishedTimestamp: Scalars['Float']['output'];
96
98
  /** An introductory paragraph of the article. */
97
99
  readonly standfirst?: Maybe<Scalars['String']['output']>;
98
100
  /** A promotional thumbnail / snapshot of the article. */
@@ -155,6 +157,8 @@ export type Audio = Content & {
155
157
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
156
158
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
157
159
  readonly publishedDate: Scalars['String']['output'];
160
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
161
+ readonly publishedTimestamp: Scalars['Float']['output'];
158
162
  /** An introductory paragraph of the article. */
159
163
  readonly standfirst?: Maybe<Scalars['String']['output']>;
160
164
  /** A promotional thumbnail / snapshot of the article. */
@@ -362,6 +366,8 @@ export type Content = {
362
366
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
363
367
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
364
368
  readonly publishedDate: Scalars['String']['output'];
369
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
370
+ readonly publishedTimestamp: Scalars['Float']['output'];
365
371
  /** An introductory paragraph of the article. */
366
372
  readonly standfirst?: Maybe<Scalars['String']['output']>;
367
373
  /** A promotional thumbnail / snapshot of the article. */
@@ -426,6 +432,8 @@ export type ContentPackage = Content & {
426
432
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
427
433
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
428
434
  readonly publishedDate: Scalars['String']['output'];
435
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
436
+ readonly publishedTimestamp: Scalars['Float']['output'];
429
437
  /** An introductory paragraph of the article. */
430
438
  readonly standfirst?: Maybe<Scalars['String']['output']>;
431
439
  /** The optional table of contents for this content package. */
@@ -939,6 +947,8 @@ export type LiveBlogPackage = Content & {
939
947
  readonly pinnedPost?: Maybe<Content>;
940
948
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
941
949
  readonly publishedDate: Scalars['String']['output'];
950
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
951
+ readonly publishedTimestamp: Scalars['Float']['output'];
942
952
  /** Whether the live blog package should be updated in real time. */
943
953
  readonly realtime?: Maybe<Scalars['Boolean']['output']>;
944
954
  /** An introductory paragraph of the article. */
@@ -1012,6 +1022,8 @@ export type LiveBlogPost = Content & {
1012
1022
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
1013
1023
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
1014
1024
  readonly publishedDate: Scalars['String']['output'];
1025
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
1026
+ readonly publishedTimestamp: Scalars['Float']['output'];
1015
1027
  /** An introductory paragraph of the article. */
1016
1028
  readonly standfirst?: Maybe<Scalars['String']['output']>;
1017
1029
  /** A promotional thumbnail / snapshot of the article. */
@@ -1206,6 +1218,8 @@ export type Placeholder = Content & {
1206
1218
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
1207
1219
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
1208
1220
  readonly publishedDate: Scalars['String']['output'];
1221
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
1222
+ readonly publishedTimestamp: Scalars['Float']['output'];
1209
1223
  /** An introductory paragraph of the article. */
1210
1224
  readonly standfirst?: Maybe<Scalars['String']['output']>;
1211
1225
  /** A promotional thumbnail / snapshot of the article. */
@@ -1502,6 +1516,8 @@ export type Video = Content & {
1502
1516
  readonly originatingParty?: Maybe<Scalars['String']['output']>;
1503
1517
  /** The ISO string date the article was published, eg. '2024-04-03T10:35:52.443Z'. */
1504
1518
  readonly publishedDate: Scalars['String']['output'];
1519
+ /** The number of milliseconds since the unix epoch the article was published, eg '1712140552443'. */
1520
+ readonly publishedTimestamp: Scalars['Float']['output'];
1505
1521
  /** An introductory paragraph of the article. */
1506
1522
  readonly standfirst?: Maybe<Scalars['String']['output']>;
1507
1523
  /** A promotional thumbnail / snapshot of the article. */
@@ -1647,6 +1663,7 @@ export type ResolversTypes = ResolversObject<{
1647
1663
  DeepLandscapeTopper: ResolverTypeWrapper<TopperModel>;
1648
1664
  DeepPortraitTopper: ResolverTypeWrapper<TopperModel>;
1649
1665
  Design: ResolverTypeWrapper<Design>;
1666
+ Float: ResolverTypeWrapper<Scalars['Float']['output']>;
1650
1667
  Flourish: ResolverTypeWrapper<ReferenceWithCAPIData<ContentTree.Flourish>>;
1651
1668
  FlourishFallback: ResolverTypeWrapper<FlourishFallback>;
1652
1669
  FollowButtonVariant: ResolverTypeWrapper<Scalars['FollowButtonVariant']['output']>;
@@ -1732,6 +1749,7 @@ export type ResolversParentTypes = ResolversObject<{
1732
1749
  DeepLandscapeTopper: TopperModel;
1733
1750
  DeepPortraitTopper: TopperModel;
1734
1751
  Design: Design;
1752
+ Float: Scalars['Float']['output'];
1735
1753
  Flourish: ReferenceWithCAPIData<ContentTree.Flourish>;
1736
1754
  FlourishFallback: FlourishFallback;
1737
1755
  FollowButtonVariant: Scalars['FollowButtonVariant']['output'];
@@ -1832,6 +1850,7 @@ export type ArticleResolvers<ContextType = QueryContext, ParentType extends Reso
1832
1850
  mainImage: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1833
1851
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1834
1852
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1853
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
1835
1854
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1836
1855
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
1837
1856
  title: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -1860,6 +1879,7 @@ export type AudioResolvers<ContextType = QueryContext, ParentType extends Resolv
1860
1879
  media: Resolver<Maybe<ReadonlyArray<Maybe<ResolversTypes['Media']>>>, ParentType, ContextType>;
1861
1880
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1862
1881
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
1882
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
1863
1883
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1864
1884
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
1865
1885
  title: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -1983,6 +2003,7 @@ export type ContentResolvers<ContextType = QueryContext, ParentType extends Reso
1983
2003
  mainImage: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
1984
2004
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1985
2005
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2006
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
1986
2007
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
1987
2008
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
1988
2009
  title: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -2011,6 +2032,7 @@ export type ContentPackageResolvers<ContextType = QueryContext, ParentType exten
2011
2032
  mainImage: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
2012
2033
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2013
2034
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2035
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
2014
2036
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2015
2037
  tableOfContents: Resolver<Maybe<ResolversTypes['TableOfContents']>, ParentType, ContextType>;
2016
2038
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -2301,6 +2323,7 @@ export type LiveBlogPackageResolvers<ContextType = QueryContext, ParentType exte
2301
2323
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2302
2324
  pinnedPost: Resolver<Maybe<ResolversTypes['Content']>, ParentType, ContextType>;
2303
2325
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2326
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
2304
2327
  realtime: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
2305
2328
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2306
2329
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
@@ -2332,6 +2355,7 @@ export type LiveBlogPostResolvers<ContextType = QueryContext, ParentType extends
2332
2355
  mainImage: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
2333
2356
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2334
2357
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2358
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
2335
2359
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2336
2360
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
2337
2361
  title: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -2446,6 +2470,7 @@ export type PlaceholderResolvers<ContextType = QueryContext, ParentType extends
2446
2470
  mainImage: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
2447
2471
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2448
2472
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2473
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
2449
2474
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2450
2475
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
2451
2476
  title: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -2629,6 +2654,7 @@ export type VideoResolvers<ContextType = QueryContext, ParentType extends Resolv
2629
2654
  mainImage: Resolver<Maybe<ResolversTypes['Image']>, ParentType, ContextType>;
2630
2655
  originatingParty: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2631
2656
  publishedDate: Resolver<ResolversTypes['String'], ParentType, ContextType>;
2657
+ publishedTimestamp: Resolver<ResolversTypes['Float'], ParentType, ContextType>;
2632
2658
  standfirst: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
2633
2659
  teaser: Resolver<Maybe<ResolversTypes['Teaser']>, ParentType, ContextType>;
2634
2660
  title: Resolver<ResolversTypes['String'], ParentType, ContextType>;
@@ -75,6 +75,15 @@ describe('CAPI response', () => {
75
75
  })
76
76
  })
77
77
 
78
+ describe('Publish timestamp', () => {
79
+ test('generates a timestamp from the published date', () => {
80
+ const article = cloneDeep(baseCapiObject)
81
+ const capiResponse = new CapiResponse(article, context)
82
+
83
+ expect(capiResponse.publishedTimestamp()).toEqual(1712052009935)
84
+ })
85
+ })
86
+
78
87
  describe('liveBlogPosts', () => {
79
88
  test('returns a resolved array of the articles contained sorted by most recently published', async () => {
80
89
  const liveBlogPackage = cloneDeep({
@@ -364,6 +364,9 @@ export class CapiResponse {
364
364
  publishedDate() {
365
365
  return this.capiData.publishedDate
366
366
  }
367
+ publishedTimestamp() {
368
+ return new Date(this.capiData.publishedDate).getTime()
369
+ }
367
370
  firstPublishedDate() {
368
371
  return this.capiData.firstPublishedDate || this.capiData.publishedDate
369
372
  }
@@ -673,9 +676,7 @@ export class CapiResponse {
673
676
  this.context.addSurrogateKeys(contains.map((article) => article.id()))
674
677
 
675
678
  const liveBlogPosts = contains.sort(
676
- (a, b) =>
677
- new Date(b.publishedDate()).getTime() -
678
- new Date(a.publishedDate()).getTime()
679
+ (a, b) => b.publishedTimestamp() - a.publishedTimestamp()
679
680
  )
680
681
 
681
682
  return liveBlogPosts
@@ -231,7 +231,7 @@ export class Topper {
231
231
  'http://www.ft.com/ontology/annotation/about'
232
232
  )
233
233
 
234
- if (this.capiResponse.isOpinion() && brandConcept) {
234
+ if (this.type() === 'OpinionTopper' && brandConcept) {
235
235
  return brandConcept
236
236
  }
237
237
 
@@ -15,6 +15,11 @@ export interface AuthorLink extends ContentTree.Parent {
15
15
  children: ContentTree.Text[]
16
16
  }
17
17
 
18
+ export interface Cite extends ContentTree.Node {
19
+ type: 'cite'
20
+ children: ContentTree.Phrasing[]
21
+ }
22
+
18
23
  /*
19
24
  Raw Image nodes only exist because of old Wordpress articles,
20
25
  and so will not be added to content-tree.
@@ -39,6 +44,10 @@ export interface RawImage extends ContentTree.Node {
39
44
  width?: number
40
45
  }
41
46
 
47
+ export interface ContentTreePullquote extends ContentTree.Pullquote {
48
+ children: ContentTree.ImageSet[]
49
+ }
50
+
42
51
  /*
43
52
  Whilst we are converting the bodyXML to the content-tree, we still do not have a way of
44
53
  knowing if the article should display a mainImage or not.
@@ -190,3 +199,4 @@ export type AnyNode =
190
199
  | MainImageRaw
191
200
  | RawImage
192
201
  | AuthorLink
202
+ | Cite
@@ -119,6 +119,10 @@ const commonTagMappings: TagMappings = {
119
119
  type: 'emphasis',
120
120
  children: childrenOfTypes(phrasingTypes, traverse(), 'emphasis', context),
121
121
  }),
122
+ 'blockquote > cite': ($el, traverse, context) => ({
123
+ type: 'cite',
124
+ children: childrenOfTypes(phrasingTypes, traverse(), 'cite', context),
125
+ }),
122
126
  blockquote: ($el, traverse, context) => ({
123
127
  type: 'blockquote',
124
128
  children: childrenOfTypes(phrasingTypes, traverse(), 'blockquote', context),
@@ -160,11 +164,17 @@ const commonTagMappings: TagMappings = {
160
164
  level: 'label',
161
165
  children: everyChildIsType('text', traverse(), 'heading', context),
162
166
  }),
163
- 'pull-quote': ($el) => ({
164
- type: 'pullquote',
165
- text: $el.find('pull-quote-text').text(),
166
- source: $el.find('pull-quote-source').text(),
167
- }),
167
+ 'pull-quote': ($el, traverse, context) => {
168
+ const children = traverse()
169
+ const image = findChildOftype('image-set', children, 'pullquote', context)
170
+
171
+ return {
172
+ type: 'pullquote',
173
+ text: $el.find('pull-quote-text').text(),
174
+ source: $el.find('pull-quote-source').text(),
175
+ children: image ? [image] : [],
176
+ }
177
+ },
168
178
  'body > ft-content[type="http://www.ft.com/ontology/content/Video"]': (
169
179
  $el
170
180
  ) => ({
@@ -237,7 +247,7 @@ const commonTagMappings: TagMappings = {
237
247
  description: $description.text(),
238
248
  }
239
249
  },
240
- '.n-content-layout': ($el, traverse, context) => {
250
+ '.n-content-layout, .layout': ($el, traverse, context) => {
241
251
  //TODO: this is a bit gross??
242
252
  const isValidWidth = (
243
253
  str: string
@@ -282,7 +292,7 @@ const commonTagMappings: TagMappings = {
282
292
  children: getChildren(traverse()),
283
293
  }
284
294
  },
285
- '.n-content-layout__slot': ($el, traverse, context) => ({
295
+ '.n-content-layout__slot, .layout-slot': ($el, traverse, context) => ({
286
296
  type: 'layout-slot',
287
297
  children: childrenOfTypes(
288
298
  ['heading', 'paragraph', 'layout-image'],
@@ -34,6 +34,7 @@ const contentResolvers: ContentResolvers = {
34
34
  mainImage: (parent) => parent.mainImage(),
35
35
  originatingParty: (parent) => parent.originatingParty(),
36
36
  publishedDate: (parent) => parent.publishedDate(),
37
+ publishedTimestamp: (parent) => parent.publishedTimestamp(),
37
38
  standfirst: (parent) => parent.standfirst(),
38
39
  teaser: (parent) => parent.teaser(),
39
40
  title: (parent) => parent.title(),