@typia/utils 12.1.0-dev.20260325 → 13.0.0-dev.20260425
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/LICENSE +21 -21
- package/README.md +85 -85
- package/lib/_virtual/ArrayUtil.mjs +4 -0
- package/lib/_virtual/ArrayUtil.mjs.map +1 -0
- package/lib/_virtual/EndpointUtil.mjs +4 -0
- package/lib/_virtual/EndpointUtil.mjs.map +1 -0
- package/lib/_virtual/HttpError.mjs +4 -0
- package/lib/_virtual/HttpError.mjs.map +1 -0
- package/lib/_virtual/HttpLlm.mjs +4 -0
- package/lib/_virtual/HttpLlm.mjs.map +1 -0
- package/lib/_virtual/HttpLlmApplicationComposer.mjs +4 -0
- package/lib/_virtual/HttpLlmApplicationComposer.mjs.map +1 -0
- package/lib/_virtual/HttpLlmFunctionFetcher.mjs +4 -0
- package/lib/_virtual/HttpLlmFunctionFetcher.mjs.map +1 -0
- package/lib/_virtual/HttpMigrateApplicationComposer.mjs +4 -0
- package/lib/_virtual/HttpMigrateApplicationComposer.mjs.map +1 -0
- package/lib/_virtual/HttpMigrateRouteAccessor.mjs +4 -0
- package/lib/_virtual/HttpMigrateRouteAccessor.mjs.map +1 -0
- package/lib/_virtual/HttpMigrateRouteComposer.mjs +4 -0
- package/lib/_virtual/HttpMigrateRouteComposer.mjs.map +1 -0
- package/lib/_virtual/HttpMigrateRouteFetcher.mjs +4 -0
- package/lib/_virtual/HttpMigrateRouteFetcher.mjs.map +1 -0
- package/lib/_virtual/HttpMigration.mjs +4 -0
- package/lib/_virtual/HttpMigration.mjs.map +1 -0
- package/lib/_virtual/IOpenApiValidatorContext.mjs +4 -0
- package/lib/_virtual/IOpenApiValidatorContext.mjs.map +1 -0
- package/lib/_virtual/JsonDescriptor.mjs +4 -0
- package/lib/_virtual/JsonDescriptor.mjs.map +1 -0
- package/lib/_virtual/LlmDescriptionInverter.mjs +4 -0
- package/lib/_virtual/LlmDescriptionInverter.mjs.map +1 -0
- package/lib/_virtual/LlmJson.mjs +4 -0
- package/lib/_virtual/LlmJson.mjs.map +1 -0
- package/lib/_virtual/LlmParametersComposer.mjs +4 -0
- package/lib/_virtual/LlmParametersComposer.mjs.map +1 -0
- package/lib/_virtual/LlmSchemaConverter.mjs +4 -0
- package/lib/_virtual/LlmSchemaConverter.mjs.map +1 -0
- package/lib/_virtual/LlmTypeChecker.mjs +4 -0
- package/lib/_virtual/LlmTypeChecker.mjs.map +1 -0
- package/lib/_virtual/MapUtil.mjs +4 -0
- package/lib/_virtual/MapUtil.mjs.map +1 -0
- package/lib/_virtual/NamingConvention.mjs +4 -0
- package/lib/_virtual/NamingConvention.mjs.map +1 -0
- package/lib/_virtual/OpenApiArrayValidator.mjs +4 -0
- package/lib/_virtual/OpenApiArrayValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiBooleanValidator.mjs +4 -0
- package/lib/_virtual/OpenApiBooleanValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiConstantValidator.mjs +4 -0
- package/lib/_virtual/OpenApiConstantValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiConstraintShifter.mjs +4 -0
- package/lib/_virtual/OpenApiConstraintShifter.mjs.map +1 -0
- package/lib/_virtual/OpenApiConverter.mjs +4 -0
- package/lib/_virtual/OpenApiConverter.mjs.map +1 -0
- package/lib/_virtual/OpenApiExclusiveEmender.mjs +4 -0
- package/lib/_virtual/OpenApiExclusiveEmender.mjs.map +1 -0
- package/lib/_virtual/OpenApiIntegerValidator.mjs +4 -0
- package/lib/_virtual/OpenApiIntegerValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiNumberValidator.mjs +4 -0
- package/lib/_virtual/OpenApiNumberValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiObjectValidator.mjs +4 -0
- package/lib/_virtual/OpenApiObjectValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiOneOfValidator.mjs +4 -0
- package/lib/_virtual/OpenApiOneOfValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiSchemaNamingRule.mjs +4 -0
- package/lib/_virtual/OpenApiSchemaNamingRule.mjs.map +1 -0
- package/lib/_virtual/OpenApiStationValidator.mjs +4 -0
- package/lib/_virtual/OpenApiStationValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiStringValidator.mjs +4 -0
- package/lib/_virtual/OpenApiStringValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiTupleValidator.mjs +4 -0
- package/lib/_virtual/OpenApiTupleValidator.mjs.map +1 -0
- package/lib/_virtual/OpenApiTypeChecker.mjs +4 -0
- package/lib/_virtual/OpenApiTypeChecker.mjs.map +1 -0
- package/lib/_virtual/OpenApiTypeCheckerBase.mjs +4 -0
- package/lib/_virtual/OpenApiTypeCheckerBase.mjs.map +1 -0
- package/lib/_virtual/OpenApiV3Downgrader.mjs +4 -0
- package/lib/_virtual/OpenApiV3Downgrader.mjs.map +1 -0
- package/lib/_virtual/OpenApiV3TypeChecker.mjs +4 -0
- package/lib/_virtual/OpenApiV3TypeChecker.mjs.map +1 -0
- package/lib/_virtual/OpenApiV3Upgrader.mjs +4 -0
- package/lib/_virtual/OpenApiV3Upgrader.mjs.map +1 -0
- package/lib/_virtual/OpenApiV3_1Downgrader.mjs +4 -0
- package/lib/_virtual/OpenApiV3_1Downgrader.mjs.map +1 -0
- package/lib/_virtual/OpenApiV3_1TypeChecker.mjs +4 -0
- package/lib/_virtual/OpenApiV3_1TypeChecker.mjs.map +1 -0
- package/lib/_virtual/OpenApiV3_1Upgrader.mjs +4 -0
- package/lib/_virtual/OpenApiV3_1Upgrader.mjs.map +1 -0
- package/lib/_virtual/OpenApiV3_2Upgrader.mjs +4 -0
- package/lib/_virtual/OpenApiV3_2Upgrader.mjs.map +1 -0
- package/lib/_virtual/OpenApiValidator.mjs +4 -0
- package/lib/_virtual/OpenApiValidator.mjs.map +1 -0
- package/lib/_virtual/Singleton.mjs +4 -0
- package/lib/_virtual/Singleton.mjs.map +1 -0
- package/lib/_virtual/StringUtil.mjs +4 -0
- package/lib/_virtual/StringUtil.mjs.map +1 -0
- package/lib/_virtual/SwaggerV2Downgrader.mjs +4 -0
- package/lib/_virtual/SwaggerV2Downgrader.mjs.map +1 -0
- package/lib/_virtual/SwaggerV2TypeChecker.mjs +4 -0
- package/lib/_virtual/SwaggerV2TypeChecker.mjs.map +1 -0
- package/lib/_virtual/SwaggerV2Upgrader.mjs +4 -0
- package/lib/_virtual/SwaggerV2Upgrader.mjs.map +1 -0
- package/lib/_virtual/_commonjsHelpers.mjs +6 -0
- package/lib/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/lib/_virtual/_isBigintString.mjs +4 -0
- package/lib/_virtual/_isBigintString.mjs.map +1 -0
- package/lib/_virtual/_isFormatByte.mjs +4 -0
- package/lib/_virtual/_isFormatByte.mjs.map +1 -0
- package/lib/_virtual/_isFormatDate.mjs +4 -0
- package/lib/_virtual/_isFormatDate.mjs.map +1 -0
- package/lib/_virtual/_isFormatDateTime.mjs +4 -0
- package/lib/_virtual/_isFormatDateTime.mjs.map +1 -0
- package/lib/_virtual/_isFormatDuration.mjs +4 -0
- package/lib/_virtual/_isFormatDuration.mjs.map +1 -0
- package/lib/_virtual/_isFormatEmail.mjs +4 -0
- package/lib/_virtual/_isFormatEmail.mjs.map +1 -0
- package/lib/_virtual/_isFormatHostname.mjs +4 -0
- package/lib/_virtual/_isFormatHostname.mjs.map +1 -0
- package/lib/_virtual/_isFormatIdnEmail.mjs +4 -0
- package/lib/_virtual/_isFormatIdnEmail.mjs.map +1 -0
- package/lib/_virtual/_isFormatIdnHostname.mjs +4 -0
- package/lib/_virtual/_isFormatIdnHostname.mjs.map +1 -0
- package/lib/_virtual/_isFormatIpv4.mjs +4 -0
- package/lib/_virtual/_isFormatIpv4.mjs.map +1 -0
- package/lib/_virtual/_isFormatIpv6.mjs +4 -0
- package/lib/_virtual/_isFormatIpv6.mjs.map +1 -0
- package/lib/_virtual/_isFormatIri.mjs +4 -0
- package/lib/_virtual/_isFormatIri.mjs.map +1 -0
- package/lib/_virtual/_isFormatIriReference.mjs +4 -0
- package/lib/_virtual/_isFormatIriReference.mjs.map +1 -0
- package/lib/_virtual/_isFormatJsonPointer.mjs +4 -0
- package/lib/_virtual/_isFormatJsonPointer.mjs.map +1 -0
- package/lib/_virtual/_isFormatPassword.mjs +4 -0
- package/lib/_virtual/_isFormatPassword.mjs.map +1 -0
- package/lib/_virtual/_isFormatRegex.mjs +4 -0
- package/lib/_virtual/_isFormatRegex.mjs.map +1 -0
- package/lib/_virtual/_isFormatRelativeJsonPointer.mjs +4 -0
- package/lib/_virtual/_isFormatRelativeJsonPointer.mjs.map +1 -0
- package/lib/_virtual/_isFormatTime.mjs +4 -0
- package/lib/_virtual/_isFormatTime.mjs.map +1 -0
- package/lib/_virtual/_isFormatUri.mjs +4 -0
- package/lib/_virtual/_isFormatUri.mjs.map +1 -0
- package/lib/_virtual/_isFormatUriReference.mjs +4 -0
- package/lib/_virtual/_isFormatUriReference.mjs.map +1 -0
- package/lib/_virtual/_isFormatUriTemplate.mjs +4 -0
- package/lib/_virtual/_isFormatUriTemplate.mjs.map +1 -0
- package/lib/_virtual/_isFormatUrl.mjs +4 -0
- package/lib/_virtual/_isFormatUrl.mjs.map +1 -0
- package/lib/_virtual/_isFormatUuid.mjs +4 -0
- package/lib/_virtual/_isFormatUuid.mjs.map +1 -0
- package/lib/_virtual/_isUniqueItems.mjs +4 -0
- package/lib/_virtual/_isUniqueItems.mjs.map +1 -0
- package/lib/_virtual/coerceLlmArguments.mjs +4 -0
- package/lib/_virtual/coerceLlmArguments.mjs.map +1 -0
- package/lib/_virtual/dedent.mjs +4 -0
- package/lib/_virtual/dedent.mjs.map +1 -0
- package/lib/_virtual/index.mjs +4 -0
- package/lib/_virtual/index.mjs.map +1 -0
- package/lib/_virtual/index2.mjs +4 -0
- package/lib/_virtual/index2.mjs.map +1 -0
- package/lib/_virtual/index3.mjs +4 -0
- package/lib/_virtual/index3.mjs.map +1 -0
- package/lib/_virtual/index4.mjs +4 -0
- package/lib/_virtual/index4.mjs.map +1 -0
- package/lib/_virtual/index5.mjs +4 -0
- package/lib/_virtual/index5.mjs.map +1 -0
- package/lib/_virtual/parseLenientJson.mjs +4 -0
- package/lib/_virtual/parseLenientJson.mjs.map +1 -0
- package/lib/_virtual/stringifyValidationFailure.mjs +4 -0
- package/lib/_virtual/stringifyValidationFailure.mjs.map +1 -0
- package/lib/converters/LlmSchemaConverter.js +149 -51
- package/lib/converters/LlmSchemaConverter.js.map +1 -1
- package/lib/converters/LlmSchemaConverter.mjs +5 -511
- package/lib/converters/LlmSchemaConverter.mjs.map +1 -1
- package/lib/converters/LlmSchemaConverter2.mjs +551 -0
- package/lib/converters/LlmSchemaConverter2.mjs.map +1 -0
- package/lib/converters/OpenApiConverter.js.map +1 -1
- package/lib/converters/OpenApiConverter.mjs +5 -146
- package/lib/converters/OpenApiConverter.mjs.map +1 -1
- package/lib/converters/OpenApiConverter2.mjs +167 -0
- package/lib/converters/OpenApiConverter2.mjs.map +1 -0
- package/lib/converters/index.mjs +7 -3
- package/lib/converters/index.mjs.map +1 -1
- package/lib/converters/index2.mjs +37 -0
- package/lib/converters/index2.mjs.map +1 -0
- package/lib/converters/internal/LlmDescriptionInverter.js.map +1 -1
- package/lib/converters/internal/LlmDescriptionInverter.mjs +5 -138
- package/lib/converters/internal/LlmDescriptionInverter.mjs.map +1 -1
- package/lib/converters/internal/LlmDescriptionInverter2.mjs +153 -0
- package/lib/converters/internal/LlmDescriptionInverter2.mjs.map +1 -0
- package/lib/converters/internal/LlmParametersComposer.js +14 -17
- package/lib/converters/internal/LlmParametersComposer.js.map +1 -1
- package/lib/converters/internal/LlmParametersComposer.mjs +5 -39
- package/lib/converters/internal/LlmParametersComposer.mjs.map +1 -1
- package/lib/converters/internal/LlmParametersComposer2.mjs +48 -0
- package/lib/converters/internal/LlmParametersComposer2.mjs.map +1 -0
- package/lib/converters/internal/OpenApiConstraintShifter.js.map +1 -1
- package/lib/converters/internal/OpenApiConstraintShifter.mjs +5 -99
- package/lib/converters/internal/OpenApiConstraintShifter.mjs.map +1 -1
- package/lib/converters/internal/OpenApiConstraintShifter2.mjs +115 -0
- package/lib/converters/internal/OpenApiConstraintShifter2.mjs.map +1 -0
- package/lib/converters/internal/OpenApiExclusiveEmender.js.map +1 -1
- package/lib/converters/internal/OpenApiExclusiveEmender.mjs +6 -33
- package/lib/converters/internal/OpenApiExclusiveEmender.mjs.map +1 -1
- package/lib/converters/internal/OpenApiExclusiveEmender2.mjs +43 -0
- package/lib/converters/internal/OpenApiExclusiveEmender2.mjs.map +1 -0
- package/lib/converters/internal/OpenApiV3Downgrader.js +2 -1
- package/lib/converters/internal/OpenApiV3Downgrader.js.map +1 -1
- package/lib/converters/internal/OpenApiV3Downgrader.mjs +5 -299
- package/lib/converters/internal/OpenApiV3Downgrader.mjs.map +1 -1
- package/lib/converters/internal/OpenApiV3Downgrader2.mjs +247 -0
- package/lib/converters/internal/OpenApiV3Downgrader2.mjs.map +1 -0
- package/lib/converters/internal/OpenApiV3Upgrader.js +58 -67
- package/lib/converters/internal/OpenApiV3Upgrader.js.map +1 -1
- package/lib/converters/internal/OpenApiV3Upgrader.mjs +5 -367
- package/lib/converters/internal/OpenApiV3Upgrader.mjs.map +1 -1
- package/lib/converters/internal/OpenApiV3Upgrader2.mjs +308 -0
- package/lib/converters/internal/OpenApiV3Upgrader2.mjs.map +1 -0
- package/lib/converters/internal/OpenApiV3_1Downgrader.js.map +1 -1
- package/lib/converters/internal/OpenApiV3_1Downgrader.mjs +5 -236
- package/lib/converters/internal/OpenApiV3_1Downgrader.mjs.map +1 -1
- package/lib/converters/internal/OpenApiV3_1Downgrader2.mjs +203 -0
- package/lib/converters/internal/OpenApiV3_1Downgrader2.mjs.map +1 -0
- package/lib/converters/internal/OpenApiV3_1Upgrader.js +68 -70
- package/lib/converters/internal/OpenApiV3_1Upgrader.js.map +1 -1
- package/lib/converters/internal/OpenApiV3_1Upgrader.mjs +5 -564
- package/lib/converters/internal/OpenApiV3_1Upgrader.mjs.map +1 -1
- package/lib/converters/internal/OpenApiV3_1Upgrader2.mjs +435 -0
- package/lib/converters/internal/OpenApiV3_1Upgrader2.mjs.map +1 -0
- package/lib/converters/internal/OpenApiV3_2Upgrader.js +57 -63
- package/lib/converters/internal/OpenApiV3_2Upgrader.js.map +1 -1
- package/lib/converters/internal/OpenApiV3_2Upgrader.mjs +5 -240
- package/lib/converters/internal/OpenApiV3_2Upgrader.mjs.map +1 -1
- package/lib/converters/internal/OpenApiV3_2Upgrader2.mjs +211 -0
- package/lib/converters/internal/OpenApiV3_2Upgrader2.mjs.map +1 -0
- package/lib/converters/internal/SwaggerV2Downgrader.js +44 -56
- package/lib/converters/internal/SwaggerV2Downgrader.js.map +1 -1
- package/lib/converters/internal/SwaggerV2Downgrader.mjs +5 -352
- package/lib/converters/internal/SwaggerV2Downgrader.mjs.map +1 -1
- package/lib/converters/internal/SwaggerV2Downgrader2.mjs +297 -0
- package/lib/converters/internal/SwaggerV2Downgrader2.mjs.map +1 -0
- package/lib/converters/internal/SwaggerV2Upgrader.js +52 -63
- package/lib/converters/internal/SwaggerV2Upgrader.js.map +1 -1
- package/lib/converters/internal/SwaggerV2Upgrader.mjs +5 -421
- package/lib/converters/internal/SwaggerV2Upgrader.mjs.map +1 -1
- package/lib/converters/internal/SwaggerV2Upgrader2.mjs +378 -0
- package/lib/converters/internal/SwaggerV2Upgrader2.mjs.map +1 -0
- package/lib/http/HttpError.js.map +1 -1
- package/lib/http/HttpError.mjs +6 -74
- package/lib/http/HttpError.mjs.map +1 -1
- package/lib/http/HttpError2.mjs +81 -0
- package/lib/http/HttpError2.mjs.map +1 -0
- package/lib/http/HttpLlm.js +5 -4
- package/lib/http/HttpLlm.js.map +1 -1
- package/lib/http/HttpLlm.mjs +5 -96
- package/lib/http/HttpLlm.mjs.map +1 -1
- package/lib/http/HttpLlm2.mjs +115 -0
- package/lib/http/HttpLlm2.mjs.map +1 -0
- package/lib/http/HttpMigration.js.map +1 -1
- package/lib/http/HttpMigration.mjs +5 -49
- package/lib/http/HttpMigration.mjs.map +1 -1
- package/lib/http/HttpMigration2.mjs +66 -0
- package/lib/http/HttpMigration2.mjs.map +1 -0
- package/lib/http/index.mjs +7 -3
- package/lib/http/index.mjs.map +1 -1
- package/lib/http/index2.mjs +36 -0
- package/lib/http/index2.mjs.map +1 -0
- package/lib/http/internal/HttpLlmApplicationComposer.js +12 -13
- package/lib/http/internal/HttpLlmApplicationComposer.js.map +1 -1
- package/lib/http/internal/HttpLlmApplicationComposer.mjs +5 -297
- package/lib/http/internal/HttpLlmApplicationComposer.mjs.map +1 -1
- package/lib/http/internal/HttpLlmApplicationComposer2.mjs +309 -0
- package/lib/http/internal/HttpLlmApplicationComposer2.mjs.map +1 -0
- package/lib/http/internal/HttpLlmFunctionFetcher.js.map +1 -1
- package/lib/http/internal/HttpLlmFunctionFetcher.mjs +5 -21
- package/lib/http/internal/HttpLlmFunctionFetcher.mjs.map +1 -1
- package/lib/http/internal/HttpLlmFunctionFetcher2.mjs +36 -0
- package/lib/http/internal/HttpLlmFunctionFetcher2.mjs.map +1 -0
- package/lib/http/internal/HttpMigrateApplicationComposer.js.map +1 -1
- package/lib/http/internal/HttpMigrateApplicationComposer.mjs +5 -44
- package/lib/http/internal/HttpMigrateApplicationComposer.mjs.map +1 -1
- package/lib/http/internal/HttpMigrateApplicationComposer2.mjs +59 -0
- package/lib/http/internal/HttpMigrateApplicationComposer2.mjs.map +1 -0
- package/lib/http/internal/HttpMigrateRouteAccessor.js.map +1 -1
- package/lib/http/internal/HttpMigrateRouteAccessor.mjs +5 -103
- package/lib/http/internal/HttpMigrateRouteAccessor.mjs.map +1 -1
- package/lib/http/internal/HttpMigrateRouteAccessor2.mjs +121 -0
- package/lib/http/internal/HttpMigrateRouteAccessor2.mjs.map +1 -0
- package/lib/http/internal/HttpMigrateRouteComposer.js +35 -54
- package/lib/http/internal/HttpMigrateRouteComposer.js.map +1 -1
- package/lib/http/internal/HttpMigrateRouteComposer.mjs +5 -381
- package/lib/http/internal/HttpMigrateRouteComposer.mjs.map +1 -1
- package/lib/http/internal/HttpMigrateRouteComposer2.mjs +384 -0
- package/lib/http/internal/HttpMigrateRouteComposer2.mjs.map +1 -0
- package/lib/http/internal/HttpMigrateRouteFetcher.js +7 -6
- package/lib/http/internal/HttpMigrateRouteFetcher.js.map +1 -1
- package/lib/http/internal/HttpMigrateRouteFetcher.mjs +5 -171
- package/lib/http/internal/HttpMigrateRouteFetcher.mjs.map +1 -1
- package/lib/http/internal/HttpMigrateRouteFetcher2.mjs +192 -0
- package/lib/http/internal/HttpMigrateRouteFetcher2.mjs.map +1 -0
- package/lib/index.mjs +7 -19
- package/lib/index.mjs.map +1 -1
- package/lib/index2.mjs +38 -0
- package/lib/index2.mjs.map +1 -0
- package/lib/utils/ArrayUtil.js.map +1 -1
- package/lib/utils/ArrayUtil.mjs +6 -26
- package/lib/utils/ArrayUtil.mjs.map +1 -1
- package/lib/utils/ArrayUtil2.mjs +40 -0
- package/lib/utils/ArrayUtil2.mjs.map +1 -0
- package/lib/utils/LlmJson.d.ts +1 -1
- package/lib/utils/LlmJson.js.map +1 -1
- package/lib/utils/LlmJson.mjs +5 -153
- package/lib/utils/LlmJson.mjs.map +1 -1
- package/lib/utils/LlmJson2.mjs +172 -0
- package/lib/utils/LlmJson2.mjs.map +1 -0
- package/lib/utils/MapUtil.js.map +1 -1
- package/lib/utils/MapUtil.mjs +6 -13
- package/lib/utils/MapUtil.mjs.map +1 -1
- package/lib/utils/MapUtil2.mjs +27 -0
- package/lib/utils/MapUtil2.mjs.map +1 -0
- package/lib/utils/NamingConvention.js.map +1 -1
- package/lib/utils/NamingConvention.mjs +6 -196
- package/lib/utils/NamingConvention.mjs.map +1 -1
- package/lib/utils/NamingConvention2.mjs +210 -0
- package/lib/utils/NamingConvention2.mjs.map +1 -0
- package/lib/utils/Singleton.d.ts +6 -1
- package/lib/utils/Singleton.js +0 -1
- package/lib/utils/Singleton.js.map +1 -1
- package/lib/utils/Singleton.mjs +6 -16
- package/lib/utils/Singleton.mjs.map +1 -1
- package/lib/utils/Singleton2.mjs +28 -0
- package/lib/utils/Singleton2.mjs.map +1 -0
- package/lib/utils/StringUtil.js +6 -9
- package/lib/utils/StringUtil.js.map +1 -1
- package/lib/utils/StringUtil.mjs +6 -11
- package/lib/utils/StringUtil.mjs.map +1 -1
- package/lib/utils/StringUtil2.mjs +25 -0
- package/lib/utils/StringUtil2.mjs.map +1 -0
- package/lib/utils/dedent.js.map +1 -1
- package/lib/utils/dedent.mjs +6 -48
- package/lib/utils/dedent.mjs.map +1 -1
- package/lib/utils/dedent2.mjs +62 -0
- package/lib/utils/dedent2.mjs.map +1 -0
- package/lib/utils/index.mjs +7 -7
- package/lib/utils/index.mjs.map +1 -1
- package/lib/utils/index2.mjs +44 -0
- package/lib/utils/index2.mjs.map +1 -0
- package/lib/utils/internal/EndpointUtil.js.map +1 -1
- package/lib/utils/internal/EndpointUtil.mjs +5 -34
- package/lib/utils/internal/EndpointUtil.mjs.map +1 -1
- package/lib/utils/internal/EndpointUtil2.mjs +49 -0
- package/lib/utils/internal/EndpointUtil2.mjs.map +1 -0
- package/lib/utils/internal/JsonDescriptor.js +18 -25
- package/lib/utils/internal/JsonDescriptor.js.map +1 -1
- package/lib/utils/internal/JsonDescriptor.mjs +5 -45
- package/lib/utils/internal/JsonDescriptor.mjs.map +1 -1
- package/lib/utils/internal/JsonDescriptor2.mjs +64 -0
- package/lib/utils/internal/JsonDescriptor2.mjs.map +1 -0
- package/lib/utils/internal/OpenApiTypeCheckerBase.js +15 -9
- package/lib/utils/internal/OpenApiTypeCheckerBase.js.map +1 -1
- package/lib/utils/internal/OpenApiTypeCheckerBase.mjs +5 -581
- package/lib/utils/internal/OpenApiTypeCheckerBase.mjs.map +1 -1
- package/lib/utils/internal/OpenApiTypeCheckerBase2.mjs +539 -0
- package/lib/utils/internal/OpenApiTypeCheckerBase2.mjs.map +1 -0
- package/lib/utils/internal/coerceLlmArguments.js +18 -4
- package/lib/utils/internal/coerceLlmArguments.js.map +1 -1
- package/lib/utils/internal/coerceLlmArguments.mjs +5 -245
- package/lib/utils/internal/coerceLlmArguments.mjs.map +1 -1
- package/lib/utils/internal/coerceLlmArguments2.mjs +276 -0
- package/lib/utils/internal/coerceLlmArguments2.mjs.map +1 -0
- package/lib/utils/internal/parseLenientJson.js.map +1 -1
- package/lib/utils/internal/parseLenientJson.mjs +6 -803
- package/lib/utils/internal/parseLenientJson.mjs.map +1 -1
- package/lib/utils/internal/parseLenientJson2.mjs +815 -0
- package/lib/utils/internal/parseLenientJson2.mjs.map +1 -0
- package/lib/utils/internal/stringifyValidationFailure.js.map +1 -1
- package/lib/utils/internal/stringifyValidationFailure.mjs +5 -315
- package/lib/utils/internal/stringifyValidationFailure.mjs.map +1 -1
- package/lib/utils/internal/stringifyValidationFailure2.mjs +333 -0
- package/lib/utils/internal/stringifyValidationFailure2.mjs.map +1 -0
- package/lib/validators/LlmTypeChecker.js +4 -3
- package/lib/validators/LlmTypeChecker.js.map +1 -1
- package/lib/validators/LlmTypeChecker.mjs +5 -297
- package/lib/validators/LlmTypeChecker.mjs.map +1 -1
- package/lib/validators/LlmTypeChecker2.mjs +323 -0
- package/lib/validators/LlmTypeChecker2.mjs.map +1 -0
- package/lib/validators/OpenApiTypeChecker.js.map +1 -1
- package/lib/validators/OpenApiTypeChecker.mjs +5 -215
- package/lib/validators/OpenApiTypeChecker.mjs.map +1 -1
- package/lib/validators/OpenApiTypeChecker2.mjs +219 -0
- package/lib/validators/OpenApiTypeChecker2.mjs.map +1 -0
- package/lib/validators/OpenApiV3TypeChecker.js.map +1 -1
- package/lib/validators/OpenApiV3TypeChecker.mjs +6 -27
- package/lib/validators/OpenApiV3TypeChecker.mjs.map +1 -1
- package/lib/validators/OpenApiV3TypeChecker2.mjs +41 -0
- package/lib/validators/OpenApiV3TypeChecker2.mjs.map +1 -0
- package/lib/validators/OpenApiV3_1TypeChecker.js.map +1 -1
- package/lib/validators/OpenApiV3_1TypeChecker.mjs +6 -31
- package/lib/validators/OpenApiV3_1TypeChecker.mjs.map +1 -1
- package/lib/validators/OpenApiV3_1TypeChecker2.mjs +45 -0
- package/lib/validators/OpenApiV3_1TypeChecker2.mjs.map +1 -0
- package/lib/validators/OpenApiValidator.js.map +1 -1
- package/lib/validators/OpenApiValidator.mjs +5 -72
- package/lib/validators/OpenApiValidator.mjs.map +1 -1
- package/lib/validators/OpenApiValidator2.mjs +83 -0
- package/lib/validators/OpenApiValidator2.mjs.map +1 -0
- package/lib/validators/SwaggerV2TypeChecker.js.map +1 -1
- package/lib/validators/SwaggerV2TypeChecker.mjs +6 -28
- package/lib/validators/SwaggerV2TypeChecker.mjs.map +1 -1
- package/lib/validators/SwaggerV2TypeChecker2.mjs +42 -0
- package/lib/validators/SwaggerV2TypeChecker2.mjs.map +1 -0
- package/lib/validators/functional/_isBigintString.js.map +1 -1
- package/lib/validators/functional/_isBigintString.mjs +6 -10
- package/lib/validators/functional/_isBigintString.mjs.map +1 -1
- package/lib/validators/functional/_isBigintString2.mjs +25 -0
- package/lib/validators/functional/_isBigintString2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatByte.js.map +1 -1
- package/lib/validators/functional/_isFormatByte.mjs +6 -6
- package/lib/validators/functional/_isFormatByte.mjs.map +1 -1
- package/lib/validators/functional/_isFormatByte2.mjs +21 -0
- package/lib/validators/functional/_isFormatByte2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatDate.js.map +1 -1
- package/lib/validators/functional/_isFormatDate.mjs +6 -3
- package/lib/validators/functional/_isFormatDate.mjs.map +1 -1
- package/lib/validators/functional/_isFormatDate2.mjs +18 -0
- package/lib/validators/functional/_isFormatDate2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatDateTime.js.map +1 -1
- package/lib/validators/functional/_isFormatDateTime.mjs +6 -3
- package/lib/validators/functional/_isFormatDateTime.mjs.map +1 -1
- package/lib/validators/functional/_isFormatDateTime2.mjs +18 -0
- package/lib/validators/functional/_isFormatDateTime2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatDuration.js.map +1 -1
- package/lib/validators/functional/_isFormatDuration.mjs +6 -3
- package/lib/validators/functional/_isFormatDuration.mjs.map +1 -1
- package/lib/validators/functional/_isFormatDuration2.mjs +18 -0
- package/lib/validators/functional/_isFormatDuration2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatEmail.js.map +1 -1
- package/lib/validators/functional/_isFormatEmail.mjs +6 -3
- package/lib/validators/functional/_isFormatEmail.mjs.map +1 -1
- package/lib/validators/functional/_isFormatEmail2.mjs +18 -0
- package/lib/validators/functional/_isFormatEmail2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatHostname.js.map +1 -1
- package/lib/validators/functional/_isFormatHostname.mjs +6 -3
- package/lib/validators/functional/_isFormatHostname.mjs.map +1 -1
- package/lib/validators/functional/_isFormatHostname2.mjs +18 -0
- package/lib/validators/functional/_isFormatHostname2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatIdnEmail.js.map +1 -1
- package/lib/validators/functional/_isFormatIdnEmail.mjs +6 -3
- package/lib/validators/functional/_isFormatIdnEmail.mjs.map +1 -1
- package/lib/validators/functional/_isFormatIdnEmail2.mjs +18 -0
- package/lib/validators/functional/_isFormatIdnEmail2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatIdnHostname.js.map +1 -1
- package/lib/validators/functional/_isFormatIdnHostname.mjs +6 -3
- package/lib/validators/functional/_isFormatIdnHostname.mjs.map +1 -1
- package/lib/validators/functional/_isFormatIdnHostname2.mjs +18 -0
- package/lib/validators/functional/_isFormatIdnHostname2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatIpv4.js.map +1 -1
- package/lib/validators/functional/_isFormatIpv4.mjs +6 -3
- package/lib/validators/functional/_isFormatIpv4.mjs.map +1 -1
- package/lib/validators/functional/_isFormatIpv42.mjs +18 -0
- package/lib/validators/functional/_isFormatIpv42.mjs.map +1 -0
- package/lib/validators/functional/_isFormatIpv6.js.map +1 -1
- package/lib/validators/functional/_isFormatIpv6.mjs +6 -3
- package/lib/validators/functional/_isFormatIpv6.mjs.map +1 -1
- package/lib/validators/functional/_isFormatIpv62.mjs +18 -0
- package/lib/validators/functional/_isFormatIpv62.mjs.map +1 -0
- package/lib/validators/functional/_isFormatIri.js.map +1 -1
- package/lib/validators/functional/_isFormatIri.mjs +6 -3
- package/lib/validators/functional/_isFormatIri.mjs.map +1 -1
- package/lib/validators/functional/_isFormatIri2.mjs +18 -0
- package/lib/validators/functional/_isFormatIri2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatIriReference.js.map +1 -1
- package/lib/validators/functional/_isFormatIriReference.mjs +6 -3
- package/lib/validators/functional/_isFormatIriReference.mjs.map +1 -1
- package/lib/validators/functional/_isFormatIriReference2.mjs +18 -0
- package/lib/validators/functional/_isFormatIriReference2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatJsonPointer.js.map +1 -1
- package/lib/validators/functional/_isFormatJsonPointer.mjs +6 -3
- package/lib/validators/functional/_isFormatJsonPointer.mjs.map +1 -1
- package/lib/validators/functional/_isFormatJsonPointer2.mjs +18 -0
- package/lib/validators/functional/_isFormatJsonPointer2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatPassword.js.map +1 -1
- package/lib/validators/functional/_isFormatPassword.mjs +6 -2
- package/lib/validators/functional/_isFormatPassword.mjs.map +1 -1
- package/lib/validators/functional/_isFormatPassword2.mjs +17 -0
- package/lib/validators/functional/_isFormatPassword2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatRegex.js.map +1 -1
- package/lib/validators/functional/_isFormatRegex.mjs +6 -10
- package/lib/validators/functional/_isFormatRegex.mjs.map +1 -1
- package/lib/validators/functional/_isFormatRegex2.mjs +25 -0
- package/lib/validators/functional/_isFormatRegex2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatRelativeJsonPointer.js.map +1 -1
- package/lib/validators/functional/_isFormatRelativeJsonPointer.mjs +6 -3
- package/lib/validators/functional/_isFormatRelativeJsonPointer.mjs.map +1 -1
- package/lib/validators/functional/_isFormatRelativeJsonPointer2.mjs +18 -0
- package/lib/validators/functional/_isFormatRelativeJsonPointer2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatTime.js.map +1 -1
- package/lib/validators/functional/_isFormatTime.mjs +6 -3
- package/lib/validators/functional/_isFormatTime.mjs.map +1 -1
- package/lib/validators/functional/_isFormatTime2.mjs +18 -0
- package/lib/validators/functional/_isFormatTime2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatUri.js.map +1 -1
- package/lib/validators/functional/_isFormatUri.mjs +6 -4
- package/lib/validators/functional/_isFormatUri.mjs.map +1 -1
- package/lib/validators/functional/_isFormatUri2.mjs +19 -0
- package/lib/validators/functional/_isFormatUri2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatUriReference.js.map +1 -1
- package/lib/validators/functional/_isFormatUriReference.mjs +6 -3
- package/lib/validators/functional/_isFormatUriReference.mjs.map +1 -1
- package/lib/validators/functional/_isFormatUriReference2.mjs +18 -0
- package/lib/validators/functional/_isFormatUriReference2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatUriTemplate.js.map +1 -1
- package/lib/validators/functional/_isFormatUriTemplate.mjs +6 -3
- package/lib/validators/functional/_isFormatUriTemplate.mjs.map +1 -1
- package/lib/validators/functional/_isFormatUriTemplate2.mjs +18 -0
- package/lib/validators/functional/_isFormatUriTemplate2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatUrl.js.map +1 -1
- package/lib/validators/functional/_isFormatUrl.mjs +6 -3
- package/lib/validators/functional/_isFormatUrl.mjs.map +1 -1
- package/lib/validators/functional/_isFormatUrl2.mjs +18 -0
- package/lib/validators/functional/_isFormatUrl2.mjs.map +1 -0
- package/lib/validators/functional/_isFormatUuid.js.map +1 -1
- package/lib/validators/functional/_isFormatUuid.mjs +6 -3
- package/lib/validators/functional/_isFormatUuid.mjs.map +1 -1
- package/lib/validators/functional/_isFormatUuid2.mjs +18 -0
- package/lib/validators/functional/_isFormatUuid2.mjs.map +1 -0
- package/lib/validators/functional/_isUniqueItems.js.map +1 -1
- package/lib/validators/functional/_isUniqueItems.mjs +6 -136
- package/lib/validators/functional/_isUniqueItems.mjs.map +1 -1
- package/lib/validators/functional/_isUniqueItems2.mjs +151 -0
- package/lib/validators/functional/_isUniqueItems2.mjs.map +1 -0
- package/lib/validators/index.d.ts +1 -0
- package/lib/validators/index.js +0 -1
- package/lib/validators/index.js.map +1 -1
- package/lib/validators/index.mjs +7 -6
- package/lib/validators/index.mjs.map +1 -1
- package/lib/validators/index2.mjs +45 -0
- package/lib/validators/index2.mjs.map +1 -0
- package/lib/validators/internal/IOpenApiValidatorContext.mjs +6 -0
- package/lib/validators/internal/IOpenApiValidatorContext.mjs.map +1 -1
- package/lib/validators/internal/IOpenApiValidatorContext2.mjs +14 -0
- package/lib/validators/internal/IOpenApiValidatorContext2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiArrayValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiArrayValidator.mjs +5 -44
- package/lib/validators/internal/OpenApiArrayValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiArrayValidator2.mjs +45 -0
- package/lib/validators/internal/OpenApiArrayValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiBooleanValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiBooleanValidator.mjs +6 -7
- package/lib/validators/internal/OpenApiBooleanValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiBooleanValidator2.mjs +21 -0
- package/lib/validators/internal/OpenApiBooleanValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiConstantValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiConstantValidator.mjs +6 -7
- package/lib/validators/internal/OpenApiConstantValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiConstantValidator2.mjs +21 -0
- package/lib/validators/internal/OpenApiConstantValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiIntegerValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiIntegerValidator.mjs +6 -45
- package/lib/validators/internal/OpenApiIntegerValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiIntegerValidator2.mjs +44 -0
- package/lib/validators/internal/OpenApiIntegerValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiNumberValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiNumberValidator.mjs +6 -45
- package/lib/validators/internal/OpenApiNumberValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiNumberValidator2.mjs +44 -0
- package/lib/validators/internal/OpenApiNumberValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiObjectValidator.js +6 -12
- package/lib/validators/internal/OpenApiObjectValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiObjectValidator.mjs +5 -65
- package/lib/validators/internal/OpenApiObjectValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiObjectValidator2.mjs +65 -0
- package/lib/validators/internal/OpenApiObjectValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiOneOfValidator.js +20 -20
- package/lib/validators/internal/OpenApiOneOfValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiOneOfValidator.mjs +5 -203
- package/lib/validators/internal/OpenApiOneOfValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiOneOfValidator2.mjs +196 -0
- package/lib/validators/internal/OpenApiOneOfValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiSchemaNamingRule.js.map +1 -1
- package/lib/validators/internal/OpenApiSchemaNamingRule.mjs +5 -118
- package/lib/validators/internal/OpenApiSchemaNamingRule.mjs.map +1 -1
- package/lib/validators/internal/OpenApiSchemaNamingRule2.mjs +134 -0
- package/lib/validators/internal/OpenApiSchemaNamingRule2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiStationValidator.js +2 -1
- package/lib/validators/internal/OpenApiStationValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiStationValidator.mjs +5 -104
- package/lib/validators/internal/OpenApiStationValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiStationValidator2.mjs +86 -0
- package/lib/validators/internal/OpenApiStationValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiStringValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiStringValidator.mjs +5 -82
- package/lib/validators/internal/OpenApiStringValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiStringValidator2.mjs +105 -0
- package/lib/validators/internal/OpenApiStringValidator2.mjs.map +1 -0
- package/lib/validators/internal/OpenApiTupleValidator.js.map +1 -1
- package/lib/validators/internal/OpenApiTupleValidator.mjs +5 -43
- package/lib/validators/internal/OpenApiTupleValidator.mjs.map +1 -1
- package/lib/validators/internal/OpenApiTupleValidator2.mjs +43 -0
- package/lib/validators/internal/OpenApiTupleValidator2.mjs.map +1 -0
- package/package.json +8 -9
- package/src/converters/LlmSchemaConverter.ts +152 -33
- package/src/converters/OpenApiConverter.ts +375 -375
- package/src/converters/internal/OpenApiV3Downgrader.ts +381 -381
- package/src/converters/internal/OpenApiV3Upgrader.ts +494 -494
- package/src/converters/internal/OpenApiV3_1Downgrader.ts +318 -318
- package/src/converters/internal/OpenApiV3_1Upgrader.ts +713 -710
- package/src/converters/internal/OpenApiV3_2Upgrader.ts +342 -342
- package/src/converters/internal/SwaggerV2Downgrader.ts +450 -450
- package/src/converters/internal/SwaggerV2Upgrader.ts +547 -547
- package/src/http/HttpError.ts +114 -114
- package/src/http/HttpLlm.ts +169 -169
- package/src/http/HttpMigration.ts +94 -94
- package/src/http/internal/HttpMigrateApplicationComposer.ts +56 -56
- package/src/http/internal/HttpMigrateRouteComposer.ts +505 -505
- package/src/utils/LlmJson.ts +173 -173
- package/src/utils/Singleton.ts +0 -1
- package/src/utils/internal/OpenApiTypeCheckerBase.ts +2 -0
- package/src/utils/internal/coerceLlmArguments.ts +21 -3
- package/src/utils/internal/parseLenientJson.ts +919 -919
- package/src/validators/index.ts +0 -1
|
@@ -200,29 +200,29 @@ export namespace LlmSchemaConverter {
|
|
|
200
200
|
},
|
|
201
201
|
};
|
|
202
202
|
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
203
|
+
const convertConstant = (
|
|
204
|
+
input: OpenApi.IJsonSchema.IConstant,
|
|
205
|
+
): ILlmSchema | null => {
|
|
206
|
+
if (input.const === null)
|
|
207
|
+
return {
|
|
208
|
+
type: "null",
|
|
209
|
+
};
|
|
210
|
+
if (typeof input.const === "boolean")
|
|
211
|
+
return {
|
|
212
|
+
type: "boolean",
|
|
213
|
+
enum: [input.const],
|
|
214
|
+
};
|
|
215
|
+
if (typeof input.const === "string")
|
|
216
|
+
return {
|
|
217
|
+
type: "string",
|
|
218
|
+
enum: [input.const],
|
|
219
|
+
};
|
|
220
|
+
if (typeof input.const === "number")
|
|
221
|
+
return {
|
|
222
|
+
type: Number.isInteger(input.const) ? "integer" : "number",
|
|
223
|
+
enum: [input.const],
|
|
224
|
+
};
|
|
225
|
+
return null;
|
|
226
226
|
};
|
|
227
227
|
const visit = (input: OpenApi.IJsonSchema, accessor: string): void => {
|
|
228
228
|
if (OpenApiTypeChecker.isOneOf(input)) {
|
|
@@ -347,6 +347,9 @@ export namespace LlmSchemaConverter {
|
|
|
347
347
|
items: items.value,
|
|
348
348
|
},
|
|
349
349
|
);
|
|
350
|
+
} else if (OpenApiTypeChecker.isConstant(input)) {
|
|
351
|
+
const constant: ILlmSchema | null = convertConstant(input);
|
|
352
|
+
if (constant !== null) union.push(constant);
|
|
350
353
|
} else if (OpenApiTypeChecker.isString(input))
|
|
351
354
|
union.push(
|
|
352
355
|
props.config.strict === true
|
|
@@ -368,8 +371,8 @@ export namespace LlmSchemaConverter {
|
|
|
368
371
|
union.push({ ...input });
|
|
369
372
|
};
|
|
370
373
|
|
|
371
|
-
visitConstant(props.schema);
|
|
372
374
|
visit(props.schema, props.accessor ?? "$input.schema");
|
|
375
|
+
const normalized: ILlmSchema[] = normalizeLlmUnion(union);
|
|
373
376
|
|
|
374
377
|
if (reasons.length > 0)
|
|
375
378
|
return {
|
|
@@ -380,7 +383,7 @@ export namespace LlmSchemaConverter {
|
|
|
380
383
|
reasons,
|
|
381
384
|
},
|
|
382
385
|
};
|
|
383
|
-
else if (
|
|
386
|
+
else if (normalized.length === 0)
|
|
384
387
|
return {
|
|
385
388
|
// unknown type
|
|
386
389
|
success: true,
|
|
@@ -389,25 +392,25 @@ export namespace LlmSchemaConverter {
|
|
|
389
392
|
type: undefined,
|
|
390
393
|
},
|
|
391
394
|
};
|
|
392
|
-
else if (
|
|
395
|
+
else if (normalized.length === 1)
|
|
393
396
|
return {
|
|
394
397
|
// single type
|
|
395
398
|
success: true,
|
|
396
399
|
value: {
|
|
397
400
|
...attribute,
|
|
398
|
-
...
|
|
401
|
+
...normalized[0],
|
|
399
402
|
description:
|
|
400
403
|
props.config.strict === true &&
|
|
401
|
-
LlmTypeChecker.isReference(
|
|
404
|
+
LlmTypeChecker.isReference(normalized[0]!)
|
|
402
405
|
? undefined
|
|
403
|
-
: (
|
|
406
|
+
: (normalized[0]!.description ?? attribute.description),
|
|
404
407
|
},
|
|
405
408
|
};
|
|
406
409
|
return {
|
|
407
410
|
success: true,
|
|
408
411
|
value: {
|
|
409
412
|
...attribute,
|
|
410
|
-
anyOf:
|
|
413
|
+
anyOf: normalized.map((u) => ({
|
|
411
414
|
...u,
|
|
412
415
|
description:
|
|
413
416
|
props.config.strict === true && LlmTypeChecker.isReference(u)
|
|
@@ -417,8 +420,8 @@ export namespace LlmSchemaConverter {
|
|
|
417
420
|
"x-discriminator":
|
|
418
421
|
OpenApiTypeChecker.isOneOf(props.schema) &&
|
|
419
422
|
props.schema.discriminator !== undefined &&
|
|
420
|
-
props.schema.oneOf.length ===
|
|
421
|
-
|
|
423
|
+
props.schema.oneOf.length === normalized.length &&
|
|
424
|
+
normalized.every(
|
|
422
425
|
(e) => LlmTypeChecker.isReference(e) || LlmTypeChecker.isNull(e),
|
|
423
426
|
)
|
|
424
427
|
? {
|
|
@@ -433,7 +436,11 @@ export namespace LlmSchemaConverter {
|
|
|
433
436
|
],
|
|
434
437
|
),
|
|
435
438
|
)
|
|
436
|
-
:
|
|
439
|
+
: discriminatorMapping({
|
|
440
|
+
propertyName: props.schema.discriminator.propertyName,
|
|
441
|
+
refs: normalized.filter(LlmTypeChecker.isReference),
|
|
442
|
+
$defs: props.$defs,
|
|
443
|
+
}),
|
|
437
444
|
}
|
|
438
445
|
: undefined,
|
|
439
446
|
},
|
|
@@ -592,6 +599,118 @@ export namespace LlmSchemaConverter {
|
|
|
592
599
|
};
|
|
593
600
|
}
|
|
594
601
|
|
|
602
|
+
const discriminatorMapping = (props: {
|
|
603
|
+
propertyName: string;
|
|
604
|
+
refs: ILlmSchema.IReference[];
|
|
605
|
+
$defs: Record<string, ILlmSchema>;
|
|
606
|
+
}): Record<string, string> | undefined => {
|
|
607
|
+
const entries: Array<[string, string]> = props.refs.flatMap((ref) => {
|
|
608
|
+
const key: string =
|
|
609
|
+
ref.$ref.split("#/$defs/")[1] ?? ref.$ref.split("/").at(-1)!;
|
|
610
|
+
const schema: ILlmSchema | undefined = props.$defs[key];
|
|
611
|
+
if (!schema || !LlmTypeChecker.isObject(schema)) return [];
|
|
612
|
+
const literals: string[] = llmDiscriminatorLiterals(
|
|
613
|
+
schema.properties[props.propertyName],
|
|
614
|
+
props.$defs,
|
|
615
|
+
);
|
|
616
|
+
return literals.map((literal) => [literal, ref.$ref] as [string, string]);
|
|
617
|
+
});
|
|
618
|
+
return entries.length !== 0 ? Object.fromEntries(entries) : undefined;
|
|
619
|
+
};
|
|
620
|
+
|
|
621
|
+
const llmDiscriminatorLiterals = (
|
|
622
|
+
schema: ILlmSchema | undefined,
|
|
623
|
+
$defs: Record<string, ILlmSchema>,
|
|
624
|
+
): string[] => {
|
|
625
|
+
if (schema === undefined) return [];
|
|
626
|
+
if (LlmTypeChecker.isReference(schema)) {
|
|
627
|
+
const key: string =
|
|
628
|
+
schema.$ref.split("#/$defs/")[1] ?? schema.$ref.split("/").at(-1)!;
|
|
629
|
+
return llmDiscriminatorLiterals($defs[key], $defs);
|
|
630
|
+
}
|
|
631
|
+
if (LlmTypeChecker.isString(schema)) return schema.enum ?? [];
|
|
632
|
+
if (LlmTypeChecker.isAnyOf(schema))
|
|
633
|
+
return schema.anyOf.flatMap((child) => llmDiscriminatorLiterals(child, $defs));
|
|
634
|
+
return [];
|
|
635
|
+
};
|
|
636
|
+
|
|
637
|
+
const normalizeLlmUnion = (union: ILlmSchema[]): ILlmSchema[] => {
|
|
638
|
+
if (union.length <= 1) return union;
|
|
639
|
+
if (union.every(isEnumOnlyString)) {
|
|
640
|
+
return [
|
|
641
|
+
{
|
|
642
|
+
type: "string",
|
|
643
|
+
enum: uniqueEnumValues(union.flatMap((schema) => schema.enum ?? [])),
|
|
644
|
+
},
|
|
645
|
+
];
|
|
646
|
+
}
|
|
647
|
+
if (union.every(isEnumOnlyBoolean)) {
|
|
648
|
+
return [
|
|
649
|
+
{
|
|
650
|
+
type: "boolean",
|
|
651
|
+
enum: uniqueEnumValues(union.flatMap((schema) => schema.enum ?? [])),
|
|
652
|
+
},
|
|
653
|
+
];
|
|
654
|
+
}
|
|
655
|
+
if (union.every(isEnumOnlyInteger)) {
|
|
656
|
+
return [
|
|
657
|
+
{
|
|
658
|
+
type: "integer",
|
|
659
|
+
enum: uniqueEnumValues(union.flatMap((schema) => schema.enum ?? [])),
|
|
660
|
+
},
|
|
661
|
+
];
|
|
662
|
+
}
|
|
663
|
+
if (union.every(isEnumOnlyNumber)) {
|
|
664
|
+
return [
|
|
665
|
+
{
|
|
666
|
+
type: "number",
|
|
667
|
+
enum: uniqueEnumValues(union.flatMap((schema) => schema.enum ?? [])),
|
|
668
|
+
},
|
|
669
|
+
];
|
|
670
|
+
}
|
|
671
|
+
return union;
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
const isEnumOnlyString = (
|
|
675
|
+
schema: ILlmSchema,
|
|
676
|
+
): schema is ILlmSchema.IString & { enum: string[] } =>
|
|
677
|
+
LlmTypeChecker.isString(schema) &&
|
|
678
|
+
Array.isArray(schema.enum) &&
|
|
679
|
+
schema.enum.length !== 0 &&
|
|
680
|
+
primitiveSchemaHasOnlyEnum(schema);
|
|
681
|
+
|
|
682
|
+
const isEnumOnlyBoolean = (
|
|
683
|
+
schema: ILlmSchema,
|
|
684
|
+
): schema is ILlmSchema.IBoolean & { enum: boolean[] } =>
|
|
685
|
+
LlmTypeChecker.isBoolean(schema) &&
|
|
686
|
+
Array.isArray(schema.enum) &&
|
|
687
|
+
schema.enum.length !== 0 &&
|
|
688
|
+
primitiveSchemaHasOnlyEnum(schema);
|
|
689
|
+
|
|
690
|
+
const isEnumOnlyInteger = (
|
|
691
|
+
schema: ILlmSchema,
|
|
692
|
+
): schema is ILlmSchema.IInteger & { enum: number[] } =>
|
|
693
|
+
LlmTypeChecker.isInteger(schema) &&
|
|
694
|
+
Array.isArray(schema.enum) &&
|
|
695
|
+
schema.enum.length !== 0 &&
|
|
696
|
+
primitiveSchemaHasOnlyEnum(schema);
|
|
697
|
+
|
|
698
|
+
const isEnumOnlyNumber = (
|
|
699
|
+
schema: ILlmSchema,
|
|
700
|
+
): schema is ILlmSchema.INumber & { enum: number[] } =>
|
|
701
|
+
LlmTypeChecker.isNumber(schema) &&
|
|
702
|
+
Array.isArray(schema.enum) &&
|
|
703
|
+
schema.enum.length !== 0 &&
|
|
704
|
+
primitiveSchemaHasOnlyEnum(schema);
|
|
705
|
+
|
|
706
|
+
const primitiveSchemaHasOnlyEnum = (schema: ILlmSchema): boolean =>
|
|
707
|
+
Object.entries(schema).every(([key, value]) => {
|
|
708
|
+
if (value === undefined) return true;
|
|
709
|
+
return key === "type" || key === "enum";
|
|
710
|
+
});
|
|
711
|
+
|
|
712
|
+
const uniqueEnumValues = <T>(values: T[]): T[] => Array.from(new Set(values));
|
|
713
|
+
|
|
595
714
|
const validateStrict = (
|
|
596
715
|
schema: OpenApi.IJsonSchema,
|
|
597
716
|
accessor: string,
|