@redocly/openapi-core 2.56.0 → 2.57.0
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/bundle/bundle-visitor.d.ts +1 -1
- package/lib/format/codeframes.d.ts.map +1 -1
- package/lib/format/codeframes.js +41 -20
- package/lib/format/codeframes.js.map +1 -1
- package/lib/rules/common/no-ambiguous-paths.d.ts.map +1 -1
- package/lib/rules/common/no-ambiguous-paths.js +36 -22
- package/lib/rules/common/no-ambiguous-paths.js.map +1 -1
- package/lib/rules/common/no-enum-type-mismatch.d.ts.map +1 -1
- package/lib/rules/common/no-enum-type-mismatch.js +19 -25
- package/lib/rules/common/no-enum-type-mismatch.js.map +1 -1
- package/lib/types/json-schema-adapter.d.ts.map +1 -1
- package/lib/types/json-schema-adapter.js +17 -11
- package/lib/types/json-schema-adapter.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { type SpecMajorVersion } from '../oas-types.js';
|
|
|
3
3
|
import { type ResolvedRefMap, type Document } from '../resolve.js';
|
|
4
4
|
import { type Oas3Visitor, type Oas2Visitor } from '../visitors.js';
|
|
5
5
|
import { type ComponentNamesStrategy } from './bundle-document.js';
|
|
6
|
-
export declare function mapTypeToComponent(typeName: string, version: SpecMajorVersion): "
|
|
6
|
+
export declare function mapTypeToComponent(typeName: string, version: SpecMajorVersion): "definitions" | "responses" | "headers" | "examples" | "parameters" | "schemas" | "requestBodies" | "mediaTypes" | "securitySchemes" | "tags" | "links" | "callbacks" | "contentDescriptors" | "errors" | "examplePairingObjects" | null;
|
|
7
7
|
export declare function makeBundleVisitor({ version, dereference, rootDocument, resolvedRefMap, keepUrlRefs, componentRenamingConflicts, componentNamesStrategy, }: {
|
|
8
8
|
version: SpecMajorVersion;
|
|
9
9
|
dereference: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeframes.d.ts","sourceRoot":"","sources":["../../src/format/codeframes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"codeframes.d.ts","sourceRoot":"","sources":["../../src/format/codeframes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAK3C,OAAO,KAAK,EAAE,qBAAqB,EAAO,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7E,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAA;CAAE,CAAC;AACxE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAA;CAAE,CAAC;AAC5D,KAAK,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAA;CAAE,CAAC;AAC3F,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAA;CAAE,CAAC;AACtE,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;CAAE,CAAC;AACrE,KAAK,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,mBAAmB,GAAG,YAAY,GAAG,UAAU,CAAC;AAKxF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,UAiE3E;AAqDD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,qBAAqB,CAWlF;AAqDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,+FAmCxF"}
|
package/lib/format/codeframes.js
CHANGED
|
@@ -107,31 +107,52 @@ export function getLineColLocation(location) {
|
|
|
107
107
|
return {
|
|
108
108
|
...location,
|
|
109
109
|
pointer: undefined,
|
|
110
|
-
...positionsToLoc(source
|
|
110
|
+
...positionsToLoc(source, astNode?.startPosition ?? 1, astNode?.endPosition ?? 1),
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
let
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
currentLine++;
|
|
123
|
-
currentCol = 1;
|
|
124
|
-
if (i === startPos - 1) {
|
|
125
|
-
start = { line: currentLine, col: currentCol };
|
|
113
|
+
// Offsets where each line starts, cached per source, so a lookup does not rescan the file for every problem.
|
|
114
|
+
const lineStartsCache = new WeakMap();
|
|
115
|
+
function getLineStarts(source) {
|
|
116
|
+
let lineStarts = lineStartsCache.get(source);
|
|
117
|
+
if (!lineStarts) {
|
|
118
|
+
lineStarts = [0];
|
|
119
|
+
for (let index = 0; index < source.body.length; index++) {
|
|
120
|
+
if (source.body[index] === '\n') {
|
|
121
|
+
lineStarts.push(index + 1);
|
|
126
122
|
}
|
|
127
|
-
if (source[i + 1] === '\r')
|
|
128
|
-
i++; // TODO: test it
|
|
129
|
-
continue;
|
|
130
123
|
}
|
|
131
|
-
|
|
124
|
+
lineStartsCache.set(source, lineStarts);
|
|
125
|
+
}
|
|
126
|
+
return lineStarts;
|
|
127
|
+
}
|
|
128
|
+
function offsetToLoc(source, lineStarts, offset) {
|
|
129
|
+
let low = 0;
|
|
130
|
+
let high = lineStarts.length - 1;
|
|
131
|
+
while (low < high) {
|
|
132
|
+
const middle = Math.floor((low + high + 1) / 2);
|
|
133
|
+
if (lineStarts[middle] <= offset) {
|
|
134
|
+
low = middle;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
high = middle - 1;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const lineStart = lineStarts[low];
|
|
141
|
+
// A '\r' right after '\n' does not count as a column.
|
|
142
|
+
let skippedCarriageReturn = 0;
|
|
143
|
+
if (low > 0 && source.body[lineStart] === '\r' && offset > lineStart) {
|
|
144
|
+
skippedCarriageReturn = 1;
|
|
145
|
+
}
|
|
146
|
+
return { line: low + 1, col: offset - lineStart + 1 - skippedCarriageReturn };
|
|
147
|
+
}
|
|
148
|
+
function positionsToLoc(source, startPos, endPos) {
|
|
149
|
+
if (startPos === endPos) {
|
|
150
|
+
return { start: { line: 1, col: 1 }, end: { line: 1, col: 1 } };
|
|
132
151
|
}
|
|
133
|
-
const
|
|
134
|
-
|
|
152
|
+
const lineStarts = getLineStarts(source);
|
|
153
|
+
const start = offsetToLoc(source, lineStarts, startPos);
|
|
154
|
+
const lastChar = offsetToLoc(source, lineStarts, endPos - 1);
|
|
155
|
+
return { start, end: { line: lastChar.line, col: lastChar.col + 1 } };
|
|
135
156
|
}
|
|
136
157
|
export function getAstNodeByPointer(root, pointer, reportOnKey) {
|
|
137
158
|
const pointerSegments = parsePointer(pointer.substr(2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeframes.js","sourceRoot":"","sources":["../../src/format/codeframes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"codeframes.js","sourceRoot":"","sources":["../../src/format/codeframes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-ambiguous-paths.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-ambiguous-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"no-ambiguous-paths.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-ambiguous-paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAU5D,eAAO,MAAM,gBAAgB,EAAE,QAAQ,GAAG,QAiCzC,CAAC"}
|
|
@@ -1,43 +1,57 @@
|
|
|
1
1
|
export const NoAmbiguousPaths = () => {
|
|
2
2
|
return {
|
|
3
3
|
Paths(pathMap, { report, location }) {
|
|
4
|
-
|
|
4
|
+
// Only paths with the same segment count and variable count can be ambiguous.
|
|
5
|
+
const seenPathsByGroup = new Map();
|
|
5
6
|
for (const currentPath of Object.keys(pathMap)) {
|
|
6
|
-
const
|
|
7
|
+
const parsedPath = parsePath(currentPath);
|
|
8
|
+
const group = `${parsedPath.segments.length}:${parsedPath.variableCount}`;
|
|
9
|
+
let seenPaths = seenPathsByGroup.get(group);
|
|
10
|
+
if (!seenPaths) {
|
|
11
|
+
seenPaths = [];
|
|
12
|
+
seenPathsByGroup.set(group, seenPaths);
|
|
13
|
+
}
|
|
14
|
+
let ambiguousPath;
|
|
15
|
+
for (const path of seenPaths) {
|
|
16
|
+
if (arePathsAmbiguous(path, parsedPath)) {
|
|
17
|
+
ambiguousPath = path;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
7
21
|
if (ambiguousPath) {
|
|
8
22
|
report({
|
|
9
|
-
message: `Paths should resolve unambiguously. Found two ambiguous paths: \`${ambiguousPath}\` and \`${currentPath}\`.`,
|
|
23
|
+
message: `Paths should resolve unambiguously. Found two ambiguous paths: \`${ambiguousPath.path}\` and \`${currentPath}\`.`,
|
|
10
24
|
location: location.child([currentPath]).key(),
|
|
11
25
|
reference: 'https://redocly.com/docs/cli/rules/oas/no-ambiguous-paths',
|
|
12
26
|
});
|
|
13
27
|
}
|
|
14
|
-
seenPaths.push(
|
|
28
|
+
seenPaths.push(parsedPath);
|
|
15
29
|
}
|
|
16
30
|
},
|
|
17
31
|
};
|
|
18
32
|
};
|
|
33
|
+
function parsePath(path) {
|
|
34
|
+
const segments = path.split('/');
|
|
35
|
+
const isVariable = [];
|
|
36
|
+
let variableCount = 0;
|
|
37
|
+
for (const segment of segments) {
|
|
38
|
+
const variable = /^{.+?}$/.test(segment);
|
|
39
|
+
isVariable.push(variable);
|
|
40
|
+
if (variable) {
|
|
41
|
+
variableCount++;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return { path, segments, isVariable, variableCount };
|
|
45
|
+
}
|
|
19
46
|
function arePathsAmbiguous(a, b) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (partsA.length !== partsB.length)
|
|
23
|
-
return false;
|
|
24
|
-
let aVars = 0;
|
|
25
|
-
let bVars = 0;
|
|
26
|
-
let ambiguous = true;
|
|
27
|
-
for (let i = 0; i < partsA.length; i++) {
|
|
28
|
-
const aIsVar = partsA[i].match(/^{.+?}$/);
|
|
29
|
-
const bIsVar = partsB[i].match(/^{.+?}$/);
|
|
30
|
-
if (aIsVar || bIsVar) {
|
|
31
|
-
if (aIsVar)
|
|
32
|
-
aVars++;
|
|
33
|
-
if (bIsVar)
|
|
34
|
-
bVars++;
|
|
47
|
+
for (let index = 0; index < a.segments.length; index++) {
|
|
48
|
+
if (a.isVariable[index] || b.isVariable[index]) {
|
|
35
49
|
continue;
|
|
36
50
|
}
|
|
37
|
-
|
|
38
|
-
|
|
51
|
+
if (a.segments[index] !== b.segments[index]) {
|
|
52
|
+
return false;
|
|
39
53
|
}
|
|
40
54
|
}
|
|
41
|
-
return
|
|
55
|
+
return true;
|
|
42
56
|
}
|
|
43
57
|
//# sourceMappingURL=no-ambiguous-paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-ambiguous-paths.js","sourceRoot":"","sources":["../../../src/rules/common/no-ambiguous-paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-ambiguous-paths.js","sourceRoot":"","sources":["../../../src/rules/common/no-ambiguous-paths.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,gBAAgB,GAAwB,GAAG,EAAE;IACxD,OAAO;QACL,KAAK,CAAC,OAA8B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAe;YACrE,8EAA8E;YAC9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAwB,CAAC;YAEzD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC1E,IAAI,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS,GAAG,EAAE,CAAC;oBACf,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACzC,CAAC;gBAED,IAAI,aAAqC,CAAC;gBAC1C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;wBACxC,aAAa,GAAG,IAAI,CAAC;wBACrB,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,CAAC;wBACL,OAAO,EAAE,oEAAoE,aAAa,CAAC,IAAI,YAAY,WAAW,KAAK;wBAC3H,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;wBAC7C,SAAS,EAAE,2DAA2D;qBACvE,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,UAAU,GAAc,EAAE,CAAC;IACjC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAa,EAAE,CAAa;IACrD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-enum-type-mismatch.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-enum-type-mismatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-enum-type-mismatch.d.ts","sourceRoot":"","sources":["../../../src/rules/common/no-enum-type-mismatch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIjG,eAAO,MAAM,kBAAkB,EAC3B,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAqCH,CAAC"}
|
|
@@ -1,38 +1,32 @@
|
|
|
1
|
+
import { isPlainObject } from '../../utils/is-plain-object.js';
|
|
1
2
|
import { matchesJsonSchemaType, oasTypeOf } from '../utils.js';
|
|
2
3
|
export const NoEnumTypeMismatch = () => {
|
|
3
4
|
return {
|
|
4
5
|
Schema(schema, { report, location }) {
|
|
5
|
-
|
|
6
|
+
// the walker also visits boolean schemas (valid since OAS 3.1), which have nothing to check
|
|
7
|
+
if (!isPlainObject(schema) || !schema.type)
|
|
6
8
|
return;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
const types = Array.isArray(schema.type) ? schema.type : [schema.type];
|
|
10
|
+
const matchesAnyType = (value) => types.some((type) => matchesJsonSchemaType(value, type, schema.nullable));
|
|
11
|
+
if (Array.isArray(schema.enum)) {
|
|
12
|
+
for (const [index, enumValue] of schema.enum.entries()) {
|
|
13
|
+
if (matchesAnyType(enumValue))
|
|
14
|
+
continue;
|
|
10
15
|
report({
|
|
11
|
-
message:
|
|
12
|
-
|
|
16
|
+
message: Array.isArray(schema.type)
|
|
17
|
+
? `Enum value \`${enumValue}\` must be of allowed types: \`${schema.type}\`.`
|
|
18
|
+
: `All values of \`enum\` field must be of the same type as the \`type\` field: expected "${schema.type}" but received "${oasTypeOf(enumValue)}".`,
|
|
19
|
+
location: location.child(['enum', index]),
|
|
13
20
|
reference: 'https://redocly.com/docs/cli/rules/common/no-enum-type-mismatch',
|
|
14
21
|
});
|
|
15
22
|
}
|
|
16
23
|
}
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!valid)
|
|
24
|
-
mismatchedResults[enumValue].push(type);
|
|
25
|
-
}
|
|
26
|
-
if (mismatchedResults[enumValue].length !== schema.type.length)
|
|
27
|
-
delete mismatchedResults[enumValue];
|
|
28
|
-
}
|
|
29
|
-
for (const mismatchedKey of Object.keys(mismatchedResults)) {
|
|
30
|
-
report({
|
|
31
|
-
message: `Enum value \`${mismatchedKey}\` must be of allowed types: \`${schema.type}\`.`,
|
|
32
|
-
location: location.child(['enum', schema.enum.indexOf(mismatchedKey)]),
|
|
33
|
-
reference: 'https://redocly.com/docs/cli/rules/common/no-enum-type-mismatch',
|
|
34
|
-
});
|
|
35
|
-
}
|
|
24
|
+
if ('const' in schema && !matchesAnyType(schema.const)) {
|
|
25
|
+
report({
|
|
26
|
+
message: `The \`const\` value must be of the same type as the \`type\` field: expected "${types.join('" or "')}" but received "${oasTypeOf(schema.const)}".`,
|
|
27
|
+
location: location.child(['const']),
|
|
28
|
+
reference: 'https://redocly.com/docs/cli/rules/common/no-enum-type-mismatch',
|
|
29
|
+
});
|
|
36
30
|
}
|
|
37
31
|
},
|
|
38
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-enum-type-mismatch.js","sourceRoot":"","sources":["../../../src/rules/common/no-enum-type-mismatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-enum-type-mismatch.js","sourceRoot":"","sources":["../../../src/rules/common/no-enum-type-mismatch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAKb,GAAG,EAAE;IACrB,OAAO;QACL,MAAM,CAAC,MAA+B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAe;YACvE,4FAA4F;YAC5F,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAO;YAEnD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE,CACxC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,QAAmB,CAAC,CAAC,CAAC;YAEvF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;oBACvD,IAAI,cAAc,CAAC,SAAS,CAAC;wBAAE,SAAS;oBAExC,MAAM,CAAC;wBACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;4BACjC,CAAC,CAAC,gBAAgB,SAAS,kCAAkC,MAAM,CAAC,IAAI,KAAK;4BAC7E,CAAC,CAAC,0FACE,MAAM,CAAC,IACT,mBAAmB,SAAS,CAAC,SAAS,CAAC,IAAI;wBAC/C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBACzC,SAAS,EAAE,iEAAiE;qBAC7E,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,OAAO,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC;oBACL,OAAO,EAAE,iFAAiF,KAAK,CAAC,IAAI,CAClG,QAAQ,CACT,mBAAmB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;oBAC/C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;oBACnC,SAAS,EAAE,iEAAiE;iBAC7E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-adapter.d.ts","sourceRoot":"","sources":["../../src/types/json-schema-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,KAAK,EAAE,QAAQ,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,KAAK,kBAAkB,GAAG,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"json-schema-adapter.d.ts","sourceRoot":"","sources":["../../src/types/json-schema-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,KAAK,EAAE,QAAQ,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,KAAK,kBAAkB,GAAG,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA+O7F,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,kBAAkB,GAC9B;IACD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,qBAAqB,CAAC,EAAE,aAAa,CAAC;CACvC,CASA"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
// For internal usage only
|
|
2
|
-
import
|
|
2
|
+
import { Ajv2020 } from '@redocly/ajv/dist/2020.js';
|
|
3
3
|
import { isPlainObject } from '../utils/is-plain-object.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
let ajv;
|
|
5
|
+
function getAjv() {
|
|
6
|
+
if (!ajv) {
|
|
7
|
+
ajv = new Ajv2020({
|
|
8
|
+
strictSchema: false,
|
|
9
|
+
allowUnionTypes: true,
|
|
10
|
+
useDefaults: true,
|
|
11
|
+
allErrors: true,
|
|
12
|
+
discriminator: true,
|
|
13
|
+
strictTypes: false,
|
|
14
|
+
verbose: true,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return ajv;
|
|
18
|
+
}
|
|
13
19
|
function findOneOf(schemaOneOf, oneOfs) {
|
|
14
20
|
if (oneOfs.some((option) => typeof option === 'function')) {
|
|
15
21
|
throw new Error('Unexpected oneOf inside oneOf.');
|
|
16
22
|
}
|
|
17
23
|
return (value) => {
|
|
18
|
-
let index = schemaOneOf.findIndex((option) =>
|
|
24
|
+
let index = schemaOneOf.findIndex((option) => getAjv().validate(option, value));
|
|
19
25
|
if (index === -1) {
|
|
20
26
|
index = 0;
|
|
21
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-adapter.js","sourceRoot":"","sources":["../../src/types/json-schema-adapter.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"json-schema-adapter.js","sourceRoot":"","sources":["../../src/types/json-schema-adapter.ts"],"names":[],"mappings":"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"}
|