@redocly/openapi-core 1.18.1 → 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 +22 -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 +7 -3
- package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts +1 -0
- package/lib/benchmark/benches/lint-with-nested-rule.bench.js +7 -3
- package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts +1 -0
- package/lib/benchmark/benches/lint-with-no-rules.bench.js +7 -3
- 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 +19 -15
- 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 +18 -14
- 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.d.ts +3 -3
- package/lib/benchmark/utils.js +10 -7
- package/lib/bundle.d.ts +2 -2
- package/lib/bundle.js +127 -120
- package/lib/config/all.js +13 -1
- package/lib/config/builtIn.js +18 -17
- package/lib/config/config-resolvers.d.ts +1 -1
- package/lib/config/config-resolvers.js +241 -158
- package/lib/config/config.d.ts +4 -3
- package/lib/config/config.js +53 -34
- package/lib/config/load.d.ts +1 -1
- package/lib/config/load.js +105 -117
- package/lib/config/minimal.js +13 -0
- package/lib/config/recommended-strict.js +14 -1
- package/lib/config/recommended.js +14 -1
- package/lib/config/rules.d.ts +3 -3
- package/lib/config/rules.js +1 -2
- package/lib/config/types.d.ts +17 -4
- package/lib/config/utils.d.ts +3 -1
- package/lib/config/utils.js +78 -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.d.ts +1 -1
- package/lib/decorators/common/filters/filter-helper.js +2 -3
- package/lib/decorators/common/filters/filter-in.d.ts +1 -1
- package/lib/decorators/common/filters/filter-in.js +1 -1
- package/lib/decorators/common/filters/filter-out.d.ts +1 -1
- package/lib/decorators/common/filters/filter-out.js +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/info-override.js +1 -12
- package/lib/decorators/common/media-type-examples-override.d.ts +1 -1
- package/lib/decorators/common/media-type-examples-override.js +8 -2
- 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/remove-x-internal.js +4 -5
- package/lib/decorators/common/tag-description-override.d.ts +1 -1
- package/lib/decorators/oas2/index.d.ts +1 -1
- package/lib/decorators/oas2/remove-unused-components.js +1 -2
- package/lib/decorators/oas3/index.d.ts +1 -1
- 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.d.ts +1 -1
- package/lib/format/codeframes.js +10 -8
- package/lib/format/format.d.ts +1 -1
- package/lib/format/format.js +24 -16
- package/lib/index.d.ts +2 -1
- package/lib/index.js +6 -4
- package/lib/js-yaml/index.d.ts +1 -1
- package/lib/js-yaml/index.js +1 -1
- package/lib/lint.d.ts +3 -1
- package/lib/lint.js +92 -99
- package/lib/logger.js +2 -2
- package/lib/oas-types.d.ts +9 -5
- package/lib/oas-types.js +22 -12
- package/lib/redocly/domains.d.ts +1 -1
- package/lib/redocly/domains.js +6 -6
- package/lib/redocly/index.d.ts +1 -1
- package/lib/redocly/index.js +60 -73
- package/lib/redocly/registry-api.js +64 -82
- package/lib/ref-utils.d.ts +2 -2
- package/lib/ref-utils.js +14 -13
- package/lib/resolve.d.ts +2 -2
- package/lib/resolve.js +186 -205
- package/lib/rules/ajv.d.ts +1 -1
- package/lib/rules/ajv.js +10 -8
- 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 +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 +24 -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.d.ts +2 -2
- package/lib/rules/common/assertions/asserts.js +5 -5
- package/lib/rules/common/assertions/index.d.ts +4 -4
- package/lib/rules/common/assertions/utils.d.ts +1 -1
- package/lib/rules/common/assertions/utils.js +43 -28
- 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-invalid-parameter-examples.js +1 -2
- package/lib/rules/common/no-invalid-schema-examples.js +1 -2
- 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/no-required-schema-properties-undefined.js +1 -2
- 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/operation-tag-defined.js +1 -2
- 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-http-verbs-order.js +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/required-string-property-missing-min-length.js +2 -2
- package/lib/rules/common/response-contains-header.d.ts +1 -1
- package/lib/rules/common/response-contains-header.js +2 -2
- package/lib/rules/common/security-defined.d.ts +1 -1
- package/lib/rules/common/security-defined.js +3 -7
- package/lib/rules/common/spec-strict-refs.d.ts +1 -1
- package/lib/rules/common/spec.d.ts +2 -2
- package/lib/rules/common/spec.js +6 -7
- 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/no-unresolved-refs.js +3 -4
- 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/oas2/response-contains-property.js +1 -2
- package/lib/rules/oas3/array-parameter-serialization.d.ts +1 -1
- package/lib/rules/oas3/array-parameter-serialization.js +1 -2
- 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/component-name-unique.js +2 -4
- 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-invalid-media-type-examples.js +1 -2
- 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-server-variables-empty-enum.js +1 -2
- package/lib/rules/oas3/no-undefined-server-variable.d.ts +1 -1
- package/lib/rules/oas3/no-undefined-server-variable.js +2 -3
- package/lib/rules/oas3/no-unused-components.d.ts +1 -1
- package/lib/rules/oas3/no-unused-components.js +1 -2
- package/lib/rules/oas3/response-contains-property.d.ts +1 -1
- package/lib/rules/oas3/response-contains-property.js +1 -2
- 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 +41 -13
- package/lib/types/arazzo.d.ts +1 -2275
- package/lib/types/arazzo.js +246 -309
- package/lib/types/asyncapi2.d.ts +17 -0
- package/lib/types/{asyncapi.js → asyncapi2.js} +59 -53
- 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.d.ts +1 -1
- package/lib/types/json-schema-adapter.js +4 -18
- package/lib/types/oas2.js +6 -6
- package/lib/types/oas3.d.ts +4 -0
- package/lib/types/oas3.js +19 -19
- package/lib/types/oas3_1.d.ts +3 -0
- package/lib/types/oas3_1.js +20 -14
- package/lib/types/redocly-yaml.d.ts +8 -6
- package/lib/types/redocly-yaml.js +135 -36
- package/lib/typings/arazzo.d.ts +145 -27
- package/lib/typings/asyncapi3.d.ts +53 -0
- package/lib/typings/asyncapi3.js +2 -0
- package/lib/typings/common.d.ts +1 -1
- package/lib/typings/swagger.d.ts +2 -2
- package/lib/utils.d.ts +4 -3
- package/lib/utils.js +55 -72
- package/lib/visitors.d.ts +29 -1
- package/lib/visitors.js +21 -8
- package/lib/walk.d.ts +3 -3
- package/lib/walk.js +30 -23
- package/package.json +3 -3
- package/src/__tests__/bundle.test.ts +144 -2
- 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 +19 -4
- package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +32 -2
- package/src/config/__tests__/__snapshots__/config.test.ts.snap +24 -0
- package/src/config/__tests__/config-resolvers.test.ts +82 -0
- package/src/config/__tests__/config.test.ts +11 -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 +13 -1
- package/src/config/builtIn.ts +9 -8
- package/src/config/config-resolvers.ts +92 -21
- package/src/config/config.ts +31 -13
- package/src/config/load.ts +2 -2
- package/src/config/minimal.ts +13 -0
- package/src/config/recommended-strict.ts +14 -1
- package/src/config/recommended.ts +14 -1
- package/src/config/rules.ts +12 -4
- package/src/config/types.ts +34 -5
- package/src/config/utils.ts +28 -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/async3/index.ts +1 -0
- 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 +5 -4
- 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/index.ts +2 -1
- package/src/js-yaml/index.ts +3 -1
- package/src/lint.ts +28 -4
- package/src/logger.ts +2 -2
- package/src/oas-types.ts +41 -22
- 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 +6 -3
- 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 +9 -6
- package/src/rules/async2/no-channel-trailing-slash.ts +2 -2
- package/src/rules/async3/__tests__/channels-kebab-case.test.ts +145 -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 +26 -0
- package/src/rules/async3/no-channel-trailing-slash.ts +16 -0
- 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 +12 -4
- 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 +4 -3
- 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 +8 -6
- 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 +42 -38
- 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/{asyncapi.ts → asyncapi2.ts} +41 -35
- package/src/types/asyncapi3.ts +383 -0
- package/src/types/json-schema-adapter.ts +2 -2
- package/src/types/oas3.ts +4 -4
- package/src/types/oas3_1.ts +5 -4
- package/src/types/redocly-yaml.ts +21 -4
- package/src/typings/arazzo.ts +169 -41
- package/src/typings/asyncapi3.ts +61 -0
- package/src/typings/common.ts +1 -0
- package/src/typings/swagger.ts +2 -2
- package/src/utils.ts +5 -3
- package/src/visitors.ts +58 -1
- package/src/walk.ts +3 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/lib/types/asyncapi.d.ts +0 -2
package/lib/config/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Config } from './config';
|
|
2
|
-
import type { Api, DeprecatedInRawConfig,
|
|
2
|
+
import type { Api, DeprecatedInRawConfig, ImportedPlugin, FlatRawConfig, RawConfig, RawResolveConfig, ResolveConfig, ResolvedStyleguideConfig, RulesFields, Plugin, PluginCreator } from './types';
|
|
3
3
|
export declare function parsePresetName(presetName: string): {
|
|
4
4
|
pluginId: string;
|
|
5
5
|
configName: string;
|
|
@@ -15,3 +15,5 @@ export declare function getUniquePlugins(plugins: Plugin[]): Plugin[];
|
|
|
15
15
|
export declare class ConfigValidationError extends Error {
|
|
16
16
|
}
|
|
17
17
|
export declare function deepCloneMapWithJSON<K, V>(originalMap: Map<K, V>): Map<K, V>;
|
|
18
|
+
export declare function isDeprecatedPluginFormat(plugin: ImportedPlugin | undefined): plugin is Plugin;
|
|
19
|
+
export declare function isCommonJsPlugin(plugin: ImportedPlugin | undefined): plugin is PluginCreator;
|
package/lib/config/utils.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.
|
|
3
|
+
exports.ConfigValidationError = void 0;
|
|
4
|
+
exports.parsePresetName = parsePresetName;
|
|
5
|
+
exports.transformApiDefinitionsToApis = transformApiDefinitionsToApis;
|
|
6
|
+
exports.prefixRules = prefixRules;
|
|
7
|
+
exports.mergeExtends = mergeExtends;
|
|
8
|
+
exports.getMergedConfig = getMergedConfig;
|
|
9
|
+
exports.checkForDeprecatedFields = checkForDeprecatedFields;
|
|
10
|
+
exports.transformConfig = transformConfig;
|
|
11
|
+
exports.getResolveConfig = getResolveConfig;
|
|
12
|
+
exports.getUniquePlugins = getUniquePlugins;
|
|
13
|
+
exports.deepCloneMapWithJSON = deepCloneMapWithJSON;
|
|
14
|
+
exports.isDeprecatedPluginFormat = isDeprecatedPluginFormat;
|
|
15
|
+
exports.isCommonJsPlugin = isCommonJsPlugin;
|
|
15
16
|
const utils_1 = require("../utils");
|
|
16
17
|
const config_1 = require("./config");
|
|
17
18
|
const logger_1 = require("../logger");
|
|
@@ -24,7 +25,6 @@ function parsePresetName(presetName) {
|
|
|
24
25
|
return { pluginId: '', configName: presetName };
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
exports.parsePresetName = parsePresetName;
|
|
28
28
|
function transformApiDefinitionsToApis(apiDefinitions) {
|
|
29
29
|
if (!apiDefinitions)
|
|
30
30
|
return undefined;
|
|
@@ -34,10 +34,7 @@ function transformApiDefinitionsToApis(apiDefinitions) {
|
|
|
34
34
|
}
|
|
35
35
|
return apis;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
function extractFlatConfig(_a) {
|
|
39
|
-
var _b;
|
|
40
|
-
var { plugins, extends: _extends, rules, oas2Rules, oas3_0Rules, oas3_1Rules, async2Rules, arazzoRules, preprocessors, oas2Preprocessors, oas3_0Preprocessors, oas3_1Preprocessors, async2Preprocessors, arazzoPreprocessors, decorators, oas2Decorators, oas3_0Decorators, oas3_1Decorators, async2Decorators, arazzoDecorators } = _a, rawConfigRest = __rest(_a, ["plugins", "extends", "rules", "oas2Rules", "oas3_0Rules", "oas3_1Rules", "async2Rules", "arazzoRules", "preprocessors", "oas2Preprocessors", "oas3_0Preprocessors", "oas3_1Preprocessors", "async2Preprocessors", "arazzoPreprocessors", "decorators", "oas2Decorators", "oas3_0Decorators", "oas3_1Decorators", "async2Decorators", "arazzoDecorators"]);
|
|
37
|
+
function extractFlatConfig({ plugins, extends: _extends, rules, oas2Rules, oas3_0Rules, oas3_1Rules, async2Rules, async3Rules, arazzoRules, preprocessors, oas2Preprocessors, oas3_0Preprocessors, oas3_1Preprocessors, async2Preprocessors, async3Preprocessors, arazzoPreprocessors, decorators, oas2Decorators, oas3_0Decorators, oas3_1Decorators, async2Decorators, async3Decorators, arazzoDecorators, ...rawConfigRest }) {
|
|
41
38
|
const styleguideConfig = {
|
|
42
39
|
plugins,
|
|
43
40
|
extends: _extends,
|
|
@@ -46,20 +43,23 @@ function extractFlatConfig(_a) {
|
|
|
46
43
|
oas3_0Rules,
|
|
47
44
|
oas3_1Rules,
|
|
48
45
|
async2Rules,
|
|
46
|
+
async3Rules,
|
|
49
47
|
arazzoRules,
|
|
50
48
|
preprocessors,
|
|
51
49
|
oas2Preprocessors,
|
|
52
50
|
oas3_0Preprocessors,
|
|
53
51
|
oas3_1Preprocessors,
|
|
54
52
|
async2Preprocessors,
|
|
53
|
+
async3Preprocessors,
|
|
55
54
|
arazzoPreprocessors,
|
|
56
55
|
decorators,
|
|
57
56
|
oas2Decorators,
|
|
58
57
|
oas3_0Decorators,
|
|
59
58
|
oas3_1Decorators,
|
|
60
59
|
async2Decorators,
|
|
60
|
+
async3Decorators,
|
|
61
61
|
arazzoDecorators,
|
|
62
|
-
doNotResolveExamples:
|
|
62
|
+
doNotResolveExamples: rawConfigRest.resolve?.doNotResolveExamples,
|
|
63
63
|
};
|
|
64
64
|
if ((rawConfigRest.lint && rawConfigRest.styleguide) ||
|
|
65
65
|
(Object.values(styleguideConfig).some(utils_1.isDefined) &&
|
|
@@ -77,10 +77,12 @@ function transformApis(legacyApis) {
|
|
|
77
77
|
if (!legacyApis)
|
|
78
78
|
return undefined;
|
|
79
79
|
const apis = {};
|
|
80
|
-
for (
|
|
81
|
-
const [apiName, _b] = _a, { lint } = _b, apiContent = __rest(_b, ["lint"]);
|
|
80
|
+
for (const [apiName, { lint, ...apiContent }] of Object.entries(legacyApis)) {
|
|
82
81
|
const { styleguideConfig, rawConfigRest } = extractFlatConfig(apiContent);
|
|
83
|
-
apis[apiName] =
|
|
82
|
+
apis[apiName] = {
|
|
83
|
+
styleguide: styleguideConfig || lint,
|
|
84
|
+
...rawConfigRest,
|
|
85
|
+
};
|
|
84
86
|
}
|
|
85
87
|
return apis;
|
|
86
88
|
}
|
|
@@ -93,7 +95,6 @@ function prefixRules(rules, prefix) {
|
|
|
93
95
|
}
|
|
94
96
|
return res;
|
|
95
97
|
}
|
|
96
|
-
exports.prefixRules = prefixRules;
|
|
97
98
|
function mergeExtends(rulesConfList) {
|
|
98
99
|
const result = {
|
|
99
100
|
rules: {},
|
|
@@ -101,18 +102,21 @@ function mergeExtends(rulesConfList) {
|
|
|
101
102
|
oas3_0Rules: {},
|
|
102
103
|
oas3_1Rules: {},
|
|
103
104
|
async2Rules: {},
|
|
105
|
+
async3Rules: {},
|
|
104
106
|
arazzoRules: {},
|
|
105
107
|
preprocessors: {},
|
|
106
108
|
oas2Preprocessors: {},
|
|
107
109
|
oas3_0Preprocessors: {},
|
|
108
110
|
oas3_1Preprocessors: {},
|
|
109
111
|
async2Preprocessors: {},
|
|
112
|
+
async3Preprocessors: {},
|
|
110
113
|
arazzoPreprocessors: {},
|
|
111
114
|
decorators: {},
|
|
112
115
|
oas2Decorators: {},
|
|
113
116
|
oas3_0Decorators: {},
|
|
114
117
|
oas3_1Decorators: {},
|
|
115
118
|
async2Decorators: {},
|
|
119
|
+
async3Decorators: {},
|
|
116
120
|
arazzoDecorators: {},
|
|
117
121
|
plugins: [],
|
|
118
122
|
pluginPaths: [],
|
|
@@ -131,6 +135,8 @@ function mergeExtends(rulesConfList) {
|
|
|
131
135
|
(0, utils_1.assignExisting)(result.oas3_1Rules, rulesConf.rules || {});
|
|
132
136
|
Object.assign(result.async2Rules, rulesConf.async2Rules);
|
|
133
137
|
(0, utils_1.assignExisting)(result.async2Rules, rulesConf.rules || {});
|
|
138
|
+
Object.assign(result.async3Rules, rulesConf.async3Rules);
|
|
139
|
+
(0, utils_1.assignExisting)(result.async3Rules, rulesConf.rules || {});
|
|
134
140
|
Object.assign(result.arazzoRules, rulesConf.arazzoRules);
|
|
135
141
|
(0, utils_1.assignExisting)(result.arazzoRules, rulesConf.rules || {});
|
|
136
142
|
Object.assign(result.preprocessors, rulesConf.preprocessors);
|
|
@@ -142,6 +148,8 @@ function mergeExtends(rulesConfList) {
|
|
|
142
148
|
(0, utils_1.assignExisting)(result.oas3_1Preprocessors, rulesConf.preprocessors || {});
|
|
143
149
|
Object.assign(result.async2Preprocessors, rulesConf.async2Preprocessors);
|
|
144
150
|
(0, utils_1.assignExisting)(result.async2Preprocessors, rulesConf.preprocessors || {});
|
|
151
|
+
Object.assign(result.async3Preprocessors, rulesConf.async3Preprocessors);
|
|
152
|
+
(0, utils_1.assignExisting)(result.async3Preprocessors, rulesConf.preprocessors || {});
|
|
145
153
|
Object.assign(result.arazzoPreprocessors, rulesConf.arazzoPreprocessors);
|
|
146
154
|
(0, utils_1.assignExisting)(result.arazzoPreprocessors, rulesConf.preprocessors || {});
|
|
147
155
|
Object.assign(result.decorators, rulesConf.decorators);
|
|
@@ -153,6 +161,8 @@ function mergeExtends(rulesConfList) {
|
|
|
153
161
|
(0, utils_1.assignExisting)(result.oas3_1Decorators, rulesConf.decorators || {});
|
|
154
162
|
Object.assign(result.async2Decorators, rulesConf.async2Decorators);
|
|
155
163
|
(0, utils_1.assignExisting)(result.async2Decorators, rulesConf.decorators || {});
|
|
164
|
+
Object.assign(result.async3Decorators, rulesConf.async3Decorators);
|
|
165
|
+
(0, utils_1.assignExisting)(result.async3Decorators, rulesConf.decorators || {});
|
|
156
166
|
Object.assign(result.arazzoDecorators, rulesConf.arazzoDecorators);
|
|
157
167
|
(0, utils_1.assignExisting)(result.arazzoDecorators, rulesConf.decorators || {});
|
|
158
168
|
result.plugins.push(...(rulesConf.plugins || []));
|
|
@@ -161,29 +171,38 @@ function mergeExtends(rulesConfList) {
|
|
|
161
171
|
}
|
|
162
172
|
return result;
|
|
163
173
|
}
|
|
164
|
-
exports.mergeExtends = mergeExtends;
|
|
165
174
|
function getMergedConfig(config, apiName) {
|
|
166
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
167
175
|
const extendPaths = [
|
|
168
|
-
...Object.values(config.apis).map((api) =>
|
|
169
|
-
|
|
176
|
+
...Object.values(config.apis).map((api) => api?.styleguide?.extendPaths),
|
|
177
|
+
config.rawConfig?.styleguide?.extendPaths,
|
|
170
178
|
]
|
|
171
179
|
.flat()
|
|
172
180
|
.filter(utils_1.isTruthy);
|
|
173
181
|
const pluginPaths = [
|
|
174
|
-
...Object.values(config.apis).map((api) =>
|
|
175
|
-
|
|
182
|
+
...Object.values(config.apis).map((api) => api?.styleguide?.pluginPaths),
|
|
183
|
+
config.rawConfig?.styleguide?.pluginPaths,
|
|
176
184
|
]
|
|
177
185
|
.flat()
|
|
178
186
|
.filter(utils_1.isTruthy);
|
|
179
187
|
return apiName
|
|
180
|
-
? new config_1.Config(
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
188
|
+
? new config_1.Config({
|
|
189
|
+
...config.rawConfig,
|
|
190
|
+
styleguide: {
|
|
191
|
+
...(config.apis[apiName]
|
|
192
|
+
? config.apis[apiName].styleguide
|
|
193
|
+
: config.rawConfig.styleguide),
|
|
194
|
+
extendPaths,
|
|
195
|
+
pluginPaths,
|
|
196
|
+
},
|
|
197
|
+
theme: {
|
|
198
|
+
...config.rawConfig.theme,
|
|
199
|
+
...config.apis[apiName]?.theme,
|
|
200
|
+
},
|
|
201
|
+
files: [...config.files, ...(config.apis?.[apiName]?.files ?? [])],
|
|
202
|
+
// TODO: merge everything else here
|
|
203
|
+
}, config.configFile)
|
|
184
204
|
: config;
|
|
185
205
|
}
|
|
186
|
-
exports.getMergedConfig = getMergedConfig;
|
|
187
206
|
function checkForDeprecatedFields(deprecatedField, updatedField, rawConfig, updatedObject) {
|
|
188
207
|
const isDeprecatedFieldInApis = rawConfig.apis &&
|
|
189
208
|
Object.values(rawConfig.apis).some((api) => api[deprecatedField]);
|
|
@@ -200,9 +219,7 @@ function checkForDeprecatedFields(deprecatedField, updatedField, rawConfig, upda
|
|
|
200
219
|
(0, utils_1.showWarningForDeprecatedField)(deprecatedField, updatedField, updatedObject);
|
|
201
220
|
}
|
|
202
221
|
}
|
|
203
|
-
exports.checkForDeprecatedFields = checkForDeprecatedFields;
|
|
204
222
|
function transformConfig(rawConfig) {
|
|
205
|
-
var _a, _b;
|
|
206
223
|
const migratedFields = [
|
|
207
224
|
['apiDefinitions', 'apis', undefined],
|
|
208
225
|
['referenceDocs', 'openapi', 'theme'],
|
|
@@ -213,21 +230,31 @@ function transformConfig(rawConfig) {
|
|
|
213
230
|
for (const [deprecatedField, updatedField, updatedObject] of migratedFields) {
|
|
214
231
|
checkForDeprecatedFields(deprecatedField, updatedField, rawConfig, updatedObject);
|
|
215
232
|
}
|
|
216
|
-
const { apis, apiDefinitions, referenceDocs, lint
|
|
233
|
+
const { apis, apiDefinitions, referenceDocs, lint, ...rest } = rawConfig;
|
|
217
234
|
const { styleguideConfig, rawConfigRest } = extractFlatConfig(rest);
|
|
218
|
-
const transformedConfig =
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
235
|
+
const transformedConfig = {
|
|
236
|
+
theme: {
|
|
237
|
+
openapi: {
|
|
238
|
+
...referenceDocs,
|
|
239
|
+
...rawConfig['features.openapi'],
|
|
240
|
+
...rawConfig.theme?.openapi,
|
|
241
|
+
},
|
|
242
|
+
mockServer: {
|
|
243
|
+
...rawConfig['features.mockServer'],
|
|
244
|
+
...rawConfig.theme?.mockServer,
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
apis: transformApis(apis) || transformApiDefinitionsToApis(apiDefinitions),
|
|
248
|
+
styleguide: styleguideConfig || lint,
|
|
249
|
+
...rawConfigRest,
|
|
250
|
+
};
|
|
222
251
|
showDeprecationMessages(transformedConfig);
|
|
223
252
|
return transformedConfig;
|
|
224
253
|
}
|
|
225
|
-
exports.transformConfig = transformConfig;
|
|
226
254
|
function showDeprecationMessages(config) {
|
|
227
|
-
|
|
228
|
-
let allRules = Object.assign({}, (_a = config.styleguide) === null || _a === void 0 ? void 0 : _a.rules);
|
|
255
|
+
let allRules = { ...config.styleguide?.rules };
|
|
229
256
|
for (const api of Object.values(config.apis || {})) {
|
|
230
|
-
allRules =
|
|
257
|
+
allRules = { ...allRules, ...api?.styleguide?.rules };
|
|
231
258
|
}
|
|
232
259
|
for (const ruleKey of Object.keys(allRules)) {
|
|
233
260
|
if (ruleKey.startsWith('assert/')) {
|
|
@@ -236,15 +263,13 @@ function showDeprecationMessages(config) {
|
|
|
236
263
|
}
|
|
237
264
|
}
|
|
238
265
|
function getResolveConfig(resolve) {
|
|
239
|
-
var _a, _b;
|
|
240
266
|
return {
|
|
241
267
|
http: {
|
|
242
|
-
headers:
|
|
268
|
+
headers: resolve?.http?.headers ?? [],
|
|
243
269
|
customFetch: undefined,
|
|
244
270
|
},
|
|
245
271
|
};
|
|
246
272
|
}
|
|
247
|
-
exports.getResolveConfig = getResolveConfig;
|
|
248
273
|
function getUniquePlugins(plugins) {
|
|
249
274
|
const seen = new Set();
|
|
250
275
|
const results = [];
|
|
@@ -259,11 +284,15 @@ function getUniquePlugins(plugins) {
|
|
|
259
284
|
}
|
|
260
285
|
return results;
|
|
261
286
|
}
|
|
262
|
-
exports.getUniquePlugins = getUniquePlugins;
|
|
263
287
|
class ConfigValidationError extends Error {
|
|
264
288
|
}
|
|
265
289
|
exports.ConfigValidationError = ConfigValidationError;
|
|
266
290
|
function deepCloneMapWithJSON(originalMap) {
|
|
267
291
|
return new Map(JSON.parse(JSON.stringify([...originalMap])));
|
|
268
292
|
}
|
|
269
|
-
|
|
293
|
+
function isDeprecatedPluginFormat(plugin) {
|
|
294
|
+
return plugin !== undefined && typeof plugin === 'object' && 'id' in plugin;
|
|
295
|
+
}
|
|
296
|
+
function isCommonJsPlugin(plugin) {
|
|
297
|
+
return typeof plugin === 'function';
|
|
298
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const decorators: {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { UserContext } from '../../../walk';
|
|
1
|
+
import type { UserContext } from '../../../walk';
|
|
2
2
|
export declare function filter(node: any, ctx: UserContext, criteria: (item: any) => boolean): void;
|
|
3
3
|
export declare function checkIfMatchByStrategy(nodeValue: any, decoratorValue: any, strategy: 'all' | 'any'): boolean;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.filter = filter;
|
|
4
|
+
exports.checkIfMatchByStrategy = checkIfMatchByStrategy;
|
|
4
5
|
const ref_utils_1 = require("../../../ref-utils");
|
|
5
6
|
const utils_1 = require("../../../utils");
|
|
6
7
|
function filter(node, ctx, criteria) {
|
|
@@ -43,7 +44,6 @@ function filter(node, ctx, criteria) {
|
|
|
43
44
|
delete parent[key];
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
|
-
exports.filter = filter;
|
|
47
47
|
function checkIfMatchByStrategy(nodeValue, decoratorValue, strategy) {
|
|
48
48
|
if (nodeValue === undefined || decoratorValue === undefined) {
|
|
49
49
|
return false;
|
|
@@ -61,7 +61,6 @@ function checkIfMatchByStrategy(nodeValue, decoratorValue, strategy) {
|
|
|
61
61
|
}
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
64
|
-
exports.checkIfMatchByStrategy = checkIfMatchByStrategy;
|
|
65
64
|
function toArrayIfNeeded(value) {
|
|
66
65
|
return Array.isArray(value) ? value : [value];
|
|
67
66
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas2Decorator, Oas3Decorator } from '../../../visitors';
|
|
1
|
+
import type { Oas2Decorator, Oas3Decorator } from '../../../visitors';
|
|
2
2
|
export declare const FilterIn: Oas3Decorator | Oas2Decorator;
|
|
@@ -5,7 +5,7 @@ const filter_helper_1 = require("./filter-helper");
|
|
|
5
5
|
const DEFAULT_STRATEGY = 'any';
|
|
6
6
|
const FilterIn = ({ property, value, matchStrategy }) => {
|
|
7
7
|
const strategy = matchStrategy || DEFAULT_STRATEGY;
|
|
8
|
-
const filterInCriteria = (item) =>
|
|
8
|
+
const filterInCriteria = (item) => item?.[property] && !(0, filter_helper_1.checkIfMatchByStrategy)(item?.[property], value, strategy);
|
|
9
9
|
return {
|
|
10
10
|
any: {
|
|
11
11
|
enter: (node, ctx) => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas2Decorator, Oas3Decorator } from '../../../visitors';
|
|
1
|
+
import type { Oas2Decorator, Oas3Decorator } from '../../../visitors';
|
|
2
2
|
export declare const FilterOut: Oas3Decorator | Oas2Decorator;
|
|
@@ -5,7 +5,7 @@ const filter_helper_1 = require("./filter-helper");
|
|
|
5
5
|
const DEFAULT_STRATEGY = 'any';
|
|
6
6
|
const FilterOut = ({ property, value, matchStrategy }) => {
|
|
7
7
|
const strategy = matchStrategy || DEFAULT_STRATEGY;
|
|
8
|
-
const filterOutCriteria = (item) => (0, filter_helper_1.checkIfMatchByStrategy)(item
|
|
8
|
+
const filterOutCriteria = (item) => (0, filter_helper_1.checkIfMatchByStrategy)(item?.[property], value, strategy);
|
|
9
9
|
return {
|
|
10
10
|
any: {
|
|
11
11
|
enter: (node, ctx) => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
1
|
+
import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
2
2
|
export declare const InfoDescriptionOverride: Oas3Decorator | Oas2Decorator;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
1
|
+
import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
2
2
|
export declare const InfoOverride: Oas3Decorator | Oas2Decorator;
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.InfoOverride = void 0;
|
|
15
4
|
const InfoOverride = (newInfo) => {
|
|
@@ -19,7 +8,7 @@ const InfoOverride = (newInfo) => {
|
|
|
19
8
|
if (typeof newInfo !== 'object' || Array.isArray(newInfo) || newInfo === null) {
|
|
20
9
|
throw new Error(`"info-override" decorator should be called with an object`);
|
|
21
10
|
}
|
|
22
|
-
const { severity: _
|
|
11
|
+
const { severity: _, ...rest } = newInfo;
|
|
23
12
|
Object.assign(info, rest);
|
|
24
13
|
},
|
|
25
14
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas3Decorator } from '../../visitors';
|
|
1
|
+
import type { Oas3Decorator } from '../../visitors';
|
|
2
2
|
export declare const MediaTypeExamplesOverride: Oas3Decorator;
|
|
@@ -23,7 +23,10 @@ const MediaTypeExamplesOverride = ({ operationIds }) => {
|
|
|
23
23
|
}
|
|
24
24
|
resolvedResponse.content = resolvedResponse.content ? resolvedResponse.content : {};
|
|
25
25
|
Object.keys(properties.responses[responseCode]).forEach((mimeType) => {
|
|
26
|
-
resolvedResponse.content[mimeType] =
|
|
26
|
+
resolvedResponse.content[mimeType] = {
|
|
27
|
+
...resolvedResponse.content[mimeType],
|
|
28
|
+
examples: (0, utils_1.yamlAndJsonSyncReader)(properties.responses[responseCode][mimeType]),
|
|
29
|
+
};
|
|
27
30
|
});
|
|
28
31
|
operation.responses[responseCode] = resolvedResponse;
|
|
29
32
|
}
|
|
@@ -35,7 +38,10 @@ const MediaTypeExamplesOverride = ({ operationIds }) => {
|
|
|
35
38
|
}
|
|
36
39
|
resolvedRequest.content = resolvedRequest.content ? resolvedRequest.content : {};
|
|
37
40
|
Object.keys(properties.request).forEach((mimeType) => {
|
|
38
|
-
resolvedRequest.content[mimeType] =
|
|
41
|
+
resolvedRequest.content[mimeType] = {
|
|
42
|
+
...resolvedRequest.content[mimeType],
|
|
43
|
+
examples: (0, utils_1.yamlAndJsonSyncReader)(properties.request[mimeType]),
|
|
44
|
+
};
|
|
39
45
|
});
|
|
40
46
|
operation.requestBody = resolvedRequest;
|
|
41
47
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
1
|
+
import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
2
2
|
export declare const OperationDescriptionOverride: Oas3Decorator | Oas2Decorator;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
1
|
+
import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
2
2
|
export declare const RegistryDependencies: Oas3Decorator | Oas2Decorator;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
1
|
+
import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
2
2
|
export declare const RemoveXInternal: Oas3Decorator | Oas2Decorator;
|
|
@@ -7,20 +7,19 @@ const DEFAULT_INTERNAL_PROPERTY_NAME = 'x-internal';
|
|
|
7
7
|
const RemoveXInternal = ({ internalFlagProperty }) => {
|
|
8
8
|
const hiddenTag = internalFlagProperty || DEFAULT_INTERNAL_PROPERTY_NAME;
|
|
9
9
|
function removeInternal(node, ctx) {
|
|
10
|
-
var _a, _b, _c, _d;
|
|
11
10
|
const { parent, key } = ctx;
|
|
12
11
|
let didDelete = false;
|
|
13
12
|
if (Array.isArray(node)) {
|
|
14
13
|
for (let i = 0; i < node.length; i++) {
|
|
15
14
|
if ((0, ref_utils_1.isRef)(node[i])) {
|
|
16
15
|
const resolved = ctx.resolve(node[i]);
|
|
17
|
-
if (
|
|
16
|
+
if (resolved.node?.[hiddenTag]) {
|
|
18
17
|
node.splice(i, 1);
|
|
19
18
|
didDelete = true;
|
|
20
19
|
i--;
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
|
-
if (
|
|
22
|
+
if (node[i]?.[hiddenTag]) {
|
|
24
23
|
node.splice(i, 1);
|
|
25
24
|
didDelete = true;
|
|
26
25
|
i--;
|
|
@@ -32,12 +31,12 @@ const RemoveXInternal = ({ internalFlagProperty }) => {
|
|
|
32
31
|
node = node;
|
|
33
32
|
if ((0, ref_utils_1.isRef)(node[key])) {
|
|
34
33
|
const resolved = ctx.resolve(node[key]);
|
|
35
|
-
if (
|
|
34
|
+
if (resolved.node?.[hiddenTag]) {
|
|
36
35
|
delete node[key];
|
|
37
36
|
didDelete = true;
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
|
-
if (
|
|
39
|
+
if (node[key]?.[hiddenTag]) {
|
|
41
40
|
delete node[key];
|
|
42
41
|
didDelete = true;
|
|
43
42
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
1
|
+
import type { Oas3Decorator, Oas2Decorator } from '../../visitors';
|
|
2
2
|
export declare const TagDescriptionOverride: Oas3Decorator | Oas2Decorator;
|
|
@@ -5,9 +5,8 @@ const utils_1 = require("../../utils");
|
|
|
5
5
|
const RemoveUnusedComponents = () => {
|
|
6
6
|
const components = new Map();
|
|
7
7
|
function registerComponent(location, componentType, name) {
|
|
8
|
-
var _a, _b;
|
|
9
8
|
components.set(location.absolutePointer, {
|
|
10
|
-
usedIn:
|
|
9
|
+
usedIn: components.get(location.absolutePointer)?.usedIn ?? [],
|
|
11
10
|
componentType,
|
|
12
11
|
name,
|
|
13
12
|
});
|
|
@@ -5,9 +5,8 @@ const utils_1 = require("../../utils");
|
|
|
5
5
|
const RemoveUnusedComponents = () => {
|
|
6
6
|
const components = new Map();
|
|
7
7
|
function registerComponent(location, componentType, name) {
|
|
8
|
-
var _a, _b;
|
|
9
8
|
components.set(location.absolutePointer, {
|
|
10
|
-
usedIn:
|
|
9
|
+
usedIn: components.get(location.absolutePointer)?.usedIn ?? [],
|
|
11
10
|
componentType,
|
|
12
11
|
name,
|
|
13
12
|
});
|
package/lib/env.d.ts
CHANGED
package/lib/env.js
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.env = exports.isBrowser = void 0;
|
|
4
4
|
exports.isBrowser = typeof window !== 'undefined' ||
|
|
5
5
|
typeof process === 'undefined' ||
|
|
6
|
-
|
|
6
|
+
process?.platform === 'browser'; // main and worker thread
|
|
7
7
|
exports.env = exports.isBrowser ? {} : process.env || {};
|
package/lib/format/codeframes.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getCodeframe = getCodeframe;
|
|
4
|
+
exports.getLineColLocation = getLineColLocation;
|
|
5
|
+
exports.getAstNodeByPointer = getAstNodeByPointer;
|
|
4
6
|
const yamlAst = require("yaml-ast-parser");
|
|
5
7
|
const ref_utils_1 = require("../ref-utils");
|
|
6
8
|
const logger_1 = require("../logger");
|
|
@@ -66,7 +68,6 @@ function getCodeframe(location, color) {
|
|
|
66
68
|
return (line.substr(0, startIdx) + variant(line.substring(startIdx, endIdx)) + line.substr(endIdx));
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
|
-
exports.getCodeframe = getCodeframe;
|
|
70
71
|
function printPrefixedLines(lines) {
|
|
71
72
|
const existingLines = lines.filter(([_, line]) => line !== undefined);
|
|
72
73
|
const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));
|
|
@@ -107,15 +108,17 @@ function padSize(line) {
|
|
|
107
108
|
return line.length;
|
|
108
109
|
}
|
|
109
110
|
function getLineColLocation(location) {
|
|
110
|
-
var _a, _b;
|
|
111
111
|
if (location.pointer === undefined)
|
|
112
112
|
return location;
|
|
113
113
|
const { source, pointer, reportOnKey } = location;
|
|
114
114
|
const ast = source.getAst(yamlAst.safeLoad);
|
|
115
115
|
const astNode = getAstNodeByPointer(ast, pointer, !!reportOnKey);
|
|
116
|
-
return
|
|
116
|
+
return {
|
|
117
|
+
...location,
|
|
118
|
+
pointer: undefined,
|
|
119
|
+
...positionsToLoc(source.body, astNode?.startPosition ?? 1, astNode?.endPosition ?? 1),
|
|
120
|
+
};
|
|
117
121
|
}
|
|
118
|
-
exports.getLineColLocation = getLineColLocation;
|
|
119
122
|
function positionsToLoc(source, startPos, endPos) {
|
|
120
123
|
let currentLine = 1;
|
|
121
124
|
let currentCol = 1;
|
|
@@ -136,7 +139,7 @@ function positionsToLoc(source, startPos, endPos) {
|
|
|
136
139
|
}
|
|
137
140
|
currentCol++;
|
|
138
141
|
}
|
|
139
|
-
const end = startPos === endPos ?
|
|
142
|
+
const end = startPos === endPos ? { ...start } : { line: currentLine, col: currentCol + 1 };
|
|
140
143
|
return { start, end };
|
|
141
144
|
}
|
|
142
145
|
function getAstNodeByPointer(root, pointer, reportOnKey) {
|
|
@@ -151,7 +154,7 @@ function getAstNodeByPointer(root, pointer, reportOnKey) {
|
|
|
151
154
|
if (!mapping)
|
|
152
155
|
break;
|
|
153
156
|
currentNode = mapping;
|
|
154
|
-
if (!
|
|
157
|
+
if (!mapping?.value)
|
|
155
158
|
break; // If node has value - return value, if not - return node itself
|
|
156
159
|
currentNode = mapping.value;
|
|
157
160
|
}
|
|
@@ -180,4 +183,3 @@ function getAstNodeByPointer(root, pointer, reportOnKey) {
|
|
|
180
183
|
}
|
|
181
184
|
}
|
|
182
185
|
}
|
|
183
|
-
exports.getAstNodeByPointer = getAstNodeByPointer;
|
package/lib/format/format.d.ts
CHANGED