@skmtc/core 0.29.0 → 0.31.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/esm/_dnt.polyfills.d.ts +11 -0
- package/esm/_dnt.polyfills.js +14 -0
- package/esm/context/ParseContext.js +9 -1
- package/esm/context/generateTypes.d.ts +14 -2
- package/esm/context/generateTypes.js +5 -1
- package/esm/dsl/GeneratorKeys.d.ts +2 -2
- package/esm/dsl/GeneratorKeys.js +6 -3
- package/esm/helpers/naming.d.ts +2 -1
- package/esm/helpers/naming.js +4 -2
- package/esm/mod.d.ts +1 -0
- package/esm/mod.js +1 -0
- package/esm/oas/discriminator/Discriminator.d.ts +3 -0
- package/esm/oas/discriminator/Discriminator.js +7 -0
- package/esm/oas/document/Document.d.ts +7 -0
- package/esm/oas/document/Document.js +8 -0
- package/esm/oas/example/Example.d.ts +10 -1
- package/esm/oas/example/Example.js +16 -0
- package/esm/oas/header/Header.d.ts +4 -2
- package/esm/oas/header/Header.js +12 -5
- package/esm/oas/mediaType/MediaType.d.ts +12 -0
- package/esm/oas/mediaType/MediaType.js +24 -0
- package/esm/oas/mediaType/jsonMediaType.d.ts +50 -0
- package/esm/oas/mediaType/jsonMediaType.js +64 -0
- package/esm/oas/mediaType/toContentSchema.d.ts +8 -0
- package/esm/oas/mediaType/toContentSchema.js +6 -0
- package/esm/oas/operation/Operation.d.ts +10 -2
- package/esm/oas/operation/Operation.js +20 -7
- package/esm/oas/parameter/Parameter.d.ts +3 -2
- package/esm/oas/parameter/Parameter.js +11 -5
- package/esm/oas/parameter/parameter-types.d.ts +10 -2
- package/esm/oas/parameter/parameter-types.js +3 -1
- package/esm/oas/requestBody/RequestBody.d.ts +11 -0
- package/esm/oas/requestBody/RequestBody.js +16 -2
- package/esm/oas/response/Response.d.ts +17 -1
- package/esm/oas/response/Response.js +24 -2
- package/esm/oas/securitySchemes/SecurityScheme.d.ts +47 -4
- package/esm/oas/securitySchemes/SecurityScheme.js +46 -1
- package/esm/oas/securitySchemes/security-scheme-types.d.ts +21 -0
- package/esm/oas/server/Server.d.ts +8 -2
- package/esm/oas/server/Server.js +10 -1
- package/esm/oas/tag/Tag.d.ts +9 -0
- package/esm/oas/tag/Tag.js +9 -0
- package/esm/oas/webhook/Webhook.d.ts +4 -4
- package/esm/oas/webhook/Webhook.js +6 -6
- package/esm/parse/logBodyMediaTypes.d.ts +27 -0
- package/esm/parse/logBodyMediaTypes.js +50 -0
- package/esm/parse/toOasDialect.d.ts +8 -7
- package/esm/parse/toOasDialect.js +4 -2
- package/esm/parse/v3-0/methods.d.ts +11 -0
- package/esm/parse/v3-0/methods.js +16 -0
- package/esm/parse/v3-0/operation/toOperationsV3.js +5 -5
- package/esm/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
- package/esm/parse/v3-0/parameter/toParameterV3.js +17 -3
- package/esm/parse/v3-0/requestBody/toRequestBodiesV3.js +4 -1
- package/esm/parse/v3-0/response/toResponseV3.js +4 -1
- package/esm/parse/v3-0/securitySchemes/toSecuritySchemes.js +50 -38
- package/esm/parse/v3-0/webhook/toWebhooksV3.js +5 -5
- package/esm/parse/v3-1/methods.d.ts +11 -0
- package/esm/parse/v3-1/methods.js +16 -0
- package/esm/parse/v3-1/operation/toOperationsV3.js +5 -5
- package/esm/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
- package/esm/parse/v3-1/parameter/toParameterV3.js +17 -3
- package/esm/parse/v3-1/requestBody/toRequestBodiesV3.js +4 -1
- package/esm/parse/v3-1/response/toResponseV3.js +4 -1
- package/esm/parse/v3-1/securitySchemes/toSecuritySchemes.js +50 -38
- package/esm/parse/v3-1/webhook/toWebhooksV3.js +5 -5
- package/esm/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
- package/esm/parse/v3-2/_helpers/parseDefault.js +39 -0
- package/esm/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
- package/esm/parse/v3-2/_helpers/parseEnum.js +23 -0
- package/esm/parse/v3-2/_helpers/parseExample.d.ts +41 -0
- package/esm/parse/v3-2/_helpers/parseExample.js +37 -0
- package/esm/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
- package/esm/parse/v3-2/_helpers/parseNullable.js +140 -0
- package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +9 -0
- package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
- package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.js +11 -0
- package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +11 -0
- package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/cross-product.js +3 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-intersection.js +27 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-union.js +69 -0
- package/esm/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/generic-merge.js +12 -0
- package/esm/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
- package/esm/parse/v3-2/_merge-all-of/is-equal.js +19 -0
- package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.js +44 -0
- package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +7 -0
- package/esm/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-enum-values.js +32 -0
- package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.js +41 -0
- package/esm/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
- package/esm/parse/v3-2/_merge-all-of/merge-intersection.js +16 -0
- package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.js +41 -0
- package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
- package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.js +28 -0
- package/esm/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/merge-properties.js +25 -0
- package/esm/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-required.js +10 -0
- package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.js +55 -0
- package/esm/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
- package/esm/parse/v3-2/_merge-all-of/merge-union.js +53 -0
- package/esm/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/merge.js +155 -0
- package/esm/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/nullable-merge.js +12 -0
- package/esm/parse/v3-2/_merge-all-of/types.d.ts +14 -0
- package/esm/parse/v3-2/_merge-all-of/types.js +2 -0
- package/esm/parse/v3-2/array/toArray.d.ts +80 -0
- package/esm/parse/v3-2/array/toArray.js +165 -0
- package/esm/parse/v3-2/boolean/toBoolean.d.ts +78 -0
- package/esm/parse/v3-2/boolean/toBoolean.js +139 -0
- package/esm/parse/v3-2/components/toComponentsV3.d.ts +14 -0
- package/esm/parse/v3-2/components/toComponentsV3.js +43 -0
- package/esm/parse/v3-2/contact/toContactV3.d.ts +5 -0
- package/esm/parse/v3-2/contact/toContactV3.js +18 -0
- package/esm/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
- package/esm/parse/v3-2/discriminator/toDiscriminatorV3.js +21 -0
- package/esm/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
- package/esm/parse/v3-2/document/toDocumentFieldsV3.js +33 -0
- package/esm/parse/v3-2/example/toExamplesV3.d.ts +77 -0
- package/esm/parse/v3-2/example/toExamplesV3.js +143 -0
- package/esm/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
- package/esm/parse/v3-2/externalDocs/toExternalDocs.js +15 -0
- package/esm/parse/v3-2/header/toHeadersV3.d.ts +18 -0
- package/esm/parse/v3-2/header/toHeadersV3.js +47 -0
- package/esm/parse/v3-2/info/toInfoV3.d.ts +10 -0
- package/esm/parse/v3-2/info/toInfoV3.js +23 -0
- package/esm/parse/v3-2/integer/toInteger.d.ts +21 -0
- package/esm/parse/v3-2/integer/toInteger.js +115 -0
- package/esm/parse/v3-2/license/toLicenseV3.d.ts +5 -0
- package/esm/parse/v3-2/license/toLicenseV3.js +17 -0
- package/esm/parse/v3-2/link/toLinksV3.d.ts +16 -0
- package/esm/parse/v3-2/link/toLinksV3.js +40 -0
- package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
- package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.js +375 -0
- package/esm/parse/v3-2/methods.d.ts +17 -0
- package/esm/parse/v3-2/methods.js +21 -0
- package/esm/parse/v3-2/number/toNumber.d.ts +10 -0
- package/esm/parse/v3-2/number/toNumber.js +115 -0
- package/esm/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
- package/esm/parse/v3-2/object/toAdditionalPropertiesV3.js +10 -0
- package/esm/parse/v3-2/object/toObject.d.ts +10 -0
- package/esm/parse/v3-2/object/toObject.js +90 -0
- package/esm/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
- package/esm/parse/v3-2/operation/toOperationsV3.js +129 -0
- package/esm/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
- package/esm/parse/v3-2/parameter/toParameterV3.js +152 -0
- package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
- package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.js +39 -0
- package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
- package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +34 -0
- package/esm/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
- package/esm/parse/v3-2/pathItem/toPathItemV3.js +45 -0
- package/esm/parse/v3-2/ref/toRefV31.d.ts +19 -0
- package/esm/parse/v3-2/ref/toRefV31.js +10 -0
- package/esm/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
- package/esm/parse/v3-2/requestBody/toRequestBodiesV3.js +47 -0
- package/esm/parse/v3-2/response/toResponseV3.d.ts +29 -0
- package/esm/parse/v3-2/response/toResponseV3.js +59 -0
- package/esm/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
- package/esm/parse/v3-2/schema/toSchemasV3.js +511 -0
- package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
- package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.js +9 -0
- package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
- package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.js +152 -0
- package/esm/parse/v3-2/server/toServerV3.d.ts +26 -0
- package/esm/parse/v3-2/server/toServerV3.js +31 -0
- package/esm/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
- package/esm/parse/v3-2/serverVariable/toServerVariableV3.js +30 -0
- package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
- package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +25 -0
- package/esm/parse/v3-2/string/toString.d.ts +146 -0
- package/esm/parse/v3-2/string/toString.js +211 -0
- package/esm/parse/v3-2/tag/toTagsV3.d.ts +22 -0
- package/esm/parse/v3-2/tag/toTagsV3.js +78 -0
- package/esm/parse/v3-2/union/toUnion.d.ts +12 -0
- package/esm/parse/v3-2/union/toUnion.js +68 -0
- package/esm/parse/v3-2/unknown/toUnknown.d.ts +10 -0
- package/esm/parse/v3-2/unknown/toUnknown.js +19 -0
- package/esm/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
- package/esm/parse/v3-2/webhook/toWebhooksV3.js +139 -0
- package/esm/types/Method.d.ts +7 -4
- package/esm/types/Method.js +17 -4
- package/esm/types/Preview.d.ts +2 -1
- package/esm/types/SkmtcDocument.d.ts +6 -6
- package/package.json +1 -1
- package/script/_dnt.polyfills.d.ts +11 -0
- package/script/_dnt.polyfills.js +14 -0
- package/script/context/ParseContext.js +9 -1
- package/script/context/generateTypes.d.ts +14 -2
- package/script/context/generateTypes.js +5 -1
- package/script/dsl/GeneratorKeys.d.ts +2 -2
- package/script/dsl/GeneratorKeys.js +6 -3
- package/script/helpers/naming.d.ts +2 -1
- package/script/helpers/naming.js +4 -2
- package/script/mod.d.ts +1 -0
- package/script/mod.js +1 -0
- package/script/oas/discriminator/Discriminator.d.ts +3 -0
- package/script/oas/discriminator/Discriminator.js +7 -0
- package/script/oas/document/Document.d.ts +7 -0
- package/script/oas/document/Document.js +8 -0
- package/script/oas/example/Example.d.ts +10 -1
- package/script/oas/example/Example.js +16 -0
- package/script/oas/header/Header.d.ts +4 -2
- package/script/oas/header/Header.js +12 -5
- package/script/oas/mediaType/MediaType.d.ts +12 -0
- package/script/oas/mediaType/MediaType.js +24 -0
- package/script/oas/mediaType/jsonMediaType.d.ts +50 -0
- package/script/oas/mediaType/jsonMediaType.js +71 -0
- package/script/oas/mediaType/toContentSchema.d.ts +8 -0
- package/script/oas/mediaType/toContentSchema.js +10 -0
- package/script/oas/operation/Operation.d.ts +10 -2
- package/script/oas/operation/Operation.js +20 -7
- package/script/oas/parameter/Parameter.d.ts +3 -2
- package/script/oas/parameter/Parameter.js +11 -5
- package/script/oas/parameter/parameter-types.d.ts +10 -2
- package/script/oas/parameter/parameter-types.js +3 -1
- package/script/oas/requestBody/RequestBody.d.ts +11 -0
- package/script/oas/requestBody/RequestBody.js +16 -2
- package/script/oas/response/Response.d.ts +17 -1
- package/script/oas/response/Response.js +24 -2
- package/script/oas/securitySchemes/SecurityScheme.d.ts +47 -4
- package/script/oas/securitySchemes/SecurityScheme.js +46 -1
- package/script/oas/securitySchemes/security-scheme-types.d.ts +21 -0
- package/script/oas/server/Server.d.ts +8 -2
- package/script/oas/server/Server.js +10 -1
- package/script/oas/tag/Tag.d.ts +9 -0
- package/script/oas/tag/Tag.js +9 -0
- package/script/oas/webhook/Webhook.d.ts +4 -4
- package/script/oas/webhook/Webhook.js +6 -6
- package/script/parse/logBodyMediaTypes.d.ts +27 -0
- package/script/parse/logBodyMediaTypes.js +54 -0
- package/script/parse/toOasDialect.d.ts +8 -7
- package/script/parse/toOasDialect.js +4 -2
- package/script/parse/v3-0/methods.d.ts +11 -0
- package/script/parse/v3-0/methods.js +20 -0
- package/script/parse/v3-0/operation/toOperationsV3.js +5 -5
- package/script/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
- package/script/parse/v3-0/parameter/toParameterV3.js +17 -3
- package/script/parse/v3-0/requestBody/toRequestBodiesV3.js +4 -1
- package/script/parse/v3-0/response/toResponseV3.js +4 -1
- package/script/parse/v3-0/securitySchemes/toSecuritySchemes.js +49 -37
- package/script/parse/v3-0/webhook/toWebhooksV3.js +5 -5
- package/script/parse/v3-1/methods.d.ts +11 -0
- package/script/parse/v3-1/methods.js +20 -0
- package/script/parse/v3-1/operation/toOperationsV3.js +5 -5
- package/script/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
- package/script/parse/v3-1/parameter/toParameterV3.js +17 -3
- package/script/parse/v3-1/requestBody/toRequestBodiesV3.js +4 -1
- package/script/parse/v3-1/response/toResponseV3.js +4 -1
- package/script/parse/v3-1/securitySchemes/toSecuritySchemes.js +49 -37
- package/script/parse/v3-1/webhook/toWebhooksV3.js +5 -5
- package/script/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
- package/script/parse/v3-2/_helpers/parseDefault.js +43 -0
- package/script/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
- package/script/parse/v3-2/_helpers/parseEnum.js +27 -0
- package/script/parse/v3-2/_helpers/parseExample.d.ts +41 -0
- package/script/parse/v3-2/_helpers/parseExample.js +41 -0
- package/script/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
- package/script/parse/v3-2/_helpers/parseNullable.js +144 -0
- package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +13 -0
- package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
- package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +9 -0
- package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.js +15 -0
- package/script/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-format-conflicts.js +9 -0
- package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +15 -0
- package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +9 -0
- package/script/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-type-conflicts.js +9 -0
- package/script/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/cross-product.js +7 -0
- package/script/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
- package/script/parse/v3-2/_merge-all-of/decompose-intersection.js +31 -0
- package/script/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
- package/script/parse/v3-2/_merge-all-of/decompose-union.js +73 -0
- package/script/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/generic-merge.js +16 -0
- package/script/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
- package/script/parse/v3-2/_merge-all-of/is-equal.js +23 -0
- package/script/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/merge-array-constraints.js +80 -0
- package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +43 -0
- package/script/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-enum-values.js +68 -0
- package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.js +77 -0
- package/script/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
- package/script/parse/v3-2/_merge-all-of/merge-intersection.js +20 -0
- package/script/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-number-constraints.js +77 -0
- package/script/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
- package/script/parse/v3-2/_merge-all-of/merge-object-constraints.js +65 -0
- package/script/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/merge-properties.js +29 -0
- package/script/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-required.js +15 -0
- package/script/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-string-constraints.js +91 -0
- package/script/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
- package/script/parse/v3-2/_merge-all-of/merge-union.js +58 -0
- package/script/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/merge.js +159 -0
- package/script/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/nullable-merge.js +17 -0
- package/script/parse/v3-2/_merge-all-of/types.d.ts +14 -0
- package/script/parse/v3-2/_merge-all-of/types.js +38 -0
- package/script/parse/v3-2/array/toArray.d.ts +80 -0
- package/script/parse/v3-2/array/toArray.js +203 -0
- package/script/parse/v3-2/boolean/toBoolean.d.ts +78 -0
- package/script/parse/v3-2/boolean/toBoolean.js +177 -0
- package/script/parse/v3-2/components/toComponentsV3.d.ts +14 -0
- package/script/parse/v3-2/components/toComponentsV3.js +47 -0
- package/script/parse/v3-2/contact/toContactV3.d.ts +5 -0
- package/script/parse/v3-2/contact/toContactV3.js +22 -0
- package/script/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
- package/script/parse/v3-2/discriminator/toDiscriminatorV3.js +25 -0
- package/script/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
- package/script/parse/v3-2/document/toDocumentFieldsV3.js +37 -0
- package/script/parse/v3-2/example/toExamplesV3.d.ts +77 -0
- package/script/parse/v3-2/example/toExamplesV3.js +149 -0
- package/script/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
- package/script/parse/v3-2/externalDocs/toExternalDocs.js +52 -0
- package/script/parse/v3-2/header/toHeadersV3.d.ts +18 -0
- package/script/parse/v3-2/header/toHeadersV3.js +51 -0
- package/script/parse/v3-2/info/toInfoV3.d.ts +10 -0
- package/script/parse/v3-2/info/toInfoV3.js +27 -0
- package/script/parse/v3-2/integer/toInteger.d.ts +21 -0
- package/script/parse/v3-2/integer/toInteger.js +153 -0
- package/script/parse/v3-2/license/toLicenseV3.d.ts +5 -0
- package/script/parse/v3-2/license/toLicenseV3.js +21 -0
- package/script/parse/v3-2/link/toLinksV3.d.ts +16 -0
- package/script/parse/v3-2/link/toLinksV3.js +44 -0
- package/script/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
- package/script/parse/v3-2/mediaType/toMediaTypeItemV3.js +381 -0
- package/script/parse/v3-2/methods.d.ts +17 -0
- package/script/parse/v3-2/methods.js +25 -0
- package/script/parse/v3-2/number/toNumber.d.ts +10 -0
- package/script/parse/v3-2/number/toNumber.js +152 -0
- package/script/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
- package/script/parse/v3-2/object/toAdditionalPropertiesV3.js +14 -0
- package/script/parse/v3-2/object/toObject.d.ts +10 -0
- package/script/parse/v3-2/object/toObject.js +94 -0
- package/script/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
- package/script/parse/v3-2/operation/toOperationsV3.js +134 -0
- package/script/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
- package/script/parse/v3-2/parameter/toParameterV3.js +191 -0
- package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
- package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.js +43 -0
- package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
- package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +38 -0
- package/script/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
- package/script/parse/v3-2/pathItem/toPathItemV3.js +50 -0
- package/script/parse/v3-2/ref/toRefV31.d.ts +19 -0
- package/script/parse/v3-2/ref/toRefV31.js +14 -0
- package/script/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
- package/script/parse/v3-2/requestBody/toRequestBodiesV3.js +52 -0
- package/script/parse/v3-2/response/toResponseV3.d.ts +29 -0
- package/script/parse/v3-2/response/toResponseV3.js +65 -0
- package/script/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
- package/script/parse/v3-2/schema/toSchemasV3.js +518 -0
- package/script/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
- package/script/parse/v3-2/securityRequirement/toSecurityRequirement.js +13 -0
- package/script/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
- package/script/parse/v3-2/securitySchemes/toSecuritySchemes.js +189 -0
- package/script/parse/v3-2/server/toServerV3.d.ts +26 -0
- package/script/parse/v3-2/server/toServerV3.js +37 -0
- package/script/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
- package/script/parse/v3-2/serverVariable/toServerVariableV3.js +36 -0
- package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
- package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +30 -0
- package/script/parse/v3-2/string/toString.d.ts +146 -0
- package/script/parse/v3-2/string/toString.js +249 -0
- package/script/parse/v3-2/tag/toTagsV3.d.ts +22 -0
- package/script/parse/v3-2/tag/toTagsV3.js +83 -0
- package/script/parse/v3-2/union/toUnion.d.ts +12 -0
- package/script/parse/v3-2/union/toUnion.js +72 -0
- package/script/parse/v3-2/unknown/toUnknown.d.ts +10 -0
- package/script/parse/v3-2/unknown/toUnknown.js +23 -0
- package/script/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
- package/script/parse/v3-2/webhook/toWebhooksV3.js +144 -0
- package/script/types/Method.d.ts +7 -4
- package/script/types/Method.js +17 -4
- package/script/types/Preview.d.ts +2 -1
- package/script/types/SkmtcDocument.d.ts +6 -6
package/esm/_dnt.polyfills.d.ts
CHANGED
|
@@ -4,6 +4,17 @@ declare global {
|
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
6
|
export {};
|
|
7
|
+
declare global {
|
|
8
|
+
interface Object {
|
|
9
|
+
/**
|
|
10
|
+
* Determines whether an object has a property with the specified name.
|
|
11
|
+
* @param o An object.
|
|
12
|
+
* @param v A property name.
|
|
13
|
+
*/
|
|
14
|
+
hasOwn(o: object, v: PropertyKey): boolean;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
7
18
|
/**
|
|
8
19
|
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
9
20
|
* but instead of using npm to install additional dependencies,
|
package/esm/_dnt.polyfills.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
// https://github.com/tc39/proposal-accessible-object-hasownproperty/blob/main/polyfill.js
|
|
2
|
+
if (!Object.hasOwn) {
|
|
3
|
+
Object.defineProperty(Object, "hasOwn", {
|
|
4
|
+
value: function (object, property) {
|
|
5
|
+
if (object == null) {
|
|
6
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
7
|
+
}
|
|
8
|
+
return Object.prototype.hasOwnProperty.call(Object(object), property);
|
|
9
|
+
},
|
|
10
|
+
configurable: true,
|
|
11
|
+
enumerable: false,
|
|
12
|
+
writable: true,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
1
15
|
/**
|
|
2
16
|
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
3
17
|
* but instead of using npm to install additional dependencies,
|
|
@@ -29,6 +29,7 @@ import "../_dnt.polyfills.js";
|
|
|
29
29
|
import { buildSchema } from 'graphql';
|
|
30
30
|
import { toDocumentFieldsV3 } from '../parse/v3-0/document/toDocumentFieldsV3.js';
|
|
31
31
|
import { toDocumentFieldsV3 as toDocumentFieldsV31 } from '../parse/v3-1/document/toDocumentFieldsV3.js';
|
|
32
|
+
import { toDocumentFieldsV3 as toDocumentFieldsV32 } from '../parse/v3-2/document/toDocumentFieldsV3.js';
|
|
32
33
|
import { toOasDialect } from '../parse/toOasDialect.js';
|
|
33
34
|
import { OasDocument } from '../oas/document/Document.js';
|
|
34
35
|
import { GqlRegistry } from '../gql/registry/GqlRegistry.js';
|
|
@@ -184,7 +185,7 @@ export class ParseContext {
|
|
|
184
185
|
const oasState = this.protocol;
|
|
185
186
|
// The ONE place the OpenAPI version is examined: pick the dialect's
|
|
186
187
|
// parser tree. Everything downstream is version-specific code living
|
|
187
|
-
// in its own tree (v3-0 / v3-1) and never re-checks the version.
|
|
188
|
+
// in its own tree (v3-0 / v3-1 / v3-2) and never re-checks the version.
|
|
188
189
|
const dialect = toOasDialect(oasState.documentObject.openapi);
|
|
189
190
|
switch (dialect) {
|
|
190
191
|
case '3.0':
|
|
@@ -201,6 +202,13 @@ export class ParseContext {
|
|
|
201
202
|
context: this
|
|
202
203
|
});
|
|
203
204
|
break;
|
|
205
|
+
case '3.2':
|
|
206
|
+
oasState.oasDocument.fields = toDocumentFieldsV32({
|
|
207
|
+
documentObject: oasState.documentObject,
|
|
208
|
+
stackTrail,
|
|
209
|
+
context: this
|
|
210
|
+
});
|
|
211
|
+
break;
|
|
204
212
|
default: {
|
|
205
213
|
const _exhaustive = dialect;
|
|
206
214
|
throw new Error(`Unhandled OAS dialect: ${JSON.stringify(_exhaustive)}`);
|
|
@@ -154,8 +154,20 @@ export type AnyOasDocument = OpenAPIV2.Document | OpenAPIV3.Document | OpenAPIV3
|
|
|
154
154
|
* The TS type and the valibot schema below stay in sync via the
|
|
155
155
|
* `v.GenericSchema<OasIssueType>` annotation — adding a variant in one
|
|
156
156
|
* place without the other fails to type-check.
|
|
157
|
+
*
|
|
158
|
+
* Media type issues, at most one per response or request body, from the
|
|
159
|
+
* choice `toJsonContent` makes on its parsed `content`:
|
|
160
|
+
*
|
|
161
|
+
* - `WILDCARD_MEDIA_TYPE` (`warning`) — the body has no JSON media type
|
|
162
|
+
* (see `isJsonMediaType`) and is read from `*\/*` as JSON, since its schema
|
|
163
|
+
* there is an object, array, union or `$ref`. The document does not say the
|
|
164
|
+
* format; springdoc writes `*\/*` for every response.
|
|
165
|
+
* - `NO_JSON_MEDIA_TYPE` (`debug`) — no lookup without a media type reads the
|
|
166
|
+
* body, and its keys include a range: `application/*`, or `*\/*` with a
|
|
167
|
+
* scalar schema (a text body or a file). A body with only specific
|
|
168
|
+
* non-JSON types (`multipart/form-data`, `text/plain`) logs nothing.
|
|
157
169
|
*/
|
|
158
|
-
export type OasIssueType = 'UNEXPECTED_PROPERTY' | 'MISSING_OBJECT_TYPE' | 'MISSING_STRING_TYPE' | 'MISSING_ARRAY_TYPE' | 'MISSING_BOOLEAN_TYPE' | 'INVALID_EXAMPLE' | 'INVALID_ENUM' | 'INVALID_DEFAULT' | 'INVALID_NULLABLE' | 'UNEXPECTED_FORMAT' | 'INVALID_RESPONSE' | 'INVALID_FORMAT' | 'INVALID_OPERATION' | 'INVALID_SCHEMA' | 'INVALID_PARAMETER' | 'INVALID_SECURITY_SCHEME' | 'INVALID_DEPENDENCY_REF' | 'EXAMPLE_AND_EXAMPLES_DEFINED';
|
|
170
|
+
export type OasIssueType = 'UNEXPECTED_PROPERTY' | 'MISSING_OBJECT_TYPE' | 'MISSING_STRING_TYPE' | 'MISSING_ARRAY_TYPE' | 'MISSING_BOOLEAN_TYPE' | 'INVALID_EXAMPLE' | 'INVALID_ENUM' | 'INVALID_DEFAULT' | 'INVALID_NULLABLE' | 'UNEXPECTED_FORMAT' | 'INVALID_RESPONSE' | 'INVALID_FORMAT' | 'INVALID_OPERATION' | 'INVALID_SCHEMA' | 'INVALID_PARAMETER' | 'INVALID_SECURITY_SCHEME' | 'INVALID_DEPENDENCY_REF' | 'EXAMPLE_AND_EXAMPLES_DEFINED' | 'INVALID_TAG_PARENT' | 'UNSUPPORTED_OPERATION_METHOD' | 'WILDCARD_MEDIA_TYPE' | 'NO_JSON_MEDIA_TYPE';
|
|
159
171
|
/**
|
|
160
172
|
* Valibot schema for {@link OasIssueType}. Annotation deliberately omitted
|
|
161
173
|
* so the precise literal-union output type flows through to consumers
|
|
@@ -163,7 +175,7 @@ export type OasIssueType = 'UNEXPECTED_PROPERTY' | 'MISSING_OBJECT_TYPE' | 'MISS
|
|
|
163
175
|
* this list and {@link OasIssueType} is caught by `assertSchemaMatchesType`
|
|
164
176
|
* below.
|
|
165
177
|
*/
|
|
166
|
-
export declare const oasIssueType: v.UnionSchema<[v.LiteralSchema<"UNEXPECTED_PROPERTY", undefined>, v.LiteralSchema<"MISSING_OBJECT_TYPE", undefined>, v.LiteralSchema<"MISSING_STRING_TYPE", undefined>, v.LiteralSchema<"MISSING_ARRAY_TYPE", undefined>, v.LiteralSchema<"MISSING_BOOLEAN_TYPE", undefined>, v.LiteralSchema<"INVALID_EXAMPLE", undefined>, v.LiteralSchema<"INVALID_ENUM", undefined>, v.LiteralSchema<"INVALID_DEFAULT", undefined>, v.LiteralSchema<"INVALID_NULLABLE", undefined>, v.LiteralSchema<"UNEXPECTED_FORMAT", undefined>, v.LiteralSchema<"INVALID_RESPONSE", undefined>, v.LiteralSchema<"INVALID_FORMAT", undefined>, v.LiteralSchema<"INVALID_OPERATION", undefined>, v.LiteralSchema<"INVALID_SCHEMA", undefined>, v.LiteralSchema<"INVALID_PARAMETER", undefined>, v.LiteralSchema<"INVALID_SECURITY_SCHEME", undefined>, v.LiteralSchema<"INVALID_DEPENDENCY_REF", undefined>, v.LiteralSchema<"EXAMPLE_AND_EXAMPLES_DEFINED", undefined>], undefined>;
|
|
178
|
+
export declare const oasIssueType: v.UnionSchema<[v.LiteralSchema<"UNEXPECTED_PROPERTY", undefined>, v.LiteralSchema<"MISSING_OBJECT_TYPE", undefined>, v.LiteralSchema<"MISSING_STRING_TYPE", undefined>, v.LiteralSchema<"MISSING_ARRAY_TYPE", undefined>, v.LiteralSchema<"MISSING_BOOLEAN_TYPE", undefined>, v.LiteralSchema<"INVALID_EXAMPLE", undefined>, v.LiteralSchema<"INVALID_ENUM", undefined>, v.LiteralSchema<"INVALID_DEFAULT", undefined>, v.LiteralSchema<"INVALID_NULLABLE", undefined>, v.LiteralSchema<"UNEXPECTED_FORMAT", undefined>, v.LiteralSchema<"INVALID_RESPONSE", undefined>, v.LiteralSchema<"INVALID_FORMAT", undefined>, v.LiteralSchema<"INVALID_OPERATION", undefined>, v.LiteralSchema<"INVALID_SCHEMA", undefined>, v.LiteralSchema<"INVALID_PARAMETER", undefined>, v.LiteralSchema<"INVALID_SECURITY_SCHEME", undefined>, v.LiteralSchema<"INVALID_DEPENDENCY_REF", undefined>, v.LiteralSchema<"EXAMPLE_AND_EXAMPLES_DEFINED", undefined>, v.LiteralSchema<"INVALID_TAG_PARENT", undefined>, v.LiteralSchema<"UNSUPPORTED_OPERATION_METHOD", undefined>, v.LiteralSchema<"WILDCARD_MEDIA_TYPE", undefined>, v.LiteralSchema<"NO_JSON_MEDIA_TYPE", undefined>], undefined>;
|
|
167
179
|
export type GenerateResult = {
|
|
168
180
|
files: Map<string, FileBase>;
|
|
169
181
|
previews: Record<string, Preview>;
|
|
@@ -24,7 +24,11 @@ export const oasIssueType = v.union([
|
|
|
24
24
|
v.literal('INVALID_PARAMETER'),
|
|
25
25
|
v.literal('INVALID_SECURITY_SCHEME'),
|
|
26
26
|
v.literal('INVALID_DEPENDENCY_REF'),
|
|
27
|
-
v.literal('EXAMPLE_AND_EXAMPLES_DEFINED')
|
|
27
|
+
v.literal('EXAMPLE_AND_EXAMPLES_DEFINED'),
|
|
28
|
+
v.literal('INVALID_TAG_PARENT'),
|
|
29
|
+
v.literal('UNSUPPORTED_OPERATION_METHOD'),
|
|
30
|
+
v.literal('WILDCARD_MEDIA_TYPE'),
|
|
31
|
+
v.literal('NO_JSON_MEDIA_TYPE')
|
|
28
32
|
]);
|
|
29
33
|
// Compile-time drift detector: this binding fails to type-check if
|
|
30
34
|
// `OasIssueType` and the literal list above disagree in either
|
|
@@ -466,8 +466,8 @@ export declare const isGeneratorKey: (arg: unknown) => arg is GeneratorKey;
|
|
|
466
466
|
* Type guard to check if a value is a valid OasOperationGeneratorKey.
|
|
467
467
|
*
|
|
468
468
|
* Validates that the argument is a string with the correct format:
|
|
469
|
-
* `generatorId|path|method` where each part is non-empty
|
|
470
|
-
* is a valid HTTP method.
|
|
469
|
+
* `generatorId|path|method|variant` where each part is non-empty, path
|
|
470
|
+
* starts with `/` and method is a valid HTTP method.
|
|
471
471
|
*
|
|
472
472
|
* @param arg - Value to check
|
|
473
473
|
* @returns True if the value is a valid OasOperationGeneratorKey
|
package/esm/dsl/GeneratorKeys.js
CHANGED
|
@@ -253,8 +253,8 @@ export const isGeneratorKey = (arg) => {
|
|
|
253
253
|
* Type guard to check if a value is a valid OasOperationGeneratorKey.
|
|
254
254
|
*
|
|
255
255
|
* Validates that the argument is a string with the correct format:
|
|
256
|
-
* `generatorId|path|method` where each part is non-empty
|
|
257
|
-
* is a valid HTTP method.
|
|
256
|
+
* `generatorId|path|method|variant` where each part is non-empty, path
|
|
257
|
+
* starts with `/` and method is a valid HTTP method.
|
|
258
258
|
*
|
|
259
259
|
* @param arg - Value to check
|
|
260
260
|
* @returns True if the value is a valid OasOperationGeneratorKey
|
|
@@ -285,7 +285,10 @@ export const isOasOperationGeneratorKey = (arg) => {
|
|
|
285
285
|
if (typeof generatorId !== 'string' || !generatorId.length) {
|
|
286
286
|
return false;
|
|
287
287
|
}
|
|
288
|
-
|
|
288
|
+
// An OpenAPI path starts with `/`. Checking it keeps a GraphQL key whose
|
|
289
|
+
// field name is also an HTTP method (`gen|mutation|query|main`) from
|
|
290
|
+
// parsing as an operation.
|
|
291
|
+
if (typeof path !== 'string' || !path.startsWith('/')) {
|
|
289
292
|
return false;
|
|
290
293
|
}
|
|
291
294
|
if (!isMethod(method)) {
|
package/esm/helpers/naming.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { Method } from '../types/Method.js';
|
|
|
4
4
|
* Determines the endpoint type based on HTTP method.
|
|
5
5
|
*
|
|
6
6
|
* @param operation - The OpenAPI operation to analyze
|
|
7
|
-
* @returns 'query' for GET operations, 'mutation' for all others
|
|
7
|
+
* @returns 'query' for GET and QUERY operations, 'mutation' for all others
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
@@ -67,6 +67,7 @@ export declare const toArgsName: (operation: OasOperation) => string;
|
|
|
67
67
|
* console.log(toMethodVerb('put')); // 'Update'
|
|
68
68
|
* console.log(toMethodVerb('get')); // 'get'
|
|
69
69
|
* console.log(toMethodVerb('delete')); // 'delete'
|
|
70
|
+
* console.log(toMethodVerb('query')); // 'Query'
|
|
70
71
|
* ```
|
|
71
72
|
*/
|
|
72
73
|
export declare const toMethodVerb: (method: Method) => string;
|
package/esm/helpers/naming.js
CHANGED
|
@@ -3,7 +3,7 @@ import { camelCase, capitalize } from './strings.js';
|
|
|
3
3
|
* Determines the endpoint type based on HTTP method.
|
|
4
4
|
*
|
|
5
5
|
* @param operation - The OpenAPI operation to analyze
|
|
6
|
-
* @returns 'query' for GET operations, 'mutation' for all others
|
|
6
|
+
* @returns 'query' for GET and QUERY operations, 'mutation' for all others
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* ```typescript
|
|
@@ -15,7 +15,8 @@ import { camelCase, capitalize } from './strings.js';
|
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
17
|
export const toEndpointType = (operation) => {
|
|
18
|
-
|
|
18
|
+
// QUERY is safe and idempotent, like GET.
|
|
19
|
+
return operation.method === 'get' || operation.method === 'query' ? 'query' : 'mutation';
|
|
19
20
|
};
|
|
20
21
|
/**
|
|
21
22
|
* Generates endpoint name in the `camelCase{method}Api{path}` format.
|
|
@@ -78,6 +79,7 @@ export const toArgsName = (operation) => {
|
|
|
78
79
|
* console.log(toMethodVerb('put')); // 'Update'
|
|
79
80
|
* console.log(toMethodVerb('get')); // 'get'
|
|
80
81
|
* console.log(toMethodVerb('delete')); // 'delete'
|
|
82
|
+
* console.log(toMethodVerb('query')); // 'Query'
|
|
81
83
|
* ```
|
|
82
84
|
*/
|
|
83
85
|
export const toMethodVerb = (method) => {
|
package/esm/mod.d.ts
CHANGED
|
@@ -146,6 +146,7 @@ export * from './oas/info/info-types.js';
|
|
|
146
146
|
export * from './oas/license/License.js';
|
|
147
147
|
export * from './oas/license/license-types.js';
|
|
148
148
|
export * from './oas/mediaType/MediaType.js';
|
|
149
|
+
export * from './oas/mediaType/jsonMediaType.js';
|
|
149
150
|
export * from './oas/integer/Integer.js';
|
|
150
151
|
export * from './oas/integer/integer-types.js';
|
|
151
152
|
export * from './parse/v3-0/integer/toInteger.js';
|
package/esm/mod.js
CHANGED
|
@@ -146,6 +146,7 @@ export * from './oas/info/info-types.js';
|
|
|
146
146
|
export * from './oas/license/License.js';
|
|
147
147
|
export * from './oas/license/license-types.js';
|
|
148
148
|
export * from './oas/mediaType/MediaType.js';
|
|
149
|
+
export * from './oas/mediaType/jsonMediaType.js';
|
|
149
150
|
export * from './oas/integer/Integer.js';
|
|
150
151
|
export * from './oas/integer/integer-types.js';
|
|
151
152
|
export * from './parse/v3-0/integer/toInteger.js';
|
|
@@ -2,10 +2,13 @@ import "../../_dnt.polyfills.js";
|
|
|
2
2
|
export type DiscriminatorFields = {
|
|
3
3
|
propertyName: string;
|
|
4
4
|
mapping?: Record<string, string>;
|
|
5
|
+
/** Schema to use when the discriminating value has no mapping entry (OpenAPI 3.2) */
|
|
6
|
+
defaultMapping?: string;
|
|
5
7
|
};
|
|
6
8
|
export declare class OasDiscriminator {
|
|
7
9
|
oasType: 'discriminator';
|
|
8
10
|
propertyName: string;
|
|
9
11
|
mapping?: Record<string, string>;
|
|
12
|
+
defaultMapping?: string;
|
|
10
13
|
constructor(fields: DiscriminatorFields);
|
|
11
14
|
}
|
|
@@ -19,7 +19,14 @@ export class OasDiscriminator {
|
|
|
19
19
|
writable: true,
|
|
20
20
|
value: void 0
|
|
21
21
|
});
|
|
22
|
+
Object.defineProperty(this, "defaultMapping", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: void 0
|
|
27
|
+
});
|
|
22
28
|
this.propertyName = fields.propertyName;
|
|
23
29
|
this.mapping = fields.mapping;
|
|
30
|
+
this.defaultMapping = fields.defaultMapping;
|
|
24
31
|
}
|
|
25
32
|
}
|
|
@@ -20,6 +20,11 @@ import type { OasExternalDocs } from '../externalDocs/ExternalDocs.js';
|
|
|
20
20
|
export type DocumentFields = {
|
|
21
21
|
/** OpenAPI specification version (e.g., '3.0.0', '3.1.0') */
|
|
22
22
|
openapi: string;
|
|
23
|
+
/**
|
|
24
|
+
* The document's own URI (OpenAPI 3.2 `$self`). Stored only: reference
|
|
25
|
+
* resolution does not use it.
|
|
26
|
+
*/
|
|
27
|
+
$self?: string | undefined;
|
|
23
28
|
/** API metadata including title, version, description */
|
|
24
29
|
info: OasInfo;
|
|
25
30
|
/** Array of server objects providing connectivity information */
|
|
@@ -215,6 +220,8 @@ export declare class OasDocument {
|
|
|
215
220
|
set fields(fields: DocumentFields);
|
|
216
221
|
/** OpenAPI specification version */
|
|
217
222
|
get openapi(): string;
|
|
223
|
+
/** The document's own URI (OpenAPI 3.2 `$self`) */
|
|
224
|
+
get $self(): string | undefined;
|
|
218
225
|
/** API metadata */
|
|
219
226
|
get info(): OasInfo;
|
|
220
227
|
get servers(): OasServer[] | undefined;
|
|
@@ -225,6 +225,13 @@ export class OasDocument {
|
|
|
225
225
|
}
|
|
226
226
|
return __classPrivateFieldGet(this, _OasDocument_fields, "f").openapi;
|
|
227
227
|
}
|
|
228
|
+
/** The document's own URI (OpenAPI 3.2 `$self`) */
|
|
229
|
+
get $self() {
|
|
230
|
+
if (!__classPrivateFieldGet(this, _OasDocument_fields, "f")) {
|
|
231
|
+
throw new Error(`Accessing '$self' before fields are set`);
|
|
232
|
+
}
|
|
233
|
+
return __classPrivateFieldGet(this, _OasDocument_fields, "f").$self;
|
|
234
|
+
}
|
|
228
235
|
/** API metadata */
|
|
229
236
|
get info() {
|
|
230
237
|
if (!__classPrivateFieldGet(this, _OasDocument_fields, "f")) {
|
|
@@ -311,6 +318,7 @@ export class OasDocument {
|
|
|
311
318
|
toJSON() {
|
|
312
319
|
return {
|
|
313
320
|
openapi: this.openapi,
|
|
321
|
+
...(this.$self !== undefined ? { $self: this.$self } : {}),
|
|
314
322
|
info: this.info,
|
|
315
323
|
servers: this.servers,
|
|
316
324
|
operations: this.operations,
|
|
@@ -11,6 +11,10 @@ export type ExampleFields = {
|
|
|
11
11
|
description?: string;
|
|
12
12
|
/** The example value — absent when the example is given as an `externalValue` */
|
|
13
13
|
value?: unknown;
|
|
14
|
+
/** The example as data that is valid against its schema (OpenAPI 3.2) */
|
|
15
|
+
dataValue?: unknown;
|
|
16
|
+
/** The example in its serialized form (OpenAPI 3.2) */
|
|
17
|
+
serializedValue?: string;
|
|
14
18
|
/** The external value of the example */
|
|
15
19
|
externalValue?: string;
|
|
16
20
|
/** Custom extension fields (x-* properties) */
|
|
@@ -23,6 +27,8 @@ export declare class OasExample {
|
|
|
23
27
|
summary?: string;
|
|
24
28
|
description?: string;
|
|
25
29
|
value?: unknown;
|
|
30
|
+
dataValue?: unknown;
|
|
31
|
+
serializedValue?: string;
|
|
26
32
|
externalValue?: string;
|
|
27
33
|
extensionFields?: Record<string, unknown>;
|
|
28
34
|
constructor(fields: ExampleFields);
|
|
@@ -31,5 +37,8 @@ export declare class OasExample {
|
|
|
31
37
|
/** Returns itself */
|
|
32
38
|
resolve(): OasExample;
|
|
33
39
|
resolveOnce(): OasExample;
|
|
34
|
-
toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ExampleObject
|
|
40
|
+
toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ExampleObject & {
|
|
41
|
+
dataValue?: unknown;
|
|
42
|
+
serializedValue?: string;
|
|
43
|
+
};
|
|
35
44
|
}
|
|
@@ -26,6 +26,18 @@ export class OasExample {
|
|
|
26
26
|
writable: true,
|
|
27
27
|
value: void 0
|
|
28
28
|
});
|
|
29
|
+
Object.defineProperty(this, "dataValue", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "serializedValue", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: void 0
|
|
40
|
+
});
|
|
29
41
|
Object.defineProperty(this, "externalValue", {
|
|
30
42
|
enumerable: true,
|
|
31
43
|
configurable: true,
|
|
@@ -41,6 +53,8 @@ export class OasExample {
|
|
|
41
53
|
this.summary = fields.summary;
|
|
42
54
|
this.description = fields.description;
|
|
43
55
|
this.value = fields.value;
|
|
56
|
+
this.dataValue = fields.dataValue;
|
|
57
|
+
this.serializedValue = fields.serializedValue;
|
|
44
58
|
this.externalValue = fields.externalValue;
|
|
45
59
|
this.extensionFields = fields.extensionFields;
|
|
46
60
|
}
|
|
@@ -60,6 +74,8 @@ export class OasExample {
|
|
|
60
74
|
summary: this.summary,
|
|
61
75
|
description: this.description,
|
|
62
76
|
value: this.value,
|
|
77
|
+
...(this.dataValue !== undefined ? { dataValue: this.dataValue } : {}),
|
|
78
|
+
...(this.serializedValue !== undefined ? { serializedValue: this.serializedValue } : {}),
|
|
63
79
|
// Without this an `externalValue`-only example round-trips to an Example
|
|
64
80
|
// Object holding neither an inline value nor a pointer to one.
|
|
65
81
|
externalValue: this.externalValue
|
|
@@ -77,9 +77,11 @@ export declare class OasHeader {
|
|
|
77
77
|
resolve(): OasHeader;
|
|
78
78
|
resolveOnce(): OasHeader;
|
|
79
79
|
/** Returns schema for the header. Either, `schema` property if
|
|
80
|
-
*
|
|
80
|
+
* defined or value matching `mediaType` from `content` property. When
|
|
81
|
+
* `content` has exactly one entry (the spec requires one), its schema is
|
|
82
|
+
* used whatever the media type, as in `OasParameter.toSchema`.
|
|
81
83
|
*
|
|
82
|
-
* @param mediaType - Optional media type to get schema for.
|
|
84
|
+
* @param mediaType - Optional media type to get schema for, an exact lookup. Omitted: the JSON media type (`application/json`, else the first JSON-like type, else `*\/*`).
|
|
83
85
|
*/
|
|
84
86
|
toSchema(mediaType?: string): OasSchema | OasRef<'schema'>;
|
|
85
87
|
toJsonSchema(options: ToJsonSchemaOptions): OpenAPIV3.HeaderObject;
|
package/esm/oas/header/Header.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toContentSchema } from '../mediaType/toContentSchema.js';
|
|
1
2
|
/**
|
|
2
3
|
* Represents a Header Object in the OpenAPI Specification.
|
|
3
4
|
*
|
|
@@ -106,17 +107,23 @@ export class OasHeader {
|
|
|
106
107
|
return this;
|
|
107
108
|
}
|
|
108
109
|
/** Returns schema for the header. Either, `schema` property if
|
|
109
|
-
*
|
|
110
|
+
* defined or value matching `mediaType` from `content` property. When
|
|
111
|
+
* `content` has exactly one entry (the spec requires one), its schema is
|
|
112
|
+
* used whatever the media type, as in `OasParameter.toSchema`.
|
|
110
113
|
*
|
|
111
|
-
* @param mediaType - Optional media type to get schema for.
|
|
114
|
+
* @param mediaType - Optional media type to get schema for, an exact lookup. Omitted: the JSON media type (`application/json`, else the first JSON-like type, else `*\/*`).
|
|
112
115
|
*/
|
|
113
|
-
toSchema(mediaType
|
|
116
|
+
toSchema(mediaType) {
|
|
114
117
|
if (this.schema) {
|
|
115
118
|
return this.schema;
|
|
116
119
|
}
|
|
117
|
-
const
|
|
120
|
+
const contentEntries = Object.values(this.content ?? {});
|
|
121
|
+
const onlyEntry = contentEntries.length === 1 ? contentEntries[0] : undefined;
|
|
122
|
+
const schema = toContentSchema(this.content, mediaType) ?? onlyEntry?.schema;
|
|
118
123
|
if (!schema) {
|
|
119
|
-
throw new Error(
|
|
124
|
+
throw new Error(mediaType === undefined
|
|
125
|
+
? 'Schema not found for a JSON media type'
|
|
126
|
+
: `Schema not found for media type "${mediaType}"`);
|
|
120
127
|
}
|
|
121
128
|
return schema;
|
|
122
129
|
}
|
|
@@ -13,12 +13,18 @@ export type MediaTypeFields = {
|
|
|
13
13
|
mediaType: string;
|
|
14
14
|
/** The schema defining the structure of the content */
|
|
15
15
|
schema?: OasSchema | OasRef<'schema'> | undefined;
|
|
16
|
+
/** The schema of each item in a sequential media type (OpenAPI 3.2) */
|
|
17
|
+
itemSchema?: OasSchema | OasRef<'schema'> | undefined;
|
|
16
18
|
/** Example values for the media type */
|
|
17
19
|
examples?: Record<string, OasExample | OasRef<'example'>> | undefined;
|
|
18
20
|
/** Custom extension fields (x-* properties) */
|
|
19
21
|
extensionFields?: Record<string, unknown>;
|
|
20
22
|
/** Encoding information for multipart or form data */
|
|
21
23
|
encoding?: Record<string, unknown> | undefined;
|
|
24
|
+
/** Positional Encoding Objects for a multipart array (OpenAPI 3.2) */
|
|
25
|
+
prefixEncoding?: Record<string, unknown>[] | undefined;
|
|
26
|
+
/** Encoding Object for each array item (OpenAPI 3.2) */
|
|
27
|
+
itemEncoding?: Record<string, unknown> | undefined;
|
|
22
28
|
};
|
|
23
29
|
/**
|
|
24
30
|
* Represents a Media Type Object in the OpenAPI Specification.
|
|
@@ -104,12 +110,18 @@ export declare class OasMediaType extends OasBase {
|
|
|
104
110
|
mediaType: string;
|
|
105
111
|
/** The schema defining the structure and validation rules for the content */
|
|
106
112
|
schema: OasSchema | OasRef<'schema'> | undefined;
|
|
113
|
+
/** The schema of each item in a sequential media type (OpenAPI 3.2) */
|
|
114
|
+
itemSchema: OasSchema | OasRef<'schema'> | undefined;
|
|
107
115
|
/** Example values demonstrating the media type content */
|
|
108
116
|
examples: Record<string, OasExample | OasRef<'example'>> | undefined;
|
|
109
117
|
/** Custom extension fields (x-* properties) defined for this media type */
|
|
110
118
|
extensionFields: Record<string, unknown> | undefined;
|
|
111
119
|
/** Encoding information for multipart and form data serialization */
|
|
112
120
|
encoding?: Record<string, unknown> | undefined;
|
|
121
|
+
/** Positional Encoding Objects for a multipart array (OpenAPI 3.2), stored as-is */
|
|
122
|
+
prefixEncoding?: Record<string, unknown>[] | undefined;
|
|
123
|
+
/** Encoding Object for each array item (OpenAPI 3.2), stored as-is */
|
|
124
|
+
itemEncoding?: Record<string, unknown> | undefined;
|
|
113
125
|
/**
|
|
114
126
|
* Creates a new OasMediaType instance.
|
|
115
127
|
*
|
|
@@ -105,6 +105,13 @@ export class OasMediaType extends OasBase {
|
|
|
105
105
|
writable: true,
|
|
106
106
|
value: void 0
|
|
107
107
|
});
|
|
108
|
+
/** The schema of each item in a sequential media type (OpenAPI 3.2) */
|
|
109
|
+
Object.defineProperty(this, "itemSchema", {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
configurable: true,
|
|
112
|
+
writable: true,
|
|
113
|
+
value: void 0
|
|
114
|
+
});
|
|
108
115
|
/** Example values demonstrating the media type content */
|
|
109
116
|
Object.defineProperty(this, "examples", {
|
|
110
117
|
enumerable: true,
|
|
@@ -126,10 +133,27 @@ export class OasMediaType extends OasBase {
|
|
|
126
133
|
writable: true,
|
|
127
134
|
value: void 0
|
|
128
135
|
});
|
|
136
|
+
/** Positional Encoding Objects for a multipart array (OpenAPI 3.2), stored as-is */
|
|
137
|
+
Object.defineProperty(this, "prefixEncoding", {
|
|
138
|
+
enumerable: true,
|
|
139
|
+
configurable: true,
|
|
140
|
+
writable: true,
|
|
141
|
+
value: void 0
|
|
142
|
+
});
|
|
143
|
+
/** Encoding Object for each array item (OpenAPI 3.2), stored as-is */
|
|
144
|
+
Object.defineProperty(this, "itemEncoding", {
|
|
145
|
+
enumerable: true,
|
|
146
|
+
configurable: true,
|
|
147
|
+
writable: true,
|
|
148
|
+
value: void 0
|
|
149
|
+
});
|
|
129
150
|
this.mediaType = fields.mediaType;
|
|
130
151
|
this.schema = fields.schema;
|
|
152
|
+
this.itemSchema = fields.itemSchema;
|
|
131
153
|
this.examples = fields.examples;
|
|
132
154
|
this.encoding = fields.encoding;
|
|
155
|
+
this.prefixEncoding = fields.prefixEncoding;
|
|
156
|
+
this.itemEncoding = fields.itemEncoding;
|
|
133
157
|
this.extensionFields = fields.extensionFields;
|
|
134
158
|
}
|
|
135
159
|
/**
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { OasRef } from '../ref/Ref.js';
|
|
2
|
+
import type { OasSchema } from '../schema/Schema.js';
|
|
3
|
+
import type { OasMediaType } from './MediaType.js';
|
|
4
|
+
/**
|
|
5
|
+
* The media type without its parameters, trimmed and lowercased:
|
|
6
|
+
* `Application/JSON; charset=utf-8` → `application/json`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const toMediaTypeEssence: (mediaType: string) => string;
|
|
9
|
+
/**
|
|
10
|
+
* True when a body of this media type is one JSON value: `application/json`,
|
|
11
|
+
* or any `application/…+json` (the RFC 6839 structured syntax suffix, e.g.
|
|
12
|
+
* `application/vnd.api+json`, `application/ld+json`,
|
|
13
|
+
* `application/problem+json`). Parameters and case are ignored, so
|
|
14
|
+
* `application/json;v=1.0` is JSON.
|
|
15
|
+
*
|
|
16
|
+
* False for everything else, including:
|
|
17
|
+
* - `text/json`: not registered; RFC 8259 registers only `application/json`.
|
|
18
|
+
* - `application/x-ndjson`, `application/jsonl`: a stream of JSON values, not
|
|
19
|
+
* one value.
|
|
20
|
+
* - ranges such as `*\/*`, `application/*` and `application/*+json`: they do
|
|
21
|
+
* not name one type.
|
|
22
|
+
* - names without the suffix, such as `application/vnd.goa.error`, even when
|
|
23
|
+
* the API sends JSON under them.
|
|
24
|
+
*/
|
|
25
|
+
export declare const isJsonMediaType: (mediaType: string) => boolean;
|
|
26
|
+
/** True when the media type is the full range `*\/*`, parameters and case ignored. */
|
|
27
|
+
export declare const isAnyMediaType: (mediaType: string) => boolean;
|
|
28
|
+
/** The media type a body is read from, and its schema. */
|
|
29
|
+
export type JsonContent = {
|
|
30
|
+
/** The key in `content`: a JSON-like media type, or `*\/*` (with any parameters). */
|
|
31
|
+
mediaType: string;
|
|
32
|
+
/**
|
|
33
|
+
* The media type to send or expect the body as: `mediaType` when it is
|
|
34
|
+
* JSON-like, `application/json` when the body is read from `*\/*`.
|
|
35
|
+
*/
|
|
36
|
+
contentType: string;
|
|
37
|
+
schema: OasSchema | OasRef<'schema'> | undefined;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Choose the media type a body is read from: `application/json` exactly when
|
|
41
|
+
* it is a key, else the first JSON-like key in document order (see
|
|
42
|
+
* {@link isJsonMediaType}), else the `*\/*` key when its schema is an object,
|
|
43
|
+
* array, union or `$ref`. `*\/*` admits JSON, and documents use it for JSON
|
|
44
|
+
* bodies (springdoc writes it for every response); the parser logs
|
|
45
|
+
* `WILDCARD_MEDIA_TYPE` for every body read this way. `undefined` otherwise:
|
|
46
|
+
* there is no fall back to a specific non-JSON type, to a narrower range such
|
|
47
|
+
* as `application/*`, or to a scalar schema under `*\/*`, since a consumer
|
|
48
|
+
* would read that body as JSON.
|
|
49
|
+
*/
|
|
50
|
+
export declare const toJsonContent: (content: Record<string, OasMediaType> | undefined) => JsonContent | undefined;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The media type without its parameters, trimmed and lowercased:
|
|
3
|
+
* `Application/JSON; charset=utf-8` → `application/json`.
|
|
4
|
+
*/
|
|
5
|
+
export const toMediaTypeEssence = (mediaType) => (mediaType.split(';')[0] ?? '').trim().toLowerCase();
|
|
6
|
+
/**
|
|
7
|
+
* True when a body of this media type is one JSON value: `application/json`,
|
|
8
|
+
* or any `application/…+json` (the RFC 6839 structured syntax suffix, e.g.
|
|
9
|
+
* `application/vnd.api+json`, `application/ld+json`,
|
|
10
|
+
* `application/problem+json`). Parameters and case are ignored, so
|
|
11
|
+
* `application/json;v=1.0` is JSON.
|
|
12
|
+
*
|
|
13
|
+
* False for everything else, including:
|
|
14
|
+
* - `text/json`: not registered; RFC 8259 registers only `application/json`.
|
|
15
|
+
* - `application/x-ndjson`, `application/jsonl`: a stream of JSON values, not
|
|
16
|
+
* one value.
|
|
17
|
+
* - ranges such as `*\/*`, `application/*` and `application/*+json`: they do
|
|
18
|
+
* not name one type.
|
|
19
|
+
* - names without the suffix, such as `application/vnd.goa.error`, even when
|
|
20
|
+
* the API sends JSON under them.
|
|
21
|
+
*/
|
|
22
|
+
export const isJsonMediaType = (mediaType) => {
|
|
23
|
+
const essence = toMediaTypeEssence(mediaType);
|
|
24
|
+
return essence === 'application/json' || /^application\/[^/*\s]+\+json$/.test(essence);
|
|
25
|
+
};
|
|
26
|
+
/** True when the media type is the full range `*\/*`, parameters and case ignored. */
|
|
27
|
+
export const isAnyMediaType = (mediaType) => toMediaTypeEssence(mediaType) === '*/*';
|
|
28
|
+
/**
|
|
29
|
+
* True when a schema under `*\/*` can be read as one JSON value: an object,
|
|
30
|
+
* array, union or `$ref`. A scalar is not: under `*\/*` a `string` is usually
|
|
31
|
+
* a text body, and `string` with `format: binary` a file.
|
|
32
|
+
*/
|
|
33
|
+
const isJsonShaped = (schema) => schema !== undefined &&
|
|
34
|
+
(schema.isRef() || schema.type === 'object' || schema.type === 'array' || schema.type === 'union');
|
|
35
|
+
/**
|
|
36
|
+
* Choose the media type a body is read from: `application/json` exactly when
|
|
37
|
+
* it is a key, else the first JSON-like key in document order (see
|
|
38
|
+
* {@link isJsonMediaType}), else the `*\/*` key when its schema is an object,
|
|
39
|
+
* array, union or `$ref`. `*\/*` admits JSON, and documents use it for JSON
|
|
40
|
+
* bodies (springdoc writes it for every response); the parser logs
|
|
41
|
+
* `WILDCARD_MEDIA_TYPE` for every body read this way. `undefined` otherwise:
|
|
42
|
+
* there is no fall back to a specific non-JSON type, to a narrower range such
|
|
43
|
+
* as `application/*`, or to a scalar schema under `*\/*`, since a consumer
|
|
44
|
+
* would read that body as JSON.
|
|
45
|
+
*/
|
|
46
|
+
export const toJsonContent = (content) => {
|
|
47
|
+
if (!content) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const mediaTypes = Object.keys(content);
|
|
51
|
+
const jsonMediaType = 'application/json' in content ? 'application/json' : mediaTypes.find(isJsonMediaType);
|
|
52
|
+
if (jsonMediaType !== undefined) {
|
|
53
|
+
return {
|
|
54
|
+
mediaType: jsonMediaType,
|
|
55
|
+
contentType: jsonMediaType,
|
|
56
|
+
schema: content[jsonMediaType]?.schema
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const anyMediaType = mediaTypes.find(isAnyMediaType);
|
|
60
|
+
const schema = anyMediaType === undefined ? undefined : content[anyMediaType]?.schema;
|
|
61
|
+
return anyMediaType !== undefined && isJsonShaped(schema)
|
|
62
|
+
? { mediaType: anyMediaType, contentType: 'application/json', schema }
|
|
63
|
+
: undefined;
|
|
64
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OasRef } from '../ref/Ref.js';
|
|
2
|
+
import type { OasSchema } from '../schema/Schema.js';
|
|
3
|
+
import type { OasMediaType } from './MediaType.js';
|
|
4
|
+
/**
|
|
5
|
+
* The schema a `toSchema(mediaType?)` lookup returns: an exact key lookup when
|
|
6
|
+
* `mediaType` is given, else the schema of `toJsonContent`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const toContentSchema: (content: Record<string, OasMediaType> | undefined, mediaType: string | undefined) => OasSchema | OasRef<"schema"> | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { toJsonContent } from './jsonMediaType.js';
|
|
2
|
+
/**
|
|
3
|
+
* The schema a `toSchema(mediaType?)` lookup returns: an exact key lookup when
|
|
4
|
+
* `mediaType` is given, else the schema of `toJsonContent`.
|
|
5
|
+
*/
|
|
6
|
+
export const toContentSchema = (content, mediaType) => mediaType === undefined ? toJsonContent(content)?.schema : content?.[mediaType]?.schema;
|