@skmtc/core 0.29.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/_dnt.polyfills.d.ts +11 -0
- package/esm/_dnt.polyfills.js +14 -0
- package/esm/context/ParseContext.js +9 -1
- package/esm/context/generateTypes.d.ts +14 -2
- package/esm/context/generateTypes.js +5 -1
- package/esm/dsl/GeneratorKeys.d.ts +2 -2
- package/esm/dsl/GeneratorKeys.js +6 -3
- package/esm/helpers/naming.d.ts +2 -1
- package/esm/helpers/naming.js +4 -2
- package/esm/mod.d.ts +1 -0
- package/esm/mod.js +1 -0
- package/esm/oas/discriminator/Discriminator.d.ts +3 -0
- package/esm/oas/discriminator/Discriminator.js +7 -0
- package/esm/oas/document/Document.d.ts +7 -0
- package/esm/oas/document/Document.js +8 -0
- package/esm/oas/example/Example.d.ts +10 -1
- package/esm/oas/example/Example.js +16 -0
- package/esm/oas/header/Header.d.ts +4 -2
- package/esm/oas/header/Header.js +12 -5
- package/esm/oas/mediaType/MediaType.d.ts +12 -0
- package/esm/oas/mediaType/MediaType.js +24 -0
- package/esm/oas/mediaType/jsonMediaType.d.ts +50 -0
- package/esm/oas/mediaType/jsonMediaType.js +64 -0
- package/esm/oas/mediaType/toContentSchema.d.ts +8 -0
- package/esm/oas/mediaType/toContentSchema.js +6 -0
- package/esm/oas/operation/Operation.d.ts +10 -2
- package/esm/oas/operation/Operation.js +20 -7
- package/esm/oas/parameter/Parameter.d.ts +3 -2
- package/esm/oas/parameter/Parameter.js +11 -5
- package/esm/oas/parameter/parameter-types.d.ts +10 -2
- package/esm/oas/parameter/parameter-types.js +3 -1
- package/esm/oas/requestBody/RequestBody.d.ts +11 -0
- package/esm/oas/requestBody/RequestBody.js +16 -2
- package/esm/oas/response/Response.d.ts +17 -1
- package/esm/oas/response/Response.js +24 -2
- package/esm/oas/securitySchemes/SecurityScheme.d.ts +47 -4
- package/esm/oas/securitySchemes/SecurityScheme.js +46 -1
- package/esm/oas/securitySchemes/security-scheme-types.d.ts +21 -0
- package/esm/oas/server/Server.d.ts +8 -2
- package/esm/oas/server/Server.js +10 -1
- package/esm/oas/tag/Tag.d.ts +9 -0
- package/esm/oas/tag/Tag.js +9 -0
- package/esm/oas/webhook/Webhook.d.ts +4 -4
- package/esm/oas/webhook/Webhook.js +6 -6
- package/esm/parse/logBodyMediaTypes.d.ts +27 -0
- package/esm/parse/logBodyMediaTypes.js +50 -0
- package/esm/parse/toOasDialect.d.ts +8 -7
- package/esm/parse/toOasDialect.js +4 -2
- package/esm/parse/v3-0/methods.d.ts +11 -0
- package/esm/parse/v3-0/methods.js +16 -0
- package/esm/parse/v3-0/operation/toOperationsV3.js +5 -5
- package/esm/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
- package/esm/parse/v3-0/parameter/toParameterV3.js +17 -3
- package/esm/parse/v3-0/requestBody/toRequestBodiesV3.js +4 -1
- package/esm/parse/v3-0/response/toResponseV3.js +4 -1
- package/esm/parse/v3-0/securitySchemes/toSecuritySchemes.js +50 -38
- package/esm/parse/v3-0/webhook/toWebhooksV3.js +5 -5
- package/esm/parse/v3-1/methods.d.ts +11 -0
- package/esm/parse/v3-1/methods.js +16 -0
- package/esm/parse/v3-1/operation/toOperationsV3.js +5 -5
- package/esm/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
- package/esm/parse/v3-1/parameter/toParameterV3.js +17 -3
- package/esm/parse/v3-1/requestBody/toRequestBodiesV3.js +4 -1
- package/esm/parse/v3-1/response/toResponseV3.js +4 -1
- package/esm/parse/v3-1/securitySchemes/toSecuritySchemes.js +50 -38
- package/esm/parse/v3-1/webhook/toWebhooksV3.js +5 -5
- package/esm/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
- package/esm/parse/v3-2/_helpers/parseDefault.js +39 -0
- package/esm/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
- package/esm/parse/v3-2/_helpers/parseEnum.js +23 -0
- package/esm/parse/v3-2/_helpers/parseExample.d.ts +41 -0
- package/esm/parse/v3-2/_helpers/parseExample.js +37 -0
- package/esm/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
- package/esm/parse/v3-2/_helpers/parseNullable.js +140 -0
- package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +9 -0
- package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
- package/esm/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-enum-conflicts.js +11 -0
- package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-format-conflicts.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +11 -0
- package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/check-type-conflicts.js +5 -0
- package/esm/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/cross-product.js +3 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-intersection.js +27 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
- package/esm/parse/v3-2/_merge-all-of/decompose-union.js +69 -0
- package/esm/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/generic-merge.js +12 -0
- package/esm/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
- package/esm/parse/v3-2/_merge-all-of/is-equal.js +19 -0
- package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/merge-array-constraints.js +44 -0
- package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +7 -0
- package/esm/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-enum-values.js +32 -0
- package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-integer-constraints.js +41 -0
- package/esm/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
- package/esm/parse/v3-2/_merge-all-of/merge-intersection.js +16 -0
- package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-number-constraints.js +41 -0
- package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
- package/esm/parse/v3-2/_merge-all-of/merge-object-constraints.js +28 -0
- package/esm/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/merge-properties.js +25 -0
- package/esm/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-required.js +10 -0
- package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/merge-string-constraints.js +55 -0
- package/esm/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
- package/esm/parse/v3-2/_merge-all-of/merge-union.js +53 -0
- package/esm/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
- package/esm/parse/v3-2/_merge-all-of/merge.js +155 -0
- package/esm/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
- package/esm/parse/v3-2/_merge-all-of/nullable-merge.js +12 -0
- package/esm/parse/v3-2/_merge-all-of/types.d.ts +14 -0
- package/esm/parse/v3-2/_merge-all-of/types.js +2 -0
- package/esm/parse/v3-2/array/toArray.d.ts +80 -0
- package/esm/parse/v3-2/array/toArray.js +165 -0
- package/esm/parse/v3-2/boolean/toBoolean.d.ts +78 -0
- package/esm/parse/v3-2/boolean/toBoolean.js +139 -0
- package/esm/parse/v3-2/components/toComponentsV3.d.ts +14 -0
- package/esm/parse/v3-2/components/toComponentsV3.js +43 -0
- package/esm/parse/v3-2/contact/toContactV3.d.ts +5 -0
- package/esm/parse/v3-2/contact/toContactV3.js +18 -0
- package/esm/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
- package/esm/parse/v3-2/discriminator/toDiscriminatorV3.js +21 -0
- package/esm/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
- package/esm/parse/v3-2/document/toDocumentFieldsV3.js +33 -0
- package/esm/parse/v3-2/example/toExamplesV3.d.ts +77 -0
- package/esm/parse/v3-2/example/toExamplesV3.js +143 -0
- package/esm/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
- package/esm/parse/v3-2/externalDocs/toExternalDocs.js +15 -0
- package/esm/parse/v3-2/header/toHeadersV3.d.ts +18 -0
- package/esm/parse/v3-2/header/toHeadersV3.js +47 -0
- package/esm/parse/v3-2/info/toInfoV3.d.ts +10 -0
- package/esm/parse/v3-2/info/toInfoV3.js +23 -0
- package/esm/parse/v3-2/integer/toInteger.d.ts +21 -0
- package/esm/parse/v3-2/integer/toInteger.js +115 -0
- package/esm/parse/v3-2/license/toLicenseV3.d.ts +5 -0
- package/esm/parse/v3-2/license/toLicenseV3.js +17 -0
- package/esm/parse/v3-2/link/toLinksV3.d.ts +16 -0
- package/esm/parse/v3-2/link/toLinksV3.js +40 -0
- package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
- package/esm/parse/v3-2/mediaType/toMediaTypeItemV3.js +375 -0
- package/esm/parse/v3-2/methods.d.ts +17 -0
- package/esm/parse/v3-2/methods.js +21 -0
- package/esm/parse/v3-2/number/toNumber.d.ts +10 -0
- package/esm/parse/v3-2/number/toNumber.js +115 -0
- package/esm/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
- package/esm/parse/v3-2/object/toAdditionalPropertiesV3.js +10 -0
- package/esm/parse/v3-2/object/toObject.d.ts +10 -0
- package/esm/parse/v3-2/object/toObject.js +90 -0
- package/esm/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
- package/esm/parse/v3-2/operation/toOperationsV3.js +129 -0
- package/esm/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
- package/esm/parse/v3-2/parameter/toParameterV3.js +152 -0
- package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
- package/esm/parse/v3-2/parameter/warnQuerystringConflictsV3.js +39 -0
- package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
- package/esm/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +34 -0
- package/esm/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
- package/esm/parse/v3-2/pathItem/toPathItemV3.js +45 -0
- package/esm/parse/v3-2/ref/toRefV31.d.ts +19 -0
- package/esm/parse/v3-2/ref/toRefV31.js +10 -0
- package/esm/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
- package/esm/parse/v3-2/requestBody/toRequestBodiesV3.js +47 -0
- package/esm/parse/v3-2/response/toResponseV3.d.ts +29 -0
- package/esm/parse/v3-2/response/toResponseV3.js +59 -0
- package/esm/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
- package/esm/parse/v3-2/schema/toSchemasV3.js +511 -0
- package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
- package/esm/parse/v3-2/securityRequirement/toSecurityRequirement.js +9 -0
- package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
- package/esm/parse/v3-2/securitySchemes/toSecuritySchemes.js +152 -0
- package/esm/parse/v3-2/server/toServerV3.d.ts +26 -0
- package/esm/parse/v3-2/server/toServerV3.js +31 -0
- package/esm/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
- package/esm/parse/v3-2/serverVariable/toServerVariableV3.js +30 -0
- package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
- package/esm/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +25 -0
- package/esm/parse/v3-2/string/toString.d.ts +146 -0
- package/esm/parse/v3-2/string/toString.js +211 -0
- package/esm/parse/v3-2/tag/toTagsV3.d.ts +22 -0
- package/esm/parse/v3-2/tag/toTagsV3.js +78 -0
- package/esm/parse/v3-2/union/toUnion.d.ts +12 -0
- package/esm/parse/v3-2/union/toUnion.js +68 -0
- package/esm/parse/v3-2/unknown/toUnknown.d.ts +10 -0
- package/esm/parse/v3-2/unknown/toUnknown.js +19 -0
- package/esm/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
- package/esm/parse/v3-2/webhook/toWebhooksV3.js +139 -0
- package/esm/types/Method.d.ts +7 -4
- package/esm/types/Method.js +17 -4
- package/esm/types/Preview.d.ts +2 -1
- package/esm/types/SkmtcDocument.d.ts +6 -6
- package/package.json +1 -1
- package/script/_dnt.polyfills.d.ts +11 -0
- package/script/_dnt.polyfills.js +14 -0
- package/script/context/ParseContext.js +9 -1
- package/script/context/generateTypes.d.ts +14 -2
- package/script/context/generateTypes.js +5 -1
- package/script/dsl/GeneratorKeys.d.ts +2 -2
- package/script/dsl/GeneratorKeys.js +6 -3
- package/script/helpers/naming.d.ts +2 -1
- package/script/helpers/naming.js +4 -2
- package/script/mod.d.ts +1 -0
- package/script/mod.js +1 -0
- package/script/oas/discriminator/Discriminator.d.ts +3 -0
- package/script/oas/discriminator/Discriminator.js +7 -0
- package/script/oas/document/Document.d.ts +7 -0
- package/script/oas/document/Document.js +8 -0
- package/script/oas/example/Example.d.ts +10 -1
- package/script/oas/example/Example.js +16 -0
- package/script/oas/header/Header.d.ts +4 -2
- package/script/oas/header/Header.js +12 -5
- package/script/oas/mediaType/MediaType.d.ts +12 -0
- package/script/oas/mediaType/MediaType.js +24 -0
- package/script/oas/mediaType/jsonMediaType.d.ts +50 -0
- package/script/oas/mediaType/jsonMediaType.js +71 -0
- package/script/oas/mediaType/toContentSchema.d.ts +8 -0
- package/script/oas/mediaType/toContentSchema.js +10 -0
- package/script/oas/operation/Operation.d.ts +10 -2
- package/script/oas/operation/Operation.js +20 -7
- package/script/oas/parameter/Parameter.d.ts +3 -2
- package/script/oas/parameter/Parameter.js +11 -5
- package/script/oas/parameter/parameter-types.d.ts +10 -2
- package/script/oas/parameter/parameter-types.js +3 -1
- package/script/oas/requestBody/RequestBody.d.ts +11 -0
- package/script/oas/requestBody/RequestBody.js +16 -2
- package/script/oas/response/Response.d.ts +17 -1
- package/script/oas/response/Response.js +24 -2
- package/script/oas/securitySchemes/SecurityScheme.d.ts +47 -4
- package/script/oas/securitySchemes/SecurityScheme.js +46 -1
- package/script/oas/securitySchemes/security-scheme-types.d.ts +21 -0
- package/script/oas/server/Server.d.ts +8 -2
- package/script/oas/server/Server.js +10 -1
- package/script/oas/tag/Tag.d.ts +9 -0
- package/script/oas/tag/Tag.js +9 -0
- package/script/oas/webhook/Webhook.d.ts +4 -4
- package/script/oas/webhook/Webhook.js +6 -6
- package/script/parse/logBodyMediaTypes.d.ts +27 -0
- package/script/parse/logBodyMediaTypes.js +54 -0
- package/script/parse/toOasDialect.d.ts +8 -7
- package/script/parse/toOasDialect.js +4 -2
- package/script/parse/v3-0/methods.d.ts +11 -0
- package/script/parse/v3-0/methods.js +20 -0
- package/script/parse/v3-0/operation/toOperationsV3.js +5 -5
- package/script/parse/v3-0/parameter/toParameterV3.d.ts +4 -2
- package/script/parse/v3-0/parameter/toParameterV3.js +17 -3
- package/script/parse/v3-0/requestBody/toRequestBodiesV3.js +4 -1
- package/script/parse/v3-0/response/toResponseV3.js +4 -1
- package/script/parse/v3-0/securitySchemes/toSecuritySchemes.js +49 -37
- package/script/parse/v3-0/webhook/toWebhooksV3.js +5 -5
- package/script/parse/v3-1/methods.d.ts +11 -0
- package/script/parse/v3-1/methods.js +20 -0
- package/script/parse/v3-1/operation/toOperationsV3.js +5 -5
- package/script/parse/v3-1/parameter/toParameterV3.d.ts +4 -2
- package/script/parse/v3-1/parameter/toParameterV3.js +17 -3
- package/script/parse/v3-1/requestBody/toRequestBodiesV3.js +4 -1
- package/script/parse/v3-1/response/toResponseV3.js +4 -1
- package/script/parse/v3-1/securitySchemes/toSecuritySchemes.js +49 -37
- package/script/parse/v3-1/webhook/toWebhooksV3.js +5 -5
- package/script/parse/v3-2/_helpers/parseDefault.d.ts +43 -0
- package/script/parse/v3-2/_helpers/parseDefault.js +43 -0
- package/script/parse/v3-2/_helpers/parseEnum.d.ts +13 -0
- package/script/parse/v3-2/_helpers/parseEnum.js +27 -0
- package/script/parse/v3-2/_helpers/parseExample.d.ts +41 -0
- package/script/parse/v3-2/_helpers/parseExample.js +41 -0
- package/script/parse/v3-2/_helpers/parseNullable.d.ts +141 -0
- package/script/parse/v3-2/_helpers/parseNullable.js +144 -0
- package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-array-item-type-conflicts.js +13 -0
- package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.d.ts +4 -0
- package/script/parse/v3-2/_merge-all-of/check-at-least-one-type-match.js +9 -0
- package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-enum-conflicts.js +15 -0
- package/script/parse/v3-2/_merge-all-of/check-format-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-format-conflicts.js +9 -0
- package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-number-constraints-conflicts.js +15 -0
- package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-read-only-write-only-conflicts.js +9 -0
- package/script/parse/v3-2/_merge-all-of/check-type-conflicts.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/check-type-conflicts.js +9 -0
- package/script/parse/v3-2/_merge-all-of/cross-product.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/cross-product.js +7 -0
- package/script/parse/v3-2/_merge-all-of/decompose-intersection.d.ts +6 -0
- package/script/parse/v3-2/_merge-all-of/decompose-intersection.js +31 -0
- package/script/parse/v3-2/_merge-all-of/decompose-union.d.ts +12 -0
- package/script/parse/v3-2/_merge-all-of/decompose-union.js +73 -0
- package/script/parse/v3-2/_merge-all-of/generic-merge.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/generic-merge.js +16 -0
- package/script/parse/v3-2/_merge-all-of/is-equal.d.ts +1 -0
- package/script/parse/v3-2/_merge-all-of/is-equal.js +23 -0
- package/script/parse/v3-2/_merge-all-of/merge-array-constraints.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/merge-array-constraints.js +80 -0
- package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-boolean-constraints.js +43 -0
- package/script/parse/v3-2/_merge-all-of/merge-enum-values.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-enum-values.js +68 -0
- package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-integer-constraints.js +77 -0
- package/script/parse/v3-2/_merge-all-of/merge-intersection.d.ts +8 -0
- package/script/parse/v3-2/_merge-all-of/merge-intersection.js +20 -0
- package/script/parse/v3-2/_merge-all-of/merge-number-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-number-constraints.js +77 -0
- package/script/parse/v3-2/_merge-all-of/merge-object-constraints.d.ts +5 -0
- package/script/parse/v3-2/_merge-all-of/merge-object-constraints.js +65 -0
- package/script/parse/v3-2/_merge-all-of/merge-properties.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/merge-properties.js +29 -0
- package/script/parse/v3-2/_merge-all-of/merge-required.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-required.js +15 -0
- package/script/parse/v3-2/_merge-all-of/merge-string-constraints.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/merge-string-constraints.js +91 -0
- package/script/parse/v3-2/_merge-all-of/merge-union.d.ts +15 -0
- package/script/parse/v3-2/_merge-all-of/merge-union.js +58 -0
- package/script/parse/v3-2/_merge-all-of/merge.d.ts +2 -0
- package/script/parse/v3-2/_merge-all-of/merge.js +159 -0
- package/script/parse/v3-2/_merge-all-of/nullable-merge.d.ts +3 -0
- package/script/parse/v3-2/_merge-all-of/nullable-merge.js +17 -0
- package/script/parse/v3-2/_merge-all-of/types.d.ts +14 -0
- package/script/parse/v3-2/_merge-all-of/types.js +38 -0
- package/script/parse/v3-2/array/toArray.d.ts +80 -0
- package/script/parse/v3-2/array/toArray.js +203 -0
- package/script/parse/v3-2/boolean/toBoolean.d.ts +78 -0
- package/script/parse/v3-2/boolean/toBoolean.js +177 -0
- package/script/parse/v3-2/components/toComponentsV3.d.ts +14 -0
- package/script/parse/v3-2/components/toComponentsV3.js +47 -0
- package/script/parse/v3-2/contact/toContactV3.d.ts +5 -0
- package/script/parse/v3-2/contact/toContactV3.js +22 -0
- package/script/parse/v3-2/discriminator/toDiscriminatorV3.d.ts +14 -0
- package/script/parse/v3-2/discriminator/toDiscriminatorV3.js +25 -0
- package/script/parse/v3-2/document/toDocumentFieldsV3.d.ts +16 -0
- package/script/parse/v3-2/document/toDocumentFieldsV3.js +37 -0
- package/script/parse/v3-2/example/toExamplesV3.d.ts +77 -0
- package/script/parse/v3-2/example/toExamplesV3.js +149 -0
- package/script/parse/v3-2/externalDocs/toExternalDocs.d.ts +10 -0
- package/script/parse/v3-2/externalDocs/toExternalDocs.js +52 -0
- package/script/parse/v3-2/header/toHeadersV3.d.ts +18 -0
- package/script/parse/v3-2/header/toHeadersV3.js +51 -0
- package/script/parse/v3-2/info/toInfoV3.d.ts +10 -0
- package/script/parse/v3-2/info/toInfoV3.js +27 -0
- package/script/parse/v3-2/integer/toInteger.d.ts +21 -0
- package/script/parse/v3-2/integer/toInteger.js +153 -0
- package/script/parse/v3-2/license/toLicenseV3.d.ts +5 -0
- package/script/parse/v3-2/license/toLicenseV3.js +21 -0
- package/script/parse/v3-2/link/toLinksV3.d.ts +16 -0
- package/script/parse/v3-2/link/toLinksV3.js +44 -0
- package/script/parse/v3-2/mediaType/toMediaTypeItemV3.d.ts +323 -0
- package/script/parse/v3-2/mediaType/toMediaTypeItemV3.js +381 -0
- package/script/parse/v3-2/methods.d.ts +17 -0
- package/script/parse/v3-2/methods.js +25 -0
- package/script/parse/v3-2/number/toNumber.d.ts +10 -0
- package/script/parse/v3-2/number/toNumber.js +152 -0
- package/script/parse/v3-2/object/toAdditionalPropertiesV3.d.ts +11 -0
- package/script/parse/v3-2/object/toAdditionalPropertiesV3.js +14 -0
- package/script/parse/v3-2/object/toObject.d.ts +10 -0
- package/script/parse/v3-2/object/toObject.js +94 -0
- package/script/parse/v3-2/operation/toOperationsV3.d.ts +25 -0
- package/script/parse/v3-2/operation/toOperationsV3.js +134 -0
- package/script/parse/v3-2/parameter/toParameterV3.d.ts +39 -0
- package/script/parse/v3-2/parameter/toParameterV3.js +191 -0
- package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.d.ts +22 -0
- package/script/parse/v3-2/parameter/warnQuerystringConflictsV3.js +43 -0
- package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.d.ts +17 -0
- package/script/parse/v3-2/pathItem/dropAdditionalOperationsV3.js +38 -0
- package/script/parse/v3-2/pathItem/toPathItemV3.d.ts +23 -0
- package/script/parse/v3-2/pathItem/toPathItemV3.js +50 -0
- package/script/parse/v3-2/ref/toRefV31.d.ts +19 -0
- package/script/parse/v3-2/ref/toRefV31.js +14 -0
- package/script/parse/v3-2/requestBody/toRequestBodiesV3.d.ts +18 -0
- package/script/parse/v3-2/requestBody/toRequestBodiesV3.js +52 -0
- package/script/parse/v3-2/response/toResponseV3.d.ts +29 -0
- package/script/parse/v3-2/response/toResponseV3.js +65 -0
- package/script/parse/v3-2/schema/toSchemasV3.d.ts +29 -0
- package/script/parse/v3-2/schema/toSchemasV3.js +518 -0
- package/script/parse/v3-2/securityRequirement/toSecurityRequirement.d.ts +9 -0
- package/script/parse/v3-2/securityRequirement/toSecurityRequirement.js +13 -0
- package/script/parse/v3-2/securitySchemes/toSecuritySchemes.d.ts +17 -0
- package/script/parse/v3-2/securitySchemes/toSecuritySchemes.js +189 -0
- package/script/parse/v3-2/server/toServerV3.d.ts +26 -0
- package/script/parse/v3-2/server/toServerV3.js +37 -0
- package/script/parse/v3-2/serverVariable/toServerVariableV3.d.ts +22 -0
- package/script/parse/v3-2/serverVariable/toServerVariableV3.js +36 -0
- package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.d.ts +14 -0
- package/script/parse/v3-2/specificationExtensions/toSpecificationExtensionsV3.js +30 -0
- package/script/parse/v3-2/string/toString.d.ts +146 -0
- package/script/parse/v3-2/string/toString.js +249 -0
- package/script/parse/v3-2/tag/toTagsV3.d.ts +22 -0
- package/script/parse/v3-2/tag/toTagsV3.js +83 -0
- package/script/parse/v3-2/union/toUnion.d.ts +12 -0
- package/script/parse/v3-2/union/toUnion.js +72 -0
- package/script/parse/v3-2/unknown/toUnknown.d.ts +10 -0
- package/script/parse/v3-2/unknown/toUnknown.js +23 -0
- package/script/parse/v3-2/webhook/toWebhooksV3.d.ts +48 -0
- package/script/parse/v3-2/webhook/toWebhooksV3.js +144 -0
- package/script/types/Method.d.ts +7 -4
- package/script/types/Method.js +17 -4
- package/script/types/Preview.d.ts +2 -1
- package/script/types/SkmtcDocument.d.ts +6 -6
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toOptionalSchemaV3 = exports.toSchemaV3 = exports.toOptionalSchemasV3 = exports.toSchemasV3 = void 0;
|
|
4
|
+
const toRefV31_js_1 = require("../ref/toRefV31.js");
|
|
5
|
+
const refFns_js_1 = require("../../../helpers/refFns.js");
|
|
6
|
+
const toArray_js_1 = require("../array/toArray.js");
|
|
7
|
+
const toObject_js_1 = require("../object/toObject.js");
|
|
8
|
+
const toInteger_js_1 = require("../integer/toInteger.js");
|
|
9
|
+
const toNumber_js_1 = require("../number/toNumber.js");
|
|
10
|
+
const toBoolean_js_1 = require("../boolean/toBoolean.js");
|
|
11
|
+
const toString_js_1 = require("../string/toString.js");
|
|
12
|
+
const toUnknown_js_1 = require("../unknown/toUnknown.js");
|
|
13
|
+
const toUnion_js_1 = require("../union/toUnion.js");
|
|
14
|
+
const refFns_js_2 = require("../../../helpers/refFns.js");
|
|
15
|
+
const merge_intersection_js_1 = require("../_merge-all-of/merge-intersection.js");
|
|
16
|
+
const merge_union_js_1 = require("../_merge-all-of/merge-union.js");
|
|
17
|
+
const tryParseAt_js_1 = require("../../../context/tryParseAt.js");
|
|
18
|
+
const toSchemasV3 = ({ schemas, stackTrail, context }) => {
|
|
19
|
+
const output = {};
|
|
20
|
+
const entries = Object.entries(schemas);
|
|
21
|
+
for (const [key, schema] of entries) {
|
|
22
|
+
const value = (0, tryParseAt_js_1.tryParseAt)({
|
|
23
|
+
stackTrail,
|
|
24
|
+
key,
|
|
25
|
+
context,
|
|
26
|
+
type: 'INVALID_SCHEMA',
|
|
27
|
+
parent: schema,
|
|
28
|
+
fn: st => (0, exports.toSchemaV3)({ schema, stackTrail: st, context })
|
|
29
|
+
});
|
|
30
|
+
if (value !== undefined) {
|
|
31
|
+
output[key] = value;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return output;
|
|
35
|
+
};
|
|
36
|
+
exports.toSchemasV3 = toSchemasV3;
|
|
37
|
+
const toOptionalSchemasV3 = ({ schemas, stackTrail, context }) => {
|
|
38
|
+
if (!schemas) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
return (0, exports.toSchemasV3)({ schemas, stackTrail, context });
|
|
42
|
+
};
|
|
43
|
+
exports.toOptionalSchemasV3 = toOptionalSchemasV3;
|
|
44
|
+
/**
|
|
45
|
+
* OpenAPI 3.1 lets a schema's `type` be an ARRAY (e.g. `['string', 'null']`),
|
|
46
|
+
* which the shared IR — modelling a single `type` plus a `nullable` flag —
|
|
47
|
+
* does not. Normalize the array form into shapes the rest of the dispatcher
|
|
48
|
+
* already understands:
|
|
49
|
+
*
|
|
50
|
+
* - `['T', 'null']` (one non-null type) → `{ type: 'T', nullable: true }`
|
|
51
|
+
* - `['T1', 'T2', …]` (several non-null) → a `oneOf` of the bare types,
|
|
52
|
+
* i.e. the 3.1 multi-type union. 3.0 cannot express this — it is the
|
|
53
|
+
* CASE-2 gap where the v3-0 parser degrades to OasUnknown.
|
|
54
|
+
* - `['null']` (only null) → left unchanged → OasUnknown,
|
|
55
|
+
* since there is no first-class OasNull IR node yet (a documented gap).
|
|
56
|
+
*
|
|
57
|
+
* The hoisted `nullable` flag is the IR's representation of nullability; the
|
|
58
|
+
* leaf parsers read it via `parseNullable`. A non-array `type` passes through.
|
|
59
|
+
*/
|
|
60
|
+
const normalizeTypeArray = (schema) => {
|
|
61
|
+
const rawType = schema.type;
|
|
62
|
+
if (!Array.isArray(rawType)) {
|
|
63
|
+
return schema;
|
|
64
|
+
}
|
|
65
|
+
const members = rawType.filter(member => member !== 'null');
|
|
66
|
+
const nullable = rawType.length !== members.length || schema.nullable;
|
|
67
|
+
// Only `null` (`type: ['null']`): no OasNull node yet — fall through.
|
|
68
|
+
if (members.length === 0) {
|
|
69
|
+
return schema;
|
|
70
|
+
}
|
|
71
|
+
// Several non-null types: a 3.1 multi-type union. Model it as a `oneOf`
|
|
72
|
+
// of the bare types and let the oneOf branch build the OasUnion.
|
|
73
|
+
if (members.length > 1) {
|
|
74
|
+
const { type: _type, ...rest } = schema;
|
|
75
|
+
return { ...rest, nullable, oneOf: members.map(member => ({ type: member })) };
|
|
76
|
+
}
|
|
77
|
+
// Exactly one non-null type: dispatch as that type, carrying nullability.
|
|
78
|
+
switch (members[0]) {
|
|
79
|
+
case 'object':
|
|
80
|
+
case 'integer':
|
|
81
|
+
case 'number':
|
|
82
|
+
case 'boolean':
|
|
83
|
+
case 'string':
|
|
84
|
+
return { ...schema, type: members[0], nullable };
|
|
85
|
+
case 'array':
|
|
86
|
+
return 'items' in schema ? { ...schema, type: members[0], nullable } : schema;
|
|
87
|
+
default:
|
|
88
|
+
return schema;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* OpenAPI 3.1 `const: X` is the single-value form of `enum` (3.0 expresses a
|
|
93
|
+
* literal as a one-element `enum`). Rewrite it so the existing enum-aware leaf
|
|
94
|
+
* parsers handle it; matches down-convert's `convertConstToEnum`, so a 3.0
|
|
95
|
+
* `enum:[X]` and a 3.1 `const:X` land on the same IR.
|
|
96
|
+
*/
|
|
97
|
+
const normalizeConst = (schema) => {
|
|
98
|
+
if (!('const' in schema)) {
|
|
99
|
+
return schema;
|
|
100
|
+
}
|
|
101
|
+
// `const` is a 3.1 keyword the 3.0-typed SchemaObject does not model; read
|
|
102
|
+
// it via an annotated destructure rather than a cast.
|
|
103
|
+
const { const: constValue, ...rest } = schema;
|
|
104
|
+
return { ...rest, enum: [constValue] };
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* OpenAPI 3.1 schemas carry `examples` (an array, JSON Schema 2020-12); 3.0
|
|
108
|
+
* and the IR use a single `example`. Adopt the first array element as the IR
|
|
109
|
+
* `example` when no singular `example` is set, and drop the array. Matches
|
|
110
|
+
* down-convert's `convertJsonSchemaExamples`.
|
|
111
|
+
*/
|
|
112
|
+
const normalizeExamples = (schema) => {
|
|
113
|
+
if ('example' in schema || !('examples' in schema)) {
|
|
114
|
+
return schema;
|
|
115
|
+
}
|
|
116
|
+
// `examples` is a 3.1 keyword the 3.0-typed SchemaObject does not model.
|
|
117
|
+
const { examples, ...rest } = schema;
|
|
118
|
+
if (!Array.isArray(examples) || examples.length === 0) {
|
|
119
|
+
return rest;
|
|
120
|
+
}
|
|
121
|
+
return { ...rest, example: examples[0] };
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* OpenAPI 3.1 expresses exclusive bounds as NUMBERS (`exclusiveMinimum: 5`
|
|
125
|
+
* means "> 5"); the shared IR (and 3.0) model them as a boolean flag paired
|
|
126
|
+
* with `minimum`/`maximum`. Convert the numeric form so the number/integer
|
|
127
|
+
* leaves validate. Matches down-convert's `convertExclusiveMinMax`, so a 3.0
|
|
128
|
+
* `{minimum:5, exclusiveMinimum:true}` and a 3.1 `{exclusiveMinimum:5}` land
|
|
129
|
+
* on the same IR.
|
|
130
|
+
*/
|
|
131
|
+
const normalizeExclusiveBounds = (schema) => {
|
|
132
|
+
// `exclusiveMinimum`/`exclusiveMaximum` are 3.0-typed boolean here; in 3.1
|
|
133
|
+
// they arrive as numbers, so read them loosely.
|
|
134
|
+
const exclusiveMinimum = schema.exclusiveMinimum;
|
|
135
|
+
const exclusiveMaximum = schema.exclusiveMaximum;
|
|
136
|
+
if (typeof exclusiveMinimum !== 'number' && typeof exclusiveMaximum !== 'number') {
|
|
137
|
+
return schema;
|
|
138
|
+
}
|
|
139
|
+
const next = { ...schema };
|
|
140
|
+
if (typeof exclusiveMinimum === 'number') {
|
|
141
|
+
next.minimum = exclusiveMinimum;
|
|
142
|
+
next.exclusiveMinimum = true;
|
|
143
|
+
}
|
|
144
|
+
if (typeof exclusiveMaximum === 'number') {
|
|
145
|
+
next.maximum = exclusiveMaximum;
|
|
146
|
+
next.exclusiveMaximum = true;
|
|
147
|
+
}
|
|
148
|
+
return next;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* OpenAPI 3.1 / JSON Schema 2020-12 expresses a binary string payload with
|
|
152
|
+
* `contentMediaType: 'application/octet-stream'` and base64 with
|
|
153
|
+
* `contentEncoding: 'base64'`; the shared IR (and 3.0) carry these as a string
|
|
154
|
+
* `format` (`binary` / `byte`, both in the format allow-list). Map them so the
|
|
155
|
+
* format reaches the IR. Mirrors down-convert's
|
|
156
|
+
* `convertJsonSchemaContentMediaType` / `convertJsonSchemaContentEncoding`:
|
|
157
|
+
* string schemas only, and a pre-existing (conflicting) `format` wins — the
|
|
158
|
+
* content keyword is dropped, not overwritten. Without this, retiring
|
|
159
|
+
* down-convert would silently lose the `format` signal on 3.1 binary uploads.
|
|
160
|
+
*/
|
|
161
|
+
const normalizeContentFormat = (schema) => {
|
|
162
|
+
if (schema.type !== 'string') {
|
|
163
|
+
return schema;
|
|
164
|
+
}
|
|
165
|
+
// `contentMediaType`/`contentEncoding` are 3.1 keywords the 3.0-typed
|
|
166
|
+
// SchemaObject does not model; read them loosely.
|
|
167
|
+
const view = schema;
|
|
168
|
+
const derivedFormat = view.contentMediaType === 'application/octet-stream'
|
|
169
|
+
? 'binary'
|
|
170
|
+
: view.contentEncoding === 'base64'
|
|
171
|
+
? 'byte'
|
|
172
|
+
: undefined;
|
|
173
|
+
if (derivedFormat === undefined) {
|
|
174
|
+
return schema;
|
|
175
|
+
}
|
|
176
|
+
const { contentMediaType: _contentMediaType, contentEncoding: _contentEncoding, ...rest } = view;
|
|
177
|
+
return 'format' in rest ? rest : { ...rest, format: derivedFormat };
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Map the 3.1-only schema-shape encodings onto the shared IR shape before
|
|
181
|
+
* dispatching: type arrays, `const`, `examples[]`, numeric exclusive bounds,
|
|
182
|
+
* and binary/base64 content keywords. Each step returns its input unchanged
|
|
183
|
+
* when it does not apply, so the composed result is referentially equal to
|
|
184
|
+
* `schema` when nothing matched — letting the dispatcher re-dispatch only when
|
|
185
|
+
* needed.
|
|
186
|
+
*/
|
|
187
|
+
const normalizeSchemaShape = (schema) => {
|
|
188
|
+
return normalizeExclusiveBounds(normalizeExamples(normalizeConst(normalizeContentFormat(normalizeTypeArray(schema)))));
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Is this a 3.1 `{ type: 'null' }` schema member? (`'null'` is a 3.1 type
|
|
192
|
+
* literal the 3.0-typed SchemaObject does not model, so read it loosely.)
|
|
193
|
+
*/
|
|
194
|
+
const isNullTypeSchema = (member) => {
|
|
195
|
+
if ((0, refFns_js_1.isRef)(member)) {
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
const type = member.type;
|
|
199
|
+
return type === 'null';
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Split `oneOf`/`anyOf` members into the non-null members plus whether a
|
|
203
|
+
* `{ type: 'null' }` member was present. In 3.1 that null member is how a
|
|
204
|
+
* union expresses nullability (3.0 used the hoisted `nullable` keyword);
|
|
205
|
+
* folding it into a flag lets the collapse/union logic stay unchanged.
|
|
206
|
+
*/
|
|
207
|
+
const partitionNullMember = (members) => {
|
|
208
|
+
const nonNull = members.filter(member => !isNullTypeSchema(member));
|
|
209
|
+
return { members: nonNull, nullable: nonNull.length !== members.length };
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Collapse a single-member `oneOf`/`anyOf` into its surviving member.
|
|
213
|
+
*
|
|
214
|
+
* The wrapper's sibling keywords must ride into the member rather than
|
|
215
|
+
* being discarded. The critical one is `nullable`: the 3.1 idiom
|
|
216
|
+
* `oneOf:[{type:'string'},{type:'null'}]` ("string or null") has its
|
|
217
|
+
* `{type:'null'}` member folded out by `partitionNullMember` above, leaving
|
|
218
|
+
* `oneOf:[{type:'string'}]` + `nullable:true` on the wrapper. Re-dispatching
|
|
219
|
+
* `members[0]` alone would drop the wrapper (`...value`) and silently turn
|
|
220
|
+
* `string | null` back into a non-nullable `string`.
|
|
221
|
+
* `description`/`title`/`readOnly`/... ride along the same way.
|
|
222
|
+
*
|
|
223
|
+
* Precedence: the member is the more specific schema, so it wins direct
|
|
224
|
+
* conflicts (`{ ...value, ...member }`). `nullable` is the exception — it
|
|
225
|
+
* OR-ins, because a nullable wrapper makes the whole schema nullable even
|
|
226
|
+
* when the member itself is not.
|
|
227
|
+
*
|
|
228
|
+
* A ref member only reaches here when the wrapper carries no `nullable`
|
|
229
|
+
* (the nullable-ref case stamps `nullable` on the OasRef node at the call
|
|
230
|
+
* site, via `toRefV31`). Any other wrapper siblings on a bare `$ref` are
|
|
231
|
+
* ignored per 3.0 ref semantics, so the ref is returned untouched.
|
|
232
|
+
*/
|
|
233
|
+
const collapseSingleMember = (value, member) => {
|
|
234
|
+
if ((0, refFns_js_1.isRef)(member)) {
|
|
235
|
+
return member;
|
|
236
|
+
}
|
|
237
|
+
const merged = { ...value, ...member };
|
|
238
|
+
if (value.nullable || member.nullable) {
|
|
239
|
+
merged.nullable = true;
|
|
240
|
+
}
|
|
241
|
+
return merged;
|
|
242
|
+
};
|
|
243
|
+
const toSchemaV3 = ({ schema, stackTrail, context }) => {
|
|
244
|
+
if ((0, refFns_js_1.isRef)(schema)) {
|
|
245
|
+
return (0, toRefV31_js_1.toRefV31)({ ref: schema, refType: 'schema', stackTrail, context });
|
|
246
|
+
}
|
|
247
|
+
// OpenAPI `not` has no faithful TypeScript representation: a generated type
|
|
248
|
+
// that ignored it would *widen* the contract (accepting shapes the schema
|
|
249
|
+
// forbids). Refuse the schema rather than emit a type that lies. The throw
|
|
250
|
+
// is isolated by `tryParseAt` into an `INVALID_SCHEMA` issue, and consumers
|
|
251
|
+
// of this schema are pruned via `removeErroredItems` (INVALID_DEPENDENCY_REF).
|
|
252
|
+
if ('not' in schema) {
|
|
253
|
+
throw new Error('Schema uses unsupported "not" keyword');
|
|
254
|
+
}
|
|
255
|
+
const normalized = normalizeSchemaShape(schema);
|
|
256
|
+
if (normalized !== schema) {
|
|
257
|
+
return (0, exports.toSchemaV3)({ schema: normalized, stackTrail, context });
|
|
258
|
+
}
|
|
259
|
+
if ('allOf' in schema && Array.isArray(schema.allOf)) {
|
|
260
|
+
return stackTrail.trace('allOf', st => {
|
|
261
|
+
// A single-member allOf collapses to its sole member — the value must
|
|
262
|
+
// satisfy exactly that one schema. When the member is a `$ref`, keep it
|
|
263
|
+
// LAZY (as an OasRef) rather than resolving + merging its target: a
|
|
264
|
+
// `{ allOf: [{$ref: self}], nullable: true }` (a nullable reference
|
|
265
|
+
// written as a one-member allOf — common in real specs) is
|
|
266
|
+
// self-referential, and eagerly resolving it would not terminate. The
|
|
267
|
+
// ref resolves at use time like every other ref. Mirrors the
|
|
268
|
+
// single-member oneOf/anyOf handling below.
|
|
269
|
+
const { allOf, ...value } = schema;
|
|
270
|
+
const members = allOf ?? [];
|
|
271
|
+
if (members.length === 1) {
|
|
272
|
+
const [member] = members;
|
|
273
|
+
if ((0, refFns_js_1.isRef)(member) && value.nullable) {
|
|
274
|
+
return (0, toRefV31_js_1.toRefV31)({
|
|
275
|
+
ref: member,
|
|
276
|
+
refType: 'schema',
|
|
277
|
+
nullable: true,
|
|
278
|
+
stackTrail: st,
|
|
279
|
+
context
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return (0, exports.toSchemaV3)({
|
|
283
|
+
schema: collapseSingleMember(value, member),
|
|
284
|
+
stackTrail: st,
|
|
285
|
+
context
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
const merged = (0, merge_intersection_js_1.mergeIntersection)({
|
|
289
|
+
schema,
|
|
290
|
+
getRef: (0, refFns_js_2.toGetRef)(context.documentObject)
|
|
291
|
+
});
|
|
292
|
+
return (0, exports.toSchemaV3)({ schema: merged, stackTrail: st, context });
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
if ('oneOf' in schema && Array.isArray(schema.oneOf)) {
|
|
296
|
+
return stackTrail.trace('oneOf', st => {
|
|
297
|
+
// 3.1: a `{ type: 'null' }` member makes the union nullable. Fold it
|
|
298
|
+
// into a `nullable` flag the collapse/union logic already understands.
|
|
299
|
+
const { members: oneOfWithoutNull, nullable: hasNullMember } = partitionNullMember(schema.oneOf ?? []);
|
|
300
|
+
const withoutNull = hasNullMember
|
|
301
|
+
? { ...schema, oneOf: oneOfWithoutNull, nullable: true }
|
|
302
|
+
: schema;
|
|
303
|
+
const merged = (0, merge_union_js_1.mergeUnion)({
|
|
304
|
+
schema: withoutNull,
|
|
305
|
+
getRef: (0, refFns_js_2.toGetRef)(context.documentObject),
|
|
306
|
+
groupType: 'oneOf'
|
|
307
|
+
});
|
|
308
|
+
if (!('oneOf' in merged) || !Array.isArray(merged.oneOf)) {
|
|
309
|
+
throw new Error('Missing "oneOf" array');
|
|
310
|
+
}
|
|
311
|
+
const { oneOf: members, ...value } = merged;
|
|
312
|
+
if (members.length === 0) {
|
|
313
|
+
throw new Error('"oneOf" array is empty');
|
|
314
|
+
}
|
|
315
|
+
if (members.length === 1) {
|
|
316
|
+
const [soleMember] = members;
|
|
317
|
+
// A 3.1 nullable reference `oneOf:[{$ref},{type:'null'}]` becomes a
|
|
318
|
+
// single `$ref` member + `nullable:true` once the null member above
|
|
319
|
+
// is folded out. Nullability here is a *use-site* property — the same
|
|
320
|
+
// refName may be referenced nullable at one site and not another — so
|
|
321
|
+
// it rides the OasRef node itself, NOT the shared referent and NOT a
|
|
322
|
+
// synthetic union. Generators read `ref.nullable` and render
|
|
323
|
+
// `Foo | null`; `ModelDriver` builds the un-nullable shared `Foo` from
|
|
324
|
+
// the refName. See
|
|
325
|
+
// notes/openapi-3.1-webhooks-and-parser-architecture.md §3.4.
|
|
326
|
+
if ((0, refFns_js_1.isRef)(soleMember) && value.nullable) {
|
|
327
|
+
return (0, toRefV31_js_1.toRefV31)({
|
|
328
|
+
ref: soleMember,
|
|
329
|
+
refType: 'schema',
|
|
330
|
+
nullable: true,
|
|
331
|
+
stackTrail: st,
|
|
332
|
+
context
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
return (0, exports.toSchemaV3)({
|
|
336
|
+
schema: collapseSingleMember(value, soleMember),
|
|
337
|
+
stackTrail: st,
|
|
338
|
+
context
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
return (0, toUnion_js_1.toUnion)({ value, members, parentType: 'oneOf', stackTrail: st, context });
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
if ('anyOf' in schema && Array.isArray(schema.anyOf)) {
|
|
345
|
+
return stackTrail.trace('anyOf', st => {
|
|
346
|
+
// deno-lint-ignore ban-ts-comment
|
|
347
|
+
// @ts-expect-error
|
|
348
|
+
if (schema['x-expansionResources'] && Array.isArray(schema.anyOf)) {
|
|
349
|
+
const { anyOf, ...value } = schema;
|
|
350
|
+
return (0, toUnion_js_1.toUnion)({ value, members: anyOf, parentType: 'anyOf', stackTrail: st, context });
|
|
351
|
+
}
|
|
352
|
+
// 3.1: a `{ type: 'null' }` member makes the union nullable (mirrors
|
|
353
|
+
// the oneOf branch above).
|
|
354
|
+
const { members: anyOfWithoutNull, nullable: hasNullMember } = partitionNullMember(schema.anyOf ?? []);
|
|
355
|
+
const withoutNull = hasNullMember
|
|
356
|
+
? { ...schema, anyOf: anyOfWithoutNull, nullable: true }
|
|
357
|
+
: schema;
|
|
358
|
+
const merged = (0, merge_union_js_1.mergeUnion)({
|
|
359
|
+
schema: withoutNull,
|
|
360
|
+
getRef: (0, refFns_js_2.toGetRef)(context.documentObject),
|
|
361
|
+
groupType: 'anyOf'
|
|
362
|
+
});
|
|
363
|
+
if (!('anyOf' in merged) || !Array.isArray(merged.anyOf)) {
|
|
364
|
+
throw new Error('Missing "anyOf" array');
|
|
365
|
+
}
|
|
366
|
+
const { anyOf: members, ...value } = merged;
|
|
367
|
+
if (members.length === 0) {
|
|
368
|
+
throw new Error('"anyOf" array is empty');
|
|
369
|
+
}
|
|
370
|
+
if (members.length === 1) {
|
|
371
|
+
const [soleMember] = members;
|
|
372
|
+
// See the oneOf branch: a single `$ref` carrying a hoisted `nullable`
|
|
373
|
+
// sets `nullable` on the OasRef node itself.
|
|
374
|
+
if ((0, refFns_js_1.isRef)(soleMember) && value.nullable) {
|
|
375
|
+
return (0, toRefV31_js_1.toRefV31)({
|
|
376
|
+
ref: soleMember,
|
|
377
|
+
refType: 'schema',
|
|
378
|
+
nullable: true,
|
|
379
|
+
stackTrail: st,
|
|
380
|
+
context
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
return (0, exports.toSchemaV3)({
|
|
384
|
+
schema: collapseSingleMember(value, soleMember),
|
|
385
|
+
stackTrail: st,
|
|
386
|
+
context
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
return (0, toUnion_js_1.toUnion)({ value, members, parentType: 'anyOf', stackTrail: st, context });
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
if ('type' in schema) {
|
|
393
|
+
switch (schema.type) {
|
|
394
|
+
case 'object':
|
|
395
|
+
return (0, toObject_js_1.toObject)({ value: schema, stackTrail, context });
|
|
396
|
+
case 'array':
|
|
397
|
+
return (0, toArray_js_1.toArray)({ value: schema, stackTrail, context });
|
|
398
|
+
case 'integer':
|
|
399
|
+
return (0, toInteger_js_1.toInteger)({ value: schema, stackTrail, context });
|
|
400
|
+
case 'number':
|
|
401
|
+
return (0, toNumber_js_1.toNumber)({ value: schema, stackTrail, context });
|
|
402
|
+
case 'boolean':
|
|
403
|
+
return (0, toBoolean_js_1.toBoolean)({ value: schema, stackTrail, context });
|
|
404
|
+
case 'string':
|
|
405
|
+
return (0, toString_js_1.toString)({ value: schema, stackTrail, context });
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
// Otherwise cases
|
|
409
|
+
if (possibleObject(schema)) {
|
|
410
|
+
// In 3.1 `type` is optional, so a schema with `properties` and no `type`
|
|
411
|
+
// is a normal, valid object schema — inferring `object` is the expected
|
|
412
|
+
// reading, not a deviation, so it is silent. (The v3-0 parser keeps the
|
|
413
|
+
// MISSING_OBJECT_TYPE warning: 3.0 requires `type`, so its absence there
|
|
414
|
+
// is a real signal.)
|
|
415
|
+
return (0, toObject_js_1.toObject)({
|
|
416
|
+
value: {
|
|
417
|
+
...schema,
|
|
418
|
+
type: 'object'
|
|
419
|
+
},
|
|
420
|
+
stackTrail,
|
|
421
|
+
context
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
if (possibleArray(schema)) {
|
|
425
|
+
context.logIssueNoKey({
|
|
426
|
+
level: 'warning',
|
|
427
|
+
message: 'Object has "items" property, but is missing type="array" property',
|
|
428
|
+
parent: schema,
|
|
429
|
+
stackTrail,
|
|
430
|
+
type: 'MISSING_ARRAY_TYPE'
|
|
431
|
+
});
|
|
432
|
+
return (0, toArray_js_1.toArray)({
|
|
433
|
+
value: {
|
|
434
|
+
...schema,
|
|
435
|
+
type: 'array'
|
|
436
|
+
// Adding cast here since {} is a valid value for items
|
|
437
|
+
},
|
|
438
|
+
stackTrail,
|
|
439
|
+
context
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
if (possibleBoolean(schema)) {
|
|
443
|
+
context.logIssueNoKey({
|
|
444
|
+
level: 'warning',
|
|
445
|
+
message: 'Object has a boolean "default" or "example" property, but is missing type="boolean" property',
|
|
446
|
+
parent: schema,
|
|
447
|
+
stackTrail,
|
|
448
|
+
type: 'MISSING_BOOLEAN_TYPE'
|
|
449
|
+
});
|
|
450
|
+
return (0, toBoolean_js_1.toBoolean)({
|
|
451
|
+
value: {
|
|
452
|
+
...schema,
|
|
453
|
+
type: 'boolean'
|
|
454
|
+
},
|
|
455
|
+
stackTrail,
|
|
456
|
+
context
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
if (possibleString(schema)) {
|
|
460
|
+
context.logIssueNoKey({
|
|
461
|
+
level: 'warning',
|
|
462
|
+
message: 'Object has a string "default" or "example" property, but is missing type="string" property',
|
|
463
|
+
parent: schema,
|
|
464
|
+
stackTrail,
|
|
465
|
+
type: 'MISSING_STRING_TYPE'
|
|
466
|
+
});
|
|
467
|
+
return (0, toString_js_1.toString)({
|
|
468
|
+
value: {
|
|
469
|
+
...schema,
|
|
470
|
+
type: 'string'
|
|
471
|
+
},
|
|
472
|
+
stackTrail,
|
|
473
|
+
context
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
return (0, toUnknown_js_1.toUnknown)({ value: schema, stackTrail, context });
|
|
477
|
+
};
|
|
478
|
+
exports.toSchemaV3 = toSchemaV3;
|
|
479
|
+
const possibleString = (value) => {
|
|
480
|
+
return (value &&
|
|
481
|
+
typeof value === 'object' &&
|
|
482
|
+
(('default' in value && typeof value.default === 'string') ||
|
|
483
|
+
('example' in value && typeof value.example === 'string') ||
|
|
484
|
+
('enum' in value &&
|
|
485
|
+
Array.isArray(value.enum) &&
|
|
486
|
+
value.enum.every(item => typeof item === 'string')) ||
|
|
487
|
+
('format' in value &&
|
|
488
|
+
typeof value.format === 'string' &&
|
|
489
|
+
['date', 'date-time', 'binary', 'byte'].includes(value.format))));
|
|
490
|
+
};
|
|
491
|
+
const possibleBoolean = (value) => {
|
|
492
|
+
return (value &&
|
|
493
|
+
typeof value === 'object' &&
|
|
494
|
+
(('default' in value && typeof value.default === 'boolean') ||
|
|
495
|
+
('example' in value && typeof value.example === 'boolean')));
|
|
496
|
+
};
|
|
497
|
+
const possibleArray = (value) => {
|
|
498
|
+
return (value &&
|
|
499
|
+
typeof value === 'object' &&
|
|
500
|
+
'items' in value &&
|
|
501
|
+
value.items &&
|
|
502
|
+
typeof value.items === 'object' &&
|
|
503
|
+
value.items);
|
|
504
|
+
};
|
|
505
|
+
const possibleObject = (value) => {
|
|
506
|
+
return (value &&
|
|
507
|
+
typeof value === 'object' &&
|
|
508
|
+
'properties' in value &&
|
|
509
|
+
typeof value.properties === 'object' &&
|
|
510
|
+
value.properties);
|
|
511
|
+
};
|
|
512
|
+
const toOptionalSchemaV3 = ({ schema, stackTrail, context }) => {
|
|
513
|
+
if (!schema) {
|
|
514
|
+
return undefined;
|
|
515
|
+
}
|
|
516
|
+
return (0, exports.toSchemaV3)({ schema, stackTrail, context });
|
|
517
|
+
};
|
|
518
|
+
exports.toOptionalSchemaV3 = toOptionalSchemaV3;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
2
|
+
import { OasSecurityRequirement } from '../../../oas/securityRequirement/SecurityRequirement.js';
|
|
3
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
4
|
+
export type ToSecurityRequirementsV3Args = {
|
|
5
|
+
security: Record<string, string[]>[] | undefined;
|
|
6
|
+
stackTrail: StackTrail;
|
|
7
|
+
context: ParseContextType;
|
|
8
|
+
};
|
|
9
|
+
export declare const toSecurityRequirementsV3: ({ security, stackTrail, context }: ToSecurityRequirementsV3Args) => OasSecurityRequirement[] | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSecurityRequirementsV3 = void 0;
|
|
4
|
+
const SecurityRequirement_js_1 = require("../../../oas/securityRequirement/SecurityRequirement.js");
|
|
5
|
+
const toSecurityRequirementsV3 = ({ security, stackTrail, context }) => {
|
|
6
|
+
if (!security) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
return security.map(requirement => {
|
|
10
|
+
return new SecurityRequirement_js_1.OasSecurityRequirement({ requirement }, context.oasDocument);
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
exports.toSecurityRequirementsV3 = toSecurityRequirementsV3;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
3
|
+
import type { OasSecurityScheme } from '../../../oas/securitySchemes/SecurityScheme.js';
|
|
4
|
+
import type { OasRef } from '../../../oas/ref/Ref.js';
|
|
5
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
6
|
+
export type ToSecuritySchemesArgs = {
|
|
7
|
+
securitySchemes: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SecuritySchemeObject> | undefined;
|
|
8
|
+
stackTrail: StackTrail;
|
|
9
|
+
context: ParseContextType;
|
|
10
|
+
};
|
|
11
|
+
export declare const toSecuritySchemesV3: ({ securitySchemes, stackTrail, context }: ToSecuritySchemesArgs) => // 'http' | 'apiKey' | 'oauth2' | 'openIdConnect'
|
|
12
|
+
Record<string, OasSecurityScheme | OasRef<"securityScheme">> | undefined;
|
|
13
|
+
export type ToSecuritySchemeV3Args = {
|
|
14
|
+
securityScheme: OpenAPIV3.ReferenceObject | OpenAPIV3.SecuritySchemeObject;
|
|
15
|
+
stackTrail: StackTrail;
|
|
16
|
+
context: ParseContextType;
|
|
17
|
+
};
|