@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
|
@@ -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';
|
|
@@ -57,14 +57,14 @@ export const toOperationsV3 = ({ paths, stackTrail, context }) => {
|
|
|
57
57
|
return [];
|
|
58
58
|
}
|
|
59
59
|
const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
|
|
60
|
-
const
|
|
61
|
-
if (
|
|
62
|
-
const { [
|
|
60
|
+
const method = toPathItemMethod(key);
|
|
61
|
+
if (method) {
|
|
62
|
+
const { [method]: _deleted, ...remaining } = rest;
|
|
63
63
|
return {
|
|
64
64
|
rest: remaining,
|
|
65
65
|
methodObject: {
|
|
66
66
|
...methodObject,
|
|
67
|
-
[
|
|
67
|
+
[method]: operation
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
}
|
|
@@ -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,43 @@
|
|
|
1
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
2
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
3
|
+
/**
|
|
4
|
+
* Arguments for parsing the `default` property from OpenAPI schemas.
|
|
5
|
+
*
|
|
6
|
+
* @template Value - The narrowed type a valid (non-null) default holds
|
|
7
|
+
*/
|
|
8
|
+
export type ParseDefaultArgs<Value> = {
|
|
9
|
+
/** The raw `default` value extracted from the schema */
|
|
10
|
+
value: unknown;
|
|
11
|
+
/** The parsed nullable flag — `null` is only a valid default when this is `true` */
|
|
12
|
+
nullable: boolean | undefined;
|
|
13
|
+
/** The surrounding schema object, used as the issue location's parent */
|
|
14
|
+
parent: unknown;
|
|
15
|
+
/** Type guard narrowing an acceptable non-null default to `Value` */
|
|
16
|
+
check: (item: unknown) => item is Value;
|
|
17
|
+
/** Builds the warning message for a rejected default */
|
|
18
|
+
toMessage: (item: unknown) => string;
|
|
19
|
+
/** Parse context for logging issues */
|
|
20
|
+
context: ParseContextType;
|
|
21
|
+
/** Stack trail for tracking the current parsing location */
|
|
22
|
+
stackTrail: StackTrail;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Parses and validates the `default` property of an OpenAPI scalar/structural
|
|
26
|
+
* schema, applying the nullable-conditional rule shared by `example`, `enum`,
|
|
27
|
+
* and `default`:
|
|
28
|
+
*
|
|
29
|
+
* - `undefined` → `undefined` (no default present)
|
|
30
|
+
* - `null` → kept only when `nullable` is `true`; otherwise rejected
|
|
31
|
+
* - a value passing `check` → kept
|
|
32
|
+
* - anything else → logged as an `INVALID_DEFAULT` warning and dropped
|
|
33
|
+
*
|
|
34
|
+
* This mirrors the OpenAPI 3.0 rule that a `default` MUST conform to the
|
|
35
|
+
* schema's type, where `nullable: true` widens that type to include `null`.
|
|
36
|
+
* The function is fail-open: an invalid default is stripped and recorded as a
|
|
37
|
+
* `ParseIssue`, never thrown.
|
|
38
|
+
*
|
|
39
|
+
* @template Value - The narrowed type a valid default holds
|
|
40
|
+
* @param args - Parsing configuration
|
|
41
|
+
* @returns The validated default (`Value`), `null` (nullable), or `undefined`
|
|
42
|
+
*/
|
|
43
|
+
export declare const parseDefault: <Value>({ value, nullable, parent, context, check, toMessage, stackTrail }: ParseDefaultArgs<Value>) => Value | null | undefined;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses and validates the `default` property of an OpenAPI scalar/structural
|
|
3
|
+
* schema, applying the nullable-conditional rule shared by `example`, `enum`,
|
|
4
|
+
* and `default`:
|
|
5
|
+
*
|
|
6
|
+
* - `undefined` → `undefined` (no default present)
|
|
7
|
+
* - `null` → kept only when `nullable` is `true`; otherwise rejected
|
|
8
|
+
* - a value passing `check` → kept
|
|
9
|
+
* - anything else → logged as an `INVALID_DEFAULT` warning and dropped
|
|
10
|
+
*
|
|
11
|
+
* This mirrors the OpenAPI 3.0 rule that a `default` MUST conform to the
|
|
12
|
+
* schema's type, where `nullable: true` widens that type to include `null`.
|
|
13
|
+
* The function is fail-open: an invalid default is stripped and recorded as a
|
|
14
|
+
* `ParseIssue`, never thrown.
|
|
15
|
+
*
|
|
16
|
+
* @template Value - The narrowed type a valid default holds
|
|
17
|
+
* @param args - Parsing configuration
|
|
18
|
+
* @returns The validated default (`Value`), `null` (nullable), or `undefined`
|
|
19
|
+
*/
|
|
20
|
+
export const parseDefault = ({ value, nullable, parent, context, check, toMessage, stackTrail }) => {
|
|
21
|
+
if (value === undefined) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
if (nullable && value === null) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
if (!check(value)) {
|
|
28
|
+
context.logIssue({
|
|
29
|
+
key: 'default',
|
|
30
|
+
level: 'warning',
|
|
31
|
+
message: toMessage(value),
|
|
32
|
+
parent,
|
|
33
|
+
stackTrail,
|
|
34
|
+
type: 'INVALID_DEFAULT'
|
|
35
|
+
});
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
2
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
3
|
+
type ParseEnumArgs = {
|
|
4
|
+
value: unknown;
|
|
5
|
+
nullable: boolean | undefined;
|
|
6
|
+
parent: unknown;
|
|
7
|
+
check: (item: unknown) => boolean;
|
|
8
|
+
toMessage: (item: unknown) => string;
|
|
9
|
+
context: ParseContextType;
|
|
10
|
+
stackTrail: StackTrail;
|
|
11
|
+
};
|
|
12
|
+
export declare const parseEnum: ({ value, nullable, parent, context, check, toMessage, stackTrail }: ParseEnumArgs) => any[] | undefined;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const parseEnum = ({ value, nullable, parent, context, check, toMessage, stackTrail }) => {
|
|
2
|
+
if (Array.isArray(value)) {
|
|
3
|
+
for (const item of value) {
|
|
4
|
+
if (nullable && item === null) {
|
|
5
|
+
continue;
|
|
6
|
+
}
|
|
7
|
+
if (check(item)) {
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
context.logIssue({
|
|
11
|
+
key: 'enum',
|
|
12
|
+
level: 'warning',
|
|
13
|
+
message: toMessage(item),
|
|
14
|
+
parent,
|
|
15
|
+
stackTrail,
|
|
16
|
+
type: 'INVALID_ENUM'
|
|
17
|
+
});
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
2
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
3
|
+
/**
|
|
4
|
+
* Arguments for parsing the `example` property from OpenAPI schemas.
|
|
5
|
+
*
|
|
6
|
+
* @template Value - The narrowed type a valid (non-null) example holds
|
|
7
|
+
*/
|
|
8
|
+
export type ParseExampleArgs<Value> = {
|
|
9
|
+
/** The raw `example` value extracted from the schema */
|
|
10
|
+
value: unknown;
|
|
11
|
+
/** The parsed nullable flag — `null` is only a valid example when this is `true` */
|
|
12
|
+
nullable: boolean | undefined;
|
|
13
|
+
/** The surrounding schema object, used as the issue location's parent */
|
|
14
|
+
parent: unknown;
|
|
15
|
+
/** Type guard narrowing an acceptable non-null example to `Value` */
|
|
16
|
+
check: (item: unknown) => item is Value;
|
|
17
|
+
/** Builds the warning message for a rejected example */
|
|
18
|
+
toMessage: (item: unknown) => string;
|
|
19
|
+
/** Parse context for logging issues */
|
|
20
|
+
context: ParseContextType;
|
|
21
|
+
/** Stack trail for tracking the current parsing location */
|
|
22
|
+
stackTrail: StackTrail;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Parses and validates the `example` property of an OpenAPI scalar/structural
|
|
26
|
+
* schema, applying the nullable-conditional rule shared by `example`, `enum`,
|
|
27
|
+
* and `default`:
|
|
28
|
+
*
|
|
29
|
+
* - `undefined` → `undefined` (no example present)
|
|
30
|
+
* - `null` → kept only when `nullable` is `true`; otherwise rejected
|
|
31
|
+
* - a value passing `check` → kept
|
|
32
|
+
* - anything else → logged as an `INVALID_EXAMPLE` warning and dropped
|
|
33
|
+
*
|
|
34
|
+
* The function is fail-open: an invalid example is stripped and recorded as a
|
|
35
|
+
* `ParseIssue`, never thrown.
|
|
36
|
+
*
|
|
37
|
+
* @template Value - The narrowed type a valid example holds
|
|
38
|
+
* @param args - Parsing configuration
|
|
39
|
+
* @returns The validated example (`Value`), `null` (nullable), or `undefined`
|
|
40
|
+
*/
|
|
41
|
+
export declare const parseExample: <Value>({ value, nullable, parent, context, check, toMessage, stackTrail }: ParseExampleArgs<Value>) => Value | null | undefined;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses and validates the `example` property of an OpenAPI scalar/structural
|
|
3
|
+
* schema, applying the nullable-conditional rule shared by `example`, `enum`,
|
|
4
|
+
* and `default`:
|
|
5
|
+
*
|
|
6
|
+
* - `undefined` → `undefined` (no example present)
|
|
7
|
+
* - `null` → kept only when `nullable` is `true`; otherwise rejected
|
|
8
|
+
* - a value passing `check` → kept
|
|
9
|
+
* - anything else → logged as an `INVALID_EXAMPLE` warning and dropped
|
|
10
|
+
*
|
|
11
|
+
* The function is fail-open: an invalid example is stripped and recorded as a
|
|
12
|
+
* `ParseIssue`, never thrown.
|
|
13
|
+
*
|
|
14
|
+
* @template Value - The narrowed type a valid example holds
|
|
15
|
+
* @param args - Parsing configuration
|
|
16
|
+
* @returns The validated example (`Value`), `null` (nullable), or `undefined`
|
|
17
|
+
*/
|
|
18
|
+
export const parseExample = ({ value, nullable, parent, context, check, toMessage, stackTrail }) => {
|
|
19
|
+
if (value === undefined) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (nullable && value === null) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
if (!check(value)) {
|
|
26
|
+
context.logIssue({
|
|
27
|
+
key: 'example',
|
|
28
|
+
level: 'warning',
|
|
29
|
+
message: toMessage(value),
|
|
30
|
+
parent,
|
|
31
|
+
stackTrail,
|
|
32
|
+
type: 'INVALID_EXAMPLE'
|
|
33
|
+
});
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
3
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
4
|
+
/**
|
|
5
|
+
* Arguments for parsing the nullable property from OpenAPI schemas.
|
|
6
|
+
*
|
|
7
|
+
* @template Value - The OpenAPI schema object type
|
|
8
|
+
*/
|
|
9
|
+
export type ParseNullableArgs<Value extends OpenAPIV3.SchemaObject> = {
|
|
10
|
+
/** The OpenAPI schema object containing the nullable property */
|
|
11
|
+
value: Value;
|
|
12
|
+
/** Stack trail for tracking current parsing context */
|
|
13
|
+
stackTrail: StackTrail;
|
|
14
|
+
/** Parse context for error handling */
|
|
15
|
+
context: ParseContextType;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Return type for parsed nullable data.
|
|
19
|
+
*
|
|
20
|
+
* @template Value - The OpenAPI schema object type
|
|
21
|
+
*/
|
|
22
|
+
export type ParseNullableReturn<Value extends OpenAPIV3.SchemaObject> = {
|
|
23
|
+
/** The validated nullable flag (true, false, or undefined) */
|
|
24
|
+
nullable: boolean | undefined;
|
|
25
|
+
/** The schema object without the nullable property */
|
|
26
|
+
value: Omit<Value, 'nullable'>;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Parses and validates the nullable property from OpenAPI schema objects.
|
|
30
|
+
*
|
|
31
|
+
* This function extracts and validates the `nullable` property from OpenAPI
|
|
32
|
+
* schema objects, ensuring it's a valid boolean value. Invalid nullable values
|
|
33
|
+
* are removed and logged as warnings through the parse context.
|
|
34
|
+
*
|
|
35
|
+
* The nullable property determines whether a schema value can be null in addition
|
|
36
|
+
* to its primary type, which affects type generation and validation logic.
|
|
37
|
+
*
|
|
38
|
+
* @template Value - The OpenAPI schema object type
|
|
39
|
+
*
|
|
40
|
+
* @param args - Parsing configuration
|
|
41
|
+
* @returns Parsed nullable data with the validated flag and cleaned schema
|
|
42
|
+
*
|
|
43
|
+
* @example Valid nullable property
|
|
44
|
+
* ```typescript
|
|
45
|
+
* import { parseNullable } from '@skmtc/core/oas/_helpers';
|
|
46
|
+
*
|
|
47
|
+
* const result = parseNullable({
|
|
48
|
+
* value: {
|
|
49
|
+
* type: 'string',
|
|
50
|
+
* nullable: true,
|
|
51
|
+
* description: 'An optional string that can be null'
|
|
52
|
+
* },
|
|
53
|
+
* context: parseContext
|
|
54
|
+
* });
|
|
55
|
+
*
|
|
56
|
+
* console.log(result.nullable); // true
|
|
57
|
+
* console.log(result.value); // { type: 'string', description: 'An optional string that can be null' }
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @example Explicitly non-nullable
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const result = parseNullable({
|
|
63
|
+
* value: {
|
|
64
|
+
* type: 'number',
|
|
65
|
+
* nullable: false,
|
|
66
|
+
* minimum: 0
|
|
67
|
+
* },
|
|
68
|
+
* context: parseContext
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* console.log(result.nullable); // false
|
|
72
|
+
* console.log(result.value); // { type: 'number', minimum: 0 }
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @example Missing nullable property (undefined)
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const result = parseNullable({
|
|
78
|
+
* value: {
|
|
79
|
+
* type: 'string',
|
|
80
|
+
* format: 'email'
|
|
81
|
+
* },
|
|
82
|
+
* context: parseContext
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* console.log(result.nullable); // undefined (property not present)
|
|
86
|
+
* console.log(result.value); // { type: 'string', format: 'email' }
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @example Invalid nullable value
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const result = parseNullable({
|
|
92
|
+
* value: {
|
|
93
|
+
* type: 'boolean',
|
|
94
|
+
* nullable: 'yes', // Invalid - should be boolean
|
|
95
|
+
* description: 'A flag'
|
|
96
|
+
* } as any,
|
|
97
|
+
* context: parseContext
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* console.log(result.nullable); // undefined (invalid value removed)
|
|
101
|
+
* console.log(result.value); // { type: 'boolean', description: 'A flag' }
|
|
102
|
+
* // Context will log a warning about the invalid nullable value
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @example Usage in type generation
|
|
106
|
+
* ```typescript
|
|
107
|
+
* function generateTypeScript(schema: OpenAPIV3.SchemaObject) {
|
|
108
|
+
* const { nullable, value } = parseNullable({ value: schema, context });
|
|
109
|
+
*
|
|
110
|
+
* const baseType = generateBaseType(value);
|
|
111
|
+
* const nullableType = nullable ? ` | null` : '';
|
|
112
|
+
*
|
|
113
|
+
* return `${baseType}${nullableType}`;
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* // Examples:
|
|
117
|
+
* // nullable: true -> 'string | null'
|
|
118
|
+
* // nullable: false -> 'string'
|
|
119
|
+
* // nullable: undefined -> 'string' (default behavior)
|
|
120
|
+
* ```
|
|
121
|
+
*
|
|
122
|
+
* @example Complex schema with nullable
|
|
123
|
+
* ```typescript
|
|
124
|
+
* const result = parseNullable({
|
|
125
|
+
* value: {
|
|
126
|
+
* type: 'object',
|
|
127
|
+
* properties: {
|
|
128
|
+
* name: { type: 'string' },
|
|
129
|
+
* age: { type: 'number' }
|
|
130
|
+
* },
|
|
131
|
+
* required: ['name'],
|
|
132
|
+
* nullable: true // The entire object can be null
|
|
133
|
+
* },
|
|
134
|
+
* context: parseContext
|
|
135
|
+
* });
|
|
136
|
+
*
|
|
137
|
+
* console.log(result.nullable); // true
|
|
138
|
+
* // Generated type might be: { name: string; age?: number } | null
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export declare const parseNullable: <Value extends OpenAPIV3.SchemaObject>({ value, stackTrail, context }: ParseNullableArgs<Value>) => ParseNullableReturn<Value>;
|