@redocly/openapi-core 0.0.0-snapshot.1744362365 → 0.0.0-snapshot.1744801622
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/benchmark/benches/lint-with-many-rules.bench.d.ts +1 -2
- package/lib/benchmark/benches/lint-with-many-rules.bench.js +19 -17
- package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts +1 -2
- package/lib/benchmark/benches/lint-with-nested-rule.bench.js +19 -15
- package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts +1 -2
- package/lib/benchmark/benches/lint-with-no-rules.bench.js +19 -15
- package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.d.ts +1 -2
- 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 -2
- package/lib/benchmark/benches/lint-with-top-level-rule.bench.js +19 -15
- package/lib/benchmark/benches/recommended-oas3.bench.d.ts +1 -2
- package/lib/benchmark/benches/recommended-oas3.bench.js +18 -15
- package/lib/benchmark/benches/resolve-with-no-external.bench.d.ts +1 -2
- package/lib/benchmark/benches/resolve-with-no-external.bench.js +17 -14
- package/lib/benchmark/utils.d.ts +4 -5
- package/lib/benchmark/utils.js +14 -11
- package/lib/bundle.d.ts +9 -8
- package/lib/bundle.js +84 -72
- package/lib/config/all.d.ts +1 -2
- package/lib/config/all.js +3 -2
- package/lib/config/builtIn.d.ts +1 -2
- package/lib/config/builtIn.js +49 -44
- package/lib/config/config-resolvers.d.ts +5 -6
- package/lib/config/config-resolvers.js +94 -85
- package/lib/config/config.d.ts +8 -6
- package/lib/config/config.js +73 -66
- package/lib/config/index.d.ts +7 -8
- package/lib/config/index.js +23 -8
- package/lib/config/load.d.ts +8 -5
- package/lib/config/load.js +73 -28
- package/lib/config/minimal.d.ts +1 -2
- package/lib/config/minimal.js +3 -2
- package/lib/config/recommended-strict.d.ts +1 -2
- package/lib/config/recommended-strict.js +3 -2
- package/lib/config/recommended.d.ts +1 -2
- package/lib/config/recommended.js +3 -2
- package/lib/config/rules.d.ts +3 -4
- package/lib/config/rules.js +6 -4
- package/lib/config/spec.d.ts +1 -2
- package/lib/config/spec.js +3 -2
- package/lib/config/types.d.ts +13 -6
- package/lib/config/types.js +2 -2
- package/lib/config/utils.d.ts +2 -3
- package/lib/config/utils.js +89 -75
- package/lib/decorators/arazzo/index.d.ts +0 -1
- package/lib/decorators/arazzo/index.js +4 -2
- package/lib/decorators/async2/index.d.ts +0 -1
- package/lib/decorators/async2/index.js +4 -2
- package/lib/decorators/async3/index.d.ts +0 -1
- package/lib/decorators/async3/index.js +4 -2
- package/lib/decorators/common/filters/filter-helper.d.ts +1 -2
- package/lib/decorators/common/filters/filter-helper.js +12 -9
- package/lib/decorators/common/filters/filter-in.d.ts +1 -2
- package/lib/decorators/common/filters/filter-in.js +8 -5
- package/lib/decorators/common/filters/filter-out.d.ts +1 -2
- package/lib/decorators/common/filters/filter-out.js +8 -5
- package/lib/decorators/common/info-description-override.d.ts +1 -2
- package/lib/decorators/common/info-description-override.js +7 -4
- package/lib/decorators/common/info-override.d.ts +1 -2
- package/lib/decorators/common/info-override.js +5 -2
- package/lib/decorators/common/media-type-examples-override.d.ts +1 -2
- package/lib/decorators/common/media-type-examples-override.js +10 -7
- package/lib/decorators/common/operation-description-override.d.ts +1 -2
- package/lib/decorators/common/operation-description-override.js +7 -4
- package/lib/decorators/common/registry-dependencies.d.ts +2 -0
- package/lib/decorators/common/registry-dependencies.js +24 -0
- package/lib/decorators/common/remove-x-internal.d.ts +1 -2
- package/lib/decorators/common/remove-x-internal.js +14 -11
- package/lib/decorators/common/tag-description-override.d.ts +1 -2
- package/lib/decorators/common/tag-description-override.js +7 -4
- package/lib/decorators/oas2/index.d.ts +2 -2
- package/lib/decorators/oas2/index.js +20 -16
- package/lib/decorators/oas2/remove-unused-components.d.ts +1 -2
- package/lib/decorators/oas2/remove-unused-components.js +7 -4
- package/lib/decorators/oas3/index.d.ts +2 -2
- package/lib/decorators/oas3/index.js +22 -18
- package/lib/decorators/oas3/remove-unused-components.d.ts +1 -2
- package/lib/decorators/oas3/remove-unused-components.js +8 -5
- package/lib/decorators/overlay1/index.d.ts +0 -1
- package/lib/decorators/overlay1/index.js +4 -2
- package/lib/env.d.ts +0 -1
- package/lib/env.js +5 -3
- package/lib/format/codeframes.d.ts +1 -2
- package/lib/format/codeframes.js +19 -15
- package/lib/format/format.d.ts +1 -2
- package/lib/format/format.js +62 -57
- package/lib/index.d.ts +26 -29
- package/lib/index.js +98 -24
- package/lib/js-yaml/index.d.ts +0 -1
- package/lib/js-yaml/index.js +11 -7
- package/lib/lint.d.ts +10 -11
- package/lib/lint.js +44 -39
- package/lib/logger.d.ts +1 -2
- package/lib/logger.js +17 -15
- package/lib/oas-types.d.ts +3 -4
- package/lib/oas-types.js +32 -27
- package/lib/output.d.ts +3 -0
- package/lib/output.js +9 -0
- package/lib/redocly/domains.d.ts +14 -0
- package/lib/redocly/domains.js +41 -0
- package/lib/redocly/index.d.ts +30 -0
- package/lib/redocly/index.js +131 -0
- package/lib/redocly/redocly-client-types.d.ts +8 -0
- package/lib/redocly/redocly-client-types.js +2 -0
- package/lib/redocly/registry-api-types.d.ts +29 -0
- package/lib/redocly/registry-api-types.js +2 -0
- package/lib/redocly/registry-api.d.ts +17 -0
- package/lib/redocly/registry-api.js +100 -0
- package/lib/ref-utils.d.ts +2 -3
- package/lib/ref-utils.js +33 -18
- package/lib/resolve.d.ts +2 -3
- package/lib/resolve.js +45 -36
- package/lib/rules/ajv.d.ts +3 -4
- package/lib/rules/ajv.js +10 -7
- package/lib/rules/arazzo/criteria-unique.d.ts +1 -2
- package/lib/rules/arazzo/criteria-unique.js +5 -2
- package/lib/rules/arazzo/index.d.ts +1 -2
- package/lib/rules/arazzo/index.js +35 -33
- package/lib/rules/arazzo/parameters-unique.d.ts +1 -2
- package/lib/rules/arazzo/parameters-unique.js +5 -2
- package/lib/rules/arazzo/requestBody-replacements-unique.d.ts +1 -2
- package/lib/rules/arazzo/requestBody-replacements-unique.js +5 -2
- package/lib/rules/arazzo/sourceDescription-type.d.ts +1 -2
- package/lib/rules/arazzo/sourceDescription-type.js +5 -2
- package/lib/rules/arazzo/sourceDescriptions-name-unique.d.ts +1 -2
- package/lib/rules/arazzo/sourceDescriptions-name-unique.js +5 -2
- package/lib/rules/arazzo/sourceDescriptions-not-empty.d.ts +1 -2
- package/lib/rules/arazzo/sourceDescriptions-not-empty.js +5 -2
- package/lib/rules/arazzo/step-onFailure-unique.d.ts +1 -2
- package/lib/rules/arazzo/step-onFailure-unique.js +5 -2
- package/lib/rules/arazzo/step-onSuccess-unique.d.ts +1 -2
- package/lib/rules/arazzo/step-onSuccess-unique.js +5 -2
- package/lib/rules/arazzo/stepId-unique.d.ts +1 -2
- package/lib/rules/arazzo/stepId-unique.js +5 -2
- package/lib/rules/arazzo/workflow-dependsOn.d.ts +1 -2
- package/lib/rules/arazzo/workflow-dependsOn.js +5 -2
- package/lib/rules/arazzo/workflowId-unique.d.ts +1 -2
- package/lib/rules/arazzo/workflowId-unique.js +5 -2
- package/lib/rules/async2/channels-kebab-case.d.ts +1 -2
- package/lib/rules/async2/channels-kebab-case.js +5 -2
- package/lib/rules/async2/index.d.ts +1 -2
- package/lib/rules/async2/index.js +24 -22
- package/lib/rules/async2/no-channel-trailing-slash.d.ts +1 -2
- package/lib/rules/async2/no-channel-trailing-slash.js +5 -2
- package/lib/rules/async3/channels-kebab-case.d.ts +1 -2
- package/lib/rules/async3/channels-kebab-case.js +5 -2
- package/lib/rules/async3/index.d.ts +1 -2
- package/lib/rules/async3/index.js +24 -22
- package/lib/rules/async3/no-channel-trailing-slash.d.ts +1 -2
- package/lib/rules/async3/no-channel-trailing-slash.js +6 -3
- package/lib/rules/common/assertions/asserts.d.ts +2 -3
- package/lib/rules/common/assertions/asserts.js +38 -35
- package/lib/rules/common/assertions/index.d.ts +3 -4
- package/lib/rules/common/assertions/index.js +10 -7
- package/lib/rules/common/assertions/utils.d.ts +4 -5
- package/lib/rules/common/assertions/utils.js +29 -21
- package/lib/rules/common/info-contact.d.ts +1 -2
- package/lib/rules/common/info-contact.js +7 -4
- package/lib/rules/common/info-license-strict.d.ts +1 -2
- package/lib/rules/common/info-license-strict.js +10 -7
- package/lib/rules/common/info-license-url.d.ts +1 -2
- package/lib/rules/common/info-license-url.js +7 -4
- package/lib/rules/common/info-license.d.ts +1 -2
- package/lib/rules/common/info-license.js +7 -4
- package/lib/rules/common/no-ambiguous-paths.d.ts +1 -2
- package/lib/rules/common/no-ambiguous-paths.js +5 -2
- package/lib/rules/common/no-enum-type-mismatch.d.ts +1 -2
- package/lib/rules/common/no-enum-type-mismatch.js +9 -6
- package/lib/rules/common/no-http-verbs-in-paths.d.ts +1 -2
- package/lib/rules/common/no-http-verbs-in-paths.js +8 -5
- package/lib/rules/common/no-identical-paths.d.ts +1 -2
- package/lib/rules/common/no-identical-paths.js +5 -2
- package/lib/rules/common/no-invalid-parameter-examples.d.ts +0 -1
- package/lib/rules/common/no-invalid-parameter-examples.js +9 -6
- package/lib/rules/common/no-invalid-schema-examples.d.ts +1 -2
- package/lib/rules/common/no-invalid-schema-examples.js +9 -6
- package/lib/rules/common/no-path-trailing-slash.d.ts +1 -2
- package/lib/rules/common/no-path-trailing-slash.js +5 -2
- package/lib/rules/common/no-required-schema-properties-undefined.d.ts +1 -2
- package/lib/rules/common/no-required-schema-properties-undefined.js +7 -4
- package/lib/rules/common/no-schema-type-mismatch.d.ts +1 -2
- package/lib/rules/common/no-schema-type-mismatch.js +5 -2
- package/lib/rules/common/operation-2xx-response.d.ts +1 -2
- package/lib/rules/common/operation-2xx-response.js +8 -5
- package/lib/rules/common/operation-4xx-response.d.ts +1 -2
- package/lib/rules/common/operation-4xx-response.js +8 -5
- package/lib/rules/common/operation-description.d.ts +1 -2
- package/lib/rules/common/operation-description.js +7 -4
- package/lib/rules/common/operation-operationId-unique.d.ts +1 -2
- package/lib/rules/common/operation-operationId-unique.js +5 -2
- package/lib/rules/common/operation-operationId-url-safe.d.ts +1 -2
- package/lib/rules/common/operation-operationId-url-safe.js +5 -2
- package/lib/rules/common/operation-operationId.d.ts +1 -2
- package/lib/rules/common/operation-operationId.js +7 -4
- package/lib/rules/common/operation-parameters-unique.d.ts +1 -2
- package/lib/rules/common/operation-parameters-unique.js +5 -2
- package/lib/rules/common/operation-singular-tag.d.ts +1 -2
- package/lib/rules/common/operation-singular-tag.js +5 -2
- package/lib/rules/common/operation-summary.d.ts +1 -2
- package/lib/rules/common/operation-summary.js +7 -4
- package/lib/rules/common/operation-tag-defined.d.ts +1 -2
- package/lib/rules/common/operation-tag-defined.js +5 -2
- package/lib/rules/common/parameter-description.d.ts +1 -2
- package/lib/rules/common/parameter-description.js +5 -2
- package/lib/rules/common/path-declaration-must-exist.d.ts +1 -2
- package/lib/rules/common/path-declaration-must-exist.js +5 -2
- package/lib/rules/common/path-excludes-patterns.d.ts +1 -2
- package/lib/rules/common/path-excludes-patterns.js +5 -2
- package/lib/rules/common/path-http-verbs-order.d.ts +1 -2
- package/lib/rules/common/path-http-verbs-order.js +5 -2
- package/lib/rules/common/path-not-include-query.d.ts +1 -2
- package/lib/rules/common/path-not-include-query.js +5 -2
- package/lib/rules/common/path-params-defined.d.ts +1 -2
- package/lib/rules/common/path-params-defined.js +5 -2
- package/lib/rules/common/path-segment-plural.d.ts +1 -2
- package/lib/rules/common/path-segment-plural.js +8 -5
- package/lib/rules/common/paths-kebab-case.d.ts +1 -2
- package/lib/rules/common/paths-kebab-case.js +5 -2
- package/lib/rules/common/required-string-property-missing-min-length.d.ts +1 -2
- package/lib/rules/common/required-string-property-missing-min-length.js +5 -2
- package/lib/rules/common/response-contains-header.d.ts +1 -2
- package/lib/rules/common/response-contains-header.js +8 -5
- package/lib/rules/common/scalar-property-missing-example.d.ts +1 -2
- package/lib/rules/common/scalar-property-missing-example.js +7 -4
- package/lib/rules/common/security-defined.d.ts +1 -2
- package/lib/rules/common/security-defined.js +5 -2
- package/lib/rules/common/spec-strict-refs.d.ts +1 -2
- package/lib/rules/common/spec-strict-refs.js +7 -4
- package/lib/rules/common/struct.d.ts +1 -2
- package/lib/rules/common/struct.js +21 -18
- package/lib/rules/common/tag-description.d.ts +1 -2
- package/lib/rules/common/tag-description.js +7 -4
- package/lib/rules/common/tags-alphabetical.d.ts +1 -2
- package/lib/rules/common/tags-alphabetical.js +5 -2
- package/lib/rules/no-unresolved-refs.d.ts +3 -4
- package/lib/rules/no-unresolved-refs.js +9 -5
- package/lib/rules/oas2/boolean-parameter-prefixes.d.ts +1 -2
- package/lib/rules/oas2/boolean-parameter-prefixes.js +5 -2
- package/lib/rules/oas2/index.d.ts +1 -2
- package/lib/rules/oas2/index.js +97 -95
- package/lib/rules/oas2/request-mime-type.d.ts +1 -2
- package/lib/rules/oas2/request-mime-type.js +8 -5
- package/lib/rules/oas2/response-contains-property.d.ts +1 -2
- package/lib/rules/oas2/response-contains-property.js +8 -5
- package/lib/rules/oas2/response-mime-type.d.ts +1 -2
- package/lib/rules/oas2/response-mime-type.js +8 -5
- package/lib/rules/oas3/array-parameter-serialization.d.ts +1 -2
- package/lib/rules/oas3/array-parameter-serialization.js +7 -4
- package/lib/rules/oas3/boolean-parameter-prefixes.d.ts +1 -2
- package/lib/rules/oas3/boolean-parameter-prefixes.js +5 -2
- package/lib/rules/oas3/component-name-unique.d.ts +1 -2
- package/lib/rules/oas3/component-name-unique.js +5 -2
- package/lib/rules/oas3/index.d.ts +1 -2
- package/lib/rules/oas3/index.js +121 -119
- package/lib/rules/oas3/no-empty-servers.d.ts +1 -2
- package/lib/rules/oas3/no-empty-servers.js +5 -2
- package/lib/rules/oas3/no-example-value-and-externalValue.d.ts +1 -2
- package/lib/rules/oas3/no-example-value-and-externalValue.js +5 -2
- package/lib/rules/oas3/no-invalid-media-type-examples.d.ts +1 -2
- package/lib/rules/oas3/no-invalid-media-type-examples.js +10 -7
- package/lib/rules/oas3/no-server-example.com.d.ts +1 -2
- package/lib/rules/oas3/no-server-example.com.js +5 -2
- package/lib/rules/oas3/no-server-trailing-slash.d.ts +1 -2
- package/lib/rules/oas3/no-server-trailing-slash.js +5 -2
- package/lib/rules/oas3/no-server-variables-empty-enum.d.ts +1 -2
- package/lib/rules/oas3/no-server-variables-empty-enum.js +5 -2
- package/lib/rules/oas3/no-undefined-server-variable.d.ts +1 -2
- package/lib/rules/oas3/no-undefined-server-variable.js +5 -2
- package/lib/rules/oas3/no-unused-components.d.ts +1 -2
- package/lib/rules/oas3/no-unused-components.js +5 -2
- package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.d.ts +1 -2
- package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js +9 -6
- package/lib/rules/oas3/request-mime-type.d.ts +1 -2
- package/lib/rules/oas3/request-mime-type.js +9 -6
- package/lib/rules/oas3/response-contains-property.d.ts +1 -2
- package/lib/rules/oas3/response-contains-property.js +8 -5
- package/lib/rules/oas3/response-mime-type.d.ts +1 -2
- package/lib/rules/oas3/response-mime-type.js +9 -6
- package/lib/rules/oas3/spec-components-invalid-map-name.d.ts +1 -2
- package/lib/rules/oas3/spec-components-invalid-map-name.js +5 -2
- package/lib/rules/other/stats.d.ts +3 -4
- package/lib/rules/other/stats.js +5 -2
- package/lib/rules/overlay1/index.d.ts +1 -2
- package/lib/rules/overlay1/index.js +11 -9
- package/lib/rules/respect/no-criteria-xpath.d.ts +1 -2
- package/lib/rules/respect/no-criteria-xpath.js +5 -2
- package/lib/rules/respect/respect-supported-versions.d.ts +1 -2
- package/lib/rules/respect/respect-supported-versions.js +10 -7
- package/lib/rules/utils.d.ts +3 -4
- package/lib/rules/utils.js +36 -23
- package/lib/types/arazzo.d.ts +1 -2
- package/lib/types/arazzo.js +23 -21
- package/lib/types/asyncapi2.d.ts +1 -2
- package/lib/types/asyncapi2.js +56 -54
- package/lib/types/asyncapi3.d.ts +1 -2
- package/lib/types/asyncapi3.js +43 -41
- package/lib/types/index.d.ts +0 -1
- package/lib/types/index.js +13 -7
- package/lib/types/json-schema-adapter.d.ts +1 -2
- package/lib/types/json-schema-adapter.js +17 -15
- package/lib/types/oas2.d.ts +2 -3
- package/lib/types/oas2.js +19 -17
- package/lib/types/oas3.d.ts +2 -3
- package/lib/types/oas3.js +41 -39
- package/lib/types/oas3_1.d.ts +2 -3
- package/lib/types/oas3_1.js +20 -18
- package/lib/types/overlay.d.ts +1 -2
- package/lib/types/overlay.js +6 -4
- package/lib/types/redocly-yaml.d.ts +3 -4
- package/lib/types/redocly-yaml.js +48 -31
- package/lib/typings/arazzo.d.ts +0 -1
- package/lib/typings/arazzo.js +5 -3
- package/lib/typings/asyncapi.d.ts +0 -1
- package/lib/typings/asyncapi.js +2 -2
- package/lib/typings/asyncapi3.d.ts +0 -1
- package/lib/typings/asyncapi3.js +2 -2
- package/lib/typings/common.d.ts +0 -1
- package/lib/typings/common.js +2 -2
- package/lib/typings/openapi.d.ts +0 -1
- package/lib/typings/openapi.js +2 -2
- package/lib/typings/overlay.d.ts +0 -1
- package/lib/typings/overlay.js +4 -2
- package/lib/typings/swagger.d.ts +1 -2
- package/lib/typings/swagger.js +2 -2
- package/lib/utils.d.ts +5 -4
- package/lib/utils.js +99 -52
- package/lib/visitors.d.ts +10 -11
- package/lib/visitors.js +6 -4
- package/lib/walk.d.ts +8 -9
- package/lib/walk.js +25 -23
- package/package.json +9 -30
- package/lib/benchmark/benches/lint-with-many-rules.bench.d.ts.map +0 -1
- package/lib/benchmark/benches/lint-with-many-rules.bench.js.map +0 -1
- package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts.map +0 -1
- package/lib/benchmark/benches/lint-with-nested-rule.bench.js.map +0 -1
- package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts.map +0 -1
- package/lib/benchmark/benches/lint-with-no-rules.bench.js.map +0 -1
- package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.d.ts.map +0 -1
- package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.js.map +0 -1
- package/lib/benchmark/benches/lint-with-top-level-rule.bench.d.ts.map +0 -1
- package/lib/benchmark/benches/lint-with-top-level-rule.bench.js.map +0 -1
- package/lib/benchmark/benches/recommended-oas3.bench.d.ts.map +0 -1
- package/lib/benchmark/benches/recommended-oas3.bench.js.map +0 -1
- package/lib/benchmark/benches/resolve-with-no-external.bench.d.ts.map +0 -1
- package/lib/benchmark/benches/resolve-with-no-external.bench.js.map +0 -1
- package/lib/benchmark/utils.d.ts.map +0 -1
- package/lib/benchmark/utils.js.map +0 -1
- package/lib/bundle.d.ts.map +0 -1
- package/lib/bundle.js.map +0 -1
- package/lib/config/all.d.ts.map +0 -1
- package/lib/config/all.js.map +0 -1
- package/lib/config/builtIn.d.ts.map +0 -1
- package/lib/config/builtIn.js.map +0 -1
- package/lib/config/config-resolvers.d.ts.map +0 -1
- package/lib/config/config-resolvers.js.map +0 -1
- package/lib/config/config.d.ts.map +0 -1
- package/lib/config/config.js.map +0 -1
- package/lib/config/index.d.ts.map +0 -1
- package/lib/config/index.js.map +0 -1
- package/lib/config/load.d.ts.map +0 -1
- package/lib/config/load.js.map +0 -1
- package/lib/config/minimal.d.ts.map +0 -1
- package/lib/config/minimal.js.map +0 -1
- package/lib/config/recommended-strict.d.ts.map +0 -1
- package/lib/config/recommended-strict.js.map +0 -1
- package/lib/config/recommended.d.ts.map +0 -1
- package/lib/config/recommended.js.map +0 -1
- package/lib/config/rules.d.ts.map +0 -1
- package/lib/config/rules.js.map +0 -1
- package/lib/config/spec.d.ts.map +0 -1
- package/lib/config/spec.js.map +0 -1
- package/lib/config/types.d.ts.map +0 -1
- package/lib/config/types.js.map +0 -1
- package/lib/config/utils.d.ts.map +0 -1
- package/lib/config/utils.js.map +0 -1
- package/lib/decorators/arazzo/index.d.ts.map +0 -1
- package/lib/decorators/arazzo/index.js.map +0 -1
- package/lib/decorators/async2/index.d.ts.map +0 -1
- package/lib/decorators/async2/index.js.map +0 -1
- package/lib/decorators/async3/index.d.ts.map +0 -1
- package/lib/decorators/async3/index.js.map +0 -1
- package/lib/decorators/common/filters/filter-helper.d.ts.map +0 -1
- package/lib/decorators/common/filters/filter-helper.js.map +0 -1
- package/lib/decorators/common/filters/filter-in.d.ts.map +0 -1
- package/lib/decorators/common/filters/filter-in.js.map +0 -1
- package/lib/decorators/common/filters/filter-out.d.ts.map +0 -1
- package/lib/decorators/common/filters/filter-out.js.map +0 -1
- package/lib/decorators/common/info-description-override.d.ts.map +0 -1
- package/lib/decorators/common/info-description-override.js.map +0 -1
- package/lib/decorators/common/info-override.d.ts.map +0 -1
- package/lib/decorators/common/info-override.js.map +0 -1
- package/lib/decorators/common/media-type-examples-override.d.ts.map +0 -1
- package/lib/decorators/common/media-type-examples-override.js.map +0 -1
- package/lib/decorators/common/operation-description-override.d.ts.map +0 -1
- package/lib/decorators/common/operation-description-override.js.map +0 -1
- package/lib/decorators/common/remove-x-internal.d.ts.map +0 -1
- package/lib/decorators/common/remove-x-internal.js.map +0 -1
- package/lib/decorators/common/tag-description-override.d.ts.map +0 -1
- package/lib/decorators/common/tag-description-override.js.map +0 -1
- package/lib/decorators/oas2/index.d.ts.map +0 -1
- package/lib/decorators/oas2/index.js.map +0 -1
- package/lib/decorators/oas2/remove-unused-components.d.ts.map +0 -1
- package/lib/decorators/oas2/remove-unused-components.js.map +0 -1
- package/lib/decorators/oas3/index.d.ts.map +0 -1
- package/lib/decorators/oas3/index.js.map +0 -1
- package/lib/decorators/oas3/remove-unused-components.d.ts.map +0 -1
- package/lib/decorators/oas3/remove-unused-components.js.map +0 -1
- package/lib/decorators/overlay1/index.d.ts.map +0 -1
- package/lib/decorators/overlay1/index.js.map +0 -1
- package/lib/env.d.ts.map +0 -1
- package/lib/env.js.map +0 -1
- package/lib/format/codeframes.d.ts.map +0 -1
- package/lib/format/codeframes.js.map +0 -1
- package/lib/format/format.d.ts.map +0 -1
- package/lib/format/format.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/js-yaml/index.d.ts.map +0 -1
- package/lib/js-yaml/index.js.map +0 -1
- package/lib/lint.d.ts.map +0 -1
- package/lib/lint.js.map +0 -1
- package/lib/logger.d.ts.map +0 -1
- package/lib/logger.js.map +0 -1
- package/lib/oas-types.d.ts.map +0 -1
- package/lib/oas-types.js.map +0 -1
- package/lib/ref-utils.d.ts.map +0 -1
- package/lib/ref-utils.js.map +0 -1
- package/lib/resolve.d.ts.map +0 -1
- package/lib/resolve.js.map +0 -1
- package/lib/rules/ajv.d.ts.map +0 -1
- package/lib/rules/ajv.js.map +0 -1
- package/lib/rules/arazzo/criteria-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/criteria-unique.js.map +0 -1
- package/lib/rules/arazzo/index.d.ts.map +0 -1
- package/lib/rules/arazzo/index.js.map +0 -1
- package/lib/rules/arazzo/parameters-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/parameters-unique.js.map +0 -1
- package/lib/rules/arazzo/requestBody-replacements-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/requestBody-replacements-unique.js.map +0 -1
- package/lib/rules/arazzo/sourceDescription-type.d.ts.map +0 -1
- package/lib/rules/arazzo/sourceDescription-type.js.map +0 -1
- package/lib/rules/arazzo/sourceDescriptions-name-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/sourceDescriptions-name-unique.js.map +0 -1
- package/lib/rules/arazzo/sourceDescriptions-not-empty.d.ts.map +0 -1
- package/lib/rules/arazzo/sourceDescriptions-not-empty.js.map +0 -1
- package/lib/rules/arazzo/step-onFailure-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/step-onFailure-unique.js.map +0 -1
- package/lib/rules/arazzo/step-onSuccess-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/step-onSuccess-unique.js.map +0 -1
- package/lib/rules/arazzo/stepId-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/stepId-unique.js.map +0 -1
- package/lib/rules/arazzo/workflow-dependsOn.d.ts.map +0 -1
- package/lib/rules/arazzo/workflow-dependsOn.js.map +0 -1
- package/lib/rules/arazzo/workflowId-unique.d.ts.map +0 -1
- package/lib/rules/arazzo/workflowId-unique.js.map +0 -1
- package/lib/rules/async2/channels-kebab-case.d.ts.map +0 -1
- package/lib/rules/async2/channels-kebab-case.js.map +0 -1
- package/lib/rules/async2/index.d.ts.map +0 -1
- package/lib/rules/async2/index.js.map +0 -1
- package/lib/rules/async2/no-channel-trailing-slash.d.ts.map +0 -1
- package/lib/rules/async2/no-channel-trailing-slash.js.map +0 -1
- package/lib/rules/async3/channels-kebab-case.d.ts.map +0 -1
- package/lib/rules/async3/channels-kebab-case.js.map +0 -1
- package/lib/rules/async3/index.d.ts.map +0 -1
- package/lib/rules/async3/index.js.map +0 -1
- package/lib/rules/async3/no-channel-trailing-slash.d.ts.map +0 -1
- package/lib/rules/async3/no-channel-trailing-slash.js.map +0 -1
- package/lib/rules/common/assertions/asserts.d.ts.map +0 -1
- package/lib/rules/common/assertions/asserts.js.map +0 -1
- package/lib/rules/common/assertions/index.d.ts.map +0 -1
- package/lib/rules/common/assertions/index.js.map +0 -1
- package/lib/rules/common/assertions/utils.d.ts.map +0 -1
- package/lib/rules/common/assertions/utils.js.map +0 -1
- package/lib/rules/common/info-contact.d.ts.map +0 -1
- package/lib/rules/common/info-contact.js.map +0 -1
- package/lib/rules/common/info-license-strict.d.ts.map +0 -1
- package/lib/rules/common/info-license-strict.js.map +0 -1
- package/lib/rules/common/info-license-url.d.ts.map +0 -1
- package/lib/rules/common/info-license-url.js.map +0 -1
- package/lib/rules/common/info-license.d.ts.map +0 -1
- package/lib/rules/common/info-license.js.map +0 -1
- package/lib/rules/common/no-ambiguous-paths.d.ts.map +0 -1
- package/lib/rules/common/no-ambiguous-paths.js.map +0 -1
- package/lib/rules/common/no-enum-type-mismatch.d.ts.map +0 -1
- package/lib/rules/common/no-enum-type-mismatch.js.map +0 -1
- package/lib/rules/common/no-http-verbs-in-paths.d.ts.map +0 -1
- package/lib/rules/common/no-http-verbs-in-paths.js.map +0 -1
- package/lib/rules/common/no-identical-paths.d.ts.map +0 -1
- package/lib/rules/common/no-identical-paths.js.map +0 -1
- package/lib/rules/common/no-invalid-parameter-examples.d.ts.map +0 -1
- package/lib/rules/common/no-invalid-parameter-examples.js.map +0 -1
- package/lib/rules/common/no-invalid-schema-examples.d.ts.map +0 -1
- package/lib/rules/common/no-invalid-schema-examples.js.map +0 -1
- package/lib/rules/common/no-path-trailing-slash.d.ts.map +0 -1
- package/lib/rules/common/no-path-trailing-slash.js.map +0 -1
- package/lib/rules/common/no-required-schema-properties-undefined.d.ts.map +0 -1
- package/lib/rules/common/no-required-schema-properties-undefined.js.map +0 -1
- package/lib/rules/common/no-schema-type-mismatch.d.ts.map +0 -1
- package/lib/rules/common/no-schema-type-mismatch.js.map +0 -1
- package/lib/rules/common/operation-2xx-response.d.ts.map +0 -1
- package/lib/rules/common/operation-2xx-response.js.map +0 -1
- package/lib/rules/common/operation-4xx-response.d.ts.map +0 -1
- package/lib/rules/common/operation-4xx-response.js.map +0 -1
- package/lib/rules/common/operation-description.d.ts.map +0 -1
- package/lib/rules/common/operation-description.js.map +0 -1
- package/lib/rules/common/operation-operationId-unique.d.ts.map +0 -1
- package/lib/rules/common/operation-operationId-unique.js.map +0 -1
- package/lib/rules/common/operation-operationId-url-safe.d.ts.map +0 -1
- package/lib/rules/common/operation-operationId-url-safe.js.map +0 -1
- package/lib/rules/common/operation-operationId.d.ts.map +0 -1
- package/lib/rules/common/operation-operationId.js.map +0 -1
- package/lib/rules/common/operation-parameters-unique.d.ts.map +0 -1
- package/lib/rules/common/operation-parameters-unique.js.map +0 -1
- package/lib/rules/common/operation-singular-tag.d.ts.map +0 -1
- package/lib/rules/common/operation-singular-tag.js.map +0 -1
- package/lib/rules/common/operation-summary.d.ts.map +0 -1
- package/lib/rules/common/operation-summary.js.map +0 -1
- package/lib/rules/common/operation-tag-defined.d.ts.map +0 -1
- package/lib/rules/common/operation-tag-defined.js.map +0 -1
- package/lib/rules/common/parameter-description.d.ts.map +0 -1
- package/lib/rules/common/parameter-description.js.map +0 -1
- package/lib/rules/common/path-declaration-must-exist.d.ts.map +0 -1
- package/lib/rules/common/path-declaration-must-exist.js.map +0 -1
- package/lib/rules/common/path-excludes-patterns.d.ts.map +0 -1
- package/lib/rules/common/path-excludes-patterns.js.map +0 -1
- package/lib/rules/common/path-http-verbs-order.d.ts.map +0 -1
- package/lib/rules/common/path-http-verbs-order.js.map +0 -1
- package/lib/rules/common/path-not-include-query.d.ts.map +0 -1
- package/lib/rules/common/path-not-include-query.js.map +0 -1
- package/lib/rules/common/path-params-defined.d.ts.map +0 -1
- package/lib/rules/common/path-params-defined.js.map +0 -1
- package/lib/rules/common/path-segment-plural.d.ts.map +0 -1
- package/lib/rules/common/path-segment-plural.js.map +0 -1
- package/lib/rules/common/paths-kebab-case.d.ts.map +0 -1
- package/lib/rules/common/paths-kebab-case.js.map +0 -1
- package/lib/rules/common/required-string-property-missing-min-length.d.ts.map +0 -1
- package/lib/rules/common/required-string-property-missing-min-length.js.map +0 -1
- package/lib/rules/common/response-contains-header.d.ts.map +0 -1
- package/lib/rules/common/response-contains-header.js.map +0 -1
- package/lib/rules/common/scalar-property-missing-example.d.ts.map +0 -1
- package/lib/rules/common/scalar-property-missing-example.js.map +0 -1
- package/lib/rules/common/security-defined.d.ts.map +0 -1
- package/lib/rules/common/security-defined.js.map +0 -1
- package/lib/rules/common/spec-strict-refs.d.ts.map +0 -1
- package/lib/rules/common/spec-strict-refs.js.map +0 -1
- package/lib/rules/common/struct.d.ts.map +0 -1
- package/lib/rules/common/struct.js.map +0 -1
- package/lib/rules/common/tag-description.d.ts.map +0 -1
- package/lib/rules/common/tag-description.js.map +0 -1
- package/lib/rules/common/tags-alphabetical.d.ts.map +0 -1
- package/lib/rules/common/tags-alphabetical.js.map +0 -1
- package/lib/rules/no-unresolved-refs.d.ts.map +0 -1
- package/lib/rules/no-unresolved-refs.js.map +0 -1
- package/lib/rules/oas2/boolean-parameter-prefixes.d.ts.map +0 -1
- package/lib/rules/oas2/boolean-parameter-prefixes.js.map +0 -1
- package/lib/rules/oas2/index.d.ts.map +0 -1
- package/lib/rules/oas2/index.js.map +0 -1
- package/lib/rules/oas2/request-mime-type.d.ts.map +0 -1
- package/lib/rules/oas2/request-mime-type.js.map +0 -1
- package/lib/rules/oas2/response-contains-property.d.ts.map +0 -1
- package/lib/rules/oas2/response-contains-property.js.map +0 -1
- package/lib/rules/oas2/response-mime-type.d.ts.map +0 -1
- package/lib/rules/oas2/response-mime-type.js.map +0 -1
- package/lib/rules/oas3/array-parameter-serialization.d.ts.map +0 -1
- package/lib/rules/oas3/array-parameter-serialization.js.map +0 -1
- package/lib/rules/oas3/boolean-parameter-prefixes.d.ts.map +0 -1
- package/lib/rules/oas3/boolean-parameter-prefixes.js.map +0 -1
- package/lib/rules/oas3/component-name-unique.d.ts.map +0 -1
- package/lib/rules/oas3/component-name-unique.js.map +0 -1
- package/lib/rules/oas3/index.d.ts.map +0 -1
- package/lib/rules/oas3/index.js.map +0 -1
- package/lib/rules/oas3/no-empty-servers.d.ts.map +0 -1
- package/lib/rules/oas3/no-empty-servers.js.map +0 -1
- package/lib/rules/oas3/no-example-value-and-externalValue.d.ts.map +0 -1
- package/lib/rules/oas3/no-example-value-and-externalValue.js.map +0 -1
- package/lib/rules/oas3/no-invalid-media-type-examples.d.ts.map +0 -1
- package/lib/rules/oas3/no-invalid-media-type-examples.js.map +0 -1
- package/lib/rules/oas3/no-server-example.com.d.ts.map +0 -1
- package/lib/rules/oas3/no-server-example.com.js.map +0 -1
- package/lib/rules/oas3/no-server-trailing-slash.d.ts.map +0 -1
- package/lib/rules/oas3/no-server-trailing-slash.js.map +0 -1
- package/lib/rules/oas3/no-server-variables-empty-enum.d.ts.map +0 -1
- package/lib/rules/oas3/no-server-variables-empty-enum.js.map +0 -1
- package/lib/rules/oas3/no-undefined-server-variable.d.ts.map +0 -1
- package/lib/rules/oas3/no-undefined-server-variable.js.map +0 -1
- package/lib/rules/oas3/no-unused-components.d.ts.map +0 -1
- package/lib/rules/oas3/no-unused-components.js.map +0 -1
- package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.d.ts.map +0 -1
- package/lib/rules/oas3/operation-4xx-problem-details-rfc7807.js.map +0 -1
- package/lib/rules/oas3/request-mime-type.d.ts.map +0 -1
- package/lib/rules/oas3/request-mime-type.js.map +0 -1
- package/lib/rules/oas3/response-contains-property.d.ts.map +0 -1
- package/lib/rules/oas3/response-contains-property.js.map +0 -1
- package/lib/rules/oas3/response-mime-type.d.ts.map +0 -1
- package/lib/rules/oas3/response-mime-type.js.map +0 -1
- package/lib/rules/oas3/spec-components-invalid-map-name.d.ts.map +0 -1
- package/lib/rules/oas3/spec-components-invalid-map-name.js.map +0 -1
- package/lib/rules/other/stats.d.ts.map +0 -1
- package/lib/rules/other/stats.js.map +0 -1
- package/lib/rules/overlay1/index.d.ts.map +0 -1
- package/lib/rules/overlay1/index.js.map +0 -1
- package/lib/rules/respect/no-criteria-xpath.d.ts.map +0 -1
- package/lib/rules/respect/no-criteria-xpath.js.map +0 -1
- package/lib/rules/respect/respect-supported-versions.d.ts.map +0 -1
- package/lib/rules/respect/respect-supported-versions.js.map +0 -1
- package/lib/rules/utils.d.ts.map +0 -1
- package/lib/rules/utils.js.map +0 -1
- package/lib/types/arazzo.d.ts.map +0 -1
- package/lib/types/arazzo.js.map +0 -1
- package/lib/types/asyncapi2.d.ts.map +0 -1
- package/lib/types/asyncapi2.js.map +0 -1
- package/lib/types/asyncapi3.d.ts.map +0 -1
- package/lib/types/asyncapi3.js.map +0 -1
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/index.js.map +0 -1
- package/lib/types/json-schema-adapter.d.ts.map +0 -1
- package/lib/types/json-schema-adapter.js.map +0 -1
- package/lib/types/oas2.d.ts.map +0 -1
- package/lib/types/oas2.js.map +0 -1
- package/lib/types/oas3.d.ts.map +0 -1
- package/lib/types/oas3.js.map +0 -1
- package/lib/types/oas3_1.d.ts.map +0 -1
- package/lib/types/oas3_1.js.map +0 -1
- package/lib/types/overlay.d.ts.map +0 -1
- package/lib/types/overlay.js.map +0 -1
- package/lib/types/redocly-yaml.d.ts.map +0 -1
- package/lib/types/redocly-yaml.js.map +0 -1
- package/lib/typings/arazzo.d.ts.map +0 -1
- package/lib/typings/arazzo.js.map +0 -1
- package/lib/typings/asyncapi.d.ts.map +0 -1
- package/lib/typings/asyncapi.js.map +0 -1
- package/lib/typings/asyncapi3.d.ts.map +0 -1
- package/lib/typings/asyncapi3.js.map +0 -1
- package/lib/typings/common.d.ts.map +0 -1
- package/lib/typings/common.js.map +0 -1
- package/lib/typings/openapi.d.ts.map +0 -1
- package/lib/typings/openapi.js.map +0 -1
- package/lib/typings/overlay.d.ts.map +0 -1
- package/lib/typings/overlay.js.map +0 -1
- package/lib/typings/swagger.d.ts.map +0 -1
- package/lib/typings/swagger.js.map +0 -1
- package/lib/utils/error.d.ts +0 -3
- package/lib/utils/error.d.ts.map +0 -1
- package/lib/utils/error.js +0 -3
- package/lib/utils/error.js.map +0 -1
- package/lib/utils.d.ts.map +0 -1
- package/lib/utils.js.map +0 -1
- package/lib/visitors.d.ts.map +0 -1
- package/lib/visitors.js.map +0 -1
- package/lib/walk.d.ts.map +0 -1
- package/lib/walk.js.map +0 -1
package/lib/lint.js
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lint = lint;
|
|
4
|
+
exports.lintFromString = lintFromString;
|
|
5
|
+
exports.lintDocument = lintDocument;
|
|
6
|
+
exports.lintConfig = lintConfig;
|
|
7
|
+
const config_1 = require("@redocly/config");
|
|
8
|
+
const resolve_1 = require("./resolve");
|
|
9
|
+
const visitors_1 = require("./visitors");
|
|
10
|
+
const walk_1 = require("./walk");
|
|
11
|
+
const config_2 = require("./config");
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const ajv_1 = require("./rules/ajv");
|
|
14
|
+
const oas_types_1 = require("./oas-types");
|
|
15
|
+
const redocly_yaml_1 = require("./types/redocly-yaml");
|
|
16
|
+
const struct_1 = require("./rules/common/struct");
|
|
17
|
+
const no_unresolved_refs_1 = require("./rules/no-unresolved-refs");
|
|
18
|
+
async function lint(opts) {
|
|
19
|
+
const { ref, externalRefResolver = new resolve_1.BaseResolver(opts.config.resolve) } = opts;
|
|
14
20
|
const document = (await externalRefResolver.resolveDocument(null, ref, true));
|
|
15
21
|
opts.collectSpecData?.(document.parsed);
|
|
16
22
|
return lintDocument({
|
|
@@ -20,9 +26,9 @@ export async function lint(opts) {
|
|
|
20
26
|
config: opts.config.styleguide,
|
|
21
27
|
});
|
|
22
28
|
}
|
|
23
|
-
|
|
24
|
-
const { source, absoluteRef, externalRefResolver = new BaseResolver(opts.config.resolve) } = opts;
|
|
25
|
-
const document = makeDocumentFromString(source, absoluteRef || '/');
|
|
29
|
+
async function lintFromString(opts) {
|
|
30
|
+
const { source, absoluteRef, externalRefResolver = new resolve_1.BaseResolver(opts.config.resolve) } = opts;
|
|
31
|
+
const document = (0, resolve_1.makeDocumentFromString)(source, absoluteRef || '/');
|
|
26
32
|
return lintDocument({
|
|
27
33
|
document,
|
|
28
34
|
...opts,
|
|
@@ -30,42 +36,42 @@ export async function lintFromString(opts) {
|
|
|
30
36
|
config: opts.config.styleguide,
|
|
31
37
|
});
|
|
32
38
|
}
|
|
33
|
-
|
|
34
|
-
releaseAjvInstance(); // FIXME: preprocessors can modify nodes which are then cached to ajv-instance by absolute path
|
|
39
|
+
async function lintDocument(opts) {
|
|
40
|
+
(0, ajv_1.releaseAjvInstance)(); // FIXME: preprocessors can modify nodes which are then cached to ajv-instance by absolute path
|
|
35
41
|
const { document, customTypes, externalRefResolver, config } = opts;
|
|
36
|
-
const specVersion = detectSpec(document.parsed);
|
|
37
|
-
const specMajorVersion = getMajorSpecVersion(specVersion);
|
|
42
|
+
const specVersion = (0, oas_types_1.detectSpec)(document.parsed);
|
|
43
|
+
const specMajorVersion = (0, oas_types_1.getMajorSpecVersion)(specVersion);
|
|
38
44
|
const rules = config.getRulesForSpecVersion(specMajorVersion);
|
|
39
|
-
const types = normalizeTypes(config.extendTypes(customTypes ?? getTypes(specVersion), specVersion), config);
|
|
45
|
+
const types = (0, types_1.normalizeTypes)(config.extendTypes(customTypes ?? (0, oas_types_1.getTypes)(specVersion), specVersion), config);
|
|
40
46
|
const ctx = {
|
|
41
47
|
problems: [],
|
|
42
48
|
oasVersion: specVersion,
|
|
43
49
|
visitorsData: {},
|
|
44
50
|
};
|
|
45
|
-
const preprocessors = initRules(rules, config, 'preprocessors', specVersion);
|
|
46
|
-
const regularRules = initRules(rules, config, 'rules', specVersion);
|
|
47
|
-
let resolvedRefMap = await resolveDocument({
|
|
51
|
+
const preprocessors = (0, config_2.initRules)(rules, config, 'preprocessors', specVersion);
|
|
52
|
+
const regularRules = (0, config_2.initRules)(rules, config, 'rules', specVersion);
|
|
53
|
+
let resolvedRefMap = await (0, resolve_1.resolveDocument)({
|
|
48
54
|
rootDocument: document,
|
|
49
55
|
rootType: types.Root,
|
|
50
56
|
externalRefResolver,
|
|
51
57
|
});
|
|
52
58
|
if (preprocessors.length > 0) {
|
|
53
59
|
// Make additional pass to resolve refs defined in preprocessors.
|
|
54
|
-
walkDocument({
|
|
60
|
+
(0, walk_1.walkDocument)({
|
|
55
61
|
document,
|
|
56
62
|
rootType: types.Root,
|
|
57
|
-
normalizedVisitors: normalizeVisitors(preprocessors, types),
|
|
63
|
+
normalizedVisitors: (0, visitors_1.normalizeVisitors)(preprocessors, types),
|
|
58
64
|
resolvedRefMap,
|
|
59
65
|
ctx,
|
|
60
66
|
});
|
|
61
|
-
resolvedRefMap = await resolveDocument({
|
|
67
|
+
resolvedRefMap = await (0, resolve_1.resolveDocument)({
|
|
62
68
|
rootDocument: document,
|
|
63
69
|
rootType: types.Root,
|
|
64
70
|
externalRefResolver,
|
|
65
71
|
});
|
|
66
72
|
}
|
|
67
|
-
const normalizedVisitors = normalizeVisitors(regularRules, types);
|
|
68
|
-
walkDocument({
|
|
73
|
+
const normalizedVisitors = (0, visitors_1.normalizeVisitors)(regularRules, types);
|
|
74
|
+
(0, walk_1.walkDocument)({
|
|
69
75
|
document,
|
|
70
76
|
rootType: types.Root,
|
|
71
77
|
normalizedVisitors,
|
|
@@ -74,34 +80,34 @@ export async function lintDocument(opts) {
|
|
|
74
80
|
});
|
|
75
81
|
return ctx.problems.map((problem) => config.addProblemToIgnore(problem));
|
|
76
82
|
}
|
|
77
|
-
|
|
78
|
-
const { document, severity, externalRefResolver = new BaseResolver(), config } = opts;
|
|
83
|
+
async function lintConfig(opts) {
|
|
84
|
+
const { document, severity, externalRefResolver = new resolve_1.BaseResolver(), config } = opts;
|
|
79
85
|
const ctx = {
|
|
80
86
|
problems: [],
|
|
81
|
-
oasVersion: SpecVersion.OAS3_0,
|
|
87
|
+
oasVersion: oas_types_1.SpecVersion.OAS3_0,
|
|
82
88
|
visitorsData: {},
|
|
83
89
|
};
|
|
84
|
-
const types = normalizeTypes(opts.externalConfigTypes || createConfigTypes(rootRedoclyConfigSchema, config), { doNotResolveExamples: config.styleguide.doNotResolveExamples });
|
|
90
|
+
const types = (0, types_1.normalizeTypes)(opts.externalConfigTypes || (0, redocly_yaml_1.createConfigTypes)(config_1.rootRedoclyConfigSchema, config), { doNotResolveExamples: config.styleguide.doNotResolveExamples });
|
|
85
91
|
const rules = [
|
|
86
92
|
{
|
|
87
93
|
severity: severity || 'error',
|
|
88
94
|
ruleId: 'configuration spec',
|
|
89
|
-
visitor: Struct({ severity: 'error' }),
|
|
95
|
+
visitor: (0, struct_1.Struct)({ severity: 'error' }),
|
|
90
96
|
},
|
|
91
97
|
{
|
|
92
98
|
severity: severity || 'error',
|
|
93
99
|
ruleId: 'configuration no-unresolved-refs',
|
|
94
|
-
visitor: NoUnresolvedRefs({ severity: 'error' }),
|
|
100
|
+
visitor: (0, no_unresolved_refs_1.NoUnresolvedRefs)({ severity: 'error' }),
|
|
95
101
|
},
|
|
96
102
|
];
|
|
97
|
-
const normalizedVisitors = normalizeVisitors(rules, types);
|
|
103
|
+
const normalizedVisitors = (0, visitors_1.normalizeVisitors)(rules, types);
|
|
98
104
|
const resolvedRefMap = opts.resolvedRefMap ||
|
|
99
|
-
(await resolveDocument({
|
|
105
|
+
(await (0, resolve_1.resolveDocument)({
|
|
100
106
|
rootDocument: document,
|
|
101
107
|
rootType: types.ConfigRoot,
|
|
102
108
|
externalRefResolver,
|
|
103
109
|
}));
|
|
104
|
-
walkDocument({
|
|
110
|
+
(0, walk_1.walkDocument)({
|
|
105
111
|
document,
|
|
106
112
|
rootType: types.ConfigRoot,
|
|
107
113
|
normalizedVisitors,
|
|
@@ -110,4 +116,3 @@ export async function lintConfig(opts) {
|
|
|
110
116
|
});
|
|
111
117
|
return ctx.problems;
|
|
112
118
|
}
|
|
113
|
-
//# sourceMappingURL=lint.js.map
|
package/lib/logger.d.ts
CHANGED
|
@@ -4,11 +4,10 @@ export declare const colorOptions: {
|
|
|
4
4
|
};
|
|
5
5
|
export declare const colorize: typeof colorette;
|
|
6
6
|
declare class Logger {
|
|
7
|
+
protected stderr(str: string): boolean;
|
|
7
8
|
info(str: string): boolean | void;
|
|
8
9
|
warn(str: string): boolean | void;
|
|
9
10
|
error(str: string): boolean | void;
|
|
10
|
-
output(str: string): boolean | void;
|
|
11
11
|
}
|
|
12
12
|
export declare const logger: Logger;
|
|
13
13
|
export {};
|
|
14
|
-
//# sourceMappingURL=logger.d.ts.map
|
package/lib/logger.js
CHANGED
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = exports.colorize = exports.colorOptions = void 0;
|
|
4
|
+
const colorette = require("colorette");
|
|
5
|
+
const env_1 = require("./env");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
4
7
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
5
8
|
// @ts-ignore this works but some types are not working
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
exports.colorOptions = colorette.options;
|
|
10
|
+
exports.colorize = new Proxy(colorette, {
|
|
8
11
|
get(target, prop) {
|
|
9
|
-
if (isBrowser) {
|
|
10
|
-
return identity;
|
|
12
|
+
if (env_1.isBrowser) {
|
|
13
|
+
return utils_1.identity;
|
|
11
14
|
}
|
|
12
15
|
return target[prop];
|
|
13
16
|
},
|
|
14
17
|
});
|
|
15
18
|
class Logger {
|
|
19
|
+
stderr(str) {
|
|
20
|
+
return process.stderr.write(str);
|
|
21
|
+
}
|
|
16
22
|
info(str) {
|
|
17
|
-
return isBrowser ? console.
|
|
23
|
+
return env_1.isBrowser ? console.log(str) : this.stderr(str);
|
|
18
24
|
}
|
|
19
25
|
warn(str) {
|
|
20
|
-
return isBrowser ? console.warn(str) :
|
|
26
|
+
return env_1.isBrowser ? console.warn(str) : this.stderr(exports.colorize.yellow(str));
|
|
21
27
|
}
|
|
22
28
|
error(str) {
|
|
23
|
-
return isBrowser ? console.error(str) :
|
|
24
|
-
}
|
|
25
|
-
output(str) {
|
|
26
|
-
return isBrowser ? console.info(str) : process.stdout.write(str);
|
|
29
|
+
return env_1.isBrowser ? console.error(str) : this.stderr(exports.colorize.red(str));
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=logger.js.map
|
|
32
|
+
exports.logger = new Logger();
|
package/lib/oas-types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { BuiltInAsync2RuleId, BuiltInAsync3RuleId, BuiltInArazzo1RuleId, BuiltInOAS2RuleId, BuiltInOAS3RuleId, BuiltInOverlay1RuleId } from './types/redocly-yaml
|
|
2
|
-
import type { Oas3Rule, Oas3Preprocessor, Oas2Rule, Oas2Preprocessor, Async2Preprocessor, Async2Rule, Async3Preprocessor, Async3Rule, Arazzo1Preprocessor, Arazzo1Rule, Overlay1Preprocessor, Overlay1Rule } from './visitors
|
|
1
|
+
import type { BuiltInAsync2RuleId, BuiltInAsync3RuleId, BuiltInArazzo1RuleId, BuiltInOAS2RuleId, BuiltInOAS3RuleId, BuiltInOverlay1RuleId } from './types/redocly-yaml';
|
|
2
|
+
import type { Oas3Rule, Oas3Preprocessor, Oas2Rule, Oas2Preprocessor, Async2Preprocessor, Async2Rule, Async3Preprocessor, Async3Rule, Arazzo1Preprocessor, Arazzo1Rule, Overlay1Preprocessor, Overlay1Rule } from './visitors';
|
|
3
3
|
export declare enum SpecVersion {
|
|
4
4
|
OAS2 = "oas2",
|
|
5
5
|
OAS3_0 = "oas3_0",
|
|
@@ -38,5 +38,4 @@ export type Arazzo1DecoratorsSet = Record<string, Arazzo1Preprocessor>;
|
|
|
38
38
|
export type Overlay1DecoratorsSet = Record<string, Overlay1Preprocessor>;
|
|
39
39
|
export declare function detectSpec(root: unknown): SpecVersion;
|
|
40
40
|
export declare function getMajorSpecVersion(version: SpecVersion): SpecMajorVersion;
|
|
41
|
-
export declare function getTypes(spec: SpecVersion): Record<string, import("./
|
|
42
|
-
//# sourceMappingURL=oas-types.d.ts.map
|
|
41
|
+
export declare function getTypes(spec: SpecVersion): Record<string, import("./types").NodeType> | Record<"Root" | "Tag" | "TagList" | "ExternalDocs" | "SecurityRequirement" | "SecurityRequirementList" | "Info" | "Contact" | "License" | "Paths" | "PathItem" | "Parameter" | "ParameterList" | "ParameterItems" | "Operation" | "Example" | "ExamplesMap" | "Examples" | "Header" | "Responses" | "Response" | "Schema" | "Xml" | "SchemaProperties" | "NamedSchemas" | "NamedResponses" | "NamedParameters" | "NamedSecuritySchemes" | "SecurityScheme" | "TagGroup" | "TagGroups" | "EnumDescriptions" | "Logo" | "XCodeSample" | "XCodeSampleList" | "XServer" | "XServerList", import("./types").NodeType> | Record<"Root" | "Tag" | "TagList" | "ExternalDocs" | "SecurityRequirement" | "SecurityRequirementList" | "Info" | "Contact" | "License" | "Paths" | "PathItem" | "Parameter" | "ParameterList" | "Operation" | "Example" | "ExamplesMap" | "Header" | "Responses" | "Response" | "Schema" | "Xml" | "SchemaProperties" | "NamedSchemas" | "NamedResponses" | "NamedParameters" | "NamedSecuritySchemes" | "SecurityScheme" | "TagGroup" | "TagGroups" | "EnumDescriptions" | "Logo" | "XCodeSample" | "XCodeSampleList" | "Server" | "ServerList" | "ServerVariable" | "ServerVariablesMap" | "Callback" | "CallbacksMap" | "RequestBody" | "MediaTypesMap" | "MediaType" | "Encoding" | "EncodingMap" | "HeadersMap" | "Link" | "LinksMap" | "DiscriminatorMapping" | "Discriminator" | "Components" | "NamedExamples" | "NamedRequestBodies" | "NamedHeaders" | "NamedLinks" | "NamedCallbacks" | "ImplicitFlow" | "PasswordFlow" | "ClientCredentials" | "AuthorizationCode" | "OAuth2Flows" | "XUsePkce" | "WebhooksMap", import("./types").NodeType> | Record<"Root" | "Info" | "License" | "Operation" | "Schema" | "SchemaProperties" | "SecurityScheme" | "Components" | "PatternProperties" | "NamedPathItems" | "DependentRequired", import("./types").NodeType>;
|
package/lib/oas-types.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpecMajorVersion = exports.SpecVersion = void 0;
|
|
4
|
+
exports.detectSpec = detectSpec;
|
|
5
|
+
exports.getMajorSpecVersion = getMajorSpecVersion;
|
|
6
|
+
exports.getTypes = getTypes;
|
|
7
|
+
const oas2_1 = require("./types/oas2");
|
|
8
|
+
const oas3_1 = require("./types/oas3");
|
|
9
|
+
const oas3_1_1 = require("./types/oas3_1");
|
|
10
|
+
const asyncapi2_1 = require("./types/asyncapi2");
|
|
11
|
+
const asyncapi3_1 = require("./types/asyncapi3");
|
|
12
|
+
const arazzo_1 = require("./types/arazzo");
|
|
13
|
+
const overlay_1 = require("./types/overlay");
|
|
14
|
+
const utils_1 = require("./utils");
|
|
15
|
+
const arazzo_2 = require("./typings/arazzo");
|
|
16
|
+
var SpecVersion;
|
|
11
17
|
(function (SpecVersion) {
|
|
12
18
|
SpecVersion["OAS2"] = "oas2";
|
|
13
19
|
SpecVersion["OAS3_0"] = "oas3_0";
|
|
@@ -16,8 +22,8 @@ export var SpecVersion;
|
|
|
16
22
|
SpecVersion["Async3"] = "async3";
|
|
17
23
|
SpecVersion["Arazzo1"] = "arazzo1";
|
|
18
24
|
SpecVersion["Overlay1"] = "overlay1";
|
|
19
|
-
})(SpecVersion || (SpecVersion = {}));
|
|
20
|
-
|
|
25
|
+
})(SpecVersion || (exports.SpecVersion = SpecVersion = {}));
|
|
26
|
+
var SpecMajorVersion;
|
|
21
27
|
(function (SpecMajorVersion) {
|
|
22
28
|
SpecMajorVersion["OAS2"] = "oas2";
|
|
23
29
|
SpecMajorVersion["OAS3"] = "oas3";
|
|
@@ -25,18 +31,18 @@ export var SpecMajorVersion;
|
|
|
25
31
|
SpecMajorVersion["Async3"] = "async3";
|
|
26
32
|
SpecMajorVersion["Arazzo1"] = "arazzo1";
|
|
27
33
|
SpecMajorVersion["Overlay1"] = "overlay1";
|
|
28
|
-
})(SpecMajorVersion || (SpecMajorVersion = {}));
|
|
34
|
+
})(SpecMajorVersion || (exports.SpecMajorVersion = SpecMajorVersion = {}));
|
|
29
35
|
const typesMap = {
|
|
30
|
-
[SpecVersion.OAS2]: Oas2Types,
|
|
31
|
-
[SpecVersion.OAS3_0]: Oas3Types,
|
|
32
|
-
[SpecVersion.OAS3_1]: Oas3_1Types,
|
|
33
|
-
[SpecVersion.Async2]: AsyncApi2Types,
|
|
34
|
-
[SpecVersion.Async3]: AsyncApi3Types,
|
|
35
|
-
[SpecVersion.Arazzo1]: Arazzo1Types,
|
|
36
|
-
[SpecVersion.Overlay1]: Overlay1Types,
|
|
36
|
+
[SpecVersion.OAS2]: oas2_1.Oas2Types,
|
|
37
|
+
[SpecVersion.OAS3_0]: oas3_1.Oas3Types,
|
|
38
|
+
[SpecVersion.OAS3_1]: oas3_1_1.Oas3_1Types,
|
|
39
|
+
[SpecVersion.Async2]: asyncapi2_1.AsyncApi2Types,
|
|
40
|
+
[SpecVersion.Async3]: asyncapi3_1.AsyncApi3Types,
|
|
41
|
+
[SpecVersion.Arazzo1]: arazzo_1.Arazzo1Types,
|
|
42
|
+
[SpecVersion.Overlay1]: overlay_1.Overlay1Types,
|
|
37
43
|
};
|
|
38
|
-
|
|
39
|
-
if (!isPlainObject(root)) {
|
|
44
|
+
function detectSpec(root) {
|
|
45
|
+
if (!(0, utils_1.isPlainObject)(root)) {
|
|
40
46
|
throw new Error(`Document must be JSON object, got ${typeof root}`);
|
|
41
47
|
}
|
|
42
48
|
if (root.openapi && typeof root.openapi !== 'string') {
|
|
@@ -63,15 +69,15 @@ export function detectSpec(root) {
|
|
|
63
69
|
if (root.asyncapi) {
|
|
64
70
|
throw new Error(`Unsupported AsyncAPI version: ${root.asyncapi}`);
|
|
65
71
|
}
|
|
66
|
-
if (typeof root.arazzo === 'string' && VERSION_PATTERN.test(root.arazzo)) {
|
|
72
|
+
if (typeof root.arazzo === 'string' && arazzo_2.VERSION_PATTERN.test(root.arazzo)) {
|
|
67
73
|
return SpecVersion.Arazzo1;
|
|
68
74
|
}
|
|
69
|
-
if (typeof root.overlay === 'string' && VERSION_PATTERN.test(root.overlay)) {
|
|
75
|
+
if (typeof root.overlay === 'string' && arazzo_2.VERSION_PATTERN.test(root.overlay)) {
|
|
70
76
|
return SpecVersion.Overlay1;
|
|
71
77
|
}
|
|
72
78
|
throw new Error(`Unsupported specification`);
|
|
73
79
|
}
|
|
74
|
-
|
|
80
|
+
function getMajorSpecVersion(version) {
|
|
75
81
|
if (version === SpecVersion.OAS2) {
|
|
76
82
|
return SpecMajorVersion.OAS2;
|
|
77
83
|
}
|
|
@@ -91,7 +97,6 @@ export function getMajorSpecVersion(version) {
|
|
|
91
97
|
return SpecMajorVersion.OAS3;
|
|
92
98
|
}
|
|
93
99
|
}
|
|
94
|
-
|
|
100
|
+
function getTypes(spec) {
|
|
95
101
|
return typesMap[spec];
|
|
96
102
|
}
|
|
97
|
-
//# sourceMappingURL=oas-types.js.map
|
package/lib/output.d.ts
ADDED
package/lib/output.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Region } from '../config/types';
|
|
2
|
+
export declare const DEFAULT_REGION = "us";
|
|
3
|
+
export declare const DOMAINS: {
|
|
4
|
+
us: string;
|
|
5
|
+
eu: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const AVAILABLE_REGIONS: Region[];
|
|
8
|
+
export declare function getDomains(): {
|
|
9
|
+
us: string;
|
|
10
|
+
eu: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function setRedoclyDomain(domain: string): void;
|
|
13
|
+
export declare function getRedoclyDomain(): string;
|
|
14
|
+
export declare function isRedoclyRegistryURL(link: string): boolean;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AVAILABLE_REGIONS = exports.DOMAINS = exports.DEFAULT_REGION = void 0;
|
|
4
|
+
exports.getDomains = getDomains;
|
|
5
|
+
exports.setRedoclyDomain = setRedoclyDomain;
|
|
6
|
+
exports.getRedoclyDomain = getRedoclyDomain;
|
|
7
|
+
exports.isRedoclyRegistryURL = isRedoclyRegistryURL;
|
|
8
|
+
let redoclyDomain = 'redocly.com';
|
|
9
|
+
exports.DEFAULT_REGION = 'us';
|
|
10
|
+
exports.DOMAINS = getDomains();
|
|
11
|
+
exports.AVAILABLE_REGIONS = Object.keys(exports.DOMAINS);
|
|
12
|
+
function getDomains() {
|
|
13
|
+
const domains = {
|
|
14
|
+
us: 'redocly.com',
|
|
15
|
+
eu: 'eu.redocly.com',
|
|
16
|
+
};
|
|
17
|
+
// FIXME: temporary fix for our lab environments
|
|
18
|
+
const domain = redoclyDomain;
|
|
19
|
+
if (domain?.endsWith('.redocly.host')) {
|
|
20
|
+
domains[domain.split('.')[0]] = domain;
|
|
21
|
+
}
|
|
22
|
+
if (domain === 'redoc.online') {
|
|
23
|
+
domains[domain] = domain;
|
|
24
|
+
}
|
|
25
|
+
return domains;
|
|
26
|
+
}
|
|
27
|
+
function setRedoclyDomain(domain) {
|
|
28
|
+
redoclyDomain = domain;
|
|
29
|
+
}
|
|
30
|
+
function getRedoclyDomain() {
|
|
31
|
+
return redoclyDomain;
|
|
32
|
+
}
|
|
33
|
+
function isRedoclyRegistryURL(link) {
|
|
34
|
+
const domain = getRedoclyDomain() || exports.DOMAINS[exports.DEFAULT_REGION];
|
|
35
|
+
const legacyDomain = domain === 'redocly.com' ? 'redoc.ly' : domain;
|
|
36
|
+
if (!link.startsWith(`https://api.${domain}/registry/`) &&
|
|
37
|
+
!link.startsWith(`https://api.${legacyDomain}/registry/`)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { RegistryApi } from './registry-api';
|
|
2
|
+
import type { RegionalToken, RegionalTokenWithValidity } from './redocly-client-types';
|
|
3
|
+
import type { AccessTokens, Region } from '../config/types';
|
|
4
|
+
export declare const TOKEN_FILENAME = ".redocly-config.json";
|
|
5
|
+
export declare class RedoclyClient {
|
|
6
|
+
private accessTokens;
|
|
7
|
+
private region;
|
|
8
|
+
domain: string;
|
|
9
|
+
registryApi: RegistryApi;
|
|
10
|
+
constructor(region?: Region);
|
|
11
|
+
loadRegion(region?: Region): Region;
|
|
12
|
+
getRegion(): Region;
|
|
13
|
+
hasTokens(): boolean;
|
|
14
|
+
hasToken(): boolean;
|
|
15
|
+
getAuthorizationHeader(): Promise<string | undefined>;
|
|
16
|
+
setAccessTokens(accessTokens: AccessTokens): void;
|
|
17
|
+
loadTokens(): void;
|
|
18
|
+
getAllTokens(): RegionalToken[];
|
|
19
|
+
getValidTokens(): Promise<RegionalTokenWithValidity[]>;
|
|
20
|
+
getTokens(): Promise<RegionalTokenWithValidity[]>;
|
|
21
|
+
isAuthorizedWithRedoclyByRegion(): Promise<boolean>;
|
|
22
|
+
isAuthorizedWithRedocly(): Promise<boolean>;
|
|
23
|
+
readCredentialsFile(credentialsPath: string): any;
|
|
24
|
+
verifyToken(accessToken: string, verbose?: boolean): Promise<{
|
|
25
|
+
viewerId: string;
|
|
26
|
+
organizations: string[];
|
|
27
|
+
}>;
|
|
28
|
+
login(accessToken: string, verbose?: boolean): Promise<void>;
|
|
29
|
+
logout(): void;
|
|
30
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedoclyClient = exports.TOKEN_FILENAME = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const os_1 = require("os");
|
|
7
|
+
const registry_api_1 = require("./registry-api");
|
|
8
|
+
const env_1 = require("../env");
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
const logger_1 = require("../logger");
|
|
11
|
+
const domains_1 = require("./domains");
|
|
12
|
+
exports.TOKEN_FILENAME = '.redocly-config.json';
|
|
13
|
+
class RedoclyClient {
|
|
14
|
+
constructor(region) {
|
|
15
|
+
this.accessTokens = {};
|
|
16
|
+
this.region = this.loadRegion(region);
|
|
17
|
+
this.loadTokens();
|
|
18
|
+
this.domain = region ? domains_1.DOMAINS[region] : env_1.env.REDOCLY_DOMAIN || domains_1.DOMAINS[domains_1.DEFAULT_REGION];
|
|
19
|
+
(0, domains_1.setRedoclyDomain)(this.domain);
|
|
20
|
+
this.registryApi = new registry_api_1.RegistryApi(this.accessTokens, this.region);
|
|
21
|
+
}
|
|
22
|
+
loadRegion(region) {
|
|
23
|
+
if (region && !domains_1.DOMAINS[region]) {
|
|
24
|
+
throw new Error(`Invalid argument: region in config file.\nGiven: ${logger_1.colorize.green(region)}, choices: "us", "eu".`);
|
|
25
|
+
}
|
|
26
|
+
if ((0, domains_1.getRedoclyDomain)()) {
|
|
27
|
+
return (domains_1.AVAILABLE_REGIONS.find((region) => domains_1.DOMAINS[region] === (0, domains_1.getRedoclyDomain)()) || domains_1.DEFAULT_REGION);
|
|
28
|
+
}
|
|
29
|
+
return region || domains_1.DEFAULT_REGION;
|
|
30
|
+
}
|
|
31
|
+
getRegion() {
|
|
32
|
+
return this.region;
|
|
33
|
+
}
|
|
34
|
+
hasTokens() {
|
|
35
|
+
return (0, utils_1.isNotEmptyObject)(this.accessTokens);
|
|
36
|
+
}
|
|
37
|
+
// <backward compatibility: old versions of portal>
|
|
38
|
+
hasToken() {
|
|
39
|
+
return !!this.accessTokens[this.region];
|
|
40
|
+
}
|
|
41
|
+
async getAuthorizationHeader() {
|
|
42
|
+
return this.accessTokens[this.region];
|
|
43
|
+
}
|
|
44
|
+
// </backward compatibility: portal>
|
|
45
|
+
setAccessTokens(accessTokens) {
|
|
46
|
+
this.accessTokens = accessTokens;
|
|
47
|
+
}
|
|
48
|
+
loadTokens() {
|
|
49
|
+
const credentialsPath = (0, path_1.resolve)((0, os_1.homedir)(), exports.TOKEN_FILENAME);
|
|
50
|
+
const credentials = this.readCredentialsFile(credentialsPath);
|
|
51
|
+
if ((0, utils_1.isNotEmptyObject)(credentials)) {
|
|
52
|
+
this.setAccessTokens({
|
|
53
|
+
...credentials,
|
|
54
|
+
...(credentials.token &&
|
|
55
|
+
!credentials[this.region] && {
|
|
56
|
+
[this.region]: credentials.token,
|
|
57
|
+
}),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (env_1.env.REDOCLY_AUTHORIZATION) {
|
|
61
|
+
this.setAccessTokens({
|
|
62
|
+
...this.accessTokens,
|
|
63
|
+
[this.region]: env_1.env.REDOCLY_AUTHORIZATION,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
getAllTokens() {
|
|
68
|
+
return Object.entries(this.accessTokens)
|
|
69
|
+
.filter(([region]) => domains_1.AVAILABLE_REGIONS.includes(region))
|
|
70
|
+
.map(([region, token]) => ({ region, token }));
|
|
71
|
+
}
|
|
72
|
+
async getValidTokens() {
|
|
73
|
+
const allTokens = this.getAllTokens();
|
|
74
|
+
const verifiedTokens = await Promise.allSettled(allTokens.map(({ token }) => this.verifyToken(token)));
|
|
75
|
+
return allTokens
|
|
76
|
+
.filter((_, index) => verifiedTokens[index].status === 'fulfilled')
|
|
77
|
+
.map(({ token, region }) => ({ token, region, valid: true }));
|
|
78
|
+
}
|
|
79
|
+
async getTokens() {
|
|
80
|
+
return this.hasTokens() ? await this.getValidTokens() : [];
|
|
81
|
+
}
|
|
82
|
+
async isAuthorizedWithRedoclyByRegion() {
|
|
83
|
+
if (!this.hasTokens()) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
const accessToken = this.accessTokens[this.region];
|
|
87
|
+
if (!accessToken) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
await this.verifyToken(accessToken);
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async isAuthorizedWithRedocly() {
|
|
99
|
+
return this.hasTokens() && (0, utils_1.isNotEmptyArray)(await this.getValidTokens());
|
|
100
|
+
}
|
|
101
|
+
readCredentialsFile(credentialsPath) {
|
|
102
|
+
return (0, fs_1.existsSync)(credentialsPath) ? JSON.parse((0, fs_1.readFileSync)(credentialsPath, 'utf-8')) : {};
|
|
103
|
+
}
|
|
104
|
+
async verifyToken(accessToken, verbose = false) {
|
|
105
|
+
return this.registryApi.authStatus(accessToken, verbose);
|
|
106
|
+
}
|
|
107
|
+
async login(accessToken, verbose = false) {
|
|
108
|
+
const credentialsPath = (0, path_1.resolve)((0, os_1.homedir)(), exports.TOKEN_FILENAME);
|
|
109
|
+
try {
|
|
110
|
+
await this.verifyToken(accessToken, verbose);
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
throw new Error('Authorization failed. Please check if you entered a valid API key.');
|
|
114
|
+
}
|
|
115
|
+
const credentials = {
|
|
116
|
+
...this.readCredentialsFile(credentialsPath),
|
|
117
|
+
[this.region]: accessToken,
|
|
118
|
+
token: accessToken, // FIXME: backward compatibility, remove on 1.0.0
|
|
119
|
+
};
|
|
120
|
+
this.accessTokens = credentials;
|
|
121
|
+
this.registryApi.setAccessTokens(credentials);
|
|
122
|
+
(0, fs_1.writeFileSync)(credentialsPath, JSON.stringify(credentials, null, 2));
|
|
123
|
+
}
|
|
124
|
+
logout() {
|
|
125
|
+
const credentialsPath = (0, path_1.resolve)((0, os_1.homedir)(), exports.TOKEN_FILENAME);
|
|
126
|
+
if ((0, fs_1.existsSync)(credentialsPath)) {
|
|
127
|
+
(0, fs_1.unlinkSync)(credentialsPath);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.RedoclyClient = RedoclyClient;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
interface VersionParams {
|
|
2
|
+
organizationId: string;
|
|
3
|
+
name: string;
|
|
4
|
+
version: string;
|
|
5
|
+
}
|
|
6
|
+
export interface PrepareFileuploadParams extends VersionParams {
|
|
7
|
+
filesHash: string;
|
|
8
|
+
filename: string;
|
|
9
|
+
isUpsert?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface PushApiParams extends VersionParams {
|
|
12
|
+
rootFilePath: string;
|
|
13
|
+
filePaths: string[];
|
|
14
|
+
branch?: string;
|
|
15
|
+
isUpsert?: boolean;
|
|
16
|
+
isPublic?: boolean;
|
|
17
|
+
batchId?: string;
|
|
18
|
+
batchSize?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface PrepareFileuploadOKResponse {
|
|
21
|
+
filePath: string;
|
|
22
|
+
signedUploadUrl: string;
|
|
23
|
+
}
|
|
24
|
+
export interface NotFoundProblemResponse {
|
|
25
|
+
status: 404;
|
|
26
|
+
title: 'Not Found';
|
|
27
|
+
code: 'ORGANIZATION_NOT_FOUND' | 'API_VERSION_NOT_FOUND';
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PrepareFileuploadOKResponse, PrepareFileuploadParams, PushApiParams } from './registry-api-types';
|
|
2
|
+
import type { AccessTokens, Region } from '../config/types';
|
|
3
|
+
export declare class RegistryApi {
|
|
4
|
+
private accessTokens;
|
|
5
|
+
private region;
|
|
6
|
+
constructor(accessTokens: AccessTokens, region: Region);
|
|
7
|
+
get accessToken(): string | false | undefined;
|
|
8
|
+
getBaseUrl(): string;
|
|
9
|
+
setAccessTokens(accessTokens: AccessTokens): this;
|
|
10
|
+
private request;
|
|
11
|
+
authStatus(accessToken: string, verbose?: boolean): Promise<{
|
|
12
|
+
viewerId: string;
|
|
13
|
+
organizations: string[];
|
|
14
|
+
}>;
|
|
15
|
+
prepareFileUpload({ organizationId, name, version, filesHash, filename, isUpsert, }: PrepareFileuploadParams): Promise<PrepareFileuploadOKResponse>;
|
|
16
|
+
pushApi({ organizationId, name, version, rootFilePath, filePaths, branch, isUpsert, isPublic, batchId, batchSize, }: PushApiParams): Promise<void>;
|
|
17
|
+
}
|