@redocly/openapi-core 0.0.0-snapshot.1779977489 → 0.0.0-snapshot.1780513428
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-document.d.ts +2 -0
- package/lib/bundle/bundle-document.d.ts.map +1 -1
- package/lib/bundle/bundle-document.js +2 -1
- package/lib/bundle/bundle-document.js.map +1 -1
- package/lib/bundle/bundle-title-naming.d.ts +10 -0
- package/lib/bundle/bundle-title-naming.d.ts.map +1 -0
- package/lib/bundle/bundle-title-naming.js +49 -0
- package/lib/bundle/bundle-title-naming.js.map +1 -0
- package/lib/bundle/bundle-visitor.d.ts +2 -1
- package/lib/bundle/bundle-visitor.d.ts.map +1 -1
- package/lib/bundle/bundle-visitor.js +25 -4
- package/lib/bundle/bundle-visitor.js.map +1 -1
- package/lib/rules/oas2/request-mime-type.js +5 -5
- package/lib/rules/oas2/request-mime-type.js.map +1 -1
- package/lib/rules/oas2/response-mime-type.js +3 -3
- package/lib/rules/oas2/response-mime-type.js.map +1 -1
- package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.d.ts.map +1 -1
- package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js +1 -0
- package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js.map +1 -1
- package/lib/rules/oas3/request-mime-type.js +3 -3
- package/lib/utils/validate-mime-type.d.ts +1 -1
- package/lib/utils/validate-mime-type.d.ts.map +1 -1
- package/lib/utils/validate-mime-type.js +1 -1
- package/lib/utils/validate-mime-type.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ export type CoreBundleOptions = {
|
|
|
11
11
|
removeUnusedComponents?: boolean;
|
|
12
12
|
keepUrlRefs?: boolean;
|
|
13
13
|
componentRenamingConflicts?: RuleSeverity;
|
|
14
|
+
useTitlesForComponentNames?: boolean;
|
|
14
15
|
};
|
|
15
16
|
export type BundleResult = {
|
|
16
17
|
bundle: Document;
|
|
@@ -29,5 +30,6 @@ export declare function bundleDocument(opts: {
|
|
|
29
30
|
removeUnusedComponents?: boolean;
|
|
30
31
|
keepUrlRefs?: boolean;
|
|
31
32
|
componentRenamingConflicts?: RuleSeverity;
|
|
33
|
+
useTitlesForComponentNames?: boolean;
|
|
32
34
|
}): Promise<BundleResult>;
|
|
33
35
|
//# sourceMappingURL=bundle-document.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-document.d.ts","sourceRoot":"","sources":["../../src/bundle/bundle-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,EAAmB,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAkB,KAAK,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle-document.d.ts","sourceRoot":"","sources":["../../src/bundle/bundle-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,EAAmB,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAkB,KAAK,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B,CAAC,EAAE,YAAY,CAAC;IAC1C,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,mBAAmB,EAAE,YAAY,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0BAA0B,CAAC,EAAE,YAAY,CAAC;IAC1C,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,GAAG,OAAO,CAAC,YAAY,CAAC,CAsHxB"}
|
|
@@ -8,7 +8,7 @@ import { normalizeTypes } from '../types/index.js';
|
|
|
8
8
|
import { normalizeVisitors } from '../visitors.js';
|
|
9
9
|
import { walkDocument } from '../walk.js';
|
|
10
10
|
export async function bundleDocument(opts) {
|
|
11
|
-
const { document, config, types, externalRefResolver, dereference = false, removeUnusedComponents = false, keepUrlRefs = false, componentRenamingConflicts, } = opts;
|
|
11
|
+
const { document, config, types, externalRefResolver, dereference = false, removeUnusedComponents = false, keepUrlRefs = false, componentRenamingConflicts, useTitlesForComponentNames = false, } = opts;
|
|
12
12
|
const specVersion = detectSpec(document.parsed);
|
|
13
13
|
const specMajorVersion = getMajorSpecVersion(specVersion);
|
|
14
14
|
const rules = config.getRulesForSpecVersion(specMajorVersion);
|
|
@@ -53,6 +53,7 @@ export async function bundleDocument(opts) {
|
|
|
53
53
|
resolvedRefMap,
|
|
54
54
|
keepUrlRefs,
|
|
55
55
|
componentRenamingConflicts,
|
|
56
|
+
useTitlesForComponentNames,
|
|
56
57
|
}),
|
|
57
58
|
},
|
|
58
59
|
...decorators.filter((decorator) => decorator.ruleId !== 'remove-unused-components'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-document.js","sourceRoot":"","sources":["../../src/bundle/bundle-document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACtH,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AACtH,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAoC,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,cAAc,EAA0C,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAA4C,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle-document.js","sourceRoot":"","sources":["../../src/bundle/bundle-document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Location } from '../ref-utils.js';
|
|
2
|
+
import type { UserContext } from '../walk.js';
|
|
3
|
+
/** Build a PascalCase component key from a `title`; `null` if empty or has unsupported characters. */
|
|
4
|
+
export declare function titleToPascalCase(title: string): string | null;
|
|
5
|
+
/** Schema component name from its `title`; errors and returns `null` if missing or unusable. */
|
|
6
|
+
export declare function buildSchemaNameFromTitle(target: {
|
|
7
|
+
node: unknown;
|
|
8
|
+
location: Location;
|
|
9
|
+
}, ctx: UserContext): string | null;
|
|
10
|
+
//# sourceMappingURL=bundle-title-naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-title-naming.d.ts","sourceRoot":"","sources":["../../src/bundle/bundle-title-naming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,sGAAsG;AACtG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB9D;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,CACtC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,EAC7C,GAAG,EAAE,WAAW,GACf,MAAM,GAAG,IAAI,CAuBf"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Build a PascalCase component key from a `title`; `null` if empty or has unsupported characters. */
|
|
2
|
+
export function titleToPascalCase(title) {
|
|
3
|
+
const tokens = title
|
|
4
|
+
.trim()
|
|
5
|
+
.split(/\s+/)
|
|
6
|
+
.filter((t) => t.length > 0);
|
|
7
|
+
if (tokens.length === 0) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
for (const token of tokens) {
|
|
11
|
+
if (!/^[A-Za-z0-9.\-_]+$/.test(token)) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return tokens
|
|
16
|
+
.map((token) => {
|
|
17
|
+
const first = token[0];
|
|
18
|
+
if (first >= 'a' && first <= 'z') {
|
|
19
|
+
return first.toUpperCase() + token.slice(1);
|
|
20
|
+
}
|
|
21
|
+
return token;
|
|
22
|
+
})
|
|
23
|
+
.join('');
|
|
24
|
+
}
|
|
25
|
+
/** Schema component name from its `title`; errors and returns `null` if missing or unusable. */
|
|
26
|
+
export function buildSchemaNameFromTitle(target, ctx) {
|
|
27
|
+
const node = target.node;
|
|
28
|
+
const title = typeof node?.title === 'string' ? node.title : '';
|
|
29
|
+
if (title.trim() === '') {
|
|
30
|
+
ctx.report({
|
|
31
|
+
message: `Schema has no \`title\` to build a component name from. Add a \`title\`.`,
|
|
32
|
+
location: target.location,
|
|
33
|
+
forceSeverity: 'error',
|
|
34
|
+
});
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const name = titleToPascalCase(title);
|
|
38
|
+
if (name === null) {
|
|
39
|
+
ctx.report({
|
|
40
|
+
message: `Title "${title}" can't be turned into a component name. ` +
|
|
41
|
+
`Use only letters, digits, \`.\`, \`-\`, \`_\`, and spaces.`,
|
|
42
|
+
location: target.location.child('title'),
|
|
43
|
+
forceSeverity: 'error',
|
|
44
|
+
});
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
return name;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=bundle-title-naming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-title-naming.js","sourceRoot":"","sources":["../../src/bundle/bundle-title-naming.ts"],"names":[],"mappings":"AAGA,sGAAsG;AACtG,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,MAAM,GAAG,KAAK;SACjB,IAAI,EAAE;SACN,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,wBAAwB,CACtC,MAA6C,EAC7C,GAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAkC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC;YACT,OAAO,EAAE,0EAA0E;YACnF,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,GAAG,CAAC,MAAM,CAAC;YACT,OAAO,EACL,UAAU,KAAK,2CAA2C;gBAC1D,4DAA4D;YAC9D,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YACxC,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -3,12 +3,13 @@ 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
|
export declare function mapTypeToComponent(typeName: string, version: SpecMajorVersion): "definitions" | "examples" | "parameters" | "responses" | "schemas" | "requestBodies" | "headers" | "mediaTypes" | "securitySchemes" | "tags" | "links" | "callbacks" | "contentDescriptors" | "errors" | "examplePairingObjects" | null;
|
|
6
|
-
export declare function makeBundleVisitor({ version, dereference, rootDocument, resolvedRefMap, keepUrlRefs, componentRenamingConflicts, }: {
|
|
6
|
+
export declare function makeBundleVisitor({ version, dereference, rootDocument, resolvedRefMap, keepUrlRefs, componentRenamingConflicts, useTitlesForComponentNames, }: {
|
|
7
7
|
version: SpecMajorVersion;
|
|
8
8
|
dereference: boolean;
|
|
9
9
|
rootDocument: Document;
|
|
10
10
|
resolvedRefMap: ResolvedRefMap;
|
|
11
11
|
keepUrlRefs: boolean;
|
|
12
12
|
componentRenamingConflicts?: RuleSeverity;
|
|
13
|
+
useTitlesForComponentNames?: boolean;
|
|
13
14
|
}): Oas3Visitor | Oas2Visitor;
|
|
14
15
|
//# sourceMappingURL=bundle-visitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-visitor.d.ts","sourceRoot":"","sources":["../../src/bundle/bundle-visitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWxD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKnE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle-visitor.d.ts","sourceRoot":"","sources":["../../src/bundle/bundle-visitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWxD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKnE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,4OAyF7E;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,0BAAmC,EACnC,0BAAkC,GACnC,EAAE;IACD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,0BAA0B,CAAC,EAAE,YAAY,CAAC;IAC1C,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,6BA6NA"}
|
|
@@ -2,6 +2,7 @@ import { isAbsoluteUrl, replaceRef, isExternalValue, isRef, pointerBaseName, ref
|
|
|
2
2
|
import { reportUnresolvedRef } from '../rules/common/no-unresolved-refs.js';
|
|
3
3
|
import { dequal } from '../utils/dequal.js';
|
|
4
4
|
import { makeRefId } from '../utils/make-ref-id.js';
|
|
5
|
+
import { buildSchemaNameFromTitle } from './bundle-title-naming.js';
|
|
5
6
|
export function mapTypeToComponent(typeName, version) {
|
|
6
7
|
switch (version) {
|
|
7
8
|
case 'oas3':
|
|
@@ -92,9 +93,12 @@ export function mapTypeToComponent(typeName, version) {
|
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
95
|
}
|
|
95
|
-
export function makeBundleVisitor({ version, dereference, rootDocument, resolvedRefMap, keepUrlRefs, componentRenamingConflicts = 'warn', }) {
|
|
96
|
+
export function makeBundleVisitor({ version, dereference, rootDocument, resolvedRefMap, keepUrlRefs, componentRenamingConflicts = 'warn', useTitlesForComponentNames = false, }) {
|
|
96
97
|
let components;
|
|
97
98
|
let rootLocation;
|
|
99
|
+
// First location for each name, to report the conflicting schema on a collision.
|
|
100
|
+
const titleNameLocations = new Map();
|
|
101
|
+
const schemaComponentType = mapTypeToComponent('Schema', version);
|
|
98
102
|
const visitor = {
|
|
99
103
|
ref: {
|
|
100
104
|
leave(node, ctx, resolved) {
|
|
@@ -172,7 +176,7 @@ export function makeBundleVisitor({ version, dereference, rootDocument, resolved
|
|
|
172
176
|
},
|
|
173
177
|
};
|
|
174
178
|
if (version === 'oas3') {
|
|
175
|
-
const componentType =
|
|
179
|
+
const componentType = schemaComponentType;
|
|
176
180
|
visitor.Discriminator = {
|
|
177
181
|
leave(discriminator, ctx) {
|
|
178
182
|
if (typeof discriminator.defaultMapping !== 'string' ||
|
|
@@ -238,8 +242,25 @@ export function makeBundleVisitor({ version, dereference, rootDocument, resolved
|
|
|
238
242
|
}
|
|
239
243
|
function getComponentName(target, componentType, ctx) {
|
|
240
244
|
const componentsGroup = components[componentType];
|
|
241
|
-
|
|
242
|
-
|
|
245
|
+
if (useTitlesForComponentNames && componentType === schemaComponentType) {
|
|
246
|
+
const titleName = buildSchemaNameFromTitle(target, ctx);
|
|
247
|
+
if (titleName === null)
|
|
248
|
+
return target.location.absolutePointer;
|
|
249
|
+
const existing = componentsGroup[titleName];
|
|
250
|
+
if (existing && !isEqualOrEqualRef(existing, target, ctx)) {
|
|
251
|
+
const title = target.node.title;
|
|
252
|
+
ctx.report({
|
|
253
|
+
message: `Title "${title}" maps to component name \`${titleName}\`, ` +
|
|
254
|
+
`already used by the schema at ${titleNameLocations.get(titleName)}. Rename one of the titles.`,
|
|
255
|
+
location: target.location.child('title'),
|
|
256
|
+
forceSeverity: 'error',
|
|
257
|
+
});
|
|
258
|
+
return target.location.absolutePointer;
|
|
259
|
+
}
|
|
260
|
+
titleNameLocations.set(titleName, target.location.absolutePointer);
|
|
261
|
+
return titleName;
|
|
262
|
+
}
|
|
263
|
+
let name = pointerBaseName(target.location.pointer) || refBaseName(target.location.source.absoluteRef);
|
|
243
264
|
const prevName = name;
|
|
244
265
|
let serialId = 2;
|
|
245
266
|
while (componentsGroup[name] && !isEqualOrEqualRef(componentsGroup[name], target, ctx)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-visitor.js","sourceRoot":"","sources":["../../src/bundle/bundle-visitor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,KAAK,EACL,eAAe,EACf,WAAW,EAEX,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle-visitor.js","sourceRoot":"","sources":["../../src/bundle/bundle-visitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { validateMimeTypeOAS2 } from '../../utils/validate-mime-type.js';
|
|
2
2
|
export const RequestMimeType = ({ allowedValues }) => {
|
|
3
3
|
return {
|
|
4
4
|
Root(root, ctx) {
|
|
5
|
-
|
|
5
|
+
validateMimeTypeOAS2({
|
|
6
6
|
type: 'consumes',
|
|
7
7
|
value: root,
|
|
8
8
|
ctx,
|
|
9
9
|
allowedValues,
|
|
10
|
-
reference: 'https://redocly.com/docs/cli/rules/oas/request-
|
|
10
|
+
reference: 'https://redocly.com/docs/cli/rules/oas/request-mime-type',
|
|
11
11
|
});
|
|
12
12
|
},
|
|
13
13
|
Operation: {
|
|
14
14
|
leave(operation, ctx) {
|
|
15
|
-
|
|
15
|
+
validateMimeTypeOAS2({
|
|
16
16
|
type: 'consumes',
|
|
17
17
|
value: operation,
|
|
18
18
|
ctx,
|
|
19
19
|
allowedValues,
|
|
20
|
-
reference: 'https://redocly.com/docs/cli/rules/oas/request-
|
|
20
|
+
reference: 'https://redocly.com/docs/cli/rules/oas/request-mime-type',
|
|
21
21
|
});
|
|
22
22
|
},
|
|
23
23
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-mime-type.js","sourceRoot":"","sources":["../../../src/rules/oas2/request-mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"request-mime-type.js","sourceRoot":"","sources":["../../../src/rules/oas2/request-mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,MAAM,CAAC,MAAM,eAAe,GAAa,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;IAC7D,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,GAAgB;YACzB,oBAAoB,CAAC;gBACnB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,IAAI;gBACX,GAAG;gBACH,aAAa;gBACb,SAAS,EAAE,0DAA0D;aACtE,CAAC,CAAC;QACL,CAAC;QACD,SAAS,EAAE;YACT,KAAK,CAAC,SAAS,EAAE,GAAgB;gBAC/B,oBAAoB,CAAC;oBACnB,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,SAAS;oBAChB,GAAG;oBACH,aAAa;oBACb,SAAS,EAAE,0DAA0D;iBACtE,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { validateMimeTypeOAS2 } from '../../utils/validate-mime-type.js';
|
|
2
2
|
export const ResponseMimeType = ({ allowedValues }) => {
|
|
3
3
|
return {
|
|
4
4
|
Root(root, ctx) {
|
|
5
|
-
|
|
5
|
+
validateMimeTypeOAS2({
|
|
6
6
|
type: 'produces',
|
|
7
7
|
value: root,
|
|
8
8
|
ctx,
|
|
@@ -12,7 +12,7 @@ export const ResponseMimeType = ({ allowedValues }) => {
|
|
|
12
12
|
},
|
|
13
13
|
Operation: {
|
|
14
14
|
leave(operation, ctx) {
|
|
15
|
-
|
|
15
|
+
validateMimeTypeOAS2({
|
|
16
16
|
type: 'produces',
|
|
17
17
|
value: operation,
|
|
18
18
|
ctx,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-mime-type.js","sourceRoot":"","sources":["../../../src/rules/oas2/response-mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"response-mime-type.js","sourceRoot":"","sources":["../../../src/rules/oas2/response-mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,MAAM,CAAC,MAAM,gBAAgB,GAAa,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;IAC9D,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,GAAgB;YACzB,oBAAoB,CAAC;gBACnB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,IAAI;gBACX,GAAG;gBACH,aAAa;gBACb,SAAS,EAAE,2DAA2D;aACvE,CAAC,CAAC;QACL,CAAC;QACD,SAAS,EAAE;YACT,KAAK,CAAC,SAAS,EAAE,GAAgB;gBAC/B,oBAAoB,CAAC;oBACnB,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,SAAS;oBAChB,GAAG;oBACH,aAAa;oBACb,SAAS,EAAE,2DAA2D;iBACvE,CAAC,CAAC;YACL,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-4xx-problem-details-rfc7807.d.ts","sourceRoot":"","sources":["../../../src/rules/oas3/operation-4xx-problem-details-rfc7807.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAIlD;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,
|
|
1
|
+
{"version":3,"file":"operation-4xx-problem-details-rfc7807.d.ts","sourceRoot":"","sources":["../../../src/rules/oas3/operation-4xx-problem-details-rfc7807.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAIlD;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,QA+C/C,CAAC"}
|
|
@@ -13,6 +13,7 @@ export const Operation4xxProblemDetailsRfc7807 = () => {
|
|
|
13
13
|
report({
|
|
14
14
|
message: 'Response `4xx` must have content-type `application/problem+json`.',
|
|
15
15
|
location: location.key(),
|
|
16
|
+
reference: 'https://redocly.com/docs/cli/rules/oas/operation-4xx-problem-details-rfc7807',
|
|
16
17
|
});
|
|
17
18
|
},
|
|
18
19
|
MediaType: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-4xx-problem-details-rfc7807.js","sourceRoot":"","sources":["../../../src/rules/oas3/operation-4xx-problem-details-rfc7807.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAa,GAAG,EAAE;IAC9D,OAAO;QACL,QAAQ,EAAE;YACR,IAAI,CAAC,CAAC,EAAE,GAAoB;gBAC1B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAe;gBAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,0BAA0B,CAAC;oBACpE,MAAM,CAAC;wBACL,OAAO,EAAE,mEAAmE;wBAC5E,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"operation-4xx-problem-details-rfc7807.js","sourceRoot":"","sources":["../../../src/rules/oas3/operation-4xx-problem-details-rfc7807.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAa,GAAG,EAAE;IAC9D,OAAO;QACL,QAAQ,EAAE;YACR,IAAI,CAAC,CAAC,EAAE,GAAoB;gBAC1B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAe;gBAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,0BAA0B,CAAC;oBACpE,MAAM,CAAC;wBACL,OAAO,EAAE,mEAAmE;wBAC5E,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE;wBACxB,SAAS,EACP,8EAA8E;qBACjF,CAAC,CAAC;YACP,CAAC;YACD,SAAS,EAAE;gBACT,IAAI,CAAC,CAAC,EAAE,GAAoB;oBAC1B,OAAO,GAAG,KAAK,0BAA0B,CAAC;gBAC5C,CAAC;gBACD,KAAK,CAAC,KAAK,EAAE,GAAgB;oBAC3B,0BAA0B,CAAC;wBACzB,SAAS,EAAE,QAAQ;wBACnB,KAAK,EAAE,KAAK;wBACZ,GAAG;wBACH,SAAS,EACP,8EAA8E;qBACjF,CAAC,CAAC;gBACL,CAAC;gBACD,gBAAgB,CAAC,MAAM,EAAE,GAAgB;oBACvC,0BAA0B,CAAC;wBACzB,SAAS,EAAE,MAAM;wBACjB,KAAK,EAAE,MAAM;wBACb,GAAG;wBACH,SAAS,EACP,8EAA8E;qBACjF,CAAC,CAAC;oBACH,0BAA0B,CAAC;wBACzB,SAAS,EAAE,OAAO;wBAClB,KAAK,EAAE,MAAM;wBACb,GAAG;wBACH,SAAS,EACP,8EAA8E;qBACjF,CAAC,CAAC;gBACL,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ export const RequestMimeType = ({ allowedValues }) => {
|
|
|
9
9
|
value: requestBody,
|
|
10
10
|
ctx,
|
|
11
11
|
allowedValues,
|
|
12
|
-
reference: 'https://redocly.com/docs/cli/rules/oas/request-
|
|
12
|
+
reference: 'https://redocly.com/docs/cli/rules/oas/request-mime-type',
|
|
13
13
|
});
|
|
14
14
|
},
|
|
15
15
|
},
|
|
@@ -22,7 +22,7 @@ export const RequestMimeType = ({ allowedValues }) => {
|
|
|
22
22
|
value: response,
|
|
23
23
|
ctx,
|
|
24
24
|
allowedValues,
|
|
25
|
-
reference: 'https://redocly.com/docs/cli/rules/oas/request-
|
|
25
|
+
reference: 'https://redocly.com/docs/cli/rules/oas/request-mime-type',
|
|
26
26
|
});
|
|
27
27
|
},
|
|
28
28
|
},
|
|
@@ -36,7 +36,7 @@ export const RequestMimeType = ({ allowedValues }) => {
|
|
|
36
36
|
value: response,
|
|
37
37
|
ctx,
|
|
38
38
|
allowedValues,
|
|
39
|
-
reference: 'https://redocly.com/docs/cli/rules/oas/request-
|
|
39
|
+
reference: 'https://redocly.com/docs/cli/rules/oas/request-mime-type',
|
|
40
40
|
});
|
|
41
41
|
},
|
|
42
42
|
},
|
|
@@ -6,7 +6,7 @@ type MimeTypeParams = {
|
|
|
6
6
|
allowedValues: string[];
|
|
7
7
|
reference?: string;
|
|
8
8
|
};
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function validateMimeTypeOAS2({ type, value, ctx, allowedValues, reference, }: MimeTypeParams): void;
|
|
10
10
|
export declare function validateMimeTypeOAS3({ type, value, ctx, allowedValues, reference, }: MimeTypeParams): void;
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=validate-mime-type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-mime-type.d.ts","sourceRoot":"","sources":["../../src/utils/validate-mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,
|
|
1
|
+
{"version":3,"file":"validate-mime-type.d.ts","sourceRoot":"","sources":["../../src/utils/validate-mime-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;IACX,GAAG,EAAE,WAAW,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,GAAG,EACH,aAAa,EACb,SAAS,GACV,EAAE,cAAc,QAgBhB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,GAAG,EACH,aAAa,EACb,SAAS,GACV,EAAE,cAAc,QAgBhB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function validateMimeTypeOAS2({ type, value, ctx, allowedValues, reference, }) {
|
|
2
2
|
const { report, location } = ctx;
|
|
3
3
|
const ruleType = type === 'consumes' ? 'request' : 'response';
|
|
4
4
|
if (!allowedValues)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-mime-type.js","sourceRoot":"","sources":["../../src/utils/validate-mime-type.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"validate-mime-type.js","sourceRoot":"","sources":["../../src/utils/validate-mime-type.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,oBAAoB,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,GAAG,EACH,aAAa,EACb,SAAS,GACM;IACf,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9D,IAAI,CAAC,aAAa;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,kBAAkB,CAAC,CAAC;IAChG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO;IAEzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC;gBACL,OAAO,EAAE,cAAc,IAAI,kBAAkB;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;gBACzD,SAAS;aACV,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,IAAI,EACJ,KAAK,EACL,GAAG,EACH,aAAa,EACb,SAAS,GACM;IACf,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9D,IAAI,CAAC,aAAa;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,kBAAkB,CAAC,CAAC;IAChG,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAE3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC;gBACL,OAAO,EAAE,cAAc,IAAI,kBAAkB;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;gBACrD,SAAS;aACV,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|