@skmtc/core 0.28.7 → 0.30.1
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/GenerateContext.js +16 -16
- package/esm/context/ParseContext.js +9 -1
- package/esm/context/RenderContext.d.ts +7 -7
- package/esm/context/RenderContext.js +17 -12
- package/esm/context/generateTypes.d.ts +2 -2
- package/esm/context/generateTypes.js +3 -1
- package/esm/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.d.ts +16 -0
- package/esm/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.js +23 -0
- package/esm/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.d.ts +16 -0
- package/esm/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.js +38 -0
- package/esm/dsl/GeneratorKeys.d.ts +2 -2
- package/esm/dsl/GeneratorKeys.js +6 -3
- package/esm/dsl/model/ModelDriver.js +4 -3
- package/esm/dsl/operation/gql/GqlOperationDriver.js +4 -3
- package/esm/dsl/operation/oas/OasOperationDriver.js +4 -3
- package/esm/dsl/webhook/WebhookDriver.js +4 -3
- package/esm/helpers/applyGeneratedSuffix.js +1 -1
- package/esm/helpers/isImported.d.ts +10 -74
- package/esm/helpers/isImported.js +12 -76
- package/esm/helpers/naming.d.ts +2 -1
- package/esm/helpers/naming.js +4 -2
- package/esm/helpers/normalizeWorkspacePath.d.ts +64 -0
- package/esm/helpers/normalizeWorkspacePath.js +98 -0
- package/esm/helpers/toResolvedArtifactPath.d.ts +8 -5
- package/esm/helpers/toResolvedArtifactPath.js +11 -7
- package/esm/helpers/toWorkspacePath.d.ts +3 -3
- package/esm/helpers/toWorkspacePath.js +5 -5
- 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/mediaType/MediaType.d.ts +12 -0
- package/esm/oas/mediaType/MediaType.js +24 -0
- package/esm/oas/parameter/Parameter.d.ts +2 -1
- package/esm/oas/parameter/Parameter.js +5 -2
- package/esm/oas/parameter/parameter-types.d.ts +10 -2
- package/esm/oas/parameter/parameter-types.js +3 -1
- package/esm/oas/response/Response.d.ts +6 -1
- package/esm/oas/response/Response.js +8 -0
- 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/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/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/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 +44 -0
- package/esm/parse/v3-2/response/toResponseV3.d.ts +29 -0
- package/esm/parse/v3-2/response/toResponseV3.js +56 -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/Settings.js +6 -8
- 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/GenerateContext.js +16 -16
- package/script/context/ParseContext.js +9 -1
- package/script/context/RenderContext.d.ts +7 -7
- package/script/context/RenderContext.js +17 -12
- package/script/context/generateTypes.d.ts +2 -2
- package/script/context/generateTypes.js +3 -1
- package/script/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.d.ts +16 -0
- package/script/deps/jsr.io/@std/path/1.1.6/posix/is_absolute.js +26 -0
- package/script/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.d.ts +16 -0
- package/script/deps/jsr.io/@std/path/1.1.6/windows/is_absolute.js +41 -0
- package/script/dsl/GeneratorKeys.d.ts +2 -2
- package/script/dsl/GeneratorKeys.js +6 -3
- package/script/dsl/model/ModelDriver.js +4 -3
- package/script/dsl/operation/gql/GqlOperationDriver.js +4 -3
- package/script/dsl/operation/oas/OasOperationDriver.js +4 -3
- package/script/dsl/webhook/WebhookDriver.js +4 -3
- package/script/helpers/applyGeneratedSuffix.js +1 -1
- package/script/helpers/isImported.d.ts +10 -74
- package/script/helpers/isImported.js +12 -76
- package/script/helpers/naming.d.ts +2 -1
- package/script/helpers/naming.js +4 -2
- package/script/helpers/normalizeWorkspacePath.d.ts +64 -0
- package/script/helpers/normalizeWorkspacePath.js +107 -0
- package/script/helpers/toResolvedArtifactPath.d.ts +8 -5
- package/script/helpers/toResolvedArtifactPath.js +11 -7
- package/script/helpers/toWorkspacePath.d.ts +3 -3
- package/script/helpers/toWorkspacePath.js +5 -5
- 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/mediaType/MediaType.d.ts +12 -0
- package/script/oas/mediaType/MediaType.js +24 -0
- package/script/oas/parameter/Parameter.d.ts +2 -1
- package/script/oas/parameter/Parameter.js +5 -2
- package/script/oas/parameter/parameter-types.d.ts +10 -2
- package/script/oas/parameter/parameter-types.js +3 -1
- package/script/oas/response/Response.d.ts +6 -1
- package/script/oas/response/Response.js +8 -0
- 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/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/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/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 +49 -0
- package/script/parse/v3-2/response/toResponseV3.d.ts +29 -0
- package/script/parse/v3-2/response/toResponseV3.js +62 -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/Settings.js +7 -9
- package/script/types/SkmtcDocument.d.ts +6 -6
- package/esm/deps/jsr.io/@std/path/1.1.6/extname.d.ts +0 -24
- package/esm/deps/jsr.io/@std/path/1.1.6/extname.js +0 -31
- package/esm/deps/jsr.io/@std/path/1.1.6/normalize.d.ts +0 -25
- package/esm/deps/jsr.io/@std/path/1.1.6/normalize.js +0 -32
- package/esm/deps/jsr.io/@std/path/1.1.6/windows/extname.d.ts +0 -17
- package/esm/deps/jsr.io/@std/path/1.1.6/windows/extname.js +0 -83
- package/script/deps/jsr.io/@std/path/1.1.6/extname.d.ts +0 -24
- package/script/deps/jsr.io/@std/path/1.1.6/extname.js +0 -34
- package/script/deps/jsr.io/@std/path/1.1.6/normalize.d.ts +0 -25
- package/script/deps/jsr.io/@std/path/1.1.6/normalize.js +0 -35
- package/script/deps/jsr.io/@std/path/1.1.6/windows/extname.d.ts +0 -17
- package/script/deps/jsr.io/@std/path/1.1.6/windows/extname.js +0 -86
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The OpenAPI dialects SKMTC parses natively. Each has its own complete
|
|
3
|
-
* parser tree (`core/parse/v3-0`, `core/parse/v3-1`);
|
|
4
|
-
* ONLY place a document's version is examined. Once a
|
|
5
|
-
* the matching parser runs top-to-bottom and never
|
|
6
|
-
* so a 3.0 document can never reach a line of 3.1
|
|
7
|
-
* there is no downstream version branch to get
|
|
3
|
+
* parser tree (`core/parse/v3-0`, `core/parse/v3-1`, `core/parse/v3-2`);
|
|
4
|
+
* this module is the ONLY place a document's version is examined. Once a
|
|
5
|
+
* dialect is chosen the matching parser runs top-to-bottom and never
|
|
6
|
+
* re-checks the version, so a 3.0 document can never reach a line of 3.1
|
|
7
|
+
* logic (or vice versa) — there is no downstream version branch to get
|
|
8
|
+
* wrong.
|
|
8
9
|
*/
|
|
9
|
-
export type OasDialect = '3.0' | '3.1';
|
|
10
|
+
export type OasDialect = '3.0' | '3.1' | '3.2';
|
|
10
11
|
/**
|
|
11
12
|
* Map an OpenAPI document's `openapi` version string to its parser
|
|
12
13
|
* dialect.
|
|
@@ -15,7 +16,7 @@ export type OasDialect = '3.0' | '3.1';
|
|
|
15
16
|
* precondition failure — there is no sensible parser to pick — so it throws
|
|
16
17
|
* rather than silently defaulting to one dialect and masking the error. A
|
|
17
18
|
* loose `openapi.startsWith('3.1') ? '3.1' : '3.0'` would route every
|
|
18
|
-
* non-3.1 value (a typo, `
|
|
19
|
+
* non-3.1 value (a typo, `4.0`, a missing field) into 3.0 unnoticed;
|
|
19
20
|
* that is the footgun this avoids. Mirrors `@skmtc/convert`'s
|
|
20
21
|
* `toV3Document`, which likewise throws on an unrecognized version.
|
|
21
22
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* precondition failure — there is no sensible parser to pick — so it throws
|
|
7
7
|
* rather than silently defaulting to one dialect and masking the error. A
|
|
8
8
|
* loose `openapi.startsWith('3.1') ? '3.1' : '3.0'` would route every
|
|
9
|
-
* non-3.1 value (a typo, `
|
|
9
|
+
* non-3.1 value (a typo, `4.0`, a missing field) into 3.0 unnoticed;
|
|
10
10
|
* that is the footgun this avoids. Mirrors `@skmtc/convert`'s
|
|
11
11
|
* `toV3Document`, which likewise throws on an unrecognized version.
|
|
12
12
|
*
|
|
@@ -18,5 +18,7 @@ export const toOasDialect = (openapi) => {
|
|
|
18
18
|
return '3.0';
|
|
19
19
|
if (openapi?.startsWith('3.1'))
|
|
20
20
|
return '3.1';
|
|
21
|
-
|
|
21
|
+
if (openapi?.startsWith('3.2'))
|
|
22
|
+
return '3.2';
|
|
23
|
+
throw new Error(`Unsupported OpenAPI version: ${openapi ?? '(missing)'} — expected 3.0.x, 3.1.x or 3.2.x`);
|
|
22
24
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Method } from '../../types/Method.js';
|
|
2
|
+
/**
|
|
3
|
+
* A path item field that holds an Operation Object in OpenAPI 3.0. A
|
|
4
|
+
* `query` key is not one of them: it stays a skipped field.
|
|
5
|
+
*/
|
|
6
|
+
export type PathItemMethod = Exclude<Method, 'query'>;
|
|
7
|
+
export declare const pathItemMethods: readonly PathItemMethod[];
|
|
8
|
+
/**
|
|
9
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
10
|
+
*/
|
|
11
|
+
export declare const toPathItemMethod: (key: string) => PathItemMethod | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const pathItemMethods = [
|
|
2
|
+
'get',
|
|
3
|
+
'put',
|
|
4
|
+
'post',
|
|
5
|
+
'delete',
|
|
6
|
+
'options',
|
|
7
|
+
'head',
|
|
8
|
+
'patch',
|
|
9
|
+
'trace'
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
13
|
+
*/
|
|
14
|
+
export const toPathItemMethod = (key) => {
|
|
15
|
+
return pathItemMethods.find(method => method === key);
|
|
16
|
+
};
|
|
@@ -3,7 +3,7 @@ import { toResponsesV3 } from '../response/toResponseV3.js';
|
|
|
3
3
|
import { toParameterListV3 } from '../parameter/toParameterV3.js';
|
|
4
4
|
import { OasOperation } from '../../../oas/operation/Operation.js';
|
|
5
5
|
import { toPathItemV3 } from '../pathItem/toPathItemV3.js';
|
|
6
|
-
import {
|
|
6
|
+
import { toPathItemMethod } from '../methods.js';
|
|
7
7
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
8
8
|
import { toSecurityRequirementsV3 } from '../securityRequirement/toSecurityRequirement.js';
|
|
9
9
|
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
@@ -54,14 +54,14 @@ export const toOperationsV3 = ({ paths, stackTrail, context }) => {
|
|
|
54
54
|
return [];
|
|
55
55
|
}
|
|
56
56
|
const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
const { [
|
|
57
|
+
const method = toPathItemMethod(key);
|
|
58
|
+
if (method) {
|
|
59
|
+
const { [method]: _deleted, ...remaining } = rest;
|
|
60
60
|
return {
|
|
61
61
|
rest: remaining,
|
|
62
62
|
methodObject: {
|
|
63
63
|
...methodObject,
|
|
64
|
-
[
|
|
64
|
+
[method]: operation
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { OasParameterLocation } from '../../../oas/parameter/parameter-types.js';
|
|
3
3
|
import type { OpenAPIV3 } from 'openapi-types';
|
|
4
4
|
import { OasParameter } from '../../../oas/parameter/Parameter.js';
|
|
5
5
|
import type { OasRef } from '../../../oas/ref/Ref.js';
|
|
6
6
|
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
7
|
+
type ParameterLocation = Exclude<OasParameterLocation, 'querystring'>;
|
|
7
8
|
export type ToParameterListV3Args = {
|
|
8
9
|
parameters: (OpenAPIV3.ParameterObject | OpenAPIV3.ReferenceObject)[] | undefined;
|
|
9
10
|
stackTrail: StackTrail;
|
|
@@ -29,7 +30,7 @@ export type ToParameterV3Args = {
|
|
|
29
30
|
};
|
|
30
31
|
export type ToStyleArgs = {
|
|
31
32
|
style: string | undefined;
|
|
32
|
-
location:
|
|
33
|
+
location: ParameterLocation;
|
|
33
34
|
stackTrail: StackTrail;
|
|
34
35
|
};
|
|
35
36
|
export type ToExplodeArgs = {
|
|
@@ -37,3 +38,4 @@ export type ToExplodeArgs = {
|
|
|
37
38
|
style: string | undefined;
|
|
38
39
|
stackTrail: StackTrail;
|
|
39
40
|
};
|
|
41
|
+
export {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { tryParseAt } from '../../../context/tryParseAt.js';
|
|
2
2
|
import { isRef } from '../../../helpers/refFns.js';
|
|
3
|
-
import { oasParameterLocation, oasParameterStyle } from '../../../oas/parameter/parameter-types.js';
|
|
4
3
|
import { toExamplesV3 } from '../example/toExamplesV3.js';
|
|
5
4
|
import { toRefV31 } from '../ref/toRefV31.js';
|
|
6
5
|
import { toOptionalSchemaV3 } from '../schema/toSchemasV3.js';
|
|
@@ -8,6 +7,21 @@ import { toOptionalMediaTypeItemsV3 } from '../mediaType/toMediaTypeItemV3.js';
|
|
|
8
7
|
import { OasParameter } from '../../../oas/parameter/Parameter.js';
|
|
9
8
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
10
9
|
import * as v from 'valibot';
|
|
10
|
+
const parameterLocation = v.enum({
|
|
11
|
+
query: 'query',
|
|
12
|
+
header: 'header',
|
|
13
|
+
path: 'path',
|
|
14
|
+
cookie: 'cookie'
|
|
15
|
+
});
|
|
16
|
+
const parameterStyle = v.enum({
|
|
17
|
+
matrix: 'matrix',
|
|
18
|
+
label: 'label',
|
|
19
|
+
form: 'form',
|
|
20
|
+
simple: 'simple',
|
|
21
|
+
spaceDelimited: 'spaceDelimited',
|
|
22
|
+
pipeDelimited: 'pipeDelimited',
|
|
23
|
+
deepObject: 'deepObject'
|
|
24
|
+
});
|
|
11
25
|
export const toParameterListV3 = ({ parameters, stackTrail, context }) => {
|
|
12
26
|
if (!parameters) {
|
|
13
27
|
return undefined;
|
|
@@ -52,7 +66,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
|
|
|
52
66
|
stackTrail,
|
|
53
67
|
parentType: 'parameter'
|
|
54
68
|
});
|
|
55
|
-
const parsedLocation = v.parse(
|
|
69
|
+
const parsedLocation = v.parse(parameterLocation, location);
|
|
56
70
|
if (parsedLocation === 'path' && !required) {
|
|
57
71
|
console.warn(`Path parameters must be required`);
|
|
58
72
|
}
|
|
@@ -82,7 +96,7 @@ const toParameterV3 = ({ parameter, stackTrail, context }) => {
|
|
|
82
96
|
return context.withStackTrail(stackTrail, () => new OasParameter(fields, context));
|
|
83
97
|
};
|
|
84
98
|
const toStyle = ({ style, location, stackTrail }) => {
|
|
85
|
-
const parsed = v.parse(v.optional(
|
|
99
|
+
const parsed = v.parse(v.optional(parameterStyle), style);
|
|
86
100
|
if (parsed !== undefined) {
|
|
87
101
|
return parsed;
|
|
88
102
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { OasHttpSecurityScheme, OasApiKeySecurityScheme, OasOAuth2SecurityScheme, OasOpenIdSecurityScheme } from '../../../oas/securitySchemes/SecurityScheme.js';
|
|
2
2
|
import * as v from 'valibot';
|
|
3
|
-
import { oasApiKeySecuritySchemeData, oasHttpSecuritySchemeData, oasOAuth2SecuritySchemeData, oasOpenIdSecuritySchemeData } from '../../../oas/securitySchemes/security-scheme-types.js';
|
|
3
|
+
import { oasApiKeySecuritySchemeData, oasHttpSecuritySchemeData, oasOAuth2FlowsData, oasOAuth2SecuritySchemeData, oasOpenIdSecuritySchemeData } from '../../../oas/securitySchemes/security-scheme-types.js';
|
|
4
4
|
import { toRefV31 } from '../ref/toRefV31.js';
|
|
5
5
|
import { isRef } from '../../../helpers/refFns.js';
|
|
6
|
-
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
7
6
|
import { tryParseAt } from '../../../context/tryParseAt.js';
|
|
7
|
+
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
8
8
|
export const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) => {
|
|
9
9
|
if (!securitySchemes) {
|
|
10
10
|
return undefined;
|
|
@@ -27,21 +27,29 @@ export const toSecuritySchemesV3 = ({ securitySchemes, stackTrail, context }) =>
|
|
|
27
27
|
}
|
|
28
28
|
return output;
|
|
29
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Log the keys of `value` that `known` does not name as skipped fields.
|
|
32
|
+
* `v.parse` on a `v.object` schema strips unknown keys, so they are read
|
|
33
|
+
* off the raw object. `x-` extensions are not logged.
|
|
34
|
+
*/
|
|
35
|
+
const logSkippedKeys = ({ value, known, parentType, stackTrail, context }) => {
|
|
36
|
+
const skipped = Object.fromEntries(Object.entries(value).filter(([key]) => !Object.hasOwn(known, key)));
|
|
37
|
+
toSpecificationExtensionsV3({ skipped, parent: value, parentType, stackTrail, context });
|
|
38
|
+
};
|
|
30
39
|
const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
|
|
31
40
|
if (isRef(securityScheme)) {
|
|
32
41
|
return toRefV31({ ref: securityScheme, refType: 'securityScheme', stackTrail, context });
|
|
33
42
|
}
|
|
34
43
|
switch (securityScheme.type) {
|
|
35
44
|
case 'http': {
|
|
36
|
-
const {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
+
const { description, scheme, bearerFormat } = v.parse(oasHttpSecuritySchemeData, securityScheme);
|
|
46
|
+
logSkippedKeys({
|
|
47
|
+
value: securityScheme,
|
|
48
|
+
known: oasHttpSecuritySchemeData.entries,
|
|
49
|
+
parentType: 'securityScheme:http',
|
|
50
|
+
stackTrail,
|
|
51
|
+
context
|
|
52
|
+
});
|
|
45
53
|
return new OasHttpSecurityScheme({
|
|
46
54
|
description,
|
|
47
55
|
scheme,
|
|
@@ -49,15 +57,14 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
|
|
|
49
57
|
});
|
|
50
58
|
}
|
|
51
59
|
case 'apiKey': {
|
|
52
|
-
const {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
60
|
+
const { in: location, description, name } = v.parse(oasApiKeySecuritySchemeData, securityScheme);
|
|
61
|
+
logSkippedKeys({
|
|
62
|
+
value: securityScheme,
|
|
63
|
+
known: oasApiKeySecuritySchemeData.entries,
|
|
64
|
+
parentType: 'securityScheme:apiKey',
|
|
65
|
+
stackTrail,
|
|
66
|
+
context
|
|
67
|
+
});
|
|
61
68
|
return new OasApiKeySecurityScheme({
|
|
62
69
|
description,
|
|
63
70
|
name,
|
|
@@ -65,30 +72,35 @@ const toSecuritySchemeV3 = ({ securityScheme, stackTrail, context }) => {
|
|
|
65
72
|
});
|
|
66
73
|
}
|
|
67
74
|
case 'oauth2': {
|
|
68
|
-
const {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const { flows, description } = v.parse(oasOAuth2SecuritySchemeData, securityScheme);
|
|
76
|
+
logSkippedKeys({
|
|
77
|
+
value: securityScheme,
|
|
78
|
+
known: oasOAuth2SecuritySchemeData.entries,
|
|
79
|
+
parentType: 'securityScheme:oauth2',
|
|
80
|
+
stackTrail,
|
|
81
|
+
context
|
|
82
|
+
});
|
|
83
|
+
stackTrail.trace('flows', st => logSkippedKeys({
|
|
84
|
+
value: securityScheme.flows,
|
|
85
|
+
known: oasOAuth2FlowsData.entries,
|
|
86
|
+
parentType: 'oauthFlows',
|
|
87
|
+
stackTrail: st,
|
|
88
|
+
context
|
|
89
|
+
}));
|
|
77
90
|
return new OasOAuth2SecurityScheme({
|
|
78
91
|
description,
|
|
79
92
|
flows
|
|
80
93
|
});
|
|
81
94
|
}
|
|
82
95
|
case 'openIdConnect': {
|
|
83
|
-
const {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
96
|
+
const { description, openIdConnectUrl } = v.parse(oasOpenIdSecuritySchemeData, securityScheme);
|
|
97
|
+
logSkippedKeys({
|
|
98
|
+
value: securityScheme,
|
|
99
|
+
known: oasOpenIdSecuritySchemeData.entries,
|
|
100
|
+
parentType: 'securityScheme:openIdConnect',
|
|
101
|
+
stackTrail,
|
|
102
|
+
context
|
|
103
|
+
});
|
|
92
104
|
return new OasOpenIdSecurityScheme({
|
|
93
105
|
description,
|
|
94
106
|
openIdConnectUrl
|
|
@@ -3,7 +3,7 @@ import { toResponsesV3 } from '../response/toResponseV3.js';
|
|
|
3
3
|
import { toParameterListV3 } from '../parameter/toParameterV3.js';
|
|
4
4
|
import { OasWebhook } from '../../../oas/webhook/Webhook.js';
|
|
5
5
|
import { toPathItemV3 } from '../pathItem/toPathItemV3.js';
|
|
6
|
-
import {
|
|
6
|
+
import { toPathItemMethod } from '../methods.js';
|
|
7
7
|
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
8
8
|
import { toSecurityRequirementsV3 } from '../securityRequirement/toSecurityRequirement.js';
|
|
9
9
|
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
@@ -69,14 +69,14 @@ export const toWebhooksV3 = ({ webhooks, stackTrail, context }) => {
|
|
|
69
69
|
return [];
|
|
70
70
|
}
|
|
71
71
|
const cleaned = Object.entries(pathItem).reduce(({ rest, methodObject }, [key, operation]) => {
|
|
72
|
-
const
|
|
73
|
-
if (
|
|
74
|
-
const { [
|
|
72
|
+
const method = toPathItemMethod(key);
|
|
73
|
+
if (method) {
|
|
74
|
+
const { [method]: _deleted, ...remaining } = rest;
|
|
75
75
|
return {
|
|
76
76
|
rest: remaining,
|
|
77
77
|
methodObject: {
|
|
78
78
|
...methodObject,
|
|
79
|
-
[
|
|
79
|
+
[method]: operation
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
82
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Method } from '../../types/Method.js';
|
|
2
|
+
/**
|
|
3
|
+
* A path item field that holds an Operation Object in OpenAPI 3.1. A
|
|
4
|
+
* `query` key is not one of them: it stays a skipped field.
|
|
5
|
+
*/
|
|
6
|
+
export type PathItemMethod = Exclude<Method, 'query'>;
|
|
7
|
+
export declare const pathItemMethods: readonly PathItemMethod[];
|
|
8
|
+
/**
|
|
9
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
10
|
+
*/
|
|
11
|
+
export declare const toPathItemMethod: (key: string) => PathItemMethod | undefined;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const pathItemMethods = [
|
|
2
|
+
'get',
|
|
3
|
+
'put',
|
|
4
|
+
'post',
|
|
5
|
+
'delete',
|
|
6
|
+
'options',
|
|
7
|
+
'head',
|
|
8
|
+
'patch',
|
|
9
|
+
'trace'
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Returns `key` as a {@link PathItemMethod} when it is one of {@link pathItemMethods}.
|
|
13
|
+
*/
|
|
14
|
+
export const toPathItemMethod = (key) => {
|
|
15
|
+
return pathItemMethods.find(method => method === key);
|
|
16
|
+
};
|
|
@@ -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
|
}
|
|
@@ -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
|
}
|