@redocly/respect-core 2.25.2 → 2.25.4
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/lib/modules/checks/severity.js +1 -1
- package/lib/modules/checks/severity.js.map +1 -1
- package/lib/modules/flow-runner/schema/schema-checker.d.ts +4 -0
- package/lib/modules/flow-runner/schema/schema-checker.d.ts.map +1 -1
- package/lib/modules/flow-runner/schema/schema-checker.js +32 -2
- package/lib/modules/flow-runner/schema/schema-checker.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"severity.js","sourceRoot":"","sources":["../../../src/modules/checks/severity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"severity.js","sourceRoot":"","sources":["../../../src/modules/checks/severity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAG7E,MAAM,CAAC,MAAM,8BAA8B,GAEvC;IACF,sBAAsB,EAAE,OAAO;IAC/B,iBAAiB,EAAE,OAAO;IAC1B,YAAY,EAAE,OAAO;IACrB,kBAAkB,EAAE,OAAO;IAC3B,oBAAoB,EAAE,OAAO;IAC7B,uBAAuB,EAAE,OAAO;IAChC,aAAa,EAAE,OAAO;IACtB,gBAAgB,EAAE,OAAO;CAC1B,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAAC,gBAA+C;IAG1F,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED,MAAM,qBAAqB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAEhE,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,mEAAmE,gBAAgB,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,8BAA8B;QACjC,GAAG,qBAAqB;QACxB,gBAAgB,EAAE,OAAO;QACzB,aAAa,EAAE,OAAO;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import type { Oas3Responses } from '@redocly/openapi-core';
|
|
1
2
|
import { type Check, type StepCallContext, type TestContext } from '../../../types.js';
|
|
2
3
|
export declare function checkSchema({ stepCallCtx, descriptionOperation, ctx, }: {
|
|
3
4
|
stepCallCtx: StepCallContext;
|
|
4
5
|
descriptionOperation?: any;
|
|
5
6
|
ctx: TestContext;
|
|
6
7
|
}): Check[];
|
|
8
|
+
type ResponseContent = NonNullable<Oas3Responses[string]['content']>;
|
|
9
|
+
export declare function resolveContentByType(content: ResponseContent | undefined, contentType: string): ResponseContent[string] | undefined;
|
|
7
10
|
export declare function statusCodeDiff<E = unknown>(actual: unknown, expected: E[]): string;
|
|
11
|
+
export {};
|
|
8
12
|
//# sourceMappingURL=schema-checker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-checker.d.ts","sourceRoot":"","sources":["../../../../src/modules/flow-runner/schema/schema-checker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-checker.d.ts","sourceRoot":"","sources":["../../../../src/modules/flow-runner/schema/schema-checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAqB3B,wBAAgB,WAAW,CAAC,EAC1B,WAAW,EACX,oBAAoB,EACpB,GAAG,GACJ,EAAE;IACD,WAAW,EAAE,eAAe,CAAC;IAC7B,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,GAAG,EAAE,WAAW,CAAC;CAClB,GAAG,KAAK,EAAE,CAkBV;AA0GD,KAAK,eAAe,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAErE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,WAAW,EAAE,MAAM,GAClB,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAUrC;AA2CD,wBAAgB,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,UAQzE"}
|
|
@@ -36,7 +36,7 @@ function checkSchemaFromDescription({ checks, descriptionOperation, $response, c
|
|
|
36
36
|
const descriptionResponseByCode = descriptionOperation?.responses[String($response?.statusCode)] ||
|
|
37
37
|
descriptionOperation?.responses['default'];
|
|
38
38
|
const schemaFromDescription = $response?.contentType
|
|
39
|
-
? descriptionResponseByCode?.content
|
|
39
|
+
? resolveContentByType(descriptionResponseByCode?.content, $response.contentType)?.schema
|
|
40
40
|
: undefined;
|
|
41
41
|
const isSchemaWithCircularRef = checkCircularRefsInSchema(schemaFromDescription);
|
|
42
42
|
if (isSchemaWithCircularRef) {
|
|
@@ -87,6 +87,35 @@ function checkStatusCodeFromDescription({ checks, descriptionOperation, $respons
|
|
|
87
87
|
severity: ctx.severity['STATUS_CODE_CHECK'],
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
+
function contentTypeMatchesPattern(contentType, pattern) {
|
|
91
|
+
const normalizedPattern = pattern.toLowerCase();
|
|
92
|
+
const normalizedContentType = contentType.toLowerCase();
|
|
93
|
+
if (normalizedPattern === '*/*')
|
|
94
|
+
return true;
|
|
95
|
+
if (normalizedPattern === normalizedContentType)
|
|
96
|
+
return true;
|
|
97
|
+
const [patternType, patternSubtype] = normalizedPattern.split('/');
|
|
98
|
+
const [actualType, actualSubtype] = normalizedContentType.split('/');
|
|
99
|
+
if (patternType === '*') {
|
|
100
|
+
return patternSubtype === '*' || patternSubtype === actualSubtype;
|
|
101
|
+
}
|
|
102
|
+
if (patternSubtype === '*') {
|
|
103
|
+
return patternType === actualType;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
export function resolveContentByType(content, contentType) {
|
|
108
|
+
if (!content)
|
|
109
|
+
return undefined;
|
|
110
|
+
if (content[contentType])
|
|
111
|
+
return content[contentType];
|
|
112
|
+
for (const pattern of Object.keys(content)) {
|
|
113
|
+
if (contentTypeMatchesPattern(contentType, pattern)) {
|
|
114
|
+
return content[pattern];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
90
119
|
function checkContentTypeFromDescription({ checks, descriptionOperation, $response, ctx, }) {
|
|
91
120
|
const statusCode = $response?.statusCode;
|
|
92
121
|
const responseContentType = $response?.contentType;
|
|
@@ -94,7 +123,8 @@ function checkContentTypeFromDescription({ checks, descriptionOperation, $respon
|
|
|
94
123
|
if (!possibleContentTypesFromDescription.length) {
|
|
95
124
|
return;
|
|
96
125
|
}
|
|
97
|
-
if (responseContentType &&
|
|
126
|
+
if (responseContentType &&
|
|
127
|
+
!possibleContentTypesFromDescription.some((pattern) => contentTypeMatchesPattern(responseContentType, pattern))) {
|
|
98
128
|
checks.push({
|
|
99
129
|
name: CHECKS.CONTENT_TYPE_CHECK,
|
|
100
130
|
passed: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-checker.js","sourceRoot":"","sources":["../../../../src/modules/flow-runner/schema/schema-checker.ts"],"names":[],"mappings":"AAAA,OAAO,GAA4B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-checker.js","sourceRoot":"","sources":["../../../../src/modules/flow-runner/schema/schema-checker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/respect-core",
|
|
3
|
-
"version": "2.25.
|
|
3
|
+
"version": "2.25.4",
|
|
4
4
|
"description": "API testing framework core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@faker-js/faker": "^7.6.0",
|
|
49
49
|
"@noble/hashes": "^1.8.0",
|
|
50
50
|
"@redocly/ajv": "^8.18.0",
|
|
51
|
-
"@redocly/openapi-core": "2.25.
|
|
51
|
+
"@redocly/openapi-core": "2.25.4",
|
|
52
52
|
"ajv": "npm:@redocly/ajv@8.18.0",
|
|
53
53
|
"better-ajv-errors": "^1.2.0",
|
|
54
54
|
"colorette": "^2.0.20",
|