@redocly/openapi-core 1.18.0 → 1.19.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/CHANGELOG.md +20 -0
- package/lib/benchmark/benches/lint-with-many-rules.bench.js +2 -2
- package/lib/benchmark/benches/lint-with-nested-rule.bench.js +2 -2
- package/lib/benchmark/benches/lint-with-no-rules.bench.js +2 -2
- package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.js +2 -2
- package/lib/benchmark/benches/lint-with-top-level-rule.bench.js +2 -2
- package/lib/benchmark/benches/recommended-oas3.bench.js +2 -2
- package/lib/benchmark/benches/resolve-with-no-external.bench.js +2 -2
- package/lib/benchmark/utils.js +7 -4
- package/lib/bundle.d.ts +3 -3
- package/lib/bundle.js +128 -122
- package/lib/config/all.js +9 -0
- package/lib/config/builtIn.js +7 -1
- package/lib/config/config-resolvers.js +179 -138
- package/lib/config/config.d.ts +2 -2
- package/lib/config/config.js +53 -34
- package/lib/config/load.d.ts +1 -2
- package/lib/config/load.js +105 -117
- package/lib/config/minimal.js +9 -0
- package/lib/config/recommended-strict.js +9 -0
- package/lib/config/recommended.js +9 -0
- package/lib/config/rules.d.ts +3 -3
- package/lib/config/rules.js +1 -2
- package/lib/config/types.d.ts +9 -3
- package/lib/config/utils.js +70 -49
- package/lib/decorators/async3/index.d.ts +1 -0
- package/lib/decorators/async3/index.js +4 -0
- package/lib/decorators/common/filters/filter-helper.js +2 -3
- package/lib/decorators/common/filters/filter-in.js +1 -1
- package/lib/decorators/common/filters/filter-out.js +1 -1
- package/lib/decorators/common/info-override.js +1 -12
- package/lib/decorators/common/media-type-examples-override.js +8 -2
- package/lib/decorators/common/remove-x-internal.js +4 -5
- package/lib/decorators/oas2/remove-unused-components.js +1 -2
- package/lib/decorators/oas3/remove-unused-components.js +1 -2
- package/lib/env.d.ts +0 -1
- package/lib/env.js +1 -1
- package/lib/format/codeframes.js +10 -8
- package/lib/format/format.js +23 -15
- package/lib/index.d.ts +2 -1
- package/lib/index.js +6 -4
- package/lib/js-yaml/index.js +1 -1
- package/lib/lint.d.ts +2 -0
- package/lib/lint.js +92 -99
- package/lib/oas-types.d.ts +9 -5
- package/lib/oas-types.js +22 -12
- package/lib/redocly/domains.js +6 -6
- package/lib/redocly/index.js +60 -73
- package/lib/redocly/registry-api.js +64 -82
- package/lib/ref-utils.js +13 -13
- package/lib/resolve.js +186 -205
- package/lib/rules/ajv.js +10 -8
- package/lib/rules/async3/channels-kebab-case.d.ts +2 -0
- package/lib/rules/async3/channels-kebab-case.js +19 -0
- package/lib/rules/async3/index.d.ts +3 -0
- package/lib/rules/async3/index.js +22 -0
- package/lib/rules/async3/no-channel-trailing-slash.d.ts +2 -0
- package/lib/rules/async3/no-channel-trailing-slash.js +16 -0
- package/lib/rules/common/assertions/asserts.js +5 -5
- package/lib/rules/common/assertions/index.d.ts +5 -4
- package/lib/rules/common/assertions/utils.js +43 -28
- package/lib/rules/common/no-invalid-parameter-examples.js +1 -2
- package/lib/rules/common/no-invalid-schema-examples.js +1 -2
- package/lib/rules/common/no-required-schema-properties-undefined.js +1 -2
- package/lib/rules/common/operation-tag-defined.js +1 -2
- package/lib/rules/common/path-http-verbs-order.js +1 -1
- package/lib/rules/common/path-segment-plural.js +2 -1
- package/lib/rules/common/required-string-property-missing-min-length.js +2 -2
- package/lib/rules/common/response-contains-header.js +2 -2
- package/lib/rules/common/security-defined.js +3 -7
- package/lib/rules/common/spec.d.ts +2 -2
- package/lib/rules/common/spec.js +6 -7
- package/lib/rules/no-unresolved-refs.js +3 -4
- package/lib/rules/oas2/response-contains-property.js +1 -2
- package/lib/rules/oas3/array-parameter-serialization.js +1 -2
- package/lib/rules/oas3/component-name-unique.js +2 -4
- package/lib/rules/oas3/no-invalid-media-type-examples.js +1 -2
- package/lib/rules/oas3/no-server-variables-empty-enum.js +1 -2
- package/lib/rules/oas3/no-undefined-server-variable.js +2 -3
- package/lib/rules/oas3/no-unused-components.js +1 -2
- package/lib/rules/oas3/response-contains-property.js +1 -2
- package/lib/rules/utils.js +14 -12
- package/lib/types/arazzo.d.ts +1299 -73
- package/lib/types/arazzo.js +41 -36
- package/lib/types/asyncapi2.d.ts +17 -0
- package/lib/types/{asyncapi.js → asyncapi2.js} +71 -93
- package/lib/types/asyncapi3.d.ts +2 -0
- package/lib/types/asyncapi3.js +347 -0
- package/lib/types/index.js +19 -10
- package/lib/types/json-schema-adapter.js +4 -18
- package/lib/types/oas2.js +6 -6
- package/lib/types/oas3.js +10 -10
- package/lib/types/oas3_1.js +15 -9
- package/lib/types/redocly-yaml.d.ts +3 -1
- package/lib/types/redocly-yaml.js +131 -35
- package/lib/typings/arazzo.d.ts +28 -1
- package/lib/typings/asyncapi3.d.ts +53 -0
- package/lib/typings/asyncapi3.js +2 -0
- package/lib/utils.d.ts +12 -7
- package/lib/utils.js +91 -77
- package/lib/visitors.d.ts +11 -0
- package/lib/visitors.js +21 -8
- package/lib/walk.js +30 -23
- package/package.json +3 -3
- package/src/__tests__/bundle.test.ts +142 -0
- package/src/__tests__/lint.test.ts +0 -50
- package/src/bundle.ts +19 -6
- package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +22 -0
- package/src/config/__tests__/__snapshots__/config.test.ts.snap +24 -0
- package/src/config/__tests__/config.test.ts +11 -0
- package/src/config/all.ts +9 -0
- package/src/config/builtIn.ts +6 -0
- package/src/config/config-resolvers.ts +15 -2
- package/src/config/config.ts +24 -5
- package/src/config/load.ts +1 -2
- package/src/config/minimal.ts +9 -0
- package/src/config/recommended-strict.ts +9 -0
- package/src/config/recommended.ts +9 -0
- package/src/config/rules.ts +12 -4
- package/src/config/types.ts +15 -2
- package/src/config/utils.ts +15 -0
- package/src/decorators/async3/index.ts +1 -0
- package/src/decorators/common/remove-x-internal.ts +2 -2
- package/src/index.ts +2 -1
- package/src/lint.ts +26 -3
- package/src/oas-types.ts +31 -13
- package/src/rules/arazzo/index.ts +1 -1
- package/src/rules/async2/index.ts +5 -5
- package/src/rules/async3/__tests__/channels-kebab-case.test.ts +141 -0
- package/src/rules/async3/__tests__/no-channel-trailing-slash.test.ts +96 -0
- package/src/rules/async3/channels-kebab-case.ts +19 -0
- package/src/rules/async3/index.ts +23 -0
- package/src/rules/async3/no-channel-trailing-slash.ts +16 -0
- package/src/rules/common/__tests__/spec.test.ts +47 -0
- package/src/rules/common/assertions/index.ts +13 -4
- package/src/rules/common/no-invalid-schema-examples.ts +3 -2
- package/src/rules/common/path-segment-plural.ts +3 -2
- package/src/rules/common/spec.ts +2 -2
- package/src/rules/oas2/index.ts +4 -4
- package/src/rules/oas3/index.ts +39 -37
- package/src/types/arazzo.ts +28 -23
- package/src/types/{asyncapi.ts → asyncapi2.ts} +58 -76
- package/src/types/asyncapi3.ts +381 -0
- package/src/types/oas3_1.ts +3 -2
- package/src/types/redocly-yaml.ts +14 -0
- package/src/typings/arazzo.ts +41 -1
- package/src/typings/asyncapi3.ts +61 -0
- package/src/utils.ts +46 -11
- package/src/visitors.ts +18 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/lib/types/asyncapi.d.ts +0 -2
|
@@ -8,14 +8,16 @@ export type BuiltInOAS2RuleId = typeof builtInOAS2Rules[number];
|
|
|
8
8
|
declare const builtInOAS3Rules: readonly ["boolean-parameter-prefixes", "component-name-unique", "no-empty-servers", "no-example-value-and-externalValue", "no-invalid-media-type-examples", "no-server-example.com", "no-server-trailing-slash", "no-server-variables-empty-enum", "no-undefined-server-variable", "no-unused-components", "operation-4xx-problem-details-rfc7807", "request-mime-type", "response-contains-property", "response-mime-type", "spec-components-invalid-map-name", "array-parameter-serialization"];
|
|
9
9
|
export type BuiltInOAS3RuleId = typeof builtInOAS3Rules[number];
|
|
10
10
|
declare const builtInAsync2Rules: readonly ["spec", "info-contact", "operation-operationId", "tag-description", "tags-alphabetical", "channels-kebab-case", "no-channel-trailing-slash"];
|
|
11
|
+
declare const builtInAsync3Rules: readonly ["spec", "info-contact", "operation-operationId", "tag-description", "tags-alphabetical", "channels-kebab-case", "no-channel-trailing-slash"];
|
|
11
12
|
export type BuiltInAsync2RuleId = typeof builtInAsync2Rules[number];
|
|
13
|
+
export type BuiltInAsync3RuleId = typeof builtInAsync3Rules[number];
|
|
12
14
|
declare const builtInArazzoRules: readonly ["spec"];
|
|
13
15
|
export type BuiltInArazzoRuleId = typeof builtInArazzoRules[number];
|
|
14
16
|
declare const oas2NodeTypesList: readonly ["Root", "Tag", "TagList", "ExternalDocs", "SecurityRequirement", "SecurityRequirementList", "Info", "Contact", "License", "Paths", "PathItem", "Parameter", "ParameterList", "ParameterItems", "Operation", "Example", "ExamplesMap", "Examples", "Header", "Responses", "Response", "Schema", "Xml", "SchemaProperties", "NamedSchemas", "NamedResponses", "NamedParameters", "NamedSecuritySchemes", "SecurityScheme", "TagGroup", "TagGroups", "EnumDescriptions", "Logo", "XCodeSample", "XCodeSampleList", "XServer", "XServerList"];
|
|
15
17
|
export type Oas2NodeType = typeof oas2NodeTypesList[number];
|
|
16
18
|
declare const oas3NodeTypesList: readonly ["Root", "Tag", "TagList", "ExternalDocs", "Server", "ServerList", "ServerVariable", "ServerVariablesMap", "SecurityRequirement", "SecurityRequirementList", "Info", "Contact", "License", "Paths", "PathItem", "Parameter", "ParameterList", "Operation", "Callback", "CallbacksMap", "RequestBody", "MediaTypesMap", "MediaType", "Example", "ExamplesMap", "Encoding", "EncodingMap", "Header", "HeadersMap", "Responses", "Response", "Link", "LinksMap", "Schema", "Xml", "SchemaProperties", "DiscriminatorMapping", "Discriminator", "Components", "NamedSchemas", "NamedResponses", "NamedParameters", "NamedExamples", "NamedRequestBodies", "NamedHeaders", "NamedSecuritySchemes", "NamedLinks", "NamedCallbacks", "ImplicitFlow", "PasswordFlow", "ClientCredentials", "AuthorizationCode", "OAuth2Flows", "SecurityScheme", "TagGroup", "TagGroups", "EnumDescriptions", "Logo", "XCodeSample", "XCodeSampleList", "XUsePkce", "WebhooksMap"];
|
|
17
19
|
export type Oas3NodeType = typeof oas3NodeTypesList[number];
|
|
18
|
-
declare const oas3_1NodeTypesList: readonly ["Root", "Schema", "SchemaProperties", "Info", "License", "Components", "NamedPathItems", "SecurityScheme", "Operation", "DependentRequired"];
|
|
20
|
+
declare const oas3_1NodeTypesList: readonly ["Root", "Schema", "SchemaProperties", "PatternProperties", "Info", "License", "Components", "NamedPathItems", "SecurityScheme", "Operation", "DependentRequired"];
|
|
19
21
|
export type Oas3_1NodeType = typeof oas3_1NodeTypesList[number];
|
|
20
22
|
export declare function createConfigTypes(extraSchemas: JSONSchema, config?: Config): {
|
|
21
23
|
ConfigRoot: NodeType;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ConfigTypes =
|
|
3
|
+
exports.ConfigTypes = void 0;
|
|
4
|
+
exports.createConfigTypes = createConfigTypes;
|
|
4
5
|
const config_1 = require("@redocly/config");
|
|
5
6
|
const _1 = require(".");
|
|
6
7
|
const utils_1 = require("../utils");
|
|
@@ -80,12 +81,22 @@ const builtInAsync2Rules = [
|
|
|
80
81
|
'channels-kebab-case',
|
|
81
82
|
'no-channel-trailing-slash',
|
|
82
83
|
];
|
|
84
|
+
const builtInAsync3Rules = [
|
|
85
|
+
'spec',
|
|
86
|
+
'info-contact',
|
|
87
|
+
'operation-operationId',
|
|
88
|
+
'tag-description',
|
|
89
|
+
'tags-alphabetical',
|
|
90
|
+
'channels-kebab-case',
|
|
91
|
+
'no-channel-trailing-slash',
|
|
92
|
+
];
|
|
83
93
|
const builtInArazzoRules = ['spec'];
|
|
84
94
|
const builtInRules = [
|
|
85
95
|
...builtInCommonOASRules,
|
|
86
96
|
...builtInOAS2Rules,
|
|
87
97
|
...builtInOAS3Rules,
|
|
88
98
|
...builtInAsync2Rules,
|
|
99
|
+
...builtInAsync3Rules,
|
|
89
100
|
...builtInArazzoRules,
|
|
90
101
|
];
|
|
91
102
|
const oas2NodeTypesList = [
|
|
@@ -195,6 +206,7 @@ const oas3_1NodeTypesList = [
|
|
|
195
206
|
'Root',
|
|
196
207
|
'Schema',
|
|
197
208
|
'SchemaProperties',
|
|
209
|
+
'PatternProperties',
|
|
198
210
|
'Info',
|
|
199
211
|
'License',
|
|
200
212
|
'Components',
|
|
@@ -231,35 +243,56 @@ const ConfigStyleguide = {
|
|
|
231
243
|
arazzoDecorators: { type: 'object' },
|
|
232
244
|
},
|
|
233
245
|
};
|
|
234
|
-
const createConfigRoot = (nodeTypes) => (
|
|
246
|
+
const createConfigRoot = (nodeTypes) => ({
|
|
247
|
+
...nodeTypes.rootRedoclyConfigSchema,
|
|
248
|
+
properties: {
|
|
249
|
+
...nodeTypes.rootRedoclyConfigSchema.properties,
|
|
250
|
+
...ConfigStyleguide.properties,
|
|
251
|
+
apis: 'ConfigApis', // Override apis with internal format
|
|
252
|
+
'features.openapi': 'ConfigReferenceDocs', // deprecated
|
|
253
|
+
'features.mockServer': 'ConfigMockServer', // deprecated
|
|
254
|
+
organization: { type: 'string' },
|
|
255
|
+
region: { enum: ['us', 'eu'] },
|
|
256
|
+
telemetry: { enum: ['on', 'off'] },
|
|
257
|
+
resolve: {
|
|
235
258
|
properties: {
|
|
236
259
|
http: 'ConfigHTTP',
|
|
237
260
|
doNotResolveExamples: { type: 'boolean' },
|
|
238
261
|
},
|
|
239
|
-
},
|
|
262
|
+
},
|
|
263
|
+
files: {
|
|
240
264
|
type: 'array',
|
|
241
265
|
items: {
|
|
242
266
|
type: 'string',
|
|
243
267
|
},
|
|
244
|
-
}
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
});
|
|
245
271
|
const ConfigApis = {
|
|
246
272
|
properties: {},
|
|
247
273
|
additionalProperties: 'ConfigApisProperties',
|
|
248
274
|
};
|
|
249
|
-
const createConfigApisProperties = (nodeTypes) => {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
275
|
+
const createConfigApisProperties = (nodeTypes) => ({
|
|
276
|
+
...nodeTypes['rootRedoclyConfigSchema.apis_additionalProperties'],
|
|
277
|
+
properties: {
|
|
278
|
+
...nodeTypes['rootRedoclyConfigSchema.apis_additionalProperties']?.properties,
|
|
279
|
+
labels: {
|
|
280
|
+
type: 'array',
|
|
281
|
+
items: {
|
|
282
|
+
type: 'string',
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
...ConfigStyleguide.properties,
|
|
286
|
+
'features.openapi': 'ConfigReferenceDocs', // deprecated
|
|
287
|
+
'features.mockServer': 'ConfigMockServer', // deprecated
|
|
288
|
+
files: {
|
|
289
|
+
type: 'array',
|
|
290
|
+
items: {
|
|
291
|
+
type: 'string',
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
});
|
|
263
296
|
const ConfigHTTP = {
|
|
264
297
|
properties: {
|
|
265
298
|
headers: {
|
|
@@ -539,7 +572,14 @@ const FontConfig = {
|
|
|
539
572
|
},
|
|
540
573
|
};
|
|
541
574
|
const ButtonsConfig = {
|
|
542
|
-
properties:
|
|
575
|
+
properties: {
|
|
576
|
+
...(0, utils_1.omitObjectProps)(FontConfig.properties, ['fontSize', 'lineHeight']),
|
|
577
|
+
borderRadius: { type: 'string' },
|
|
578
|
+
hoverStyle: { type: 'string' },
|
|
579
|
+
boxShadow: { type: 'string' },
|
|
580
|
+
hoverBoxShadow: { type: 'string' },
|
|
581
|
+
sizes: 'Sizes',
|
|
582
|
+
},
|
|
543
583
|
};
|
|
544
584
|
const BadgeFontConfig = {
|
|
545
585
|
properties: (0, utils_1.pickObjectProps)(FontConfig.properties, ['fontSize', 'lineHeight']),
|
|
@@ -551,7 +591,12 @@ const BadgeSizes = {
|
|
|
551
591
|
},
|
|
552
592
|
};
|
|
553
593
|
const HttpBadgesConfig = {
|
|
554
|
-
properties:
|
|
594
|
+
properties: {
|
|
595
|
+
...(0, utils_1.omitObjectProps)(FontConfig.properties, ['fontSize', 'lineHeight']),
|
|
596
|
+
borderRadius: { type: 'string' },
|
|
597
|
+
color: { type: 'string' },
|
|
598
|
+
sizes: 'BadgeSizes',
|
|
599
|
+
},
|
|
555
600
|
};
|
|
556
601
|
const LabelControls = {
|
|
557
602
|
properties: {
|
|
@@ -650,13 +695,38 @@ const SpacingConfig = {
|
|
|
650
695
|
},
|
|
651
696
|
};
|
|
652
697
|
const Sidebar = {
|
|
653
|
-
properties:
|
|
698
|
+
properties: {
|
|
699
|
+
...(0, utils_1.omitObjectProps)(FontConfig.properties, ['fontWeight', 'lineHeight']),
|
|
700
|
+
activeBgColor: { type: 'string' },
|
|
701
|
+
activeTextColor: { type: 'string' },
|
|
702
|
+
backgroundColor: { type: 'string' },
|
|
703
|
+
borderRadius: { type: 'string' },
|
|
704
|
+
breakPath: { type: 'boolean' },
|
|
705
|
+
caretColor: { type: 'string' },
|
|
706
|
+
caretSize: { type: 'string' },
|
|
707
|
+
groupItems: 'GroupItemsConfig',
|
|
708
|
+
level1items: 'Level1Items',
|
|
709
|
+
rightLineColor: { type: 'string' },
|
|
710
|
+
separatorLabelColor: { type: 'string' },
|
|
711
|
+
showAtBreakpoint: { type: 'string' },
|
|
712
|
+
spacing: 'SpacingConfig',
|
|
713
|
+
textColor: { type: 'string' },
|
|
714
|
+
width: { type: 'string' },
|
|
715
|
+
},
|
|
654
716
|
};
|
|
655
717
|
const Heading = {
|
|
656
|
-
properties:
|
|
718
|
+
properties: {
|
|
719
|
+
...FontConfig.properties,
|
|
720
|
+
color: { type: 'string' },
|
|
721
|
+
transform: { type: 'string' },
|
|
722
|
+
},
|
|
657
723
|
};
|
|
658
724
|
const CodeConfig = {
|
|
659
|
-
properties:
|
|
725
|
+
properties: {
|
|
726
|
+
...FontConfig.properties,
|
|
727
|
+
backgroundColor: { type: 'string' },
|
|
728
|
+
color: { type: 'string' },
|
|
729
|
+
wordBreak: {
|
|
660
730
|
enum: [
|
|
661
731
|
'break-all',
|
|
662
732
|
'break-word',
|
|
@@ -667,7 +737,9 @@ const CodeConfig = {
|
|
|
667
737
|
'inherit',
|
|
668
738
|
'initial',
|
|
669
739
|
],
|
|
670
|
-
},
|
|
740
|
+
},
|
|
741
|
+
wrap: { type: 'boolean' },
|
|
742
|
+
},
|
|
671
743
|
};
|
|
672
744
|
const HeadingsConfig = {
|
|
673
745
|
properties: (0, utils_1.omitObjectProps)(FontConfig.properties, ['fontSize']),
|
|
@@ -682,10 +754,29 @@ const LinksConfig = {
|
|
|
682
754
|
},
|
|
683
755
|
};
|
|
684
756
|
const Typography = {
|
|
685
|
-
properties:
|
|
757
|
+
properties: {
|
|
758
|
+
code: 'CodeConfig',
|
|
759
|
+
fieldName: 'FontConfig',
|
|
760
|
+
...(0, utils_1.pickObjectProps)(FontConfig.properties, ['fontSize', 'fontFamily']),
|
|
761
|
+
fontWeightBold: { type: 'string' },
|
|
762
|
+
fontWeightLight: { type: 'string' },
|
|
763
|
+
fontWeightRegular: { type: 'string' },
|
|
764
|
+
heading1: 'Heading',
|
|
765
|
+
heading2: 'Heading',
|
|
766
|
+
heading3: 'Heading',
|
|
767
|
+
headings: 'HeadingsConfig',
|
|
768
|
+
lineHeight: { type: 'string' },
|
|
769
|
+
links: 'LinksConfig',
|
|
770
|
+
optimizeSpeed: { type: 'boolean' },
|
|
771
|
+
rightPanelHeading: 'Heading',
|
|
772
|
+
smoothing: { enum: ['auto', 'none', 'antialiased', 'subpixel-antialiased', 'grayscale'] },
|
|
773
|
+
},
|
|
686
774
|
};
|
|
687
775
|
const TokenProps = {
|
|
688
|
-
properties:
|
|
776
|
+
properties: {
|
|
777
|
+
color: { type: 'string' },
|
|
778
|
+
...(0, utils_1.omitObjectProps)(FontConfig.properties, ['fontWeight']),
|
|
779
|
+
},
|
|
689
780
|
};
|
|
690
781
|
const CodeBlock = {
|
|
691
782
|
properties: {
|
|
@@ -754,7 +845,7 @@ const ConfigTheme = {
|
|
|
754
845
|
sidebar: 'Sidebar',
|
|
755
846
|
spacing: 'ThemeSpacing',
|
|
756
847
|
typography: 'Typography',
|
|
757
|
-
links: { properties: { color: { type: 'string' } } },
|
|
848
|
+
links: { properties: { color: { type: 'string' } } }, // deprecated
|
|
758
849
|
codeSample: { properties: { backgroundColor: { type: 'string' } } }, // deprecated
|
|
759
850
|
},
|
|
760
851
|
};
|
|
@@ -812,7 +903,7 @@ const ConfigReferenceDocs = {
|
|
|
812
903
|
maxDisplayedEnumValues: { type: 'number' },
|
|
813
904
|
menuToggle: { type: 'boolean' },
|
|
814
905
|
nativeScrollbars: { type: 'boolean' },
|
|
815
|
-
noAutoAuth: { type: 'boolean' },
|
|
906
|
+
noAutoAuth: { type: 'boolean' }, // deprecated
|
|
816
907
|
oAuth2RedirectURI: { type: 'string' },
|
|
817
908
|
onDeepLinkClick: { type: 'object' },
|
|
818
909
|
onlyRequiredInSamples: { type: 'boolean' },
|
|
@@ -822,7 +913,7 @@ const ConfigReferenceDocs = {
|
|
|
822
913
|
requestInterceptor: { type: 'object' },
|
|
823
914
|
requiredPropsFirst: { type: 'boolean' },
|
|
824
915
|
routingBasePath: { type: 'string' },
|
|
825
|
-
routingStrategy: { type: 'string' },
|
|
916
|
+
routingStrategy: { type: 'string' }, // deprecated
|
|
826
917
|
samplesTabsMaxCount: { type: 'number' },
|
|
827
918
|
schemaExpansionLevel: (value) => {
|
|
828
919
|
if (typeof value === 'number') {
|
|
@@ -851,7 +942,7 @@ const ConfigReferenceDocs = {
|
|
|
851
942
|
searchTagTitleBoost: { type: 'number' },
|
|
852
943
|
sendXUserAgentInTryIt: { type: 'boolean' },
|
|
853
944
|
showChangeLayoutButton: { type: 'boolean' },
|
|
854
|
-
showConsole: { type: 'boolean' },
|
|
945
|
+
showConsole: { type: 'boolean' }, // deprecated
|
|
855
946
|
showExtensions: (value) => {
|
|
856
947
|
if (typeof value === 'boolean') {
|
|
857
948
|
return { type: 'boolean' };
|
|
@@ -878,8 +969,8 @@ const ConfigReferenceDocs = {
|
|
|
878
969
|
sortOperationsAlphabetically: { type: 'boolean' },
|
|
879
970
|
sortPropsAlphabetically: { type: 'boolean' },
|
|
880
971
|
sortTagsAlphabetically: { type: 'boolean' },
|
|
881
|
-
suppressWarnings: { type: 'boolean' },
|
|
882
|
-
unstable_externalDescription: { type: 'boolean' },
|
|
972
|
+
suppressWarnings: { type: 'boolean' }, // deprecated
|
|
973
|
+
unstable_externalDescription: { type: 'boolean' }, // deprecated
|
|
883
974
|
unstable_ignoreMimeParameters: { type: 'boolean' },
|
|
884
975
|
untrustedDefinition: { type: 'boolean' },
|
|
885
976
|
mockServer: {
|
|
@@ -903,16 +994,21 @@ const ConfigMockServer = {
|
|
|
903
994
|
};
|
|
904
995
|
function createConfigTypes(extraSchemas, config) {
|
|
905
996
|
const nodeNames = Object.values(oas_types_1.SpecVersion).flatMap((version) => {
|
|
906
|
-
const types =
|
|
997
|
+
const types = config?.styleguide
|
|
907
998
|
? config.styleguide.extendTypes((0, oas_types_1.getTypes)(version), version)
|
|
908
999
|
: (0, oas_types_1.getTypes)(version);
|
|
909
1000
|
return Object.keys(types);
|
|
910
1001
|
});
|
|
911
1002
|
// Create types based on external schemas
|
|
912
1003
|
const nodeTypes = (0, json_schema_adapter_1.getNodeTypesFromJSONSchema)('rootRedoclyConfigSchema', extraSchemas);
|
|
913
|
-
return
|
|
1004
|
+
return {
|
|
1005
|
+
...CoreConfigTypes,
|
|
1006
|
+
ConfigRoot: createConfigRoot(nodeTypes), // This is the REAL config root type
|
|
1007
|
+
ConfigApisProperties: createConfigApisProperties(nodeTypes),
|
|
1008
|
+
AssertionDefinitionSubject: createAssertionDefinitionSubject(nodeNames),
|
|
1009
|
+
...nodeTypes,
|
|
1010
|
+
};
|
|
914
1011
|
}
|
|
915
|
-
exports.createConfigTypes = createConfigTypes;
|
|
916
1012
|
const CoreConfigTypes = {
|
|
917
1013
|
Assert,
|
|
918
1014
|
ConfigApis,
|
package/lib/typings/arazzo.d.ts
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
1
|
import type { FromSchema } from 'json-schema-to-ts';
|
|
2
|
-
import type { arazzoSchema } from '../types/arazzo';
|
|
2
|
+
import type { arazzoSchema, parameter, operationMethod, expectSchema, sourceDescriptionSchema, infoObject, requestBody, replacement, inherit, criteriaObject, step, workflow } from '../types/arazzo';
|
|
3
3
|
export type ArazzoDefinition = FromSchema<typeof arazzoSchema>;
|
|
4
|
+
export type OperationMethod = FromSchema<typeof operationMethod>;
|
|
5
|
+
export type ResponseContext = {
|
|
6
|
+
statusCode: number;
|
|
7
|
+
body: any;
|
|
8
|
+
headers: Headers;
|
|
9
|
+
mimeType: string;
|
|
10
|
+
} & Record<string, any>;
|
|
11
|
+
export type Expect = FromSchema<typeof expectSchema>;
|
|
12
|
+
export type SourceDescription = FromSchema<typeof sourceDescriptionSchema>;
|
|
13
|
+
export type Parameter = FromSchema<typeof parameter>;
|
|
14
|
+
export type InfoObject = FromSchema<typeof infoObject>;
|
|
15
|
+
export type RequestBody = FromSchema<typeof requestBody>;
|
|
16
|
+
export type Replacement = FromSchema<typeof replacement>;
|
|
17
|
+
export type Inherit = FromSchema<typeof inherit>;
|
|
18
|
+
export type CriteriaObject = FromSchema<typeof criteriaObject>;
|
|
19
|
+
export type VerboseLog = {
|
|
20
|
+
method: OperationMethod;
|
|
21
|
+
path: string;
|
|
22
|
+
host: string;
|
|
23
|
+
body?: any;
|
|
24
|
+
headerParams?: Record<string, string>;
|
|
25
|
+
statusCode?: number;
|
|
26
|
+
};
|
|
27
|
+
export type Step = FromSchema<typeof step>;
|
|
28
|
+
export type Workflow = FromSchema<typeof workflow> & {
|
|
29
|
+
steps: Step[];
|
|
30
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface Async3Definition {
|
|
2
|
+
asyncapi: string;
|
|
3
|
+
servers?: Record<string, any>;
|
|
4
|
+
info: Async3Info;
|
|
5
|
+
channels?: Record<string, Channel>;
|
|
6
|
+
components?: Record<string, any>;
|
|
7
|
+
operations?: Record<string, any>;
|
|
8
|
+
defaultContentType?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface Async3Info {
|
|
11
|
+
title: string;
|
|
12
|
+
version: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
termsOfService?: string;
|
|
15
|
+
contact?: Async3Contact;
|
|
16
|
+
license?: Async3License;
|
|
17
|
+
tags?: Tag[];
|
|
18
|
+
externalDocs?: ExternalDoc;
|
|
19
|
+
}
|
|
20
|
+
export interface Async3Contact {
|
|
21
|
+
name?: string;
|
|
22
|
+
url?: string;
|
|
23
|
+
email?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface Async3License {
|
|
26
|
+
name: string;
|
|
27
|
+
url?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface Tag {
|
|
30
|
+
name: string;
|
|
31
|
+
description?: string;
|
|
32
|
+
externalDocs?: ExternalDoc;
|
|
33
|
+
}
|
|
34
|
+
export interface ExternalDoc {
|
|
35
|
+
url: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface Channel {
|
|
39
|
+
address?: string | null;
|
|
40
|
+
messages?: Record<string, any>;
|
|
41
|
+
title?: string;
|
|
42
|
+
summary?: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
servers?: Record<string, any>[];
|
|
45
|
+
parameters?: Record<string, any>;
|
|
46
|
+
tags?: Record<string, any>;
|
|
47
|
+
externalDocs?: ExternalDocumentation;
|
|
48
|
+
bindings?: Record<string, any>;
|
|
49
|
+
}
|
|
50
|
+
export interface ExternalDocumentation {
|
|
51
|
+
url: string;
|
|
52
|
+
description?: string;
|
|
53
|
+
}
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { UserContext } from './walk';
|
|
2
|
-
import { HttpResolveConfig } from './config';
|
|
3
1
|
import { HttpsProxyAgent } from 'https-proxy-agent';
|
|
2
|
+
import type { HttpResolveConfig } from './config';
|
|
3
|
+
import type { UserContext } from './walk';
|
|
4
4
|
export { parseYaml, stringifyYaml } from './js-yaml';
|
|
5
5
|
export type StackFrame<T> = {
|
|
6
6
|
prev: StackFrame<T> | null;
|
|
@@ -16,9 +16,9 @@ export declare function popStack<T, P extends Stack<T>>(head: P): StackFrame<T>
|
|
|
16
16
|
export type BundleOutputFormat = 'json' | 'yml' | 'yaml';
|
|
17
17
|
export declare function loadYaml<T>(filename: string): Promise<T>;
|
|
18
18
|
export declare function isDefined<T>(x: T | undefined): x is T;
|
|
19
|
-
export declare function isPlainObject(value:
|
|
20
|
-
export declare function isEmptyObject(value:
|
|
21
|
-
export declare function isEmptyArray(value:
|
|
19
|
+
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
20
|
+
export declare function isEmptyObject(value: unknown): value is Record<string, unknown>;
|
|
21
|
+
export declare function isEmptyArray(value: unknown): boolean;
|
|
22
22
|
export declare function readFileFromUrl(url: string, config: HttpResolveConfig): Promise<{
|
|
23
23
|
body: any;
|
|
24
24
|
mimeType: any;
|
|
@@ -28,7 +28,6 @@ export declare function omitObjectProps<T extends Record<string, unknown>>(objec
|
|
|
28
28
|
export declare function splitCamelCaseIntoWords(str: string): Set<string>;
|
|
29
29
|
export declare function validateMimeType({ type, value }: any, { report, location }: UserContext, allowedValues: string[]): void;
|
|
30
30
|
export declare function validateMimeTypeOAS3({ type, value }: any, { report, location }: UserContext, allowedValues: string[]): void;
|
|
31
|
-
export declare function isSingular(path: string): boolean;
|
|
32
31
|
export declare function readFileAsStringSync(filePath: string): string;
|
|
33
32
|
export declare function yamlAndJsonSyncReader<T>(filePath: string): T;
|
|
34
33
|
export declare function isPathParameter(pathSegment: string): boolean;
|
|
@@ -50,6 +49,12 @@ export declare function isTruthy<Truthy>(value: Truthy | Falsy): value is Truthy
|
|
|
50
49
|
export declare function identity<T>(value: T): T;
|
|
51
50
|
export declare function keysOf<T>(obj: T): (keyof T)[];
|
|
52
51
|
export declare function pickDefined<T extends Record<string, unknown>>(obj?: T): Record<string, unknown> | undefined;
|
|
53
|
-
export declare function nextTick():
|
|
52
|
+
export declare function nextTick(): Promise<unknown>;
|
|
54
53
|
export declare function pause(ms: number): Promise<void>;
|
|
55
54
|
export declare function getProxyAgent(): HttpsProxyAgent<string> | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Checks if two objects are deeply equal.
|
|
57
|
+
* Borrowed the source code from https://github.com/lukeed/dequal.
|
|
58
|
+
*/
|
|
59
|
+
export declare function dequal(foo: any, bar: any): boolean;
|
|
60
|
+
export type CollectFn = (value: unknown) => void;
|