@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
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { isRef } from '../../../helpers/refFns.js';
|
|
2
|
+
import { checkTypeConflicts } from './check-type-conflicts.js';
|
|
3
|
+
import { checkReadOnlyWriteOnlyConflicts } from './check-read-only-write-only-conflicts.js';
|
|
4
|
+
import { checkFormatConflicts } from './check-format-conflicts.js';
|
|
5
|
+
import { checkEnumConflicts } from './check-enum-conflicts.js';
|
|
6
|
+
import { checkNumberConstraintsConflicts } from './check-number-constraints-conflicts.js';
|
|
7
|
+
import { checkArrayItemTypeConflicts } from './check-array-item-type-conflicts.js';
|
|
8
|
+
import { mergeObjectConstraints } from './merge-object-constraints.js';
|
|
9
|
+
import { mergeArrayConstraints } from './merge-array-constraints.js';
|
|
10
|
+
import { mergeStringConstraints } from './merge-string-constraints.js';
|
|
11
|
+
import { mergeNumberConstraints } from './merge-number-constraints.js';
|
|
12
|
+
import { mergeIntegerConstraints } from './merge-integer-constraints.js';
|
|
13
|
+
import { mergeBooleanConstraints } from './merge-boolean-constraints.js';
|
|
14
|
+
import { genericMerge } from './generic-merge.js';
|
|
15
|
+
import { checkAtLeastOneTypeMatch } from './check-at-least-one-type-match.js';
|
|
16
|
+
import { mergeIntersection } from './merge-intersection.js';
|
|
17
|
+
import { mergeCrossProduct } from './merge-union.js';
|
|
18
|
+
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
19
|
+
import { isNullOnly, mergeNullOnly } from './nullable-merge.js';
|
|
20
|
+
export const mergeSchemasOrRefs = (first, second, getRef) => {
|
|
21
|
+
if (containsRef(first, second)) {
|
|
22
|
+
return mergeWithRef(first, second, getRef);
|
|
23
|
+
}
|
|
24
|
+
if (isRef(first)) {
|
|
25
|
+
throw new Error('Ref in first');
|
|
26
|
+
}
|
|
27
|
+
if (isRef(second)) {
|
|
28
|
+
throw new Error('Ref in second');
|
|
29
|
+
}
|
|
30
|
+
if (containsAllOf(first) || containsAllOf(second)) {
|
|
31
|
+
const mergedFirst = containsAllOf(first) ? mergeIntersection({ schema: first, getRef }) : first;
|
|
32
|
+
const mergedSecond = containsAllOf(second)
|
|
33
|
+
? mergeIntersection({ schema: second, getRef })
|
|
34
|
+
: second;
|
|
35
|
+
return mergeSchemasOrRefs(mergedFirst, mergedSecond, getRef);
|
|
36
|
+
}
|
|
37
|
+
if (containsOneOf(first, second)) {
|
|
38
|
+
return mergeCrossProduct({ first, second, getRef, groupType: 'oneOf' });
|
|
39
|
+
}
|
|
40
|
+
if (containsAnyOf(first, second)) {
|
|
41
|
+
return mergeCrossProduct({ first, second, getRef, groupType: 'anyOf' });
|
|
42
|
+
}
|
|
43
|
+
if (isNullOnly(first)) {
|
|
44
|
+
return mergeNullOnly(second);
|
|
45
|
+
}
|
|
46
|
+
if (isNullOnly(second)) {
|
|
47
|
+
return mergeNullOnly(first);
|
|
48
|
+
}
|
|
49
|
+
return mergeSchemas(first, second, getRef);
|
|
50
|
+
};
|
|
51
|
+
const containsAllOf = (schema) => {
|
|
52
|
+
if (schema.allOf) {
|
|
53
|
+
if (schema.allOf?.length) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
throw new Error('Empty allOf');
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
};
|
|
60
|
+
const containsAnyOf = (first, second) => {
|
|
61
|
+
if (first.anyOf) {
|
|
62
|
+
if (first.anyOf?.length) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
throw new Error('Empty anyOf');
|
|
66
|
+
}
|
|
67
|
+
if (second.anyOf) {
|
|
68
|
+
if (second.anyOf?.length) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
throw new Error('Empty anyOf');
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
};
|
|
75
|
+
const containsOneOf = (first, second) => {
|
|
76
|
+
if (first.oneOf) {
|
|
77
|
+
if (first.oneOf?.length) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
throw new Error('Empty oneOf');
|
|
81
|
+
}
|
|
82
|
+
if (second.oneOf) {
|
|
83
|
+
if (second.oneOf?.length) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
throw new Error('Empty oneOf');
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
};
|
|
90
|
+
const containsRef = (first, second) => {
|
|
91
|
+
return isRef(first) || isRef(second);
|
|
92
|
+
};
|
|
93
|
+
const mergeSchemas = (first, second, getRef) => {
|
|
94
|
+
try {
|
|
95
|
+
checkTypeConflicts(first, second);
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
throw e;
|
|
99
|
+
}
|
|
100
|
+
checkReadOnlyWriteOnlyConflicts(first, second);
|
|
101
|
+
checkFormatConflicts(first, second);
|
|
102
|
+
checkEnumConflicts(first, second);
|
|
103
|
+
checkNumberConstraintsConflicts(first, second);
|
|
104
|
+
checkArrayItemTypeConflicts(first, second);
|
|
105
|
+
if (first.not || second.not) {
|
|
106
|
+
throw new Error('Merging schemas with "not" keyword is not supported');
|
|
107
|
+
}
|
|
108
|
+
return typedMerge(first, second, getRef);
|
|
109
|
+
};
|
|
110
|
+
const typedMerge = (first, second, getRef) => {
|
|
111
|
+
if (!first.type && !second.type) {
|
|
112
|
+
return genericMerge(first, second, getRef);
|
|
113
|
+
}
|
|
114
|
+
if (checkAtLeastOneTypeMatch(first, second, 'object')) {
|
|
115
|
+
return mergeObjectConstraints(first, second, getRef);
|
|
116
|
+
}
|
|
117
|
+
if (checkAtLeastOneTypeMatch(first, second, 'array')) {
|
|
118
|
+
return mergeArrayConstraints(first, second, getRef);
|
|
119
|
+
}
|
|
120
|
+
if (checkAtLeastOneTypeMatch(first, second, 'string')) {
|
|
121
|
+
return mergeStringConstraints(first, second, getRef);
|
|
122
|
+
}
|
|
123
|
+
if (checkAtLeastOneTypeMatch(first, second, 'number')) {
|
|
124
|
+
return mergeNumberConstraints(first, second, getRef);
|
|
125
|
+
}
|
|
126
|
+
if (checkAtLeastOneTypeMatch(first, second, 'integer')) {
|
|
127
|
+
return mergeIntegerConstraints(first, second, getRef);
|
|
128
|
+
}
|
|
129
|
+
if (checkAtLeastOneTypeMatch(first, second, 'boolean')) {
|
|
130
|
+
return mergeBooleanConstraints(first, second, getRef);
|
|
131
|
+
}
|
|
132
|
+
throw new Error(`Cannot merge schemas with type "${first.type}" with type "${second.type}"`);
|
|
133
|
+
};
|
|
134
|
+
const mergeWithRef = (first, second, getRef) => {
|
|
135
|
+
if (isRef(first) && isRef(second)) {
|
|
136
|
+
if (first.$ref === second.$ref) {
|
|
137
|
+
return {
|
|
138
|
+
...first,
|
|
139
|
+
...second
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
return mergeSchemas(getRef(first), getRef(second), getRef);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (isRef(first) && !isRef(second)) {
|
|
147
|
+
const merged = isEmpty(second) ? first : mergeSchemas(getRef(first), second, getRef);
|
|
148
|
+
return merged;
|
|
149
|
+
}
|
|
150
|
+
if (!isRef(first) && isRef(second)) {
|
|
151
|
+
const merged = isEmpty(first) ? second : mergeSchemas(first, getRef(second), getRef);
|
|
152
|
+
return merged;
|
|
153
|
+
}
|
|
154
|
+
throw new Error('Invalid input');
|
|
155
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { isEmpty } from '../../../helpers/isEmpty.js';
|
|
2
|
+
export const mergeNullOnly = (schema) => {
|
|
3
|
+
if (schema.enum && !schema.enum.includes(null)) {
|
|
4
|
+
schema.enum.push(null);
|
|
5
|
+
}
|
|
6
|
+
schema.nullable = true;
|
|
7
|
+
return schema;
|
|
8
|
+
};
|
|
9
|
+
export const isNullOnly = (schema) => {
|
|
10
|
+
const { type: _type, nullable, enum: enumValues, ...rest } = schema;
|
|
11
|
+
return (Boolean(nullable) && enumValues?.length === 1 && enumValues[0] === null && isEmpty(rest ?? {}));
|
|
12
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import * as v from 'valibot';
|
|
3
|
+
export type GetRefFn = (ref: OpenAPIV3.ReferenceObject) => OpenAPIV3.SchemaObject;
|
|
4
|
+
export type OneOfObject = {
|
|
5
|
+
oneOf?: (OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject)[];
|
|
6
|
+
} & OpenAPIV3.SchemaObject;
|
|
7
|
+
export type AnyOfObject = {
|
|
8
|
+
anyOf?: (OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject)[];
|
|
9
|
+
} & OpenAPIV3.SchemaObject;
|
|
10
|
+
export type SchemaObject = OpenAPIV3.SchemaObject;
|
|
11
|
+
export type ReferenceObject = OpenAPIV3.ReferenceObject;
|
|
12
|
+
export type SchemaOrReference = SchemaObject | ReferenceObject;
|
|
13
|
+
export type ArraySchemaObject = OpenAPIV3.ArraySchemaObject;
|
|
14
|
+
export declare const IntegerSchema: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, "The number must be an integer.">]>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import { OasArray } from '../../../oas/array/Array.js';
|
|
3
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
4
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
5
|
+
export type ToArrayArgs = {
|
|
6
|
+
value: OpenAPIV3.ArraySchemaObject;
|
|
7
|
+
stackTrail: StackTrail;
|
|
8
|
+
context: ParseContextType;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Transforms an OpenAPI v3 array schema object into an internal OAS array representation.
|
|
12
|
+
*
|
|
13
|
+
* This function processes OpenAPI array schemas by extracting and parsing nullable values,
|
|
14
|
+
* examples, enumerations, and default values. It handles the complete transformation from
|
|
15
|
+
* raw OpenAPI JSON to the SKMTC internal array representation with proper type safety.
|
|
16
|
+
*
|
|
17
|
+
* The transformation follows a pipeline approach:
|
|
18
|
+
* 1. Parse nullable flag and extract base value
|
|
19
|
+
* 2. Parse example values with nullable support
|
|
20
|
+
* 3. Parse enumeration constraints
|
|
21
|
+
* 4. Parse default values
|
|
22
|
+
* 5. Create final OasArray instance
|
|
23
|
+
*
|
|
24
|
+
* @param args - Transformation arguments
|
|
25
|
+
* @param args.value - The OpenAPI v3 array schema object to transform
|
|
26
|
+
* @param args.context - Parse context providing utilities and tracing
|
|
27
|
+
* @returns Transformed OAS array object with parsed properties
|
|
28
|
+
*
|
|
29
|
+
* @example Basic array transformation
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { toArray } from '@skmtc/core';
|
|
32
|
+
*
|
|
33
|
+
* const openApiArray = {
|
|
34
|
+
* type: 'array',
|
|
35
|
+
* items: { type: 'string' },
|
|
36
|
+
* maxItems: 10,
|
|
37
|
+
* uniqueItems: true
|
|
38
|
+
* };
|
|
39
|
+
*
|
|
40
|
+
* const oasArray = toArray({
|
|
41
|
+
* value: openApiArray,
|
|
42
|
+
* context: parseContext
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* console.log(oasArray.maxItems); // 10
|
|
46
|
+
* console.log(oasArray.uniqueItems); // true
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example Array with nullable and examples
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const complexArray = {
|
|
52
|
+
* type: 'array',
|
|
53
|
+
* items: { type: 'number' },
|
|
54
|
+
* nullable: true,
|
|
55
|
+
* example: [1, 2, 3],
|
|
56
|
+
* default: [],
|
|
57
|
+
* enum: [[1, 2], [3, 4], null]
|
|
58
|
+
* };
|
|
59
|
+
*
|
|
60
|
+
* const oasArray = toArray({
|
|
61
|
+
* value: complexArray,
|
|
62
|
+
* context: parseContext
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* console.log(oasArray.nullable); // true
|
|
66
|
+
* console.log(oasArray.example); // [1, 2, 3]
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare const toArray: ({ value, context, stackTrail }: ToArrayArgs) => OasArray;
|
|
70
|
+
type ToParsedArrayArgs<Nullable extends boolean | undefined> = {
|
|
71
|
+
value: Omit<OpenAPIV3.ArraySchemaObject, 'nullable' | 'example' | 'enums' | 'default'>;
|
|
72
|
+
stackTrail: StackTrail;
|
|
73
|
+
context: ParseContextType;
|
|
74
|
+
nullable: Nullable;
|
|
75
|
+
example: Nullable extends true ? unknown[] | null | undefined : unknown[] | undefined;
|
|
76
|
+
enums: Nullable extends true ? (unknown[] | null)[] | undefined : unknown[] | undefined;
|
|
77
|
+
defaultValue: Nullable extends true ? unknown[] | null | undefined : unknown[] | undefined;
|
|
78
|
+
};
|
|
79
|
+
export declare const toParsedArray: <Nullable extends boolean | undefined>({ context, stackTrail, nullable, example, enums, defaultValue, value }: ToParsedArrayArgs<Nullable>) => OasArray<Nullable>;
|
|
80
|
+
export {};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { OasArray } from '../../../oas/array/Array.js';
|
|
2
|
+
import { toSchemaV3 } from '../schema/toSchemasV3.js';
|
|
3
|
+
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
4
|
+
import { parseNullable } from '../_helpers/parseNullable.js';
|
|
5
|
+
import { parseEnum } from '../_helpers/parseEnum.js';
|
|
6
|
+
import { parseExample } from '../_helpers/parseExample.js';
|
|
7
|
+
import { parseDefault } from '../_helpers/parseDefault.js';
|
|
8
|
+
import * as v from 'valibot';
|
|
9
|
+
import { oasArrayDataWithoutItems } from '../../../oas/array/array-types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Transforms an OpenAPI v3 array schema object into an internal OAS array representation.
|
|
12
|
+
*
|
|
13
|
+
* This function processes OpenAPI array schemas by extracting and parsing nullable values,
|
|
14
|
+
* examples, enumerations, and default values. It handles the complete transformation from
|
|
15
|
+
* raw OpenAPI JSON to the SKMTC internal array representation with proper type safety.
|
|
16
|
+
*
|
|
17
|
+
* The transformation follows a pipeline approach:
|
|
18
|
+
* 1. Parse nullable flag and extract base value
|
|
19
|
+
* 2. Parse example values with nullable support
|
|
20
|
+
* 3. Parse enumeration constraints
|
|
21
|
+
* 4. Parse default values
|
|
22
|
+
* 5. Create final OasArray instance
|
|
23
|
+
*
|
|
24
|
+
* @param args - Transformation arguments
|
|
25
|
+
* @param args.value - The OpenAPI v3 array schema object to transform
|
|
26
|
+
* @param args.context - Parse context providing utilities and tracing
|
|
27
|
+
* @returns Transformed OAS array object with parsed properties
|
|
28
|
+
*
|
|
29
|
+
* @example Basic array transformation
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { toArray } from '@skmtc/core';
|
|
32
|
+
*
|
|
33
|
+
* const openApiArray = {
|
|
34
|
+
* type: 'array',
|
|
35
|
+
* items: { type: 'string' },
|
|
36
|
+
* maxItems: 10,
|
|
37
|
+
* uniqueItems: true
|
|
38
|
+
* };
|
|
39
|
+
*
|
|
40
|
+
* const oasArray = toArray({
|
|
41
|
+
* value: openApiArray,
|
|
42
|
+
* context: parseContext
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* console.log(oasArray.maxItems); // 10
|
|
46
|
+
* console.log(oasArray.uniqueItems); // true
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example Array with nullable and examples
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const complexArray = {
|
|
52
|
+
* type: 'array',
|
|
53
|
+
* items: { type: 'number' },
|
|
54
|
+
* nullable: true,
|
|
55
|
+
* example: [1, 2, 3],
|
|
56
|
+
* default: [],
|
|
57
|
+
* enum: [[1, 2], [3, 4], null]
|
|
58
|
+
* };
|
|
59
|
+
*
|
|
60
|
+
* const oasArray = toArray({
|
|
61
|
+
* value: complexArray,
|
|
62
|
+
* context: parseContext
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* console.log(oasArray.nullable); // true
|
|
66
|
+
* console.log(oasArray.example); // [1, 2, 3]
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export const toArray = ({ value, context, stackTrail }) => {
|
|
70
|
+
const { nullable, value: valueWithoutNullable } = parseNullable({
|
|
71
|
+
value,
|
|
72
|
+
context,
|
|
73
|
+
stackTrail
|
|
74
|
+
});
|
|
75
|
+
const { example: unparsedExample, ...valueWithoutExample } = valueWithoutNullable;
|
|
76
|
+
const example = parseExample({
|
|
77
|
+
value: unparsedExample,
|
|
78
|
+
context,
|
|
79
|
+
parent: valueWithoutNullable,
|
|
80
|
+
nullable,
|
|
81
|
+
check: isArray,
|
|
82
|
+
toMessage: item => `Removed invalid example. Expected "array", got: ${item}`,
|
|
83
|
+
stackTrail
|
|
84
|
+
});
|
|
85
|
+
const { enum: unparsedEnums, ...valueWithoutEnums } = valueWithoutExample;
|
|
86
|
+
const enums = parseEnum({
|
|
87
|
+
value: unparsedEnums,
|
|
88
|
+
nullable,
|
|
89
|
+
stackTrail,
|
|
90
|
+
parent: valueWithoutExample,
|
|
91
|
+
context,
|
|
92
|
+
check: Array.isArray,
|
|
93
|
+
toMessage: item => `Removed invalid enum. Expected "array", got: ${item}`
|
|
94
|
+
});
|
|
95
|
+
const { default: unparsedDefaultValue, ...valueWithoutDefault } = valueWithoutEnums;
|
|
96
|
+
const defaultValue = parseDefault({
|
|
97
|
+
value: unparsedDefaultValue,
|
|
98
|
+
context,
|
|
99
|
+
parent: valueWithoutEnums,
|
|
100
|
+
nullable,
|
|
101
|
+
check: isArray,
|
|
102
|
+
toMessage: item => `Removed invalid default. Expected "array", got: ${item}`,
|
|
103
|
+
stackTrail
|
|
104
|
+
});
|
|
105
|
+
return toParsedArray({
|
|
106
|
+
context,
|
|
107
|
+
nullable,
|
|
108
|
+
example,
|
|
109
|
+
enums,
|
|
110
|
+
defaultValue,
|
|
111
|
+
stackTrail,
|
|
112
|
+
value: valueWithoutDefault
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
export const toParsedArray = ({ context, stackTrail, nullable, example, enums, defaultValue, value }) => {
|
|
116
|
+
// We only want parse non-items fields here since items is handled below
|
|
117
|
+
const { items, ...rest } = value;
|
|
118
|
+
// Parse the object without items field
|
|
119
|
+
if (!v.is(oasArrayDataWithoutItems, rest)) {
|
|
120
|
+
v.parse(oasArrayDataWithoutItems, rest);
|
|
121
|
+
}
|
|
122
|
+
const { type: _type, title, description, uniqueItems, maxItems, minItems, readOnly, writeOnly, deprecated, ...skipped } = rest;
|
|
123
|
+
const extensionFields = toSpecificationExtensionsV3({
|
|
124
|
+
skipped,
|
|
125
|
+
parent: value,
|
|
126
|
+
context,
|
|
127
|
+
stackTrail,
|
|
128
|
+
parentType: 'schema:array'
|
|
129
|
+
});
|
|
130
|
+
return context.withStackTrail(stackTrail, () => new OasArray({
|
|
131
|
+
title,
|
|
132
|
+
description,
|
|
133
|
+
nullable,
|
|
134
|
+
defaultValue,
|
|
135
|
+
items: stackTrail.trace('items', st => {
|
|
136
|
+
// An array schema with no `items` is invalid OAS but must not
|
|
137
|
+
// kill the run (fail open): log the issue and treat the items
|
|
138
|
+
// as unknown — `{}` falls through toSchemaV3 to OasUnknown.
|
|
139
|
+
if (items === undefined) {
|
|
140
|
+
context.logIssue({
|
|
141
|
+
key: 'items',
|
|
142
|
+
level: 'warning',
|
|
143
|
+
message: 'Array schema has no "items" — treating as an array of unknown values',
|
|
144
|
+
parent: value,
|
|
145
|
+
stackTrail: st,
|
|
146
|
+
type: 'INVALID_SCHEMA'
|
|
147
|
+
});
|
|
148
|
+
return toSchemaV3({ schema: {}, stackTrail: st, context });
|
|
149
|
+
}
|
|
150
|
+
return toSchemaV3({ schema: items, stackTrail: st, context });
|
|
151
|
+
}),
|
|
152
|
+
extensionFields,
|
|
153
|
+
example,
|
|
154
|
+
uniqueItems,
|
|
155
|
+
maxItems,
|
|
156
|
+
minItems,
|
|
157
|
+
enums,
|
|
158
|
+
readOnly,
|
|
159
|
+
writeOnly,
|
|
160
|
+
deprecated
|
|
161
|
+
}, context));
|
|
162
|
+
};
|
|
163
|
+
const isArray = (value) => {
|
|
164
|
+
return Array.isArray(value);
|
|
165
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
3
|
+
import { OasBoolean } from '../../../oas/boolean/Boolean.js';
|
|
4
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
5
|
+
export type ToBooleanArgs = {
|
|
6
|
+
value: OpenAPIV3.SchemaObject;
|
|
7
|
+
stackTrail: StackTrail;
|
|
8
|
+
context: ParseContextType;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Transforms an OpenAPI v3 boolean schema object into an internal OAS boolean representation.
|
|
12
|
+
*
|
|
13
|
+
* This function processes OpenAPI boolean schemas by extracting and parsing nullable values,
|
|
14
|
+
* examples, enumerations, and default values. It handles the complete transformation from
|
|
15
|
+
* raw OpenAPI JSON to the SKMTC internal boolean representation with proper validation.
|
|
16
|
+
*
|
|
17
|
+
* The transformation follows a pipeline approach:
|
|
18
|
+
* 1. Parse nullable flag and extract base value
|
|
19
|
+
* 2. Parse example values with nullable support
|
|
20
|
+
* 3. Parse enumeration constraints (typically [true], [false], or [true, false])
|
|
21
|
+
* 4. Parse default values
|
|
22
|
+
* 5. Create final OasBoolean instance
|
|
23
|
+
*
|
|
24
|
+
* @param args - Transformation arguments
|
|
25
|
+
* @param args.value - The OpenAPI v3 boolean schema object to transform
|
|
26
|
+
* @param args.context - Parse context providing utilities and tracing
|
|
27
|
+
* @returns Transformed OAS boolean object with parsed properties
|
|
28
|
+
*
|
|
29
|
+
* @example Basic boolean transformation
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { toBoolean } from '@skmtc/core';
|
|
32
|
+
*
|
|
33
|
+
* const openApiBoolean = {
|
|
34
|
+
* type: 'boolean',
|
|
35
|
+
* default: false
|
|
36
|
+
* };
|
|
37
|
+
*
|
|
38
|
+
* const oasBoolean = toBoolean({
|
|
39
|
+
* value: openApiBoolean,
|
|
40
|
+
* context: parseContext
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* console.log(oasBoolean.default); // false
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @example Boolean with nullable and enum
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const flagBoolean = {
|
|
49
|
+
* type: 'boolean',
|
|
50
|
+
* nullable: true,
|
|
51
|
+
* enum: [true, null],
|
|
52
|
+
* default: null,
|
|
53
|
+
* example: true,
|
|
54
|
+
* title: 'Feature Flag',
|
|
55
|
+
* description: 'Whether the feature is enabled'
|
|
56
|
+
* };
|
|
57
|
+
*
|
|
58
|
+
* const oasBoolean = toBoolean({
|
|
59
|
+
* value: flagBoolean,
|
|
60
|
+
* context: parseContext
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* console.log(oasBoolean.nullable); // true
|
|
64
|
+
* console.log(oasBoolean.enums); // [true, null]
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare const toBoolean: ({ value, stackTrail, context }: ToBooleanArgs) => OasBoolean;
|
|
68
|
+
type ToParsedBooleanArgs<Nullable extends boolean | undefined> = {
|
|
69
|
+
value: Omit<OpenAPIV3.SchemaObject, 'nullable' | 'example' | 'enums'>;
|
|
70
|
+
context: ParseContextType;
|
|
71
|
+
nullable: Nullable;
|
|
72
|
+
example: Nullable extends true ? boolean | null | undefined : boolean | undefined;
|
|
73
|
+
enums: Nullable extends true ? (boolean | null)[] | undefined : boolean[] | undefined;
|
|
74
|
+
defaultValue: Nullable extends true ? boolean | null | undefined : boolean | undefined;
|
|
75
|
+
stackTrail: StackTrail;
|
|
76
|
+
};
|
|
77
|
+
export declare const toParsedBoolean: <Nullable extends boolean | undefined>({ context, nullable, example, enums, defaultValue, value, stackTrail }: ToParsedBooleanArgs<Nullable>) => OasBoolean<Nullable>;
|
|
78
|
+
export {};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { OasBoolean } from '../../../oas/boolean/Boolean.js';
|
|
2
|
+
import { toSpecificationExtensionsV3 } from '../specificationExtensions/toSpecificationExtensionsV3.js';
|
|
3
|
+
import { oasBooleanData } from '../../../oas/boolean/boolean-types.js';
|
|
4
|
+
import { parseNullable } from '../_helpers/parseNullable.js';
|
|
5
|
+
import { parseEnum } from '../_helpers/parseEnum.js';
|
|
6
|
+
import { parseExample } from '../_helpers/parseExample.js';
|
|
7
|
+
import { parseDefault } from '../_helpers/parseDefault.js';
|
|
8
|
+
import * as v from 'valibot';
|
|
9
|
+
/**
|
|
10
|
+
* Transforms an OpenAPI v3 boolean schema object into an internal OAS boolean representation.
|
|
11
|
+
*
|
|
12
|
+
* This function processes OpenAPI boolean schemas by extracting and parsing nullable values,
|
|
13
|
+
* examples, enumerations, and default values. It handles the complete transformation from
|
|
14
|
+
* raw OpenAPI JSON to the SKMTC internal boolean representation with proper validation.
|
|
15
|
+
*
|
|
16
|
+
* The transformation follows a pipeline approach:
|
|
17
|
+
* 1. Parse nullable flag and extract base value
|
|
18
|
+
* 2. Parse example values with nullable support
|
|
19
|
+
* 3. Parse enumeration constraints (typically [true], [false], or [true, false])
|
|
20
|
+
* 4. Parse default values
|
|
21
|
+
* 5. Create final OasBoolean instance
|
|
22
|
+
*
|
|
23
|
+
* @param args - Transformation arguments
|
|
24
|
+
* @param args.value - The OpenAPI v3 boolean schema object to transform
|
|
25
|
+
* @param args.context - Parse context providing utilities and tracing
|
|
26
|
+
* @returns Transformed OAS boolean object with parsed properties
|
|
27
|
+
*
|
|
28
|
+
* @example Basic boolean transformation
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { toBoolean } from '@skmtc/core';
|
|
31
|
+
*
|
|
32
|
+
* const openApiBoolean = {
|
|
33
|
+
* type: 'boolean',
|
|
34
|
+
* default: false
|
|
35
|
+
* };
|
|
36
|
+
*
|
|
37
|
+
* const oasBoolean = toBoolean({
|
|
38
|
+
* value: openApiBoolean,
|
|
39
|
+
* context: parseContext
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* console.log(oasBoolean.default); // false
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example Boolean with nullable and enum
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const flagBoolean = {
|
|
48
|
+
* type: 'boolean',
|
|
49
|
+
* nullable: true,
|
|
50
|
+
* enum: [true, null],
|
|
51
|
+
* default: null,
|
|
52
|
+
* example: true,
|
|
53
|
+
* title: 'Feature Flag',
|
|
54
|
+
* description: 'Whether the feature is enabled'
|
|
55
|
+
* };
|
|
56
|
+
*
|
|
57
|
+
* const oasBoolean = toBoolean({
|
|
58
|
+
* value: flagBoolean,
|
|
59
|
+
* context: parseContext
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* console.log(oasBoolean.nullable); // true
|
|
63
|
+
* console.log(oasBoolean.enums); // [true, null]
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export const toBoolean = ({ value, stackTrail, context }) => {
|
|
67
|
+
const { nullable, value: valueWithoutNullable } = parseNullable({
|
|
68
|
+
value,
|
|
69
|
+
context,
|
|
70
|
+
stackTrail
|
|
71
|
+
});
|
|
72
|
+
const { example: unparsedExample, ...valueWithoutExample } = valueWithoutNullable;
|
|
73
|
+
const example = parseExample({
|
|
74
|
+
value: unparsedExample,
|
|
75
|
+
context,
|
|
76
|
+
parent: valueWithoutNullable,
|
|
77
|
+
nullable,
|
|
78
|
+
check: isBoolean,
|
|
79
|
+
toMessage: item => `Removed invalid example. Expected "boolean", got: ${item}`,
|
|
80
|
+
stackTrail
|
|
81
|
+
});
|
|
82
|
+
const { enum: unparsedEnums, ...valueWithoutEnums } = valueWithoutExample;
|
|
83
|
+
const enums = parseEnum({
|
|
84
|
+
value: unparsedEnums,
|
|
85
|
+
nullable,
|
|
86
|
+
parent: valueWithoutExample,
|
|
87
|
+
stackTrail,
|
|
88
|
+
context,
|
|
89
|
+
check: isBoolean,
|
|
90
|
+
toMessage: item => `Removed invalid enum. Expected "boolean", got: ${item}`
|
|
91
|
+
});
|
|
92
|
+
const { default: unparsedDefaultValue, ...valueWithoutDefault } = valueWithoutEnums;
|
|
93
|
+
const defaultValue = parseDefault({
|
|
94
|
+
value: unparsedDefaultValue,
|
|
95
|
+
context,
|
|
96
|
+
parent: valueWithoutEnums,
|
|
97
|
+
nullable,
|
|
98
|
+
check: isBoolean,
|
|
99
|
+
toMessage: item => `Removed invalid default. Expected "boolean", got: ${item}`,
|
|
100
|
+
stackTrail
|
|
101
|
+
});
|
|
102
|
+
return toParsedBoolean({
|
|
103
|
+
context,
|
|
104
|
+
nullable,
|
|
105
|
+
example,
|
|
106
|
+
enums,
|
|
107
|
+
defaultValue,
|
|
108
|
+
value: valueWithoutDefault,
|
|
109
|
+
stackTrail
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
export const toParsedBoolean = ({ context, nullable, example, enums, defaultValue, value, stackTrail }) => {
|
|
113
|
+
if (!v.is(oasBooleanData, value)) {
|
|
114
|
+
v.parse(oasBooleanData, value);
|
|
115
|
+
}
|
|
116
|
+
const { type: _type, title, description, readOnly, writeOnly, deprecated, ...skipped } = value;
|
|
117
|
+
const extensionFields = toSpecificationExtensionsV3({
|
|
118
|
+
skipped,
|
|
119
|
+
parent: value,
|
|
120
|
+
context,
|
|
121
|
+
stackTrail,
|
|
122
|
+
parentType: 'schema:boolean'
|
|
123
|
+
});
|
|
124
|
+
return context.withStackTrail(stackTrail, () => new OasBoolean({
|
|
125
|
+
nullable,
|
|
126
|
+
title,
|
|
127
|
+
description,
|
|
128
|
+
example,
|
|
129
|
+
enums: enums,
|
|
130
|
+
default: defaultValue,
|
|
131
|
+
extensionFields,
|
|
132
|
+
readOnly,
|
|
133
|
+
writeOnly,
|
|
134
|
+
deprecated
|
|
135
|
+
}, context));
|
|
136
|
+
};
|
|
137
|
+
const isBoolean = (value) => {
|
|
138
|
+
return typeof value === 'boolean';
|
|
139
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from 'openapi-types';
|
|
2
|
+
import type { ParseContextType } from '../../../context/parseTypes.js';
|
|
3
|
+
import { OasComponents } from '../../../oas/components/Components.js';
|
|
4
|
+
import type { StackTrail } from '../../../context/StackTrail.js';
|
|
5
|
+
/** An OpenAPI 3.2 Components Object: the 3.0/3.1 maps plus `mediaTypes`. */
|
|
6
|
+
export type ComponentsObjectV32 = OpenAPIV3.ComponentsObject & {
|
|
7
|
+
mediaTypes?: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
export type ToComponentsV3Args = {
|
|
10
|
+
components: ComponentsObjectV32 | undefined;
|
|
11
|
+
stackTrail: StackTrail;
|
|
12
|
+
context: ParseContextType;
|
|
13
|
+
};
|
|
14
|
+
export declare const toComponentsV3: ({ components, stackTrail, context }: ToComponentsV3Args) => OasComponents | undefined;
|