@financial-times/cp-content-pipeline-schema 0.7.6 → 0.7.8
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/CHANGELOG.md +14 -0
- package/lib/datasources/capi.d.ts +1 -5
- package/lib/datasources/capi.js +22 -15
- package/lib/datasources/capi.js.map +1 -1
- package/lib/model/CapiResponse.d.ts +490 -1082
- package/lib/model/Image.d.ts +5 -5
- package/lib/model/schemas/capi/article.d.ts +260 -296
- package/lib/model/schemas/capi/audio.d.ts +178 -585
- package/lib/model/schemas/capi/base-schema.d.ts +535 -650
- package/lib/model/schemas/capi/base-schema.js +1 -21
- package/lib/model/schemas/capi/base-schema.js.map +1 -1
- package/lib/model/schemas/capi/content-package.d.ts +249 -434
- package/lib/model/schemas/capi/index.d.ts +401 -993
- package/lib/model/schemas/capi/live-blog-package.d.ts +271 -299
- package/package.json +5 -5
- package/src/datasources/capi.ts +49 -26
- package/src/model/schemas/capi/base-schema.ts +0 -23
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.8](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v0.7.7...cp-content-pipeline-schema-v0.7.8) (2023-05-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* purge on notifications from Push API instead of Notifications API ([6a27dc5](https://github.com/Financial-Times/cp-content-pipeline/commit/6a27dc55aa98001571b6c0e97adc6658944e569f))
|
|
9
|
+
|
|
10
|
+
## [0.7.7](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v0.7.6...cp-content-pipeline-schema-v0.7.7) (2023-04-18)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* improve Zod error logging by collapsing literal union errors and printing actual value ([591e201](https://github.com/Financial-Times/cp-content-pipeline/commit/591e201f78bbfc3edde7763d9dc933a9f45b04a7))
|
|
16
|
+
|
|
3
17
|
## [0.7.6](https://github.com/Financial-Times/cp-content-pipeline/compare/cp-content-pipeline-schema-v0.7.5...cp-content-pipeline-schema-v0.7.6) (2023-04-06)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { WillSendRequestOptions } from '@apollo/datasource-rest';
|
|
4
4
|
import { CapiResponse } from '../model/CapiResponse.js';
|
|
5
5
|
import { InstrumentedRESTDataSource } from './instrumented.js';
|
|
6
|
-
import {
|
|
6
|
+
import { CapiPerson } from '../types/internal-content.js';
|
|
7
7
|
import { CacheOptions } from '@apollo/datasource-rest/dist/RESTDataSource.js';
|
|
8
8
|
export declare class CapiDataSource extends InstrumentedRESTDataSource {
|
|
9
9
|
baseURL: string;
|
|
@@ -18,8 +18,4 @@ export declare class CapiDataSource extends InstrumentedRESTDataSource {
|
|
|
18
18
|
protected cacheOptionsFor(url: string): CacheOptions | undefined;
|
|
19
19
|
getContent(uuid: string): Promise<CapiResponse>;
|
|
20
20
|
getPerson(uuid: string): Promise<CapiPerson>;
|
|
21
|
-
getNotifications({ since, page, }: {
|
|
22
|
-
since: Date;
|
|
23
|
-
page?: string;
|
|
24
|
-
}): Promise<CapiNotificationResponse>;
|
|
25
21
|
}
|
package/lib/datasources/capi.js
CHANGED
|
@@ -5,15 +5,31 @@ const CapiResponse_js_1 = require("../model/CapiResponse.js");
|
|
|
5
5
|
const instrumented_js_1 = require("./instrumented.js");
|
|
6
6
|
const errors_1 = require("@dotcom-reliability-kit/errors");
|
|
7
7
|
const log_error_1 = require("@dotcom-reliability-kit/log-error");
|
|
8
|
-
|
|
9
|
-
function flattenFormattedZodIssues(issues, path = [], flattened = []) {
|
|
8
|
+
function flattenFormattedZodIssues(issues, object, path = [], flattened = []) {
|
|
10
9
|
if (issues._errors.length > 0) {
|
|
11
|
-
|
|
10
|
+
const literalErrors = issues._errors.filter((error) => error.startsWith('Invalid literal value'));
|
|
11
|
+
const otherErrors = issues._errors.filter((error) => !error.startsWith('Invalid literal value'));
|
|
12
|
+
if (literalErrors.length > 0) {
|
|
13
|
+
flattened.push(`${path.join('.')}: Invalid literal value, received "${object}", expected one of ` +
|
|
14
|
+
literalErrors
|
|
15
|
+
.flatMap((error) => {
|
|
16
|
+
const match = error.match(/expected (".+")$/);
|
|
17
|
+
if (match && match[1]) {
|
|
18
|
+
return [match[1]];
|
|
19
|
+
}
|
|
20
|
+
return [];
|
|
21
|
+
})
|
|
22
|
+
.join());
|
|
23
|
+
}
|
|
24
|
+
flattened.push(...otherErrors.map((error) => `${path.join('.')}: ${error}`));
|
|
12
25
|
}
|
|
13
26
|
for (const [key, value] of Object.entries(issues)) {
|
|
14
|
-
if (key !== '_errors' &&
|
|
27
|
+
if (key !== '_errors' &&
|
|
28
|
+
!Array.isArray(value) &&
|
|
29
|
+
object &&
|
|
30
|
+
(Array.isArray(object) || typeof object === 'object')) {
|
|
15
31
|
const isArrayKey = !Number.isNaN(parseInt(key));
|
|
16
|
-
flattenFormattedZodIssues(value, [...path, isArrayKey ? '[]' : key], flattened);
|
|
32
|
+
flattenFormattedZodIssues(value, Array.isArray(object) ? object[parseInt(key)] : object[key], [...path, isArrayKey ? '[]' : key], flattened);
|
|
17
33
|
}
|
|
18
34
|
}
|
|
19
35
|
return flattened;
|
|
@@ -74,7 +90,7 @@ class CapiDataSource extends instrumented_js_1.InstrumentedRESTDataSource {
|
|
|
74
90
|
error: new errors_1.OperationalError({
|
|
75
91
|
message: 'The data received from the CAPI data source does not match our data source schema. It is likely that our schema will require updating to handle all possible responses from CAPI.',
|
|
76
92
|
code: 'CAPI_SCHEMA_VALIDATION_FAILURE',
|
|
77
|
-
schemaError: flattenFormattedZodIssues(schemaResponse.error.format()),
|
|
93
|
+
schemaError: flattenFormattedZodIssues(schemaResponse.error.format(), content),
|
|
78
94
|
contentId: content.id,
|
|
79
95
|
contentType: content.type,
|
|
80
96
|
}),
|
|
@@ -101,15 +117,6 @@ class CapiDataSource extends instrumented_js_1.InstrumentedRESTDataSource {
|
|
|
101
117
|
async getPerson(uuid) {
|
|
102
118
|
return this.get(`people/${uuid}`);
|
|
103
119
|
}
|
|
104
|
-
async getNotifications({ since, page, }) {
|
|
105
|
-
const response = await this.get('content/notifications', {
|
|
106
|
-
params: {
|
|
107
|
-
since: since.toISOString(),
|
|
108
|
-
...(page ? { page } : {}),
|
|
109
|
-
},
|
|
110
|
-
});
|
|
111
|
-
return base_schema_js_1.capiNotificationResponse.parse(response);
|
|
112
|
-
}
|
|
113
120
|
}
|
|
114
121
|
exports.CapiDataSource = CapiDataSource;
|
|
115
122
|
//# sourceMappingURL=capi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capi.js","sourceRoot":"","sources":["../../src/datasources/capi.ts"],"names":[],"mappings":";;;AACA,8DAAuD;AACvD,uDAA8D;
|
|
1
|
+
{"version":3,"file":"capi.js","sourceRoot":"","sources":["../../src/datasources/capi.ts"],"names":[],"mappings":"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"}
|