@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
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toOptionalMediaTypeItemsV3 = exports.toMediaTypeItemsV3 = exports.toMediaTypeItemV3 = void 0;
|
|
4
|
+
const toSchemasV3_js_1 = require("../schema/toSchemasV3.js");
|
|
5
|
+
const toExamplesV3_js_1 = require("../example/toExamplesV3.js");
|
|
6
|
+
const MediaType_js_1 = require("../../../oas/mediaType/MediaType.js");
|
|
7
|
+
const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
|
|
8
|
+
const refFns_js_1 = require("../../../helpers/refFns.js");
|
|
9
|
+
const JsonPointer_js_1 = require("../../../types/JsonPointer.js");
|
|
10
|
+
/**
|
|
11
|
+
* Transforms an OpenAPI v3 media type object into an internal OAS media type representation.
|
|
12
|
+
*
|
|
13
|
+
* This function processes OpenAPI v3 MediaType objects, extracting schema definitions,
|
|
14
|
+
* examples, encoding information, and specification extensions. It creates a structured
|
|
15
|
+
* internal representation that can be used by the SKMTC pipeline for code generation
|
|
16
|
+
* and validation.
|
|
17
|
+
*
|
|
18
|
+
* The transformation handles all standard OpenAPI v3 MediaType properties including
|
|
19
|
+
* schema references, inline schemas, examples, encoding specifications, and custom
|
|
20
|
+
* extension fields that begin with 'x-'.
|
|
21
|
+
*
|
|
22
|
+
* @param args - Transformation arguments
|
|
23
|
+
* @param args.mediaTypeItem - The OpenAPI v3 media type object to process
|
|
24
|
+
* @param args.mediaType - The media type identifier (MIME type)
|
|
25
|
+
* @param args.context - Parsing context for tracing and error handling
|
|
26
|
+
* @returns Structured OAS media type object for internal processing
|
|
27
|
+
*
|
|
28
|
+
* @example Transforming JSON media type
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { toMediaTypeItemV3 } from '@skmtc/core/oas/mediaType';
|
|
31
|
+
*
|
|
32
|
+
* const jsonMediaType = {
|
|
33
|
+
* schema: {
|
|
34
|
+
* type: 'object',
|
|
35
|
+
* properties: {
|
|
36
|
+
* name: { type: 'string' },
|
|
37
|
+
* email: { type: 'string', format: 'email' }
|
|
38
|
+
* }
|
|
39
|
+
* },
|
|
40
|
+
* example: {
|
|
41
|
+
* name: 'John Doe',
|
|
42
|
+
* email: 'john@example.com'
|
|
43
|
+
* }
|
|
44
|
+
* };
|
|
45
|
+
*
|
|
46
|
+
* const result = toMediaTypeItemV3({
|
|
47
|
+
* mediaTypeItem: jsonMediaType,
|
|
48
|
+
* mediaType: 'application/json',
|
|
49
|
+
* context: parseContext
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* console.log(result.mediaType); // 'application/json'
|
|
53
|
+
* console.log(result.schema); // Processed schema object
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @example Processing form data with encoding
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const formMediaType = {
|
|
59
|
+
* schema: {
|
|
60
|
+
* type: 'object',
|
|
61
|
+
* properties: {
|
|
62
|
+
* file: { type: 'string', format: 'binary' },
|
|
63
|
+
* metadata: { type: 'string' }
|
|
64
|
+
* }
|
|
65
|
+
* },
|
|
66
|
+
* encoding: {
|
|
67
|
+
* file: {
|
|
68
|
+
* contentType: 'image/png',
|
|
69
|
+
* headers: {
|
|
70
|
+
* 'X-Rate-Limit': {
|
|
71
|
+
* schema: { type: 'integer' }
|
|
72
|
+
* }
|
|
73
|
+
* }
|
|
74
|
+
* }
|
|
75
|
+
* }
|
|
76
|
+
* };
|
|
77
|
+
*
|
|
78
|
+
* const result = toMediaTypeItemV3({
|
|
79
|
+
* mediaTypeItem: formMediaType,
|
|
80
|
+
* mediaType: 'multipart/form-data',
|
|
81
|
+
* context: parseContext
|
|
82
|
+
* });
|
|
83
|
+
*
|
|
84
|
+
* console.log(result.encoding); // Processed encoding configuration
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* @example Handling multiple examples
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const mediaTypeWithExamples = {
|
|
90
|
+
* schema: { type: 'string' },
|
|
91
|
+
* examples: {
|
|
92
|
+
* success: {
|
|
93
|
+
* summary: 'Successful response',
|
|
94
|
+
* value: 'Operation completed'
|
|
95
|
+
* },
|
|
96
|
+
* error: {
|
|
97
|
+
* summary: 'Error response',
|
|
98
|
+
* value: 'Operation failed'
|
|
99
|
+
* }
|
|
100
|
+
* }
|
|
101
|
+
* };
|
|
102
|
+
*
|
|
103
|
+
* const result = toMediaTypeItemV3({
|
|
104
|
+
* mediaTypeItem: mediaTypeWithExamples,
|
|
105
|
+
* mediaType: 'text/plain',
|
|
106
|
+
* context: parseContext
|
|
107
|
+
* });
|
|
108
|
+
*
|
|
109
|
+
* console.log(Object.keys(result.examples)); // ['success', 'error']
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
const toMediaTypeItemV3 = ({ mediaTypeItem, mediaType, stackTrail, context }) => {
|
|
113
|
+
const { schema, itemSchema, example, examples, encoding, prefixEncoding, itemEncoding, ...skipped } = mediaTypeItem;
|
|
114
|
+
const extensionFields = (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({
|
|
115
|
+
skipped,
|
|
116
|
+
parent: mediaTypeItem,
|
|
117
|
+
context,
|
|
118
|
+
stackTrail,
|
|
119
|
+
parentType: 'mediaType'
|
|
120
|
+
});
|
|
121
|
+
if (encoding !== undefined && (prefixEncoding !== undefined || itemEncoding !== undefined)) {
|
|
122
|
+
context.logIssue({
|
|
123
|
+
key: 'encoding',
|
|
124
|
+
level: 'warning',
|
|
125
|
+
message: `'encoding' must not be present together with 'prefixEncoding' or 'itemEncoding' in ${mediaType}`,
|
|
126
|
+
parent: mediaTypeItem,
|
|
127
|
+
stackTrail,
|
|
128
|
+
type: 'UNEXPECTED_PROPERTY'
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
const fields = {
|
|
132
|
+
mediaType,
|
|
133
|
+
encoding,
|
|
134
|
+
prefixEncoding,
|
|
135
|
+
itemEncoding,
|
|
136
|
+
schema: stackTrail.trace('schema', st => (0, toSchemasV3_js_1.toOptionalSchemaV3)({ schema, stackTrail: st, context })),
|
|
137
|
+
itemSchema: stackTrail.trace('itemSchema', st => (0, toSchemasV3_js_1.toOptionalSchemaV3)({ schema: itemSchema, stackTrail: st, context })),
|
|
138
|
+
examples: stackTrail.trace('examples', st => (0, toExamplesV3_js_1.toExamplesV3)({
|
|
139
|
+
example,
|
|
140
|
+
examples,
|
|
141
|
+
exampleKey: mediaType,
|
|
142
|
+
stackTrail: st,
|
|
143
|
+
context
|
|
144
|
+
})),
|
|
145
|
+
extensionFields
|
|
146
|
+
};
|
|
147
|
+
return context.withStackTrail(stackTrail, () => new MediaType_js_1.OasMediaType(fields, context));
|
|
148
|
+
};
|
|
149
|
+
exports.toMediaTypeItemV3 = toMediaTypeItemV3;
|
|
150
|
+
/**
|
|
151
|
+
* Transforms multiple OpenAPI v3 media type objects into internal OAS representations.
|
|
152
|
+
*
|
|
153
|
+
* This function processes a complete content map from OpenAPI v3, transforming each
|
|
154
|
+
* media type entry into its internal OAS representation. It's commonly used to process
|
|
155
|
+
* the `content` property of request bodies, responses, and parameters that support
|
|
156
|
+
* multiple media types.
|
|
157
|
+
*
|
|
158
|
+
* The function maintains the original media type keys while transforming the values
|
|
159
|
+
* into structured OAS media type objects. Each transformation is traced for debugging
|
|
160
|
+
* and error tracking purposes.
|
|
161
|
+
*
|
|
162
|
+
* @param args - Transformation arguments
|
|
163
|
+
* @param args.content - Map of media types to OpenAPI MediaType objects
|
|
164
|
+
* @param args.context - Parsing context for tracing and error handling
|
|
165
|
+
* @returns Map of media type strings to processed OAS media type objects
|
|
166
|
+
*
|
|
167
|
+
* @example Processing multiple content types
|
|
168
|
+
* ```typescript
|
|
169
|
+
* import { toMediaTypeItemsV3 } from '@skmtc/core/oas/mediaType';
|
|
170
|
+
*
|
|
171
|
+
* const content = {
|
|
172
|
+
* 'application/json': {
|
|
173
|
+
* schema: {
|
|
174
|
+
* type: 'object',
|
|
175
|
+
* properties: { message: { type: 'string' } }
|
|
176
|
+
* }
|
|
177
|
+
* },
|
|
178
|
+
* 'application/xml': {
|
|
179
|
+
* schema: {
|
|
180
|
+
* type: 'string'
|
|
181
|
+
* }
|
|
182
|
+
* },
|
|
183
|
+
* 'text/plain': {
|
|
184
|
+
* schema: {
|
|
185
|
+
* type: 'string'
|
|
186
|
+
* },
|
|
187
|
+
* example: 'Plain text response'
|
|
188
|
+
* }
|
|
189
|
+
* };
|
|
190
|
+
*
|
|
191
|
+
* const result = toMediaTypeItemsV3({
|
|
192
|
+
* content,
|
|
193
|
+
* context: parseContext
|
|
194
|
+
* });
|
|
195
|
+
*
|
|
196
|
+
* console.log(Object.keys(result)); // ['application/json', 'application/xml', 'text/plain']
|
|
197
|
+
* console.log(result['application/json'].mediaType); // 'application/json'
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @example Processing request body content types
|
|
201
|
+
* ```typescript
|
|
202
|
+
* const requestBodyContent = {
|
|
203
|
+
* 'application/json': {
|
|
204
|
+
* schema: { $ref: '#/components/schemas/CreateUserRequest' }
|
|
205
|
+
* },
|
|
206
|
+
* 'application/x-www-form-urlencoded': {
|
|
207
|
+
* schema: {
|
|
208
|
+
* type: 'object',
|
|
209
|
+
* properties: {
|
|
210
|
+
* name: { type: 'string' },
|
|
211
|
+
* email: { type: 'string' }
|
|
212
|
+
* }
|
|
213
|
+
* },
|
|
214
|
+
* encoding: {
|
|
215
|
+
* email: {
|
|
216
|
+
* style: 'form',
|
|
217
|
+
* explode: false
|
|
218
|
+
* }
|
|
219
|
+
* }
|
|
220
|
+
* }
|
|
221
|
+
* };
|
|
222
|
+
*
|
|
223
|
+
* const processed = toMediaTypeItemsV3({
|
|
224
|
+
* content: requestBodyContent,
|
|
225
|
+
* context: parseContext
|
|
226
|
+
* });
|
|
227
|
+
*
|
|
228
|
+
* // Each media type is processed with its specific configuration
|
|
229
|
+
* console.log(processed['application/json'].schema); // Reference object
|
|
230
|
+
* console.log(processed['application/x-www-form-urlencoded'].encoding); // Form encoding config
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
const toMediaTypeItemsV3 = ({ content, stackTrail, context }) => {
|
|
234
|
+
const output = {};
|
|
235
|
+
const entries = Object.entries(content);
|
|
236
|
+
for (const [mediaType, value] of entries) {
|
|
237
|
+
// A `$ref` is replaced by the Media Type Object it names, so a
|
|
238
|
+
// referenced media type parses exactly like an inline one.
|
|
239
|
+
const mediaTypeItem = (0, refFns_js_1.isRef)(value) ? toComponentMediaType({ $ref: value.$ref, context }) : value;
|
|
240
|
+
if (mediaTypeItem === undefined) {
|
|
241
|
+
context.logIssue({
|
|
242
|
+
key: mediaType,
|
|
243
|
+
level: 'error',
|
|
244
|
+
message: `Reference ${JSON.stringify(value)} does not resolve to an entry in components.mediaTypes; dropping '${mediaType}'`,
|
|
245
|
+
parent: value,
|
|
246
|
+
stackTrail,
|
|
247
|
+
type: 'INVALID_DEPENDENCY_REF'
|
|
248
|
+
});
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
output[mediaType] = stackTrail.trace(mediaType, st => (0, exports.toMediaTypeItemV3)({ mediaTypeItem, mediaType, stackTrail: st, context }));
|
|
252
|
+
}
|
|
253
|
+
return output;
|
|
254
|
+
};
|
|
255
|
+
exports.toMediaTypeItemsV3 = toMediaTypeItemsV3;
|
|
256
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
257
|
+
const isMediaTypeObject = (value) => isRecord(value) && !(0, refFns_js_1.isRef)(value);
|
|
258
|
+
/**
|
|
259
|
+
* The Media Type Object a `$ref` names in `components.mediaTypes`, read off
|
|
260
|
+
* the raw document. An entry that is itself a `$ref` is followed. `undefined`
|
|
261
|
+
* when a `$ref` on the chain points elsewhere or names a missing entry, or
|
|
262
|
+
* when the chain is a cycle.
|
|
263
|
+
*/
|
|
264
|
+
const toComponentMediaType = ({ $ref, context, visited = new Set() }) => {
|
|
265
|
+
const segments = $ref.startsWith('#') ? (0, JsonPointer_js_1.fromJsonPointer)($ref) : undefined;
|
|
266
|
+
if (segments?.length !== 3 || segments[0] !== 'components' || segments[1] !== 'mediaTypes') {
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
const [, , name] = segments;
|
|
270
|
+
if (visited.has(name)) {
|
|
271
|
+
return undefined;
|
|
272
|
+
}
|
|
273
|
+
const { components } = context.documentObject;
|
|
274
|
+
const mediaTypes = isRecord(components) ? components.mediaTypes : undefined;
|
|
275
|
+
if (!isRecord(mediaTypes) || !Object.hasOwn(mediaTypes, name)) {
|
|
276
|
+
return undefined;
|
|
277
|
+
}
|
|
278
|
+
const mediaTypeItem = mediaTypes[name];
|
|
279
|
+
if ((0, refFns_js_1.isRef)(mediaTypeItem)) {
|
|
280
|
+
return toComponentMediaType({
|
|
281
|
+
$ref: mediaTypeItem.$ref,
|
|
282
|
+
context,
|
|
283
|
+
visited: new Set([...visited, name])
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
return isMediaTypeObject(mediaTypeItem) ? mediaTypeItem : undefined;
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* Optionally transforms OpenAPI v3 media type objects when content is provided.
|
|
290
|
+
*
|
|
291
|
+
* This function provides a safe way to process media type content that may or may not
|
|
292
|
+
* be present in the OpenAPI specification. It handles the common pattern where content
|
|
293
|
+
* properties are optional in OpenAPI objects (like responses without bodies or
|
|
294
|
+
* operations without request bodies).
|
|
295
|
+
*
|
|
296
|
+
* When content is undefined, the function returns undefined without processing.
|
|
297
|
+
* When content is provided, it delegates to `toMediaTypeItemsV3` for full processing.
|
|
298
|
+
*
|
|
299
|
+
* @param args - Transformation arguments
|
|
300
|
+
* @param args.content - Optional map of media types to OpenAPI MediaType objects
|
|
301
|
+
* @param args.context - Parsing context for tracing and error handling
|
|
302
|
+
* @returns Map of processed media types if content exists, undefined otherwise
|
|
303
|
+
*
|
|
304
|
+
* @example Handling optional response content
|
|
305
|
+
* ```typescript
|
|
306
|
+
* import { toOptionalMediaTypeItemsV3 } from '@skmtc/core/oas/mediaType';
|
|
307
|
+
*
|
|
308
|
+
* // Response with content
|
|
309
|
+
* const responseWithContent = {
|
|
310
|
+
* description: 'Successful response',
|
|
311
|
+
* content: {
|
|
312
|
+
* 'application/json': {
|
|
313
|
+
* schema: { type: 'object' }
|
|
314
|
+
* }
|
|
315
|
+
* }
|
|
316
|
+
* };
|
|
317
|
+
*
|
|
318
|
+
* const withContent = toOptionalMediaTypeItemsV3({
|
|
319
|
+
* content: responseWithContent.content,
|
|
320
|
+
* context: parseContext
|
|
321
|
+
* });
|
|
322
|
+
* console.log(withContent); // { 'application/json': OasMediaType }
|
|
323
|
+
*
|
|
324
|
+
* // Response without content (like 204 No Content)
|
|
325
|
+
* const responseNoContent = {
|
|
326
|
+
* description: 'No content response'
|
|
327
|
+
* };
|
|
328
|
+
*
|
|
329
|
+
* const noContent = toOptionalMediaTypeItemsV3({
|
|
330
|
+
* content: responseNoContent.content, // undefined
|
|
331
|
+
* context: parseContext
|
|
332
|
+
* });
|
|
333
|
+
* console.log(noContent); // undefined
|
|
334
|
+
* ```
|
|
335
|
+
*
|
|
336
|
+
* @example Processing operations with optional request bodies
|
|
337
|
+
* ```typescript
|
|
338
|
+
* function processOperation(operation: OpenAPIV3.OperationObject) {
|
|
339
|
+
* const requestBodyContent = toOptionalMediaTypeItemsV3({
|
|
340
|
+
* content: operation.requestBody?.content,
|
|
341
|
+
* context: parseContext
|
|
342
|
+
* });
|
|
343
|
+
*
|
|
344
|
+
* if (requestBodyContent) {
|
|
345
|
+
* console.log('Operation has request body with media types:');
|
|
346
|
+
* console.log(Object.keys(requestBodyContent));
|
|
347
|
+
* } else {
|
|
348
|
+
* console.log('Operation has no request body');
|
|
349
|
+
* }
|
|
350
|
+
* }
|
|
351
|
+
* ```
|
|
352
|
+
*
|
|
353
|
+
* @example Safe processing in response handlers
|
|
354
|
+
* ```typescript
|
|
355
|
+
* class ResponseProcessor {
|
|
356
|
+
* processResponse(response: OpenAPIV3.ResponseObject) {
|
|
357
|
+
* const mediaTypes = toOptionalMediaTypeItemsV3({
|
|
358
|
+
* content: response.content,
|
|
359
|
+
* context: this.context
|
|
360
|
+
* });
|
|
361
|
+
*
|
|
362
|
+
* // Safe to check without worrying about undefined content
|
|
363
|
+
* const hasJsonResponse = mediaTypes && 'application/json' in mediaTypes;
|
|
364
|
+
*
|
|
365
|
+
* if (hasJsonResponse) {
|
|
366
|
+
* const jsonMediaType = mediaTypes['application/json'];
|
|
367
|
+
* return this.generateJsonResponseHandler(jsonMediaType);
|
|
368
|
+
* }
|
|
369
|
+
*
|
|
370
|
+
* return this.generateEmptyResponseHandler();
|
|
371
|
+
* }
|
|
372
|
+
* }
|
|
373
|
+
* ```
|
|
374
|
+
*/
|
|
375
|
+
const toOptionalMediaTypeItemsV3 = ({ content, stackTrail, context }) => {
|
|
376
|
+
if (!content) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
return (0, exports.toMediaTypeItemsV3)({ content, stackTrail, context });
|
|
380
|
+
};
|
|
381
|
+
exports.toOptionalMediaTypeItemsV3 = toOptionalMediaTypeItemsV3;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { Method } from '../../types/Method.js';
|
|
3
|
+
/**
|
|
4
|
+
* The path item fields that hold an Operation Object in OpenAPI 3.2.
|
|
5
|
+
* `query` is new in 3.2.
|
|
6
|
+
*/
|
|
7
|
+
export declare const pathItemMethods: readonly Method[];
|
|
8
|
+
/**
|
|
9
|
+
* A 3.2 path item: the `openapi-types` path item plus the `query` operation.
|
|
10
|
+
*/
|
|
11
|
+
export type PathItemObjectV3 = OpenAPIV3.PathItemObject & {
|
|
12
|
+
query?: OpenAPIV3.OperationObject;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Returns `key` as a {@link Method} when it is one of {@link pathItemMethods}.
|
|
16
|
+
*/
|
|
17
|
+
export declare const toPathItemMethod: (key: string) => Method | undefined;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toPathItemMethod = exports.pathItemMethods = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The path item fields that hold an Operation Object in OpenAPI 3.2.
|
|
6
|
+
* `query` is new in 3.2.
|
|
7
|
+
*/
|
|
8
|
+
exports.pathItemMethods = [
|
|
9
|
+
'get',
|
|
10
|
+
'put',
|
|
11
|
+
'post',
|
|
12
|
+
'delete',
|
|
13
|
+
'options',
|
|
14
|
+
'head',
|
|
15
|
+
'patch',
|
|
16
|
+
'trace',
|
|
17
|
+
'query'
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Returns `key` as a {@link Method} when it is one of {@link pathItemMethods}.
|
|
21
|
+
*/
|
|
22
|
+
const toPathItemMethod = (key) => {
|
|
23
|
+
return exports.pathItemMethods.find(method => method === key);
|
|
24
|
+
};
|
|
25
|
+
exports.toPathItemMethod = toPathItemMethod;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
3
|
+
import { OasNumber } from '../../../oas/number/Number.js';
|
|
4
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
5
|
+
export type ToNumberArgs = {
|
|
6
|
+
value: OpenAPIV3.SchemaObject;
|
|
7
|
+
stackTrail: StackTrail;
|
|
8
|
+
context: ParseContextType;
|
|
9
|
+
};
|
|
10
|
+
export declare const toNumber: ({ context, value, stackTrail }: ToNumberArgs) => OasNumber;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.toNumber = void 0;
|
|
37
|
+
const Number_js_1 = require("../../../oas/number/Number.js");
|
|
38
|
+
const toSpecificationExtensionsV3_js_1 = require("../specificationExtensions/toSpecificationExtensionsV3.js");
|
|
39
|
+
const number_types_js_1 = require("../../../oas/number/number-types.js");
|
|
40
|
+
const parseNullable_js_1 = require("../_helpers/parseNullable.js");
|
|
41
|
+
const parseEnum_js_1 = require("../_helpers/parseEnum.js");
|
|
42
|
+
const parseExample_js_1 = require("../_helpers/parseExample.js");
|
|
43
|
+
const parseDefault_js_1 = require("../_helpers/parseDefault.js");
|
|
44
|
+
const v = __importStar(require("valibot"));
|
|
45
|
+
const toNumber = ({ context, value, stackTrail }) => {
|
|
46
|
+
const { nullable, value: valueWithoutNullable } = (0, parseNullable_js_1.parseNullable)({
|
|
47
|
+
value,
|
|
48
|
+
context,
|
|
49
|
+
stackTrail
|
|
50
|
+
});
|
|
51
|
+
const { example: unparsedExample, ...valueWithoutExample } = valueWithoutNullable;
|
|
52
|
+
const example = (0, parseExample_js_1.parseExample)({
|
|
53
|
+
value: unparsedExample,
|
|
54
|
+
context,
|
|
55
|
+
parent: valueWithoutNullable,
|
|
56
|
+
nullable,
|
|
57
|
+
check: isNumber,
|
|
58
|
+
toMessage: item => `Removed invalid example. Expected "number", got: ${item}`,
|
|
59
|
+
stackTrail
|
|
60
|
+
});
|
|
61
|
+
const { enum: unparsedEnums, ...valueWithoutEnums } = valueWithoutExample;
|
|
62
|
+
const enums = (0, parseEnum_js_1.parseEnum)({
|
|
63
|
+
value: unparsedEnums,
|
|
64
|
+
nullable,
|
|
65
|
+
stackTrail,
|
|
66
|
+
parent: valueWithoutExample,
|
|
67
|
+
context,
|
|
68
|
+
check: isNumber,
|
|
69
|
+
toMessage: item => `Removed invalid enum. Expected "number", got: ${item}`
|
|
70
|
+
});
|
|
71
|
+
const { default: unparsedDefaultValue, ...valueWithoutDefault } = valueWithoutEnums;
|
|
72
|
+
const defaultValue = (0, parseDefault_js_1.parseDefault)({
|
|
73
|
+
value: unparsedDefaultValue,
|
|
74
|
+
context,
|
|
75
|
+
parent: valueWithoutEnums,
|
|
76
|
+
nullable,
|
|
77
|
+
check: isNumber,
|
|
78
|
+
toMessage: item => `Removed invalid default. Expected "number", got: ${item}`,
|
|
79
|
+
stackTrail
|
|
80
|
+
});
|
|
81
|
+
return toParsedNumber({
|
|
82
|
+
context,
|
|
83
|
+
nullable,
|
|
84
|
+
example,
|
|
85
|
+
enums,
|
|
86
|
+
defaultValue,
|
|
87
|
+
value: valueWithoutDefault,
|
|
88
|
+
stackTrail
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
exports.toNumber = toNumber;
|
|
92
|
+
const toParsedNumber = ({ context, nullable, example, enums, defaultValue, value: valueWithoutEnums, stackTrail }) => {
|
|
93
|
+
const { format: unparsedFormat, ...valueWithoutFormat } = valueWithoutEnums;
|
|
94
|
+
const format = parseNumberFormat({
|
|
95
|
+
format: unparsedFormat,
|
|
96
|
+
context,
|
|
97
|
+
stackTrail,
|
|
98
|
+
parent: valueWithoutEnums
|
|
99
|
+
});
|
|
100
|
+
if (!v.is(number_types_js_1.oasNumberData, valueWithoutFormat)) {
|
|
101
|
+
v.parse(number_types_js_1.oasNumberData, valueWithoutFormat);
|
|
102
|
+
}
|
|
103
|
+
const { type: _type, title, description, multipleOf, maximum, exclusiveMaximum, minimum, exclusiveMinimum, readOnly, writeOnly, deprecated, ...skipped } = valueWithoutFormat;
|
|
104
|
+
const extensionFields = (0, toSpecificationExtensionsV3_js_1.toSpecificationExtensionsV3)({
|
|
105
|
+
skipped,
|
|
106
|
+
parent: valueWithoutFormat,
|
|
107
|
+
context,
|
|
108
|
+
stackTrail,
|
|
109
|
+
parentType: 'schema:number'
|
|
110
|
+
});
|
|
111
|
+
return context.withStackTrail(stackTrail, () => new Number_js_1.OasNumber({
|
|
112
|
+
title,
|
|
113
|
+
description,
|
|
114
|
+
nullable,
|
|
115
|
+
default: defaultValue,
|
|
116
|
+
extensionFields,
|
|
117
|
+
example,
|
|
118
|
+
enums,
|
|
119
|
+
format,
|
|
120
|
+
multipleOf,
|
|
121
|
+
maximum,
|
|
122
|
+
exclusiveMaximum,
|
|
123
|
+
minimum,
|
|
124
|
+
readOnly,
|
|
125
|
+
writeOnly,
|
|
126
|
+
exclusiveMinimum,
|
|
127
|
+
deprecated
|
|
128
|
+
}, context));
|
|
129
|
+
};
|
|
130
|
+
const parseNumberFormat = ({ format, context, parent, stackTrail }) => {
|
|
131
|
+
if (format === undefined) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
if (!v.is(number_types_js_1.numberFormat, format)) {
|
|
135
|
+
// `format` is an open vocabulary; a value the IR's numberFormat can't
|
|
136
|
+
// hold (e.g. `decimal`) is dropped. Recorded at `debug` — the dropped
|
|
137
|
+
// hint is informational, not a correctness issue.
|
|
138
|
+
context.logIssue({
|
|
139
|
+
key: 'format',
|
|
140
|
+
level: 'debug',
|
|
141
|
+
message: `Invalid format: ${format}`,
|
|
142
|
+
parent,
|
|
143
|
+
stackTrail,
|
|
144
|
+
type: 'INVALID_FORMAT'
|
|
145
|
+
});
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
return format;
|
|
149
|
+
};
|
|
150
|
+
const isNumber = (value) => {
|
|
151
|
+
return typeof value === 'number';
|
|
152
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
3
|
+
import type { OasSchema } from '../../../oas/schema/Schema.js';
|
|
4
|
+
import type { OasRef } from '../../../oas/ref/Ref.js';
|
|
5
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
6
|
+
export type ToAdditionalPropertiesV3Args = {
|
|
7
|
+
additionalProperties: boolean | OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject | undefined;
|
|
8
|
+
stackTrail: StackTrail;
|
|
9
|
+
context: ParseContextType;
|
|
10
|
+
};
|
|
11
|
+
export declare const toAdditionalPropertiesV3: ({ additionalProperties, stackTrail, context }: ToAdditionalPropertiesV3Args) => OasSchema | OasRef<"schema"> | boolean | undefined;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toAdditionalPropertiesV3 = void 0;
|
|
4
|
+
const toSchemasV3_js_1 = require("../schema/toSchemasV3.js");
|
|
5
|
+
const toAdditionalPropertiesV3 = ({ additionalProperties, stackTrail, context }) => {
|
|
6
|
+
if (typeof additionalProperties === 'boolean') {
|
|
7
|
+
return additionalProperties;
|
|
8
|
+
}
|
|
9
|
+
if (additionalProperties === undefined) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return (0, toSchemasV3_js_1.toSchemaV3)({ schema: additionalProperties, stackTrail, context });
|
|
13
|
+
};
|
|
14
|
+
exports.toAdditionalPropertiesV3 = toAdditionalPropertiesV3;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
3
|
+
import { OasObject } from '../../../oas/object/Object.js';
|
|
4
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
5
|
+
export type ToObjectArgs = {
|
|
6
|
+
value: OpenAPIV3.SchemaObject;
|
|
7
|
+
context: ParseContextType;
|
|
8
|
+
stackTrail: StackTrail;
|
|
9
|
+
};
|
|
10
|
+
export declare const toObject: ({ value, context, stackTrail }: ToObjectArgs) => OasObject;
|