@redocly/openapi-core 1.19.0 → 1.20.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 +12 -0
- package/__tests__/utils.ts +14 -7
- package/lib/benchmark/benches/lint-with-many-rules.bench.d.ts +1 -0
- package/lib/benchmark/benches/lint-with-many-rules.bench.js +5 -1
- package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts +1 -0
- package/lib/benchmark/benches/lint-with-nested-rule.bench.js +5 -1
- package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts +1 -0
- package/lib/benchmark/benches/lint-with-no-rules.bench.js +5 -1
- package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.d.ts +1 -0
- package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.js +17 -13
- package/lib/benchmark/benches/lint-with-top-level-rule.bench.d.ts +1 -0
- package/lib/benchmark/benches/lint-with-top-level-rule.bench.js +16 -12
- package/lib/benchmark/utils.d.ts +3 -3
- package/lib/benchmark/utils.js +3 -3
- package/lib/config/all.js +4 -1
- package/lib/config/builtIn.js +15 -20
- package/lib/config/config-resolvers.d.ts +1 -1
- package/lib/config/config-resolvers.js +66 -24
- package/lib/config/config.d.ts +3 -2
- package/lib/config/load.d.ts +1 -1
- package/lib/config/minimal.js +4 -0
- package/lib/config/recommended-strict.js +5 -1
- package/lib/config/recommended.js +5 -1
- package/lib/config/types.d.ts +9 -2
- package/lib/config/utils.d.ts +3 -1
- package/lib/config/utils.js +8 -0
- package/lib/decorators/common/filters/filter-helper.d.ts +1 -1
- package/lib/decorators/common/filters/filter-in.d.ts +1 -1
- package/lib/decorators/common/filters/filter-out.d.ts +1 -1
- package/lib/decorators/common/info-description-override.d.ts +1 -1
- package/lib/decorators/common/info-override.d.ts +1 -1
- package/lib/decorators/common/media-type-examples-override.d.ts +1 -1
- package/lib/decorators/common/operation-description-override.d.ts +1 -1
- package/lib/decorators/common/registry-dependencies.d.ts +1 -1
- package/lib/decorators/common/remove-x-internal.d.ts +1 -1
- package/lib/decorators/common/tag-description-override.d.ts +1 -1
- package/lib/decorators/oas2/index.d.ts +1 -1
- package/lib/decorators/oas3/index.d.ts +1 -1
- package/lib/format/codeframes.d.ts +1 -1
- package/lib/format/format.d.ts +1 -1
- package/lib/format/format.js +1 -1
- package/lib/js-yaml/index.d.ts +1 -1
- package/lib/lint.d.ts +1 -1
- package/lib/logger.js +2 -2
- package/lib/oas-types.d.ts +2 -2
- package/lib/redocly/domains.d.ts +1 -1
- package/lib/redocly/index.d.ts +1 -1
- package/lib/ref-utils.d.ts +2 -2
- package/lib/ref-utils.js +1 -0
- package/lib/resolve.d.ts +2 -2
- package/lib/rules/ajv.d.ts +1 -1
- package/lib/rules/arazzo/index.js +2 -0
- package/lib/rules/async2/channels-kebab-case.d.ts +1 -1
- package/lib/rules/async2/index.js +2 -0
- package/lib/rules/async2/no-channel-trailing-slash.d.ts +1 -1
- package/lib/rules/async3/channels-kebab-case.d.ts +1 -1
- package/lib/rules/async3/index.js +2 -0
- package/lib/rules/async3/no-channel-trailing-slash.d.ts +1 -1
- package/lib/rules/common/assertions/asserts.d.ts +2 -2
- package/lib/rules/common/assertions/index.d.ts +1 -2
- package/lib/rules/common/assertions/utils.d.ts +1 -1
- package/lib/rules/common/info-contact.d.ts +1 -1
- package/lib/rules/common/info-license-strict.d.ts +2 -0
- package/lib/rules/common/info-license-strict.js +26 -0
- package/lib/rules/common/info-license-url.d.ts +1 -1
- package/lib/rules/common/info-license.d.ts +1 -1
- package/lib/rules/common/no-ambiguous-paths.d.ts +1 -1
- package/lib/rules/common/no-enum-type-mismatch.d.ts +1 -1
- package/lib/rules/common/no-http-verbs-in-paths.d.ts +1 -1
- package/lib/rules/common/no-identical-paths.d.ts +1 -1
- package/lib/rules/common/no-path-trailing-slash.d.ts +1 -1
- package/lib/rules/common/no-required-schema-properties-undefined.d.ts +1 -1
- package/lib/rules/common/operation-2xx-response.d.ts +1 -1
- package/lib/rules/common/operation-4xx-response.d.ts +1 -1
- package/lib/rules/common/operation-description.d.ts +1 -1
- package/lib/rules/common/operation-operationId-unique.d.ts +1 -1
- package/lib/rules/common/operation-operationId-url-safe.d.ts +1 -1
- package/lib/rules/common/operation-operationId-url-safe.js +1 -0
- package/lib/rules/common/operation-operationId.d.ts +1 -1
- package/lib/rules/common/operation-parameters-unique.d.ts +1 -1
- package/lib/rules/common/operation-singular-tag.d.ts +1 -1
- package/lib/rules/common/operation-summary.d.ts +1 -1
- package/lib/rules/common/operation-tag-defined.d.ts +1 -1
- package/lib/rules/common/parameter-description.d.ts +1 -1
- package/lib/rules/common/path-declaration-must-exist.d.ts +1 -1
- package/lib/rules/common/path-excludes-patterns.d.ts +1 -1
- package/lib/rules/common/path-http-verbs-order.d.ts +1 -1
- package/lib/rules/common/path-not-include-query.d.ts +1 -1
- package/lib/rules/common/path-params-defined.d.ts +1 -1
- package/lib/rules/common/path-segment-plural.d.ts +1 -1
- package/lib/rules/common/paths-kebab-case.d.ts +1 -1
- package/lib/rules/common/required-string-property-missing-min-length.d.ts +1 -1
- package/lib/rules/common/response-contains-header.d.ts +1 -1
- package/lib/rules/common/security-defined.d.ts +1 -1
- package/lib/rules/common/spec-strict-refs.d.ts +1 -1
- package/lib/rules/common/tag-description.d.ts +1 -1
- package/lib/rules/common/tags-alphabetical.d.ts +1 -1
- package/lib/rules/no-unresolved-refs.d.ts +3 -3
- package/lib/rules/oas2/boolean-parameter-prefixes.d.ts +1 -1
- package/lib/rules/oas2/index.d.ts +1 -1
- package/lib/rules/oas2/index.js +2 -0
- package/lib/rules/oas2/response-contains-property.d.ts +1 -1
- package/lib/rules/oas3/array-parameter-serialization.d.ts +1 -1
- package/lib/rules/oas3/boolean-parameter-prefixes.d.ts +1 -1
- package/lib/rules/oas3/component-name-unique.d.ts +1 -1
- package/lib/rules/oas3/index.d.ts +1 -1
- package/lib/rules/oas3/index.js +2 -0
- package/lib/rules/oas3/no-empty-servers.d.ts +1 -1
- package/lib/rules/oas3/no-example-value-and-externalValue.d.ts +1 -1
- package/lib/rules/oas3/no-invalid-media-type-examples.d.ts +1 -1
- package/lib/rules/oas3/no-server-example.com.d.ts +1 -1
- package/lib/rules/oas3/no-server-example.com.js +1 -0
- package/lib/rules/oas3/no-server-trailing-slash.d.ts +1 -1
- package/lib/rules/oas3/no-server-variables-empty-enum.d.ts +1 -1
- package/lib/rules/oas3/no-undefined-server-variable.d.ts +1 -1
- package/lib/rules/oas3/no-unused-components.d.ts +1 -1
- package/lib/rules/oas3/response-contains-property.d.ts +1 -1
- package/lib/rules/oas3/spec-components-invalid-map-name.d.ts +1 -1
- package/lib/rules/other/stats.d.ts +3 -3
- package/lib/rules/other/stats.js +5 -3
- package/lib/rules/spot/parameters-no-body-inside-in.d.ts +2 -0
- package/lib/rules/spot/parameters-no-body-inside-in.js +18 -0
- package/lib/rules/utils.d.ts +4 -2
- package/lib/rules/utils.js +27 -1
- package/lib/types/arazzo.d.ts +1 -2275
- package/lib/types/arazzo.js +246 -309
- package/lib/types/asyncapi2.d.ts +1 -1
- package/lib/types/asyncapi2.js +3 -1
- package/lib/types/asyncapi3.d.ts +1 -1
- package/lib/types/json-schema-adapter.d.ts +1 -1
- package/lib/types/oas3.d.ts +4 -0
- package/lib/types/oas3.js +9 -9
- package/lib/types/oas3_1.d.ts +3 -0
- package/lib/types/oas3_1.js +8 -8
- package/lib/types/redocly-yaml.d.ts +6 -6
- package/lib/types/redocly-yaml.js +4 -1
- package/lib/typings/arazzo.d.ts +145 -27
- package/lib/typings/common.d.ts +1 -1
- package/lib/typings/swagger.d.ts +2 -2
- package/lib/visitors.d.ts +18 -1
- package/lib/walk.d.ts +3 -3
- package/package.json +2 -2
- package/src/__tests__/bundle.test.ts +4 -4
- package/src/__tests__/lint.test.ts +29 -21
- package/src/__tests__/walk.test.ts +25 -25
- package/src/benchmark/benches/lint-with-many-rules.bench.ts +7 -1
- package/src/benchmark/benches/lint-with-nested-rule.bench.ts +7 -1
- package/src/benchmark/benches/lint-with-no-rules.bench.ts +8 -1
- package/src/benchmark/benches/lint-with-top-level-rule-report.bench.ts +18 -13
- package/src/benchmark/benches/lint-with-top-level-rule.bench.ts +17 -11
- package/src/benchmark/fork.js +4 -0
- package/src/benchmark/utils.ts +6 -5
- package/src/bundle.ts +2 -1
- package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +10 -2
- package/src/config/__tests__/config-resolvers.test.ts +82 -0
- package/src/config/__tests__/fixtures/resolve-config/local-config-with-commonjs-export-function.yaml +2 -0
- package/src/config/__tests__/fixtures/resolve-config/local-config-with-esm.yaml +2 -0
- package/src/config/__tests__/fixtures/resolve-config/plugin-esm.mjs +10 -0
- package/src/config/__tests__/fixtures/resolve-config/plugin-with-export-function.cjs +10 -0
- package/src/config/__tests__/resolve-plugins.test.ts +4 -1
- package/src/config/all.ts +4 -1
- package/src/config/builtIn.ts +5 -10
- package/src/config/config-resolvers.ts +77 -19
- package/src/config/config.ts +7 -8
- package/src/config/load.ts +2 -2
- package/src/config/minimal.ts +4 -0
- package/src/config/recommended-strict.ts +5 -1
- package/src/config/recommended.ts +5 -1
- package/src/config/types.ts +19 -3
- package/src/config/utils.ts +13 -2
- package/src/decorators/__tests__/filter-in.test.ts +29 -26
- package/src/decorators/__tests__/filter-out.test.ts +32 -23
- package/src/decorators/__tests__/media-type-examples-override.test.ts +45 -45
- package/src/decorators/__tests__/remove-x-internal.test.ts +8 -5
- package/src/decorators/common/filters/filter-helper.ts +2 -1
- package/src/decorators/common/filters/filter-in.ts +2 -1
- package/src/decorators/common/filters/filter-out.ts +2 -1
- package/src/decorators/common/info-description-override.ts +3 -2
- package/src/decorators/common/info-override.ts +1 -1
- package/src/decorators/common/media-type-examples-override.ts +4 -3
- package/src/decorators/common/operation-description-override.ts +5 -4
- package/src/decorators/common/registry-dependencies.ts +2 -2
- package/src/decorators/common/remove-x-internal.ts +3 -2
- package/src/decorators/common/tag-description-override.ts +3 -2
- package/src/decorators/oas2/__tests__/remove-unused-components.test.ts +3 -3
- package/src/decorators/oas2/index.ts +2 -1
- package/src/decorators/oas2/remove-unused-components.ts +1 -1
- package/src/decorators/oas3/__tests__/remove-unused-components.test.ts +4 -4
- package/src/decorators/oas3/index.ts +2 -1
- package/src/decorators/oas3/remove-unused-components.ts +1 -1
- package/src/format/codeframes.ts +2 -1
- package/src/format/format.ts +9 -4
- package/src/js-yaml/index.ts +3 -1
- package/src/lint.ts +2 -1
- package/src/logger.ts +2 -2
- package/src/oas-types.ts +14 -13
- package/src/redocly/domains.ts +1 -1
- package/src/redocly/index.ts +3 -3
- package/src/redocly/registry-api.ts +5 -3
- package/src/ref-utils.ts +4 -2
- package/src/resolve.ts +6 -4
- package/src/rules/__tests__/no-unresolved-refs.test.ts +21 -7
- package/src/rules/ajv.ts +2 -1
- package/src/rules/arazzo/__tests__/parameters-no-body-inside-in.test.ts +76 -0
- package/src/rules/arazzo/index.ts +5 -2
- package/src/rules/async2/__tests__/channels-kebab-case.test.ts +9 -5
- package/src/rules/async2/__tests__/no-channel-trailing-slash.test.ts +3 -3
- package/src/rules/async2/channels-kebab-case.ts +2 -2
- package/src/rules/async2/index.ts +4 -1
- package/src/rules/async2/no-channel-trailing-slash.ts +2 -2
- package/src/rules/async3/__tests__/channels-kebab-case.test.ts +9 -5
- package/src/rules/async3/__tests__/no-channel-trailing-slash.test.ts +3 -3
- package/src/rules/async3/channels-kebab-case.ts +3 -3
- package/src/rules/async3/index.ts +4 -1
- package/src/rules/async3/no-channel-trailing-slash.ts +3 -3
- package/src/rules/common/__tests__/info-license-strict.test.ts +141 -0
- package/src/rules/common/__tests__/info-license.test.ts +2 -2
- package/src/rules/common/__tests__/license-url.test.ts +2 -2
- package/src/rules/common/__tests__/no-ambiguous-paths.test.ts +1 -1
- package/src/rules/common/__tests__/no-enum-type-mismatch.test.ts +5 -5
- package/src/rules/common/__tests__/no-identical-paths.test.ts +1 -1
- package/src/rules/common/__tests__/no-invalid-parameter-examples.test.ts +1 -1
- package/src/rules/common/__tests__/no-invalid-schema-examples.test.ts +1 -1
- package/src/rules/common/__tests__/no-path-trailing-slash.test.ts +4 -4
- package/src/rules/common/__tests__/no-required-schema-properties-undefined.test.ts +11 -11
- package/src/rules/common/__tests__/operation-2xx-response.test.ts +8 -6
- package/src/rules/common/__tests__/operation-4xx-response.test.ts +9 -7
- package/src/rules/common/__tests__/operation-operationId-unique.test.ts +2 -2
- package/src/rules/common/__tests__/operation-operationId-url-safe.test.ts +1 -1
- package/src/rules/common/__tests__/operation-parameters-unique.test.ts +4 -4
- package/src/rules/common/__tests__/operation-singular-tag.test.ts +2 -2
- package/src/rules/common/__tests__/path-http-verbs-order.test.ts +2 -2
- package/src/rules/common/__tests__/path-not-include-query.test.ts +2 -2
- package/src/rules/common/__tests__/path-params-defined.test.ts +5 -5
- package/src/rules/common/__tests__/paths-kebab-case.test.ts +6 -4
- package/src/rules/common/__tests__/scalar-property-missing-example.test.ts +8 -8
- package/src/rules/common/__tests__/security-defined.test.ts +14 -8
- package/src/rules/common/__tests__/spec-strict-refs.test.ts +1 -1
- package/src/rules/common/__tests__/spec.test.ts +10 -10
- package/src/rules/common/__tests__/tag-description.test.ts +2 -2
- package/src/rules/common/__tests__/tags-alphabetical.test.ts +6 -4
- package/src/rules/common/assertions/asserts.ts +5 -9
- package/src/rules/common/assertions/index.ts +1 -2
- package/src/rules/common/assertions/utils.ts +4 -2
- package/src/rules/common/info-contact.ts +2 -1
- package/src/rules/common/info-license-strict.ts +24 -0
- package/src/rules/common/info-license-url.ts +2 -1
- package/src/rules/common/info-license.ts +2 -1
- package/src/rules/common/no-ambiguous-paths.ts +4 -4
- package/src/rules/common/no-enum-type-mismatch.ts +5 -4
- package/src/rules/common/no-http-verbs-in-paths.ts +5 -4
- package/src/rules/common/no-identical-paths.ts +4 -4
- package/src/rules/common/no-invalid-parameter-examples.ts +3 -2
- package/src/rules/common/no-path-trailing-slash.ts +2 -2
- package/src/rules/common/no-required-schema-properties-undefined.ts +5 -4
- package/src/rules/common/operation-2xx-response.ts +3 -2
- package/src/rules/common/operation-4xx-response.ts +3 -2
- package/src/rules/common/operation-description.ts +5 -4
- package/src/rules/common/operation-operationId-unique.ts +4 -4
- package/src/rules/common/operation-operationId-url-safe.ts +5 -4
- package/src/rules/common/operation-operationId.ts +5 -4
- package/src/rules/common/operation-parameters-unique.ts +4 -4
- package/src/rules/common/operation-singular-tag.ts +4 -4
- package/src/rules/common/operation-summary.ts +5 -4
- package/src/rules/common/operation-tag-defined.ts +4 -4
- package/src/rules/common/parameter-description.ts +4 -4
- package/src/rules/common/path-declaration-must-exist.ts +2 -2
- package/src/rules/common/path-excludes-patterns.ts +4 -4
- package/src/rules/common/path-http-verbs-order.ts +4 -4
- package/src/rules/common/path-not-include-query.ts +2 -2
- package/src/rules/common/path-params-defined.ts +4 -4
- package/src/rules/common/path-segment-plural.ts +3 -2
- package/src/rules/common/paths-kebab-case.ts +2 -2
- package/src/rules/common/required-string-property-missing-min-length.ts +4 -4
- package/src/rules/common/response-contains-header.ts +5 -4
- package/src/rules/common/scalar-property-missing-example.ts +2 -1
- package/src/rules/common/security-defined.ts +5 -5
- package/src/rules/common/spec-strict-refs.ts +2 -1
- package/src/rules/common/spec.ts +3 -2
- package/src/rules/common/tag-description.ts +2 -1
- package/src/rules/common/tags-alphabetical.ts +4 -4
- package/src/rules/no-unresolved-refs.ts +4 -3
- package/src/rules/oas2/__tests__/boolean-parameter-prefixes.test.ts +7 -5
- package/src/rules/oas2/__tests__/response-contains-header.test.ts +14 -8
- package/src/rules/oas2/__tests__/response-contains-property.test.ts +14 -8
- package/src/rules/oas2/__tests__/spec/referenceableScalars.test.ts +3 -1
- package/src/rules/oas2/boolean-parameter-prefixes.ts +1 -1
- package/src/rules/oas2/index.ts +4 -2
- package/src/rules/oas2/request-mime-type.ts +2 -1
- package/src/rules/oas2/response-contains-property.ts +3 -2
- package/src/rules/oas2/response-mime-type.ts +2 -1
- package/src/rules/oas3/__tests__/array-parameter-serialization.test.ts +18 -6
- package/src/rules/oas3/__tests__/boolean-parameter-prefixes.test.ts +7 -5
- package/src/rules/oas3/__tests__/no-empty-enum-servers.com.test.ts +6 -6
- package/src/rules/oas3/__tests__/no-example-value-and-externalValue.test.ts +2 -2
- package/src/rules/oas3/__tests__/no-invalid-media-type-examples.test.ts +34 -24
- package/src/rules/oas3/__tests__/no-server-example.com.test.ts +3 -3
- package/src/rules/oas3/__tests__/no-server-trailing-slash.test.ts +3 -3
- package/src/rules/oas3/__tests__/no-unused-components.test.ts +1 -1
- package/src/rules/oas3/__tests__/operation-4xx-problem-details-rfc7807.test.ts +3 -3
- package/src/rules/oas3/__tests__/response-contains-header.test.ts +34 -22
- package/src/rules/oas3/__tests__/response-contains-property.test.ts +34 -20
- package/src/rules/oas3/__tests__/spec/spec.test.ts +12 -3
- package/src/rules/oas3/__tests__/spec-components-invalid-map-name.test.ts +9 -3
- package/src/rules/oas3/__tests__/utils/lint-document-for-test.ts +1 -1
- package/src/rules/oas3/array-parameter-serialization.ts +3 -2
- package/src/rules/oas3/boolean-parameter-prefixes.ts +1 -1
- package/src/rules/oas3/component-name-unique.ts +3 -3
- package/src/rules/oas3/index.ts +3 -1
- package/src/rules/oas3/no-empty-servers.ts +1 -1
- package/src/rules/oas3/no-example-value-and-externalValue.ts +1 -1
- package/src/rules/oas3/no-invalid-media-type-examples.ts +6 -4
- package/src/rules/oas3/no-server-example.com.ts +2 -1
- package/src/rules/oas3/no-server-trailing-slash.ts +1 -1
- package/src/rules/oas3/no-server-variables-empty-enum.ts +2 -2
- package/src/rules/oas3/no-undefined-server-variable.ts +1 -1
- package/src/rules/oas3/no-unused-components.ts +2 -2
- package/src/rules/oas3/operation-4xx-problem-details-rfc7807.ts +2 -1
- package/src/rules/oas3/request-mime-type.ts +2 -1
- package/src/rules/oas3/response-contains-property.ts +3 -2
- package/src/rules/oas3/response-mime-type.ts +2 -1
- package/src/rules/oas3/spec-components-invalid-map-name.ts +3 -3
- package/src/rules/other/stats.ts +8 -6
- package/src/rules/spot/parameters-no-body-inside-in.ts +17 -0
- package/src/rules/utils.ts +41 -4
- package/src/types/arazzo.ts +257 -334
- package/src/types/asyncapi2.ts +4 -1
- package/src/types/asyncapi3.ts +3 -1
- package/src/types/json-schema-adapter.ts +2 -2
- package/src/types/oas3.ts +4 -4
- package/src/types/oas3_1.ts +3 -3
- package/src/types/redocly-yaml.ts +7 -4
- package/src/typings/arazzo.ts +169 -41
- package/src/typings/common.ts +1 -0
- package/src/typings/swagger.ts +2 -2
- package/src/visitors.ts +40 -1
- package/src/walk.ts +3 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -20,7 +20,7 @@ describe('Oas3 oas3-no-example-value-and-externalValue', () => {
|
|
|
20
20
|
const results = await lintDocument({
|
|
21
21
|
externalRefResolver: new BaseResolver(),
|
|
22
22
|
document,
|
|
23
|
-
config: await makeConfig({ 'no-example-value-and-externalValue': 'error' }),
|
|
23
|
+
config: await makeConfig({ rules: { 'no-example-value-and-externalValue': 'error' } }),
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -57,7 +57,7 @@ describe('Oas3 oas3-no-example-value-and-externalValue', () => {
|
|
|
57
57
|
const results = await lintDocument({
|
|
58
58
|
externalRefResolver: new BaseResolver(),
|
|
59
59
|
document,
|
|
60
|
-
config: await makeConfig({ 'no-example-value-and-externalValue': 'error' }),
|
|
60
|
+
config: await makeConfig({ rules: { 'no-example-value-and-externalValue': 'error' } }),
|
|
61
61
|
});
|
|
62
62
|
|
|
63
63
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -33,7 +33,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
33
33
|
const results = await lintDocument({
|
|
34
34
|
externalRefResolver: new BaseResolver(),
|
|
35
35
|
document,
|
|
36
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
36
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -107,9 +107,11 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
107
107
|
externalRefResolver: new BaseResolver(),
|
|
108
108
|
document,
|
|
109
109
|
config: await makeConfig({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
rules: {
|
|
111
|
+
'no-invalid-media-type-examples': {
|
|
112
|
+
severity: 'error',
|
|
113
|
+
allowAdditionalProperties: false,
|
|
114
|
+
},
|
|
113
115
|
},
|
|
114
116
|
}),
|
|
115
117
|
});
|
|
@@ -159,9 +161,11 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
159
161
|
externalRefResolver: new BaseResolver(),
|
|
160
162
|
document,
|
|
161
163
|
config: await makeConfig({
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
rules: {
|
|
165
|
+
'no-invalid-media-type-examples': {
|
|
166
|
+
severity: 'error',
|
|
167
|
+
allowAdditionalProperties: false,
|
|
168
|
+
},
|
|
165
169
|
},
|
|
166
170
|
}),
|
|
167
171
|
});
|
|
@@ -219,9 +223,11 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
219
223
|
externalRefResolver: new BaseResolver(),
|
|
220
224
|
document,
|
|
221
225
|
config: await makeConfig({
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
226
|
+
rules: {
|
|
227
|
+
'no-invalid-media-type-examples': {
|
|
228
|
+
severity: 'error',
|
|
229
|
+
allowAdditionalProperties: false,
|
|
230
|
+
},
|
|
225
231
|
},
|
|
226
232
|
}),
|
|
227
233
|
});
|
|
@@ -268,9 +274,11 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
268
274
|
externalRefResolver: new BaseResolver(),
|
|
269
275
|
document,
|
|
270
276
|
config: await makeConfig({
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
277
|
+
rules: {
|
|
278
|
+
'no-invalid-media-type-examples': {
|
|
279
|
+
severity: 'error',
|
|
280
|
+
allowAdditionalProperties: false,
|
|
281
|
+
},
|
|
274
282
|
},
|
|
275
283
|
}),
|
|
276
284
|
});
|
|
@@ -318,9 +326,11 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
318
326
|
externalRefResolver: new BaseResolver(),
|
|
319
327
|
document,
|
|
320
328
|
config: await makeConfig({
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
329
|
+
rules: {
|
|
330
|
+
'no-invalid-media-type-examples': {
|
|
331
|
+
severity: 'error',
|
|
332
|
+
allowAdditionalProperties: false,
|
|
333
|
+
},
|
|
324
334
|
},
|
|
325
335
|
}),
|
|
326
336
|
});
|
|
@@ -370,7 +380,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
370
380
|
const results = await lintDocument({
|
|
371
381
|
externalRefResolver: new BaseResolver(),
|
|
372
382
|
document,
|
|
373
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
383
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
374
384
|
});
|
|
375
385
|
|
|
376
386
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -402,7 +412,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
402
412
|
const results = await lintDocument({
|
|
403
413
|
externalRefResolver: new BaseResolver(),
|
|
404
414
|
document,
|
|
405
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
415
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
406
416
|
});
|
|
407
417
|
|
|
408
418
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -437,7 +447,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
437
447
|
const results = await lintDocument({
|
|
438
448
|
externalRefResolver: new BaseResolver(),
|
|
439
449
|
document,
|
|
440
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
450
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
441
451
|
});
|
|
442
452
|
|
|
443
453
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -465,7 +475,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
465
475
|
const results = await lintDocument({
|
|
466
476
|
externalRefResolver: new BaseResolver(),
|
|
467
477
|
document,
|
|
468
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
478
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
469
479
|
});
|
|
470
480
|
|
|
471
481
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -517,7 +527,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
517
527
|
const results = await lintDocument({
|
|
518
528
|
externalRefResolver: new BaseResolver(),
|
|
519
529
|
document,
|
|
520
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
530
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
521
531
|
});
|
|
522
532
|
|
|
523
533
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -551,7 +561,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
551
561
|
const results = await lintDocument({
|
|
552
562
|
externalRefResolver: new BaseResolver(),
|
|
553
563
|
document,
|
|
554
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
564
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
555
565
|
});
|
|
556
566
|
|
|
557
567
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -588,7 +598,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
588
598
|
const results = await lintDocument({
|
|
589
599
|
externalRefResolver: new BaseResolver(),
|
|
590
600
|
document,
|
|
591
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
601
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
592
602
|
});
|
|
593
603
|
|
|
594
604
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -625,7 +635,7 @@ describe('no-invalid-media-type-examples', () => {
|
|
|
625
635
|
const results = await lintDocument({
|
|
626
636
|
externalRefResolver: new BaseResolver(),
|
|
627
637
|
document,
|
|
628
|
-
config: await makeConfig({ 'no-invalid-media-type-examples': 'error' }),
|
|
638
|
+
config: await makeConfig({ rules: { 'no-invalid-media-type-examples': 'error' } }),
|
|
629
639
|
});
|
|
630
640
|
|
|
631
641
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -17,7 +17,7 @@ describe('Oas3 oas3-no-server-example.com', () => {
|
|
|
17
17
|
const results = await lintDocument({
|
|
18
18
|
externalRefResolver: new BaseResolver(),
|
|
19
19
|
document,
|
|
20
|
-
config: await makeConfig({ 'no-server-example.com': 'error' }),
|
|
20
|
+
config: await makeConfig({ rules: { 'no-server-example.com': 'error' } }),
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -52,7 +52,7 @@ describe('Oas3 oas3-no-server-example.com', () => {
|
|
|
52
52
|
const results = await lintDocument({
|
|
53
53
|
externalRefResolver: new BaseResolver(),
|
|
54
54
|
document,
|
|
55
|
-
config: await makeConfig({ 'no-server-example.com': 'error' }),
|
|
55
|
+
config: await makeConfig({ rules: { 'no-server-example.com': 'error' } }),
|
|
56
56
|
});
|
|
57
57
|
|
|
58
58
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -71,7 +71,7 @@ describe('Oas3 oas3-no-server-example.com', () => {
|
|
|
71
71
|
const results = await lintDocument({
|
|
72
72
|
externalRefResolver: new BaseResolver(),
|
|
73
73
|
document,
|
|
74
|
-
config: await makeConfig({ 'no-server-example.com': 'error' }),
|
|
74
|
+
config: await makeConfig({ rules: { 'no-server-example.com': 'error' } }),
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -17,7 +17,7 @@ describe('Oas3 oas3-no-server-trailing-slash', () => {
|
|
|
17
17
|
const results = await lintDocument({
|
|
18
18
|
externalRefResolver: new BaseResolver(),
|
|
19
19
|
document,
|
|
20
|
-
config: await makeConfig({ 'no-server-trailing-slash': 'error' }),
|
|
20
|
+
config: await makeConfig({ rules: { 'no-server-trailing-slash': 'error' } }),
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -52,7 +52,7 @@ describe('Oas3 oas3-no-server-trailing-slash', () => {
|
|
|
52
52
|
const results = await lintDocument({
|
|
53
53
|
externalRefResolver: new BaseResolver(),
|
|
54
54
|
document,
|
|
55
|
-
config: await makeConfig({ 'no-server-trailing-slash': 'error' }),
|
|
55
|
+
config: await makeConfig({ rules: { 'no-server-trailing-slash': 'error' } }),
|
|
56
56
|
});
|
|
57
57
|
|
|
58
58
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -71,7 +71,7 @@ describe('Oas3 oas3-no-server-trailing-slash', () => {
|
|
|
71
71
|
const results = await lintDocument({
|
|
72
72
|
externalRefResolver: new BaseResolver(),
|
|
73
73
|
document,
|
|
74
|
-
config: await makeConfig({ 'no-server-trailing-slash': 'error' }),
|
|
74
|
+
config: await makeConfig({ rules: { 'no-server-trailing-slash': 'error' } }),
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`[]`);
|
|
@@ -42,7 +42,7 @@ describe('Oas3 no-unused-components', () => {
|
|
|
42
42
|
const results = await lintDocument({
|
|
43
43
|
externalRefResolver: new BaseResolver(),
|
|
44
44
|
document,
|
|
45
|
-
config: await makeConfig({ 'no-unused-components': 'error' }),
|
|
45
|
+
config: await makeConfig({ rules: { 'no-unused-components': 'error' } }),
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
@@ -32,7 +32,7 @@ describe('Oas3 operation-4xx-problem-details-rfc7807', () => {
|
|
|
32
32
|
const results = await lintDocument({
|
|
33
33
|
externalRefResolver: new BaseResolver(),
|
|
34
34
|
document,
|
|
35
|
-
config: await makeConfig({ 'operation-4xx-problem-details-rfc7807': 'error' }),
|
|
35
|
+
config: await makeConfig({ rules: { 'operation-4xx-problem-details-rfc7807': 'error' } }),
|
|
36
36
|
});
|
|
37
37
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
38
38
|
[
|
|
@@ -79,7 +79,7 @@ describe('Oas3 operation-4xx-problem-details-rfc7807', () => {
|
|
|
79
79
|
const results = await lintDocument({
|
|
80
80
|
externalRefResolver: new BaseResolver(),
|
|
81
81
|
document,
|
|
82
|
-
config: await makeConfig({ 'operation-4xx-problem-details-rfc7807': 'error' }),
|
|
82
|
+
config: await makeConfig({ rules: { 'operation-4xx-problem-details-rfc7807': 'error' } }),
|
|
83
83
|
});
|
|
84
84
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
85
85
|
[
|
|
@@ -122,7 +122,7 @@ describe('Oas3 operation-4xx-problem-details-rfc7807', () => {
|
|
|
122
122
|
const results = await lintDocument({
|
|
123
123
|
externalRefResolver: new BaseResolver(),
|
|
124
124
|
document,
|
|
125
|
-
config: await makeConfig({ 'operation-4xx-problem-details-rfc7807': 'error' }),
|
|
125
|
+
config: await makeConfig({ rules: { 'operation-4xx-problem-details-rfc7807': 'error' } }),
|
|
126
126
|
});
|
|
127
127
|
expect(replaceSourceWithRef(results)).toMatchInlineSnapshot(`
|
|
128
128
|
[
|
|
@@ -27,9 +27,11 @@ describe('Oas3 response-contains-header', () => {
|
|
|
27
27
|
externalRefResolver: new BaseResolver(),
|
|
28
28
|
document,
|
|
29
29
|
config: await makeConfig({
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
rules: {
|
|
31
|
+
'response-contains-header': {
|
|
32
|
+
severity: 'error',
|
|
33
|
+
names: { '200': ['Content-Length'] },
|
|
34
|
+
},
|
|
33
35
|
},
|
|
34
36
|
}),
|
|
35
37
|
});
|
|
@@ -107,11 +109,13 @@ describe('Oas3 response-contains-header', () => {
|
|
|
107
109
|
externalRefResolver: new BaseResolver(),
|
|
108
110
|
document,
|
|
109
111
|
config: await makeConfig({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
rules: {
|
|
113
|
+
'response-contains-header': {
|
|
114
|
+
severity: 'error',
|
|
115
|
+
names: {
|
|
116
|
+
'2XX': ['x-request-id'],
|
|
117
|
+
'400': ['Content-Length'],
|
|
118
|
+
},
|
|
115
119
|
},
|
|
116
120
|
},
|
|
117
121
|
}),
|
|
@@ -259,11 +263,13 @@ describe('Oas3 response-contains-header', () => {
|
|
|
259
263
|
externalRefResolver: new BaseResolver(),
|
|
260
264
|
document,
|
|
261
265
|
config: await makeConfig({
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
266
|
+
rules: {
|
|
267
|
+
'response-contains-header': {
|
|
268
|
+
severity: 'error',
|
|
269
|
+
names: {
|
|
270
|
+
'2xx': ['x-request-id'],
|
|
271
|
+
'400': ['Content-Length'],
|
|
272
|
+
},
|
|
267
273
|
},
|
|
268
274
|
},
|
|
269
275
|
}),
|
|
@@ -294,9 +300,11 @@ describe('Oas3 response-contains-header', () => {
|
|
|
294
300
|
externalRefResolver: new BaseResolver(),
|
|
295
301
|
document,
|
|
296
302
|
config: await makeConfig({
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
303
|
+
rules: {
|
|
304
|
+
'response-contains-header': {
|
|
305
|
+
severity: 'error',
|
|
306
|
+
names: { '2XX': ['x-test-header'] },
|
|
307
|
+
},
|
|
300
308
|
},
|
|
301
309
|
}),
|
|
302
310
|
});
|
|
@@ -326,9 +334,11 @@ describe('Oas3 response-contains-header', () => {
|
|
|
326
334
|
externalRefResolver: new BaseResolver(),
|
|
327
335
|
document,
|
|
328
336
|
config: await makeConfig({
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
337
|
+
rules: {
|
|
338
|
+
'response-contains-header': {
|
|
339
|
+
severity: 'error',
|
|
340
|
+
names: { '2XX': ['X-Test-Header'] },
|
|
341
|
+
},
|
|
332
342
|
},
|
|
333
343
|
}),
|
|
334
344
|
});
|
|
@@ -352,9 +362,11 @@ describe('Oas3 response-contains-header', () => {
|
|
|
352
362
|
externalRefResolver: new BaseResolver(),
|
|
353
363
|
document,
|
|
354
364
|
config: await makeConfig({
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
365
|
+
rules: {
|
|
366
|
+
'response-contains-header': {
|
|
367
|
+
severity: 'error',
|
|
368
|
+
names: { '2XX': ['X-Test-Header'] },
|
|
369
|
+
},
|
|
358
370
|
},
|
|
359
371
|
}),
|
|
360
372
|
});
|
|
@@ -27,9 +27,11 @@ describe('Oas3 response-contains-property', () => {
|
|
|
27
27
|
externalRefResolver: new BaseResolver(),
|
|
28
28
|
document,
|
|
29
29
|
config: await makeConfig({
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
rules: {
|
|
31
|
+
'response-contains-property': {
|
|
32
|
+
severity: 'error',
|
|
33
|
+
names: { 201: ['id'] },
|
|
34
|
+
},
|
|
33
35
|
},
|
|
34
36
|
}),
|
|
35
37
|
});
|
|
@@ -103,9 +105,11 @@ describe('Oas3 response-contains-property', () => {
|
|
|
103
105
|
externalRefResolver: new BaseResolver(),
|
|
104
106
|
document,
|
|
105
107
|
config: await makeConfig({
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
rules: {
|
|
109
|
+
'response-contains-property': {
|
|
110
|
+
severity: 'error',
|
|
111
|
+
names: { '2xx': ['id'], '400': ['error'] },
|
|
112
|
+
},
|
|
109
113
|
},
|
|
110
114
|
}),
|
|
111
115
|
});
|
|
@@ -231,9 +235,11 @@ describe('Oas3 response-contains-property', () => {
|
|
|
231
235
|
externalRefResolver: new BaseResolver(),
|
|
232
236
|
document,
|
|
233
237
|
config: await makeConfig({
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
238
|
+
rules: {
|
|
239
|
+
'response-contains-property': {
|
|
240
|
+
severity: 'error',
|
|
241
|
+
names: { '2xx': ['id'], '400': ['error'] },
|
|
242
|
+
},
|
|
237
243
|
},
|
|
238
244
|
}),
|
|
239
245
|
});
|
|
@@ -259,9 +265,11 @@ describe('Oas3 response-contains-property', () => {
|
|
|
259
265
|
externalRefResolver: new BaseResolver(),
|
|
260
266
|
document,
|
|
261
267
|
config: await makeConfig({
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
268
|
+
rules: {
|
|
269
|
+
'response-contains-property': {
|
|
270
|
+
severity: 'error',
|
|
271
|
+
names: { 201: ['id'] },
|
|
272
|
+
},
|
|
265
273
|
},
|
|
266
274
|
}),
|
|
267
275
|
});
|
|
@@ -300,8 +308,10 @@ describe('Oas3 response-contains-property', () => {
|
|
|
300
308
|
externalRefResolver: new BaseResolver(),
|
|
301
309
|
document,
|
|
302
310
|
config: await makeConfig({
|
|
303
|
-
|
|
304
|
-
|
|
311
|
+
rules: {
|
|
312
|
+
'response-contains-property': {
|
|
313
|
+
severity: 'error',
|
|
314
|
+
},
|
|
305
315
|
},
|
|
306
316
|
}),
|
|
307
317
|
});
|
|
@@ -331,9 +341,11 @@ describe('Oas3 response-contains-property', () => {
|
|
|
331
341
|
externalRefResolver: new BaseResolver(),
|
|
332
342
|
document,
|
|
333
343
|
config: await makeConfig({
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
344
|
+
rules: {
|
|
345
|
+
'response-contains-property': {
|
|
346
|
+
severity: 'error',
|
|
347
|
+
names: { '2xx': ['id'] },
|
|
348
|
+
},
|
|
337
349
|
},
|
|
338
350
|
}),
|
|
339
351
|
});
|
|
@@ -360,9 +372,11 @@ describe('Oas3 response-contains-property', () => {
|
|
|
360
372
|
externalRefResolver: new BaseResolver(),
|
|
361
373
|
document,
|
|
362
374
|
config: await makeConfig({
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
375
|
+
rules: {
|
|
376
|
+
'response-contains-property': {
|
|
377
|
+
severity: 'error',
|
|
378
|
+
names: { '2xx': ['id'] },
|
|
379
|
+
},
|
|
366
380
|
},
|
|
367
381
|
}),
|
|
368
382
|
});
|
|
@@ -5,10 +5,19 @@ import { StyleguideConfig, defaultPlugin, resolvePlugins, resolvePreset } from '
|
|
|
5
5
|
|
|
6
6
|
import { BaseResolver } from '../../../../resolve';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const allConfig = new StyleguideConfig({ ...pressets, plugins });
|
|
8
|
+
import type { Plugin, ResolvedStyleguideConfig } from '../../../../config';
|
|
9
|
+
|
|
11
10
|
describe('Oas3 Structural visitor basic', () => {
|
|
11
|
+
let plugins: Plugin[];
|
|
12
|
+
let presets: ResolvedStyleguideConfig;
|
|
13
|
+
let allConfig: StyleguideConfig;
|
|
14
|
+
|
|
15
|
+
beforeAll(async () => {
|
|
16
|
+
plugins = await resolvePlugins([defaultPlugin]);
|
|
17
|
+
presets = resolvePreset('all', plugins);
|
|
18
|
+
allConfig = new StyleguideConfig({ ...presets, plugins });
|
|
19
|
+
});
|
|
20
|
+
|
|
12
21
|
it('should report wrong types', async () => {
|
|
13
22
|
const document = parseYamlToDocument(
|
|
14
23
|
outdent`
|
|
@@ -31,7 +31,9 @@ describe('Oas3 spec-components-invalid-map-name', () => {
|
|
|
31
31
|
externalRefResolver: new BaseResolver(),
|
|
32
32
|
document,
|
|
33
33
|
config: await makeConfig({
|
|
34
|
-
|
|
34
|
+
rules: {
|
|
35
|
+
'spec-components-invalid-map-name': 'error',
|
|
36
|
+
},
|
|
35
37
|
}),
|
|
36
38
|
});
|
|
37
39
|
|
|
@@ -208,7 +210,9 @@ describe('Oas3 spec-components-invalid-map-name', () => {
|
|
|
208
210
|
externalRefResolver: new BaseResolver(),
|
|
209
211
|
document,
|
|
210
212
|
config: await makeConfig({
|
|
211
|
-
|
|
213
|
+
rules: {
|
|
214
|
+
'spec-components-invalid-map-name': 'error',
|
|
215
|
+
},
|
|
212
216
|
}),
|
|
213
217
|
});
|
|
214
218
|
|
|
@@ -235,7 +239,9 @@ describe('Oas3 spec-components-invalid-map-name', () => {
|
|
|
235
239
|
externalRefResolver: new BaseResolver(),
|
|
236
240
|
document,
|
|
237
241
|
config: await makeConfig({
|
|
238
|
-
|
|
242
|
+
rules: {
|
|
243
|
+
'spec-components-invalid-map-name': 'error',
|
|
244
|
+
},
|
|
239
245
|
}),
|
|
240
246
|
});
|
|
241
247
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Oas3Rule, Oas3Visitor } from '../../visitors';
|
|
2
1
|
import { isRef } from '../../ref-utils';
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
import type { Oas3Rule, Oas3Visitor } from '../../visitors';
|
|
4
|
+
import type { Oas3_1Schema, Oas3Parameter } from '../../typings/openapi';
|
|
4
5
|
|
|
5
6
|
export type ArrayParameterSerializationOptions = {
|
|
6
7
|
in?: string[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Problem, UserContext } from '../../walk';
|
|
2
|
-
import { Oas2Rule, Oas3Rule, Oas3Visitor } from '../../visitors';
|
|
3
|
-
import {
|
|
1
|
+
import type { Problem, UserContext } from '../../walk';
|
|
2
|
+
import type { Oas2Rule, Oas3Rule, Oas3Visitor } from '../../visitors';
|
|
3
|
+
import type {
|
|
4
4
|
Oas3Definition,
|
|
5
5
|
Oas3Parameter,
|
|
6
6
|
Oas3RequestBody,
|
package/src/rules/oas3/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Oas3RuleSet } from '../../oas-types';
|
|
2
1
|
import { Spec } from '../common/spec';
|
|
3
2
|
import { Operation2xxResponse } from '../common/operation-2xx-response';
|
|
4
3
|
import { Operation4xxResponse } from '../common/operation-4xx-response';
|
|
@@ -19,6 +18,7 @@ import { TagDescription } from '../common/tag-description';
|
|
|
19
18
|
import { InfoContact } from '../common/info-contact';
|
|
20
19
|
import { InfoLicense } from '../common/info-license';
|
|
21
20
|
import { InfoLicenseUrl } from '../common/info-license-url';
|
|
21
|
+
import { InfoLicenseStrict } from '../common/info-license-strict';
|
|
22
22
|
import { OperationDescription } from '../common/operation-description';
|
|
23
23
|
import { NoUnusedComponents } from './no-unused-components';
|
|
24
24
|
import { PathNotIncludeQuery } from '../common/path-not-include-query';
|
|
@@ -55,6 +55,7 @@ import { ComponentNameUnique } from './component-name-unique';
|
|
|
55
55
|
import { ArrayParameterSerialization } from './array-parameter-serialization';
|
|
56
56
|
import { NoRequiredSchemaPropertiesUndefined } from '../common/no-required-schema-properties-undefined';
|
|
57
57
|
|
|
58
|
+
import type { Oas3RuleSet } from '../../oas-types';
|
|
58
59
|
import type { Oas3Rule } from '../../visitors';
|
|
59
60
|
|
|
60
61
|
export const rules: Oas3RuleSet<'built-in'> = {
|
|
@@ -62,6 +63,7 @@ export const rules: Oas3RuleSet<'built-in'> = {
|
|
|
62
63
|
'info-contact': InfoContact as Oas3Rule,
|
|
63
64
|
'info-license': InfoLicense as Oas3Rule,
|
|
64
65
|
'info-license-url': InfoLicenseUrl as Oas3Rule,
|
|
66
|
+
'info-license-strict': InfoLicenseStrict as Oas3Rule,
|
|
65
67
|
'operation-2xx-response': Operation2xxResponse as Oas3Rule,
|
|
66
68
|
'operation-4xx-response': Operation4xxResponse as Oas3Rule,
|
|
67
69
|
'operation-4xx-problem-details-rfc7807': Operation4xxProblemDetailsRfc7807,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Location, isRef } from '../../ref-utils';
|
|
3
|
-
import { Oas3Example } from '../../typings/openapi';
|
|
1
|
+
import { isRef } from '../../ref-utils';
|
|
4
2
|
import { getAdditionalPropertiesOption, validateExample } from '../utils';
|
|
5
|
-
|
|
3
|
+
|
|
4
|
+
import type { Oas3Rule } from '../../visitors';
|
|
5
|
+
import type { Location } from '../../ref-utils';
|
|
6
|
+
import type { Oas3Example } from '../../typings/openapi';
|
|
7
|
+
import type { UserContext } from '../../walk';
|
|
6
8
|
|
|
7
9
|
export const ValidContentExamples: Oas3Rule = (opts) => {
|
|
8
10
|
const allowAdditionalProperties = getAdditionalPropertiesOption(opts) ?? false;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Oas3Rule } from '../../visitors';
|
|
1
|
+
import type { Oas3Rule } from '../../visitors';
|
|
2
2
|
|
|
3
3
|
export const NoServerExample: Oas3Rule = () => {
|
|
4
4
|
return {
|
|
5
5
|
Server(server, { report, location }) {
|
|
6
|
+
// eslint-disable-next-line no-useless-escape
|
|
6
7
|
const pattern = /^(.*[\/.])?(example\.com|localhost)([\/:?].*|$)/;
|
|
7
8
|
if (server.url && pattern.test(server.url)) {
|
|
8
9
|
report({
|