@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
|
@@ -10,6 +10,8 @@ import type { OasServerVariable } from '../serverVariable/ServerVariable.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export type ServerFields = {
|
|
12
12
|
description?: string | undefined;
|
|
13
|
+
/** Name that identifies the server (OpenAPI 3.2) */
|
|
14
|
+
name?: string | undefined;
|
|
13
15
|
url: string;
|
|
14
16
|
variables?: Record<string, OasServerVariable> | undefined;
|
|
15
17
|
extensionFields?: Record<string, unknown>;
|
|
@@ -54,6 +56,8 @@ export declare class OasServer {
|
|
|
54
56
|
oasType: 'server';
|
|
55
57
|
/** Human-readable description of the server */
|
|
56
58
|
description: string | undefined;
|
|
59
|
+
/** Name that identifies the server (OpenAPI 3.2) */
|
|
60
|
+
name: string | undefined;
|
|
57
61
|
/** Server URL with optional variable templating */
|
|
58
62
|
url: string;
|
|
59
63
|
/** Variable definitions for URL templating */
|
|
@@ -88,7 +92,9 @@ export declare class OasServer {
|
|
|
88
92
|
* Converts this OAS server to an OpenAPI v3 JSON schema representation.
|
|
89
93
|
*
|
|
90
94
|
* @param _options - Conversion options (currently unused for server objects)
|
|
91
|
-
* @returns OpenAPI v3 server object with URL, description, and
|
|
95
|
+
* @returns OpenAPI v3 server object with URL, description, variables and, when set, name
|
|
92
96
|
*/
|
|
93
|
-
toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ServerObject
|
|
97
|
+
toJsonSchema(_options: ToJsonSchemaOptions): OpenAPIV3.ServerObject & {
|
|
98
|
+
name?: string;
|
|
99
|
+
};
|
|
94
100
|
}
|
package/esm/oas/server/Server.js
CHANGED
|
@@ -55,6 +55,13 @@ export class OasServer {
|
|
|
55
55
|
writable: true,
|
|
56
56
|
value: void 0
|
|
57
57
|
});
|
|
58
|
+
/** Name that identifies the server (OpenAPI 3.2) */
|
|
59
|
+
Object.defineProperty(this, "name", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
configurable: true,
|
|
62
|
+
writable: true,
|
|
63
|
+
value: void 0
|
|
64
|
+
});
|
|
58
65
|
/** Server URL with optional variable templating */
|
|
59
66
|
Object.defineProperty(this, "url", {
|
|
60
67
|
enumerable: true,
|
|
@@ -77,6 +84,7 @@ export class OasServer {
|
|
|
77
84
|
value: void 0
|
|
78
85
|
});
|
|
79
86
|
this.description = fields.description;
|
|
87
|
+
this.name = fields.name;
|
|
80
88
|
this.url = fields.url;
|
|
81
89
|
this.variables = fields.variables;
|
|
82
90
|
this.extensionFields = fields.extensionFields;
|
|
@@ -109,11 +117,12 @@ export class OasServer {
|
|
|
109
117
|
* Converts this OAS server to an OpenAPI v3 JSON schema representation.
|
|
110
118
|
*
|
|
111
119
|
* @param _options - Conversion options (currently unused for server objects)
|
|
112
|
-
* @returns OpenAPI v3 server object with URL, description, and
|
|
120
|
+
* @returns OpenAPI v3 server object with URL, description, variables and, when set, name
|
|
113
121
|
*/
|
|
114
122
|
toJsonSchema(_options) {
|
|
115
123
|
return {
|
|
116
124
|
description: this.description,
|
|
125
|
+
...(this.name !== undefined ? { name: this.name } : {}),
|
|
117
126
|
url: this.url,
|
|
118
127
|
variables: this.variables
|
|
119
128
|
};
|
package/esm/oas/tag/Tag.d.ts
CHANGED
|
@@ -3,6 +3,12 @@ import type { OasExternalDocs } from '../externalDocs/ExternalDocs.js';
|
|
|
3
3
|
export type TagFields = {
|
|
4
4
|
name: string;
|
|
5
5
|
description: string | undefined;
|
|
6
|
+
/** Short summary of the tag (OpenAPI 3.2) */
|
|
7
|
+
summary?: string;
|
|
8
|
+
/** Name of the tag this tag nests under (OpenAPI 3.2) */
|
|
9
|
+
parent?: string;
|
|
10
|
+
/** Kind of tag, e.g. `nav`, `badge` or `audience` (OpenAPI 3.2, open registry) */
|
|
11
|
+
kind?: string;
|
|
6
12
|
externalDocs?: OasExternalDocs;
|
|
7
13
|
extensionFields?: Record<string, unknown>;
|
|
8
14
|
};
|
|
@@ -12,6 +18,9 @@ export declare class OasTag {
|
|
|
12
18
|
constructor(fields: TagFields);
|
|
13
19
|
get name(): string;
|
|
14
20
|
get description(): string | undefined;
|
|
21
|
+
get summary(): string | undefined;
|
|
22
|
+
get parent(): string | undefined;
|
|
23
|
+
get kind(): string | undefined;
|
|
15
24
|
get externalDocs(): OasExternalDocs | undefined;
|
|
16
25
|
/** Specification Extension fields */
|
|
17
26
|
get extensionFields(): Record<string, unknown> | undefined;
|
package/esm/oas/tag/Tag.js
CHANGED
|
@@ -28,6 +28,15 @@ export class OasTag {
|
|
|
28
28
|
get description() {
|
|
29
29
|
return __classPrivateFieldGet(this, _OasTag_fields, "f").description;
|
|
30
30
|
}
|
|
31
|
+
get summary() {
|
|
32
|
+
return __classPrivateFieldGet(this, _OasTag_fields, "f").summary;
|
|
33
|
+
}
|
|
34
|
+
get parent() {
|
|
35
|
+
return __classPrivateFieldGet(this, _OasTag_fields, "f").parent;
|
|
36
|
+
}
|
|
37
|
+
get kind() {
|
|
38
|
+
return __classPrivateFieldGet(this, _OasTag_fields, "f").kind;
|
|
39
|
+
}
|
|
31
40
|
get externalDocs() {
|
|
32
41
|
return __classPrivateFieldGet(this, _OasTag_fields, "f").externalDocs;
|
|
33
42
|
}
|
|
@@ -113,10 +113,10 @@ export declare class OasWebhook extends OasBase {
|
|
|
113
113
|
*/
|
|
114
114
|
toPayload(): OasRequestBody | undefined;
|
|
115
115
|
/**
|
|
116
|
-
* The schema of the received payload for `mediaType
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* type.
|
|
116
|
+
* The schema of the received payload for `mediaType`, an exact lookup —
|
|
117
|
+
* the inbound body shape a handler generator writes a type for. Without
|
|
118
|
+
* `mediaType`, the media type `OasRequestBody.toJsonContent` picks.
|
|
119
|
+
* `undefined` when there is no body or no schema for that media type.
|
|
120
120
|
*/
|
|
121
121
|
toPayloadSchema(mediaType?: string): OasSchema | OasRef<'schema'> | undefined;
|
|
122
122
|
/**
|
|
@@ -157,13 +157,13 @@ export class OasWebhook extends OasBase {
|
|
|
157
157
|
return this.requestBody?.resolve();
|
|
158
158
|
}
|
|
159
159
|
/**
|
|
160
|
-
* The schema of the received payload for `mediaType
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
* type.
|
|
160
|
+
* The schema of the received payload for `mediaType`, an exact lookup —
|
|
161
|
+
* the inbound body shape a handler generator writes a type for. Without
|
|
162
|
+
* `mediaType`, the media type `OasRequestBody.toJsonContent` picks.
|
|
163
|
+
* `undefined` when there is no body or no schema for that media type.
|
|
164
164
|
*/
|
|
165
|
-
toPayloadSchema(mediaType
|
|
166
|
-
return this.toPayload()?.
|
|
165
|
+
toPayloadSchema(mediaType) {
|
|
166
|
+
return this.toPayload()?.toSchema(mediaType);
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
169
169
|
* Resolve the inbound parameters (e.g. the signature/headers a handler
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ParseContextType } from '../context/parseTypes.js';
|
|
2
|
+
import type { StackTrail } from '../context/StackTrail.js';
|
|
3
|
+
import type { OasMediaType } from '../oas/mediaType/MediaType.js';
|
|
4
|
+
export type LogBodyMediaTypesArgs = {
|
|
5
|
+
/** The parsed `content` map of a response or request body. */
|
|
6
|
+
content: Record<string, OasMediaType> | undefined;
|
|
7
|
+
/** Trail of the response or request body; the issue is logged at its `content` key. */
|
|
8
|
+
stackTrail: StackTrail;
|
|
9
|
+
context: ParseContextType;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Log at most one issue for a parsed response or request body, from the same
|
|
13
|
+
* choice the lookups make (`toJsonContent`), so the issue and the lookup
|
|
14
|
+
* cannot disagree. Called after the body is built, so a body that fails to
|
|
15
|
+
* parse logs nothing.
|
|
16
|
+
*
|
|
17
|
+
* - `WILDCARD_MEDIA_TYPE` (`warning`): the body is read from `*\/*` as JSON,
|
|
18
|
+
* though the document does not say its format.
|
|
19
|
+
* - `NO_JSON_MEDIA_TYPE` (`debug`): no lookup reads the body, and its keys
|
|
20
|
+
* include a range (`*\/*` with a scalar schema, `application/*`), so its
|
|
21
|
+
* format is unknown.
|
|
22
|
+
*
|
|
23
|
+
* A body with only specific non-JSON types (`multipart/form-data`,
|
|
24
|
+
* `application/octet-stream`, `text/plain`) logs nothing: that is a normal
|
|
25
|
+
* text, form or binary body.
|
|
26
|
+
*/
|
|
27
|
+
export declare const logBodyMediaTypes: ({ content, stackTrail, context }: LogBodyMediaTypesArgs) => void;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { isAnyMediaType, toJsonContent, toMediaTypeEssence } from '../oas/mediaType/jsonMediaType.js';
|
|
2
|
+
/**
|
|
3
|
+
* Log at most one issue for a parsed response or request body, from the same
|
|
4
|
+
* choice the lookups make (`toJsonContent`), so the issue and the lookup
|
|
5
|
+
* cannot disagree. Called after the body is built, so a body that fails to
|
|
6
|
+
* parse logs nothing.
|
|
7
|
+
*
|
|
8
|
+
* - `WILDCARD_MEDIA_TYPE` (`warning`): the body is read from `*\/*` as JSON,
|
|
9
|
+
* though the document does not say its format.
|
|
10
|
+
* - `NO_JSON_MEDIA_TYPE` (`debug`): no lookup reads the body, and its keys
|
|
11
|
+
* include a range (`*\/*` with a scalar schema, `application/*`), so its
|
|
12
|
+
* format is unknown.
|
|
13
|
+
*
|
|
14
|
+
* A body with only specific non-JSON types (`multipart/form-data`,
|
|
15
|
+
* `application/octet-stream`, `text/plain`) logs nothing: that is a normal
|
|
16
|
+
* text, form or binary body.
|
|
17
|
+
*/
|
|
18
|
+
export const logBodyMediaTypes = ({ content, stackTrail, context }) => {
|
|
19
|
+
const mediaTypes = Object.keys(content ?? {});
|
|
20
|
+
if (mediaTypes.length === 0) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const listed = mediaTypes.map(mediaType => `"${mediaType}"`).join(', ');
|
|
24
|
+
// `parent` is only the keys: the issue log serializes it on every issue.
|
|
25
|
+
const parent = { mediaTypes };
|
|
26
|
+
const chosen = toJsonContent(content);
|
|
27
|
+
if (chosen !== undefined) {
|
|
28
|
+
if (isAnyMediaType(chosen.mediaType)) {
|
|
29
|
+
context.logIssue({
|
|
30
|
+
key: 'content',
|
|
31
|
+
level: 'warning',
|
|
32
|
+
type: 'WILDCARD_MEDIA_TYPE',
|
|
33
|
+
message: `Content has no JSON media type (${listed}), so the body is read from "*/*" as JSON although the document does not say its format`,
|
|
34
|
+
parent,
|
|
35
|
+
stackTrail
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (mediaTypes.some(mediaType => toMediaTypeEssence(mediaType).includes('*'))) {
|
|
41
|
+
context.logIssue({
|
|
42
|
+
key: 'content',
|
|
43
|
+
level: 'debug',
|
|
44
|
+
type: 'NO_JSON_MEDIA_TYPE',
|
|
45
|
+
message: `Content names only a media type range or non-JSON types (${listed}), so no lookup without a media type reads its schema`,
|
|
46
|
+
parent,
|
|
47
|
+
stackTrail
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
};
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The OpenAPI dialects SKMTC parses natively. Each has its own complete
|
|
3
|
-
* parser tree (`core/parse/v3-0`, `core/parse/v3-1`);
|
|
4
|
-
* ONLY place a document's version is examined. Once a
|
|
5
|
-
* the matching parser runs top-to-bottom and never
|
|
6
|
-
* so a 3.0 document can never reach a line of 3.1
|
|
7
|
-
* there is no downstream version branch to get
|
|
3
|
+
* parser tree (`core/parse/v3-0`, `core/parse/v3-1`, `core/parse/v3-2`);
|
|
4
|
+
* this module is the ONLY place a document's version is examined. Once a
|
|
5
|
+
* dialect is chosen the matching parser runs top-to-bottom and never
|
|
6
|
+
* re-checks the version, so a 3.0 document can never reach a line of 3.1
|
|
7
|
+
* logic (or vice versa) — there is no downstream version branch to get
|
|
8
|
+
* wrong.
|
|
8
9
|
*/
|
|
9
|
-
export type OasDialect = '3.0' | '3.1';
|
|
10
|
+
export type OasDialect = '3.0' | '3.1' | '3.2';
|
|
10
11
|
/**
|
|
11
12
|
* Map an OpenAPI document's `openapi` version string to its parser
|
|
12
13
|
* dialect.
|
|
@@ -15,7 +16,7 @@ export type OasDialect = '3.0' | '3.1';
|
|
|
15
16
|
* precondition failure — there is no sensible parser to pick — so it throws
|
|
16
17
|
* rather than silently defaulting to one dialect and masking the error. A
|
|
17
18
|
* loose `openapi.startsWith('3.1') ? '3.1' : '3.0'` would route every
|
|
18
|
-
* non-3.1 value (a typo, `
|
|
19
|
+
* non-3.1 value (a typo, `4.0`, a missing field) into 3.0 unnoticed;
|
|
19
20
|
* that is the footgun this avoids. Mirrors `@skmtc/convert`'s
|
|
20
21
|
* `toV3Document`, which likewise throws on an unrecognized version.
|
|
21
22
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* precondition failure — there is no sensible parser to pick — so it throws
|
|
7
7
|
* rather than silently defaulting to one dialect and masking the error. A
|
|
8
8
|
* loose `openapi.startsWith('3.1') ? '3.1' : '3.0'` would route every
|
|
9
|
-
* non-3.1 value (a typo, `
|
|
9
|
+
* non-3.1 value (a typo, `4.0`, a missing field) into 3.0 unnoticed;
|
|
10
10
|
* that is the footgun this avoids. Mirrors `@skmtc/convert`'s
|
|
11
11
|
* `toV3Document`, which likewise throws on an unrecognized version.
|
|
12
12
|
*
|
|
@@ -18,5 +18,7 @@ export const toOasDialect = (openapi) => {
|
|
|
18
18
|
return '3.0';
|
|
19
19
|
if (openapi?.startsWith('3.1'))
|
|
20
20
|
return '3.1';
|
|
21
|
-
|
|
21
|
+
if (openapi?.startsWith('3.2'))
|
|
22
|
+
return '3.2';
|
|
23
|
+
throw new Error(`Unsupported OpenAPI version: ${openapi ?? '(missing)'} — expected 3.0.x, 3.1.x or 3.2.x`);
|
|
22
24
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Method } from '../../types/Method.js';
|
|
2
|
+
/**
|
|
3
|
+
* A path item field that holds an Operation Object in OpenAPI 3.0. A
|
|
4
|
+
* `query` key is not one of them: it stays a skipped field.
|
|
5
|
+
*/
|
|
6
|
+
export type PathItemMethod = Exclude<Method, 'query'>;
|
|
7
|
+
export declare const pathItemMethods: readonly PathItemMethod[];
|
|
8
|
+
/**
|
|
9
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
10
|
+
*/
|
|
11
|
+
export declare const toPathItemMethod: (key: string) => PathItemMethod | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const pathItemMethods = [
|
|
2
|
+
'get',
|
|
3
|
+
'put',
|
|
4
|
+
'post',
|
|
5
|
+
'delete',
|
|
6
|
+
'options',
|
|
7
|
+
'head',
|
|
8
|
+
'patch',
|
|
9
|
+
'trace'
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
13
|
+
*/
|
|
14
|
+
export const toPathItemMethod = (key) => {
|
|
15
|
+
return pathItemMethods.find(method => method === key);
|
|
16
|
+
};
|
|
@@ -3,7 +3,7 @@ import { toResponsesV3 } from '../response/toResponseV3.js';
|
|
|
3
3
|
import { toParameterListV3 } from '../parameter/toParameterV3.js';
|
|
4
4
|
import { OasOperation } from '../../../oas/operation/Operation.js';
|
|
5
5
|
import { toPathItemV3 } from '../pathItem/toPathItemV3.js';
|
|
6
|
-
import {
|
|
6
|
+
import { toPathItemMethod } from '../methods.js';
|
|
7
7
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
8
8
|
import { toSecurityRequirementsV3 } from '../securityRequirement/toSecurityRequirement.js';
|
|
9
9
|
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
@@ -54,14 +54,14 @@ export const toOperationsV3 = ({ paths, stackTrail, context }) => {
|
|
|
54
54
|
return [];
|
|
55
55
|
}
|
|
56
56
|
const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
const { [
|
|
57
|
+
const method = toPathItemMethod(key);
|
|
58
|
+
if (method) {
|
|
59
|
+
const { [method]: _deleted, ...remaining } = rest;
|
|
60
60
|
return {
|
|
61
61
|
rest: remaining,
|
|
62
62
|
methodObject: {
|
|
63
63
|
...methodObject,
|
|
64
|
-
[
|
|
64
|
+
[method]: operation
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { OasParameterLocation } from '../../../oas/parameter/parameter-types.js';
|
|
3
3
|
import type { OpenAPIV3 } from 'openapi-types';
|
|
4
4
|
import { OasParameter } from '../../../oas/parameter/Parameter.js';
|
|
5
5
|
import type { OasRef } from '../../../oas/ref/Ref.js';
|
|
6
6
|
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
7
|
+
type ParameterLocation = Exclude<OasParameterLocation, 'querystring'>;
|
|
7
8
|
export type ToParameterListV3Args = {
|
|
8
9
|
parameters: (OpenAPIV3.ParameterObject | OpenAPIV3.ReferenceObject)[] | undefined;
|
|
9
10
|
stackTrail: StackTrail;
|
|
@@ -29,7 +30,7 @@ export type ToParameterV3Args = {
|
|
|
29
30
|
};
|
|
30
31
|
export type ToStyleArgs = {
|
|
31
32
|
style: string | undefined;
|
|
32
|
-
location:
|
|
33
|
+
location: ParameterLocation;
|
|
33
34
|
stackTrail: StackTrail;
|
|
34
35
|
};
|
|
35
36
|
export type ToExplodeArgs = {
|
|
@@ -37,3 +38,4 @@ export type ToExplodeArgs = {
|
|
|
37
38
|
style: string | undefined;
|
|
38
39
|
stackTrail: StackTrail;
|
|
39
40
|
};
|
|
41
|
+
export {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { tryParseAt } from '../../../context/tryParseAt.js';
|
|
2
2
|
import { isRef } from '../../../helpers/refFns.js';
|
|
3
|
-
import { oasParameterLocation, oasParameterStyle } from '../../../oas/parameter/parameter-types.js';
|
|
4
3
|
import { toExamplesV3 } from '../example/toExamplesV3.js';
|
|
5
4
|
import { toRefV31 } from '../ref/toRefV31.js';
|
|
6
5
|
import { toOptionalSchemaV3 } from '../schema/toSchemasV3.js';
|
|
@@ -8,6 +7,21 @@ import { toOptionalMediaTypeItemsV3 } from '../mediaType/toMediaTypeItemV3.js';
|
|
|
8
7
|
import { OasParameter } from '../../../oas/parameter/Parameter.js';
|
|
9
8
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
10
9
|
import * as v from 'valibot';
|
|
10
|
+
const parameterLocation = v.enum({
|
|
11
|
+
query: 'query',
|
|
12
|
+
header: 'header',
|
|
13
|
+
path: 'path',
|
|
14
|
+
cookie: 'cookie'
|
|
15
|
+
});
|
|
16
|
+
const parameterStyle = v.enum({
|
|
17
|
+
matrix: 'matrix',
|
|
18
|
+
label: 'label',
|
|
19
|
+
form: 'form',
|
|
20
|
+
simple: 'simple',
|
|
21
|
+
spaceDelimited: 'spaceDelimited',
|
|
22
|
+
pipeDelimited: 'pipeDelimited',
|
|
23
|
+
deepObject: 'deepObject'
|
|
24
|
+
});
|
|
11
25
|
export const toParameterListV3 = ({ parameters, stackTrail, context }) => {
|
|
12
26
|
if (!parameters) {
|
|
13
27
|
return undefined;
|
|
@@ -52,7 +66,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
|
|
|
52
66
|
stackTrail,
|
|
53
67
|
parentType: 'parameter'
|
|
54
68
|
});
|
|
55
|
-
const parsedLocation = v.parse(
|
|
69
|
+
const parsedLocation = v.parse(parameterLocation, location);
|
|
56
70
|
if (parsedLocation === 'path' && !required) {
|
|
57
71
|
console.warn(`Path parameters must be required`);
|
|
58
72
|
}
|
|
@@ -82,7 +96,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
|
|
|
82
96
|
return context.withStackTrail(stackTrail, () => new OasParameter(fields, context));
|
|
83
97
|
};
|
|
84
98
|
const toStyle = ({ style, location, stackTrail }) => {
|
|
85
|
-
const parsed = v.parse(v.optional(
|
|
99
|
+
const parsed = v.parse(v.optional(parameterStyle), style);
|
|
86
100
|
if (parsed !== undefined) {
|
|
87
101
|
return parsed;
|
|
88
102
|
}
|
|
@@ -3,6 +3,7 @@ import { toRefV31 } from '../ref/toRefV31.js';
|
|
|
3
3
|
import { toMediaTypeItemsV3 } from '../mediaType/toMediaTypeItemV3.js';
|
|
4
4
|
import { OasRequestBody } from '../../../oas/requestBody/RequestBody.js';
|
|
5
5
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
6
|
+
import { logBodyMediaTypes } from '../../logBodyMediaTypes.js';
|
|
6
7
|
export const toRequestBodyV3 = ({ requestBody, stackTrail, context }) => {
|
|
7
8
|
if (!requestBody) {
|
|
8
9
|
return undefined;
|
|
@@ -26,7 +27,9 @@ export const toRequestBodyV3 = ({ requestBody, stackTrail, context }) => {
|
|
|
26
27
|
required,
|
|
27
28
|
extensionFields
|
|
28
29
|
};
|
|
29
|
-
|
|
30
|
+
const parsed = context.withStackTrail(stackTrail, () => new OasRequestBody(fields, context));
|
|
31
|
+
logBodyMediaTypes({ content: fields.content, stackTrail, context });
|
|
32
|
+
return parsed;
|
|
30
33
|
};
|
|
31
34
|
export const toRequestBodiesV3 = ({ requestBodies, stackTrail, context }) => {
|
|
32
35
|
if (!requestBodies) {
|
|
@@ -6,6 +6,7 @@ import { toOptionalMediaTypeItemsV3 } from '../mediaType/toMediaTypeItemV3.js';
|
|
|
6
6
|
import { OasResponse } from '../../../oas/response/Response.js';
|
|
7
7
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
8
8
|
import { tryParseAt } from '../../../context/tryParseAt.js';
|
|
9
|
+
import { logBodyMediaTypes } from '../../logBodyMediaTypes.js';
|
|
9
10
|
export const toResponsesV3 = ({ responses, stackTrail, context }) => {
|
|
10
11
|
const output = {};
|
|
11
12
|
const entries = Object.entries(responses);
|
|
@@ -45,11 +46,13 @@ export const toResponseV3 = ({ response, stackTrail, context }) => {
|
|
|
45
46
|
const parsedHeaders = stackTrail.trace('headers', st => toHeadersV3({ headers, stackTrail: st, context }));
|
|
46
47
|
const parsedLinks = stackTrail.trace('links', st => toLinksV3({ links, stackTrail: st, context }));
|
|
47
48
|
const parsedContent = stackTrail.trace('content', st => toOptionalMediaTypeItemsV3({ content, stackTrail: st, context }));
|
|
48
|
-
|
|
49
|
+
const parsed = context.withStackTrail(stackTrail, () => new OasResponse({
|
|
49
50
|
description,
|
|
50
51
|
headers: parsedHeaders,
|
|
51
52
|
links: parsedLinks,
|
|
52
53
|
content: parsedContent,
|
|
53
54
|
extensionFields
|
|
54
55
|
}, context));
|
|
56
|
+
logBodyMediaTypes({ content: parsedContent, stackTrail, context });
|
|
57
|
+
return parsed;
|
|
55
58
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { OasHttpSecurityScheme, OasApiKeySecurityScheme, OasOAuth2SecurityScheme, OasOpenIdSecurityScheme } from '../../../oas/securitySchemes/SecurityScheme.js';
|
|
2
2
|
import * as v from 'valibot';
|
|
3
|
-
import { oasApiKeySecuritySchemeData, oasHttpSecuritySchemeData, oasOAuth2SecuritySchemeData, oasOpenIdSecuritySchemeData } from '../../../oas/securitySchemes/security-scheme-types.js';
|
|
3
|
+
import { oasApiKeySecuritySchemeData, oasHttpSecuritySchemeData, oasOAuth2FlowsData, oasOAuth2SecuritySchemeData, oasOpenIdSecuritySchemeData } from '../../../oas/securitySchemes/security-scheme-types.js';
|
|
4
4
|
import { toRefV31 } from '../ref/toRefV31.js';
|
|
5
5
|
import { isRef } from '../../../helpers/refFns.js';
|
|
6
|
-
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
7
6
|
import { tryParseAt } from '../../../context/tryParseAt.js';
|
|
7
|
+
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
8
8
|
export const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) => {
|
|
9
9
|
if (!securitySchemes) {
|
|
10
10
|
return undefined;
|
|
@@ -27,21 +27,29 @@ export const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) =>
|
|
|
27
27
|
}
|
|
28
28
|
return output;
|
|
29
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Log the keys of `value` that `known` does not name as skipped fields.
|
|
32
|
+
* `v.parse` on a `v.object` schema strips unknown keys, so they are read
|
|
33
|
+
* off the raw object. `x-` extensions are not logged.
|
|
34
|
+
*/
|
|
35
|
+
const logSkippedKeys = ({ value, known, parentType, stackTrail, context }) => {
|
|
36
|
+
const skipped = Object.fromEntries(Object.entries(value).filter(([key]) => !Object.hasOwn(known, key)));
|
|
37
|
+
toSpecificationExtensionsV3({ skipped, parent: value, parentType, stackTrail, context });
|
|
38
|
+
};
|
|
30
39
|
const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
|
|
31
40
|
if (isRef(securityScheme)) {
|
|
32
41
|
return toRefV31({ ref: securityScheme, refType: 'securityScheme', stackTrail, context });
|
|
33
42
|
}
|
|
34
43
|
switch (securityScheme.type) {
|
|
35
44
|
case 'http': {
|
|
36
|
-
const {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
+
const { description, scheme, bearerFormat } = v.parse(oasHttpSecuritySchemeData, securityScheme);
|
|
46
|
+
logSkippedKeys({
|
|
47
|
+
value: securityScheme,
|
|
48
|
+
known: oasHttpSecuritySchemeData.entries,
|
|
49
|
+
parentType: 'securityScheme:http',
|
|
50
|
+
stackTrail,
|
|
51
|
+
context
|
|
52
|
+
});
|
|
45
53
|
return new OasHttpSecurityScheme({
|
|
46
54
|
description,
|
|
47
55
|
scheme,
|
|
@@ -49,15 +57,14 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
|
|
|
49
57
|
});
|
|
50
58
|
}
|
|
51
59
|
case 'apiKey': {
|
|
52
|
-
const {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
60
|
+
const { in: location, description, name } = v.parse(oasApiKeySecuritySchemeData, securityScheme);
|
|
61
|
+
logSkippedKeys({
|
|
62
|
+
value: securityScheme,
|
|
63
|
+
known: oasApiKeySecuritySchemeData.entries,
|
|
64
|
+
parentType: 'securityScheme:apiKey',
|
|
65
|
+
stackTrail,
|
|
66
|
+
context
|
|
67
|
+
});
|
|
61
68
|
return new OasApiKeySecurityScheme({
|
|
62
69
|
description,
|
|
63
70
|
name,
|
|
@@ -65,30 +72,35 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
|
|
|
65
72
|
});
|
|
66
73
|
}
|
|
67
74
|
case 'oauth2': {
|
|
68
|
-
const {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const { flows, description } = v.parse(oasOAuth2SecuritySchemeData, securityScheme);
|
|
76
|
+
logSkippedKeys({
|
|
77
|
+
value: securityScheme,
|
|
78
|
+
known: oasOAuth2SecuritySchemeData.entries,
|
|
79
|
+
parentType: 'securityScheme:oauth2',
|
|
80
|
+
stackTrail,
|
|
81
|
+
context
|
|
82
|
+
});
|
|
83
|
+
stackTrail.trace('flows', st => logSkippedKeys({
|
|
84
|
+
value: securityScheme.flows,
|
|
85
|
+
known: oasOAuth2FlowsData.entries,
|
|
86
|
+
parentType: 'oauthFlows',
|
|
87
|
+
stackTrail: st,
|
|
88
|
+
context
|
|
89
|
+
}));
|
|
77
90
|
return new OasOAuth2SecurityScheme({
|
|
78
91
|
description,
|
|
79
92
|
flows
|
|
80
93
|
});
|
|
81
94
|
}
|
|
82
95
|
case 'openIdConnect': {
|
|
83
|
-
const {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
96
|
+
const { description, openIdConnectUrl } = v.parse(oasOpenIdSecuritySchemeData, securityScheme);
|
|
97
|
+
logSkippedKeys({
|
|
98
|
+
value: securityScheme,
|
|
99
|
+
known: oasOpenIdSecuritySchemeData.entries,
|
|
100
|
+
parentType: 'securityScheme:openIdConnect',
|
|
101
|
+
stackTrail,
|
|
102
|
+
context
|
|
103
|
+
});
|
|
92
104
|
return new OasOpenIdSecurityScheme({
|
|
93
105
|
description,
|
|
94
106
|
openIdConnectUrl
|
|
@@ -3,7 +3,7 @@ import { toResponsesV3 } from '../response/toResponseV3.js';
|
|
|
3
3
|
import { toParameterListV3 } from '../parameter/toParameterV3.js';
|
|
4
4
|
import { OasWebhook } from '../../../oas/webhook/Webhook.js';
|
|
5
5
|
import { toPathItemV3 } from '../pathItem/toPathItemV3.js';
|
|
6
|
-
import {
|
|
6
|
+
import { toPathItemMethod } from '../methods.js';
|
|
7
7
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
8
8
|
import { toSecurityRequirementsV3 } from '../securityRequirement/toSecurityRequirement.js';
|
|
9
9
|
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
@@ -69,14 +69,14 @@ export const toWebhooksV3 = ({ webhooks, stackTrail, context }) => {
|
|
|
69
69
|
return [];
|
|
70
70
|
}
|
|
71
71
|
const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
|
|
72
|
-
const
|
|
73
|
-
if (
|
|
74
|
-
const { [
|
|
72
|
+
const method = toPathItemMethod(key);
|
|
73
|
+
if (method) {
|
|
74
|
+
const { [method]: _deleted, ...remaining } = rest;
|
|
75
75
|
return {
|
|
76
76
|
rest: remaining,
|
|
77
77
|
methodObject: {
|
|
78
78
|
...methodObject,
|
|
79
|
-
[
|
|
79
|
+
[method]: operation
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
82
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Method } from '../../types/Method.js';
|
|
2
|
+
/**
|
|
3
|
+
* A path item field that holds an Operation Object in OpenAPI 3.1. A
|
|
4
|
+
* `query` key is not one of them: it stays a skipped field.
|
|
5
|
+
*/
|
|
6
|
+
export type PathItemMethod = Exclude<Method, 'query'>;
|
|
7
|
+
export declare const pathItemMethods: readonly PathItemMethod[];
|
|
8
|
+
/**
|
|
9
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
10
|
+
*/
|
|
11
|
+
export declare const toPathItemMethod: (key: string) => PathItemMethod | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const pathItemMethods = [
|
|
2
|
+
'get',
|
|
3
|
+
'put',
|
|
4
|
+
'post',
|
|
5
|
+
'delete',
|
|
6
|
+
'options',
|
|
7
|
+
'head',
|
|
8
|
+
'patch',
|
|
9
|
+
'trace'
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
13
|
+
*/
|
|
14
|
+
export const toPathItemMethod = (key) => {
|
|
15
|
+
return pathItemMethods.find(method => method === key);
|
|
16
|
+
};
|