@nestia/sdk 14.0.1 → 14.0.2
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/assets/bundle/distribute/build-sdk.cjs +28 -0
- package/assets/bundle/distribute/package.json +6 -2
- package/lib/INestiaConfig.d.ts +55 -24
- package/lib/NestiaSdkApplication.d.ts +60 -0
- package/lib/NestiaSdkApplication.js +63 -5
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/NestiaSwaggerComposer.d.ts +21 -0
- package/lib/NestiaSwaggerComposer.js +21 -3
- package/lib/NestiaSwaggerComposer.js.map +1 -1
- package/lib/analyses/AccessorAnalyzer.d.ts +26 -0
- package/lib/analyses/AccessorAnalyzer.js +26 -0
- package/lib/analyses/AccessorAnalyzer.js.map +1 -1
- package/lib/analyses/ConfigAnalyzer.d.ts +41 -0
- package/lib/analyses/ConfigAnalyzer.js +48 -73
- package/lib/analyses/ConfigAnalyzer.js.map +1 -1
- package/lib/analyses/ImportAnalyzer.d.ts +25 -0
- package/lib/analyses/ImportAnalyzer.js +25 -0
- package/lib/analyses/ImportAnalyzer.js.map +1 -1
- package/lib/analyses/ParameterNameAnalyzer.d.ts +24 -0
- package/lib/analyses/ParameterNameAnalyzer.js +15 -0
- package/lib/analyses/ParameterNameAnalyzer.js.map +1 -1
- package/lib/analyses/PathAnalyzer.d.ts +63 -1
- package/lib/analyses/PathAnalyzer.js +54 -9
- package/lib/analyses/PathAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectControllerAnalyzer.d.ts +32 -0
- package/lib/analyses/ReflectControllerAnalyzer.js +22 -0
- package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +29 -0
- package/lib/analyses/ReflectHttpOperationAnalyzer.js +28 -17
- package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.d.ts +31 -0
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js +21 -0
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.d.ts +31 -0
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +21 -0
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +32 -0
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +22 -0
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectMcpOperationAnalyzer.d.ts +29 -0
- package/lib/analyses/ReflectMcpOperationAnalyzer.js +30 -9
- package/lib/analyses/ReflectMcpOperationAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectMetadataAnalyzer.d.ts +47 -0
- package/lib/analyses/ReflectMetadataAnalyzer.js +47 -0
- package/lib/analyses/ReflectMetadataAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.d.ts +29 -0
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +21 -2
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
- package/lib/analyses/SecurityAnalyzer.d.ts +15 -0
- package/lib/analyses/SecurityAnalyzer.js +15 -0
- package/lib/analyses/SecurityAnalyzer.js.map +1 -1
- package/lib/analyses/SwaggerExampleAnalyzer.d.ts +16 -0
- package/lib/analyses/SwaggerExampleAnalyzer.js +16 -0
- package/lib/analyses/SwaggerExampleAnalyzer.js.map +1 -1
- package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +41 -3
- package/lib/analyses/TypedHttpRouteAnalyzer.js +172 -157
- package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -1
- package/lib/analyses/TypedMcpRouteAnalyzer.d.ts +29 -0
- package/lib/analyses/TypedMcpRouteAnalyzer.js +152 -20
- package/lib/analyses/TypedMcpRouteAnalyzer.js.map +1 -1
- package/lib/analyses/TypedWebSocketRouteAnalyzer.d.ts +19 -0
- package/lib/analyses/TypedWebSocketRouteAnalyzer.js +19 -0
- package/lib/analyses/TypedWebSocketRouteAnalyzer.js.map +1 -1
- package/lib/decorators/OperationMetadata.d.ts +6 -0
- package/lib/decorators/OperationMetadata.js +6 -0
- package/lib/decorators/OperationMetadata.js.map +1 -1
- package/lib/executable/internal/CommandParser.d.ts +19 -0
- package/lib/executable/internal/CommandParser.js +19 -0
- package/lib/executable/internal/CommandParser.js.map +1 -1
- package/lib/executable/internal/NestiaConfigLoader.d.ts +56 -0
- package/lib/executable/internal/NestiaConfigLoader.js +48 -42
- package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
- package/lib/executable/internal/NestiaSdkCommand.d.ts +60 -0
- package/lib/executable/internal/NestiaSdkCommand.js +95 -3
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
- package/lib/executable/internal/NestiaSdkWatcher.d.ts +81 -0
- package/lib/executable/internal/NestiaSdkWatcher.js +122 -38
- package/lib/executable/internal/NestiaSdkWatcher.js.map +1 -1
- package/lib/executable/internal/NestiaSwaggerWatch.d.ts +80 -0
- package/lib/executable/internal/NestiaSwaggerWatch.js +308 -0
- package/lib/executable/internal/NestiaSwaggerWatch.js.map +1 -0
- package/lib/factories/ExpressionFactory.d.ts +17 -2
- package/lib/factories/ExpressionFactory.js +17 -2
- package/lib/factories/ExpressionFactory.js.map +1 -1
- package/lib/factories/IdentifierFactory.d.ts +24 -0
- package/lib/factories/IdentifierFactory.js +24 -0
- package/lib/factories/IdentifierFactory.js.map +1 -1
- package/lib/factories/LiteralFactory.d.ts +22 -4
- package/lib/factories/LiteralFactory.js +30 -10
- package/lib/factories/LiteralFactory.js.map +1 -1
- package/lib/factories/StatementFactory.d.ts +28 -1
- package/lib/factories/StatementFactory.js +28 -1
- package/lib/factories/StatementFactory.js.map +1 -1
- package/lib/factories/TypeFactory.d.ts +24 -0
- package/lib/factories/TypeFactory.js +15 -0
- package/lib/factories/TypeFactory.js.map +1 -1
- package/lib/generates/CloneGenerator.d.ts +22 -0
- package/lib/generates/CloneGenerator.js +26 -5
- package/lib/generates/CloneGenerator.js.map +1 -1
- package/lib/generates/E2eGenerator.d.ts +19 -0
- package/lib/generates/E2eGenerator.js +19 -0
- package/lib/generates/E2eGenerator.js.map +1 -1
- package/lib/generates/SdkGenerator.d.ts +38 -0
- package/lib/generates/SdkGenerator.js +40 -2
- package/lib/generates/SdkGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.d.ts +36 -6
- package/lib/generates/SwaggerGenerator.js +55 -13
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.d.ts +19 -0
- package/lib/generates/internal/E2eFileProgrammer.js +20 -1
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/FilePrinter.d.ts +43 -0
- package/lib/generates/internal/FilePrinter.js +43 -0
- package/lib/generates/internal/FilePrinter.js.map +1 -1
- package/lib/generates/internal/ImportDictionary.d.ts +92 -2
- package/lib/generates/internal/ImportDictionary.js +91 -3
- package/lib/generates/internal/ImportDictionary.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +119 -0
- package/lib/generates/internal/SdkAliasCollection.js +124 -7
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkDistributionComposer.d.ts +19 -0
- package/lib/generates/internal/SdkDistributionComposer.js +98 -59
- package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.d.ts +18 -0
- package/lib/generates/internal/SdkFileProgrammer.js +18 -0
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +29 -0
- package/lib/generates/internal/SdkHttpCloneProgrammer.js +33 -0
- package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneReferencer.d.ts +19 -0
- package/lib/generates/internal/SdkHttpCloneReferencer.js +78 -25
- package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +19 -0
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js +19 -0
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +19 -0
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +19 -0
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +104 -2
- package/lib/generates/internal/SdkHttpParameterProgrammer.js +70 -0
- package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +20 -0
- package/lib/generates/internal/SdkHttpRouteProgrammer.js +20 -0
- package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +38 -0
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +49 -5
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkImportWizard.d.ts +63 -0
- package/lib/generates/internal/SdkImportWizard.js +63 -0
- package/lib/generates/internal/SdkImportWizard.js.map +1 -1
- package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +17 -2
- package/lib/generates/internal/SdkMcpRouteProgrammer.js +33 -13
- package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkPathTemplate.d.ts +15 -0
- package/lib/generates/internal/SdkPathTemplate.js +15 -0
- package/lib/generates/internal/SdkPathTemplate.js.map +1 -1
- package/lib/generates/internal/SdkRouteDirectory.d.ts +10 -0
- package/lib/generates/internal/SdkRouteDirectory.js +10 -0
- package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
- package/lib/generates/internal/SdkTypeProgrammer.d.ts +54 -1
- package/lib/generates/internal/SdkTypeProgrammer.js +96 -12
- package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +36 -3
- package/lib/generates/internal/SdkTypeTagProgrammer.js +28 -7
- package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketCloneProgrammer.d.ts +40 -0
- package/lib/generates/internal/SdkWebSocketCloneProgrammer.js +149 -142
- package/lib/generates/internal/SdkWebSocketCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +19 -0
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +19 -0
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +81 -2
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +48 -0
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +18 -0
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +18 -0
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SwaggerDescriptionComposer.d.ts +42 -0
- package/lib/generates/internal/SwaggerDescriptionComposer.js +44 -1
- package/lib/generates/internal/SwaggerDescriptionComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationComposer.d.ts +18 -0
- package/lib/generates/internal/SwaggerOperationComposer.js +18 -0
- package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +39 -0
- package/lib/generates/internal/SwaggerOperationParameterComposer.js +31 -8
- package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +19 -0
- package/lib/generates/internal/SwaggerOperationResponseComposer.js +19 -0
- package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
- package/lib/internal/legacy.d.ts +296 -16
- package/lib/internal/legacy.js +127 -10
- package/lib/internal/legacy.js.map +1 -1
- package/lib/structures/INestiaProject.d.ts +10 -0
- package/lib/structures/INestiaSdkInput.d.ts +30 -0
- package/lib/structures/IOperationMetadata.d.ts +55 -0
- package/lib/structures/IReflectController.d.ts +10 -0
- package/lib/structures/IReflectHttpOperation.d.ts +10 -0
- package/lib/structures/IReflectHttpOperationException.d.ts +10 -0
- package/lib/structures/IReflectHttpOperationParameter.d.ts +47 -0
- package/lib/structures/IReflectHttpOperationSuccess.d.ts +11 -0
- package/lib/structures/IReflectImport.d.ts +10 -0
- package/lib/structures/IReflectMcpOperation.d.ts +19 -0
- package/lib/structures/IReflectMcpOperationParameter.d.ts +9 -0
- package/lib/structures/IReflectOperationError.d.ts +28 -0
- package/lib/structures/IReflectOperationError.js +22 -2
- package/lib/structures/IReflectOperationError.js.map +1 -1
- package/lib/structures/IReflectType.d.ts +9 -0
- package/lib/structures/IReflectWebSocketOperation.d.ts +10 -0
- package/lib/structures/IReflectWebSocketOperationParameter.d.ts +55 -0
- package/lib/structures/ITypedApplication.d.ts +10 -0
- package/lib/structures/ITypedHttpRoute.d.ts +10 -0
- package/lib/structures/ITypedHttpRouteException.d.ts +10 -0
- package/lib/structures/ITypedHttpRouteParameter.d.ts +45 -0
- package/lib/structures/ITypedHttpRouteSuccess.d.ts +10 -0
- package/lib/structures/ITypedMcpRoute.d.ts +11 -0
- package/lib/structures/ITypedWebSocketRoute.d.ts +10 -0
- package/lib/transform.d.ts +6 -0
- package/lib/transform.js +6 -0
- package/lib/transform.js.map +1 -1
- package/lib/utils/ArrayUtil.d.ts +31 -1
- package/lib/utils/ArrayUtil.js +32 -11
- package/lib/utils/ArrayUtil.js.map +1 -1
- package/lib/utils/EmittedJavaScriptPatcher.d.ts +20 -0
- package/lib/utils/EmittedJavaScriptPatcher.js +65 -46
- package/lib/utils/EmittedJavaScriptPatcher.js.map +1 -1
- package/lib/utils/FileRetriever.d.ts +29 -0
- package/lib/utils/FileRetriever.js +29 -0
- package/lib/utils/FileRetriever.js.map +1 -1
- package/lib/utils/HttpResponseContentTypeUtil.d.ts +41 -0
- package/lib/utils/HttpResponseContentTypeUtil.js +31 -0
- package/lib/utils/HttpResponseContentTypeUtil.js.map +1 -1
- package/lib/utils/MapUtil.d.ts +64 -1
- package/lib/utils/MapUtil.js +24 -3
- package/lib/utils/MapUtil.js.map +1 -1
- package/lib/utils/PathUtil.d.ts +31 -0
- package/lib/utils/PathUtil.js +38 -0
- package/lib/utils/PathUtil.js.map +1 -1
- package/lib/utils/SdkBundlePath.d.ts +2 -0
- package/lib/utils/SdkBundlePath.js +10 -0
- package/lib/utils/SdkBundlePath.js.map +1 -0
- package/lib/utils/SdkInputFilter.d.ts +31 -0
- package/lib/utils/SdkInputFilter.js +115 -0
- package/lib/utils/SdkInputFilter.js.map +1 -0
- package/lib/utils/SourceFinder.d.ts +35 -0
- package/lib/utils/SourceFinder.js +47 -12
- package/lib/utils/SourceFinder.js.map +1 -1
- package/lib/utils/StringUtil.d.ts +77 -2
- package/lib/utils/StringUtil.js +166 -4
- package/lib/utils/StringUtil.js.map +1 -1
- package/lib/utils/TemporaryDirectory.d.ts +60 -0
- package/lib/utils/TemporaryDirectory.js +112 -0
- package/lib/utils/TemporaryDirectory.js.map +1 -0
- package/lib/utils/TsConfigReader.d.ts +42 -0
- package/lib/utils/TsConfigReader.js +98 -14
- package/lib/utils/TsConfigReader.js.map +1 -1
- package/lib/utils/TtscExecutor.d.ts +23 -1
- package/lib/utils/TtscExecutor.js +22 -0
- package/lib/utils/TtscExecutor.js.map +1 -1
- package/lib/utils/VersioningStrategy.d.ts +26 -1
- package/lib/utils/VersioningStrategy.js +30 -9
- package/lib/utils/VersioningStrategy.js.map +1 -1
- package/lib/validators/TextPlainValidator.d.ts +19 -0
- package/lib/validators/TextPlainValidator.js +19 -0
- package/lib/validators/TextPlainValidator.js.map +1 -1
- package/native/go.mod +1 -1
- package/native/go.sum +2 -2
- package/native/sdk/register.go +12 -2
- package/native/sdk/sdk_metadata_json.go +6 -1
- package/native/sdk/sdk_transform.go +388 -397
- package/package.json +7 -5
- package/src/INestiaConfig.ts +55 -24
- package/src/NestiaSdkApplication.ts +66 -7
- package/src/NestiaSwaggerComposer.ts +21 -6
- package/src/analyses/AccessorAnalyzer.ts +26 -0
- package/src/analyses/ConfigAnalyzer.ts +49 -87
- package/src/analyses/ImportAnalyzer.ts +25 -0
- package/src/analyses/ParameterNameAnalyzer.ts +24 -0
- package/src/analyses/PathAnalyzer.ts +63 -11
- package/src/analyses/ReflectControllerAnalyzer.ts +32 -0
- package/src/analyses/ReflectHttpOperationAnalyzer.ts +32 -10
- package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +31 -0
- package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +31 -0
- package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +32 -0
- package/src/analyses/ReflectMcpOperationAnalyzer.ts +32 -1
- package/src/analyses/ReflectMetadataAnalyzer.ts +47 -0
- package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +33 -4
- package/src/analyses/SecurityAnalyzer.ts +15 -0
- package/src/analyses/SwaggerExampleAnalyzer.ts +16 -0
- package/src/analyses/TypedHttpRouteAnalyzer.ts +240 -184
- package/src/analyses/TypedMcpRouteAnalyzer.ts +180 -20
- package/src/analyses/TypedWebSocketRouteAnalyzer.ts +19 -0
- package/src/decorators/OperationMetadata.ts +6 -0
- package/src/executable/internal/CommandParser.ts +19 -0
- package/src/executable/internal/NestiaConfigLoader.ts +66 -50
- package/src/executable/internal/NestiaSdkCommand.ts +96 -3
- package/src/executable/internal/NestiaSdkWatcher.ts +169 -41
- package/src/executable/internal/NestiaSwaggerWatch.ts +359 -0
- package/src/factories/ExpressionFactory.ts +17 -2
- package/src/factories/IdentifierFactory.ts +24 -0
- package/src/factories/LiteralFactory.ts +44 -11
- package/src/factories/StatementFactory.ts +28 -1
- package/src/factories/TypeFactory.ts +24 -0
- package/src/generates/CloneGenerator.ts +26 -5
- package/src/generates/E2eGenerator.ts +19 -0
- package/src/generates/SdkGenerator.ts +40 -9
- package/src/generates/SwaggerGenerator.ts +56 -14
- package/src/generates/internal/E2eFileProgrammer.ts +20 -0
- package/src/generates/internal/FilePrinter.ts +43 -0
- package/src/generates/internal/ImportDictionary.ts +110 -3
- package/src/generates/internal/SdkAliasCollection.ts +133 -11
- package/src/generates/internal/SdkDistributionComposer.ts +117 -66
- package/src/generates/internal/SdkFileProgrammer.ts +18 -0
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +55 -0
- package/src/generates/internal/SdkHttpCloneReferencer.ts +97 -23
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +19 -0
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +19 -0
- package/src/generates/internal/SdkHttpParameterProgrammer.ts +104 -2
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +20 -0
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +72 -5
- package/src/generates/internal/SdkImportWizard.ts +63 -0
- package/src/generates/internal/SdkMcpRouteProgrammer.ts +38 -18
- package/src/generates/internal/SdkPathTemplate.ts +15 -0
- package/src/generates/internal/SdkRouteDirectory.ts +10 -0
- package/src/generates/internal/SdkTypeProgrammer.ts +118 -14
- package/src/generates/internal/SdkTypeTagProgrammer.ts +37 -7
- package/src/generates/internal/SdkWebSocketCloneProgrammer.ts +185 -142
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +19 -0
- package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +81 -2
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +18 -0
- package/src/generates/internal/SwaggerDescriptionComposer.ts +47 -1
- package/src/generates/internal/SwaggerOperationComposer.ts +18 -0
- package/src/generates/internal/SwaggerOperationParameterComposer.ts +41 -8
- package/src/generates/internal/SwaggerOperationResponseComposer.ts +19 -0
- package/src/internal/legacy-augmentation.d.ts +16 -0
- package/src/internal/legacy.ts +296 -26
- package/src/structures/INestiaProject.ts +10 -0
- package/src/structures/INestiaSdkInput.ts +30 -0
- package/src/structures/IOperationMetadata.ts +55 -0
- package/src/structures/IReflectController.ts +10 -0
- package/src/structures/IReflectHttpOperation.ts +10 -0
- package/src/structures/IReflectHttpOperationException.ts +10 -0
- package/src/structures/IReflectHttpOperationParameter.ts +47 -0
- package/src/structures/IReflectHttpOperationSuccess.ts +11 -0
- package/src/structures/IReflectImport.ts +10 -0
- package/src/structures/IReflectMcpOperation.ts +19 -0
- package/src/structures/IReflectMcpOperationParameter.ts +9 -0
- package/src/structures/IReflectOperationError.ts +31 -2
- package/src/structures/IReflectType.ts +9 -0
- package/src/structures/IReflectWebSocketOperation.ts +10 -0
- package/src/structures/IReflectWebSocketOperationParameter.ts +55 -0
- package/src/structures/ITypedApplication.ts +10 -0
- package/src/structures/ITypedHttpRoute.ts +10 -0
- package/src/structures/ITypedHttpRouteException.ts +10 -0
- package/src/structures/ITypedHttpRouteParameter.ts +45 -0
- package/src/structures/ITypedHttpRouteSuccess.ts +10 -0
- package/src/structures/ITypedMcpRoute.ts +12 -0
- package/src/structures/ITypedWebSocketRoute.ts +10 -0
- package/src/transform.ts +6 -0
- package/src/utils/ArrayUtil.ts +32 -13
- package/src/utils/EmittedJavaScriptPatcher.ts +70 -47
- package/src/utils/FileRetriever.ts +29 -0
- package/src/utils/HttpResponseContentTypeUtil.ts +41 -0
- package/src/utils/MapUtil.ts +68 -3
- package/src/utils/PathUtil.ts +38 -0
- package/src/utils/SdkBundlePath.ts +11 -0
- package/src/utils/SdkInputFilter.ts +108 -0
- package/src/utils/SourceFinder.ts +51 -14
- package/src/utils/StringUtil.ts +182 -5
- package/src/utils/TemporaryDirectory.ts +108 -0
- package/src/utils/TsConfigReader.ts +124 -26
- package/src/utils/TtscExecutor.ts +23 -1
- package/src/utils/VersioningStrategy.ts +33 -13
- package/src/validators/TextPlainValidator.ts +19 -0
- package/lib/generates/internal/SwaggerReadonlyArrayEmender.d.ts +0 -9
- package/lib/generates/internal/SwaggerReadonlyArrayEmender.js +0 -178
- package/lib/generates/internal/SwaggerReadonlyArrayEmender.js.map +0 -1
- package/src/generates/internal/SwaggerReadonlyArrayEmender.ts +0 -264
|
@@ -4,43 +4,43 @@ exports.TypedHttpRouteAnalyzer = void 0;
|
|
|
4
4
|
const utils_1 = require("@typia/utils");
|
|
5
5
|
const legacy_1 = require("../internal/legacy");
|
|
6
6
|
const PathUtil_1 = require("../utils/PathUtil");
|
|
7
|
+
const StringUtil_1 = require("../utils/StringUtil");
|
|
8
|
+
/**
|
|
9
|
+
* Turns reflected HTTP operations into typed routes, one per path, and builds
|
|
10
|
+
* the shared dictionary of the JSON components HTTP and MCP routes use.
|
|
11
|
+
*
|
|
12
|
+
* @evidence contracts/common.md#principled-implementation Each operation's metadata is resolved against its own components and validated by the policy of its position, the routes carry the typed parameters, the success response, and the exceptions, and the dictionary of the routes is built after component names that collide with different definitions are renamed per controller.
|
|
13
|
+
* @evidence contracts/common.md#clear-and-simple-design Two public functions and private collectors for the component rename.
|
|
14
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The rename mutates only component definitions owned by analysis; consumers emit resolved structural types rather than modifying foreign cache fields or replacing names in strings.
|
|
15
|
+
* @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
|
|
16
|
+
* efficient algorithms: This namespace groups operations; analyze and routeDictionary own the algorithms.
|
|
17
|
+
* reuse equivalent work: The namespace itself coordinates no completed or in-flight work.
|
|
18
|
+
* bound retention and release resources: The namespace owns no cache, handle or running task.
|
|
19
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation TypedHttpRouteAnalyzer analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
|
|
20
|
+
*/
|
|
7
21
|
var TypedHttpRouteAnalyzer;
|
|
8
22
|
(function (TypedHttpRouteAnalyzer) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const components = legacy_1.MetadataComponents.from({
|
|
23
|
-
objects: uniqueComponents(individual.flatMap((c) => c.objects)),
|
|
24
|
-
arrays: uniqueComponents(individual.flatMap((c) => c.arrays)),
|
|
25
|
-
tuples: uniqueComponents(individual.flatMap((c) => c.tuples)),
|
|
26
|
-
aliases: uniqueComponents(individual.flatMap((c) => c.aliases)),
|
|
27
|
-
});
|
|
28
|
-
return components.dictionary;
|
|
29
|
-
};
|
|
23
|
+
/**
|
|
24
|
+
* Returns the typed routes of one operation, one per path, or none when the
|
|
25
|
+
* metadata violates a policy; the violations are pushed to the errors.
|
|
26
|
+
*
|
|
27
|
+
* @evidence contracts/common.md#principled-implementation Each metadata is resolved against its own components and validated with the policy of its position (JSON, query, header, or text), the `@setHeader` and `@assignHeaders` tags become header directives, and the route splits the parameters by category.
|
|
28
|
+
* @evidence contracts/common.md#clear-and-simple-design One function.
|
|
29
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The policies come from the validators of the package.
|
|
30
|
+
* @evidence contracts/common.md#meaningful-documentation The comment states the result and the errors.
|
|
31
|
+
* efficient algorithms: Each supplied parameter and exception is cast once, policy validation belongs to MetadataFactory, and route splitting maps only the supplied paths.
|
|
32
|
+
* reuse equivalent work: Independently supplied operation metadata and position-specific validation have no shared completed or in-flight request.
|
|
33
|
+
* bound retention and release resources: Metadata dictionaries and local diagnostics belong to this synchronous operation and its returned routes; no process, handle or persistent history is retained.
|
|
34
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation TypedHttpRouteAnalyzer.analyze analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
|
|
35
|
+
*/
|
|
30
36
|
TypedHttpRouteAnalyzer.analyze = (props) => {
|
|
31
37
|
const errors = [];
|
|
32
|
-
const cast = (next, from
|
|
38
|
+
const cast = (next, from) => {
|
|
33
39
|
const components = legacy_1.MetadataComponents.from(next.components);
|
|
34
40
|
const metadata = legacy_1.MetadataSchema.from(next.metadata, components.dictionary);
|
|
35
41
|
const metaErrors = next.validate === undefined
|
|
36
42
|
? []
|
|
37
43
|
: legacy_1.MetadataFactory.validate({
|
|
38
|
-
options: {
|
|
39
|
-
escape,
|
|
40
|
-
constant: true,
|
|
41
|
-
absorb: true,
|
|
42
|
-
validate: next.validate,
|
|
43
|
-
},
|
|
44
44
|
functor: next.validate,
|
|
45
45
|
metadata,
|
|
46
46
|
});
|
|
@@ -71,13 +71,11 @@ var TypedHttpRouteAnalyzer;
|
|
|
71
71
|
example: value.example,
|
|
72
72
|
examples: value.examples,
|
|
73
73
|
type: value.type,
|
|
74
|
-
metadata: cast(value, `exception (status: ${key})
|
|
74
|
+
metadata: cast(value, `exception (status: ${key})`),
|
|
75
75
|
},
|
|
76
76
|
]));
|
|
77
|
-
const parameters = props.operation.parameters.map((p) => (Object.assign(Object.assign({}, p), { metadata: cast(p, `parameter (name: ${JSON.stringify(p.name)})
|
|
78
|
-
|
|
79
|
-
const success = Object.assign(Object.assign({}, props.operation.success), { metadata: cast(props.operation.success, "success", props.operation.success.encrypted ||
|
|
80
|
-
props.operation.success.contentType === "application/json"), setHeaders: props.operation.jsDocTags
|
|
77
|
+
const parameters = props.operation.parameters.map((p) => (Object.assign(Object.assign({}, p), { metadata: cast(p, `parameter (name: ${JSON.stringify(p.name)})`) })));
|
|
78
|
+
const success = Object.assign(Object.assign({}, props.operation.success), { metadata: cast(props.operation.success, "success"), setHeaders: props.operation.jsDocTags
|
|
81
79
|
.filter((t) => { var _a; return ((_a = t.text) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
82
80
|
t.text[0].text &&
|
|
83
81
|
(t.name === "setHeader" || t.name === "assignHeaders"); })
|
|
@@ -112,6 +110,19 @@ var TypedHttpRouteAnalyzer;
|
|
|
112
110
|
.filter((p) => p.category === "headers")
|
|
113
111
|
.filter((p) => p.field === null)[0]) !== null && _c !== void 0 ? _c : null, success, extensions: props.operation.extensions })); });
|
|
114
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* Returns the dictionary of the components the routes actually use, after
|
|
115
|
+
* renaming components whose names collide with different definitions.
|
|
116
|
+
*
|
|
117
|
+
* @evidence contracts/common.md#principled-implementation Objects, aliases and recursive arrays/tuples share their emitted accessor-path slots, while finite and object-mediated collections remain kind-specific inline groups. Different semantic classes in one slot receive unique controller-qualified names, and the emitted dictionary follows escaped returns rather than original-only toJSON declarations.
|
|
118
|
+
* @evidence contracts/common.md#clear-and-simple-design One function over private collectors.
|
|
119
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Finite partition refinement preserves semantic discriminators and user payloads while component edges reference equivalence classes. Only actual component ordinals are omitted; no foreign name cache or generated text is rewritten.
|
|
120
|
+
* @evidence contracts/common.md#meaningful-documentation The comment states the result and the rename.
|
|
121
|
+
* efficient algorithms: Each refinement round encodes each distinct component body with constant-sized component edges. The partition only splits and stabilizes within the distinct component count, avoiding exponential expansion of shared DAGs.
|
|
122
|
+
* reuse equivalent work: One local partition compares all routes together, reuses graph node colors for shared children and supplies all collision groups; equivalent same-slot definitions reuse one emitted representative.
|
|
123
|
+
* bound retention and release resources: Collected nodes, partitions and visited sets are local to this synchronous call and are released with it; the returned dictionary retains only its reachable emitted representatives.
|
|
124
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation TypedHttpRouteAnalyzer.routeDictionary analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
|
|
125
|
+
*/
|
|
115
126
|
TypedHttpRouteAnalyzer.routeDictionary = (routes) => {
|
|
116
127
|
renameDuplicateComponents(routes);
|
|
117
128
|
const dictionary = {
|
|
@@ -120,20 +131,9 @@ var TypedHttpRouteAnalyzer;
|
|
|
120
131
|
arrays: new Map(),
|
|
121
132
|
tuples: new Map(),
|
|
122
133
|
};
|
|
123
|
-
for (const route of routes)
|
|
124
|
-
for (const
|
|
125
|
-
|
|
126
|
-
...route.queryParameters,
|
|
127
|
-
...route.headerParameters,
|
|
128
|
-
...(route.queryObject ? [route.queryObject] : []),
|
|
129
|
-
...(route.body ? [route.body] : []),
|
|
130
|
-
...(route.headerObject ? [route.headerObject] : []),
|
|
131
|
-
])
|
|
132
|
-
enrollMetadata(dictionary, p.metadata);
|
|
133
|
-
for (const e of Object.values(route.exceptions))
|
|
134
|
-
enrollMetadata(dictionary, e.metadata);
|
|
135
|
-
enrollMetadata(dictionary, route.success.metadata);
|
|
136
|
-
}
|
|
134
|
+
for (const route of routes)
|
|
135
|
+
for (const metadata of routeMetadatas(route))
|
|
136
|
+
enrollMetadata(dictionary, metadata);
|
|
137
137
|
return dictionary;
|
|
138
138
|
};
|
|
139
139
|
})(TypedHttpRouteAnalyzer || (exports.TypedHttpRouteAnalyzer = TypedHttpRouteAnalyzer = {}));
|
|
@@ -143,10 +143,29 @@ const renameDuplicateComponents = (routes) => {
|
|
|
143
143
|
for (const route of routes)
|
|
144
144
|
for (const metadata of routeMetadatas(route))
|
|
145
145
|
collectComponentEntries(entries, route, metadata);
|
|
146
|
-
|
|
146
|
+
// Original toJSON definitions participate in semantic comparison but do not
|
|
147
|
+
// become emitted declarations unless another route uses them directly.
|
|
148
|
+
const comparisonEntries = [];
|
|
149
|
+
for (const route of routes)
|
|
150
|
+
for (const metadata of routeMetadatas(route))
|
|
151
|
+
collectComponentEntries(comparisonEntries, route, metadata, createCollectVisited(), true);
|
|
152
|
+
const signatures = componentSignatures(comparisonEntries);
|
|
153
|
+
for (const entry of entries)
|
|
154
|
+
entry.signature = signatures.get(entry.type);
|
|
155
|
+
const used = new Set(entries.map((e) => StringUtil_1.StringUtil.accessorsOf(e.type.name).join(".")));
|
|
147
156
|
const groups = new Map();
|
|
148
157
|
for (const entry of entries) {
|
|
149
|
-
|
|
158
|
+
// Named recursive collections also need a declaration to break cycles.
|
|
159
|
+
// Ordinary arrays and tuples remain inline forms without their own slot.
|
|
160
|
+
const slot = entry.kind === "objects" ||
|
|
161
|
+
entry.kind === "aliases" ||
|
|
162
|
+
entry.type.recursive
|
|
163
|
+
? "declarations"
|
|
164
|
+
: entry.kind;
|
|
165
|
+
const name = slot === "declarations"
|
|
166
|
+
? StringUtil_1.StringUtil.accessorsOf(entry.type.name).join(".")
|
|
167
|
+
: entry.type.name;
|
|
168
|
+
const key = `${slot}:${name}`;
|
|
150
169
|
const group = groups.get(key);
|
|
151
170
|
if (group === undefined)
|
|
152
171
|
groups.set(key, [entry]);
|
|
@@ -164,54 +183,58 @@ const renameDuplicateComponents = (routes) => {
|
|
|
164
183
|
const prefix = normalizeComponentNamespace(entry.route.controller.class.name);
|
|
165
184
|
const name = escapeComponentName(used, `${prefix}.${oldName}`);
|
|
166
185
|
renamed.set(entry.signature, name);
|
|
167
|
-
used.add(name);
|
|
186
|
+
used.add(StringUtil_1.StringUtil.accessorsOf(name).join("."));
|
|
168
187
|
return name;
|
|
169
188
|
})();
|
|
170
189
|
entry.type.name = next;
|
|
171
190
|
}
|
|
172
191
|
}
|
|
173
|
-
for (const route of routes)
|
|
174
|
-
for (const metadata of routeMetadatas(route))
|
|
175
|
-
clearMetadataNameCache(metadata);
|
|
176
192
|
};
|
|
177
|
-
const routeMetadatas = (route) =>
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
...
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
193
|
+
const routeMetadatas = (route) => route.protocol === "mcp"
|
|
194
|
+
? [route.inputMetadata, route.outputMetadata].filter((m) => m !== undefined)
|
|
195
|
+
: [
|
|
196
|
+
...[
|
|
197
|
+
...route.pathParameters,
|
|
198
|
+
...route.queryParameters,
|
|
199
|
+
...route.headerParameters,
|
|
200
|
+
...(route.queryObject ? [route.queryObject] : []),
|
|
201
|
+
...(route.body ? [route.body] : []),
|
|
202
|
+
...(route.headerObject ? [route.headerObject] : []),
|
|
203
|
+
].map((p) => p.metadata),
|
|
204
|
+
...Object.values(route.exceptions).map((e) => e.metadata),
|
|
205
|
+
route.success.metadata,
|
|
206
|
+
];
|
|
207
|
+
const collectComponentEntries = (entries, route, metadata, visited = createCollectVisited(), includeOriginal = false) => {
|
|
208
|
+
var _a;
|
|
190
209
|
if (visited.schemas.has(metadata))
|
|
191
210
|
return;
|
|
192
211
|
visited.schemas.add(metadata);
|
|
193
212
|
if (metadata.rest !== null)
|
|
194
|
-
collectComponentEntries(entries, route, metadata.rest, visited);
|
|
213
|
+
collectComponentEntries(entries, route, metadata.rest, visited, includeOriginal);
|
|
195
214
|
if (metadata.escaped !== null) {
|
|
196
|
-
|
|
197
|
-
|
|
215
|
+
if (includeOriginal)
|
|
216
|
+
collectComponentEntries(entries, route, metadata.escaped.original, visited, includeOriginal);
|
|
217
|
+
collectComponentEntries(entries, route, metadata.escaped.returns, visited, includeOriginal);
|
|
198
218
|
}
|
|
219
|
+
for (const template of metadata.templates)
|
|
220
|
+
for (const elem of (_a = template.row) !== null && _a !== void 0 ? _a : template)
|
|
221
|
+
collectComponentEntries(entries, route, elem, visited, includeOriginal);
|
|
199
222
|
for (const func of metadata.functions) {
|
|
200
223
|
for (const p of func.parameters)
|
|
201
|
-
collectComponentEntries(entries, route, p.type, visited);
|
|
202
|
-
collectComponentEntries(entries, route, func.output, visited);
|
|
224
|
+
collectComponentEntries(entries, route, p.type, visited, includeOriginal);
|
|
225
|
+
collectComponentEntries(entries, route, func.output, visited, includeOriginal);
|
|
203
226
|
}
|
|
204
227
|
for (const set of metadata.sets)
|
|
205
|
-
collectComponentEntries(entries, route, set.value, visited);
|
|
228
|
+
collectComponentEntries(entries, route, set.value, visited, includeOriginal);
|
|
206
229
|
for (const map of metadata.maps) {
|
|
207
|
-
collectComponentEntries(entries, route, map.key, visited);
|
|
208
|
-
collectComponentEntries(entries, route, map.value, visited);
|
|
230
|
+
collectComponentEntries(entries, route, map.key, visited, includeOriginal);
|
|
231
|
+
collectComponentEntries(entries, route, map.value, visited, includeOriginal);
|
|
209
232
|
}
|
|
210
233
|
for (const array of metadata.arrays)
|
|
211
234
|
if (visited.arrays.has(array.type) === false) {
|
|
212
235
|
visited.arrays.add(array.type);
|
|
213
236
|
entries.push(componentEntry(route, "arrays", array.type));
|
|
214
|
-
collectComponentEntries(entries, route, array.type.value, visited);
|
|
237
|
+
collectComponentEntries(entries, route, array.type.value, visited, includeOriginal);
|
|
215
238
|
}
|
|
216
239
|
for (const tuple of metadata.tuples)
|
|
217
240
|
if (visited.tuples.has(tuple.type) === false) {
|
|
@@ -219,13 +242,13 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
|
|
|
219
242
|
entries.push(componentEntry(route, "tuples", tuple.type));
|
|
220
243
|
for (const elem of tuple.type
|
|
221
244
|
.elements)
|
|
222
|
-
collectComponentEntries(entries, route, elem, visited);
|
|
245
|
+
collectComponentEntries(entries, route, elem, visited, includeOriginal);
|
|
223
246
|
}
|
|
224
247
|
for (const alias of metadata.aliases)
|
|
225
248
|
if (visited.aliases.has(alias.type) === false) {
|
|
226
249
|
visited.aliases.add(alias.type);
|
|
227
250
|
entries.push(componentEntry(route, "aliases", alias.type));
|
|
228
|
-
collectComponentEntries(entries, route, alias.type.value, visited);
|
|
251
|
+
collectComponentEntries(entries, route, alias.type.value, visited, includeOriginal);
|
|
229
252
|
}
|
|
230
253
|
for (const obj of metadata.objects)
|
|
231
254
|
if (visited.objects.has(obj.type) === false) {
|
|
@@ -233,76 +256,84 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
|
|
|
233
256
|
entries.push(componentEntry(route, "objects", obj.type));
|
|
234
257
|
for (const p of obj.type
|
|
235
258
|
.properties) {
|
|
236
|
-
collectComponentEntries(entries, route, p.key, visited);
|
|
237
|
-
collectComponentEntries(entries, route, p.value, visited);
|
|
259
|
+
collectComponentEntries(entries, route, p.key, visited, includeOriginal);
|
|
260
|
+
collectComponentEntries(entries, route, p.value, visited, includeOriginal);
|
|
238
261
|
}
|
|
239
262
|
}
|
|
240
263
|
};
|
|
241
264
|
const componentEntry = (route, kind, type) => ({
|
|
242
265
|
kind,
|
|
243
266
|
route,
|
|
244
|
-
signature:
|
|
267
|
+
signature: "",
|
|
245
268
|
type,
|
|
246
269
|
});
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
270
|
+
/**
|
|
271
|
+
* Refines a finite component graph until no semantic equivalence class splits.
|
|
272
|
+
* Component edges carry class numbers, so shared children are never expanded as
|
|
273
|
+
* trees. Ordinary payloads retain separate object/array representations. Each
|
|
274
|
+
* round preserves the previous partition and can only split its classes; at
|
|
275
|
+
* most the number of distinct components rounds are necessary.
|
|
276
|
+
*/
|
|
277
|
+
const componentSignatures = (entries) => {
|
|
278
|
+
const kinds = new Map();
|
|
279
|
+
for (const entry of entries)
|
|
280
|
+
kinds.set(entry.type, entry.kind);
|
|
281
|
+
const nodes = [...kinds.keys()];
|
|
282
|
+
let colors = new Map(nodes.map((node) => [node, 0]));
|
|
283
|
+
let classes = nodes.length ? 1 : 0;
|
|
284
|
+
while (nodes.length) {
|
|
285
|
+
const intern = new Map();
|
|
286
|
+
const next = new Map();
|
|
287
|
+
for (const node of nodes) {
|
|
288
|
+
const ancestors = new WeakMap();
|
|
289
|
+
let depth = 0;
|
|
290
|
+
const encode = (value, root = false) => {
|
|
291
|
+
if (value === null || typeof value !== "object")
|
|
292
|
+
return value;
|
|
293
|
+
if (!root && kinds.has(value))
|
|
294
|
+
return ["component", colors.get(value)];
|
|
295
|
+
const position = ancestors.get(value);
|
|
296
|
+
if (position !== undefined)
|
|
297
|
+
return ["payload-cycle", position];
|
|
298
|
+
ancestors.set(value, depth++);
|
|
299
|
+
const result = Array.isArray(value)
|
|
300
|
+
? ["array", value.map((child) => encode(child))]
|
|
301
|
+
: [
|
|
302
|
+
"object",
|
|
303
|
+
Object.entries(value)
|
|
304
|
+
.filter(([key, child]) => child !== undefined && !(root && key === "index"))
|
|
305
|
+
.map(([key, child]) => [key, encode(child)]),
|
|
306
|
+
];
|
|
307
|
+
ancestors.delete(value);
|
|
308
|
+
--depth;
|
|
309
|
+
return result;
|
|
310
|
+
};
|
|
311
|
+
const signature = JSON.stringify([
|
|
312
|
+
colors.get(node),
|
|
313
|
+
kinds.get(node),
|
|
314
|
+
encode(node, true),
|
|
315
|
+
]);
|
|
316
|
+
let color = intern.get(signature);
|
|
317
|
+
if (color === undefined) {
|
|
318
|
+
color = intern.size;
|
|
319
|
+
intern.set(signature, color);
|
|
320
|
+
}
|
|
321
|
+
next.set(node, color);
|
|
322
|
+
}
|
|
323
|
+
colors = next;
|
|
324
|
+
if (intern.size === classes)
|
|
325
|
+
break;
|
|
326
|
+
classes = intern.size;
|
|
327
|
+
}
|
|
328
|
+
return new Map(nodes.map((node) => [node, String(colors.get(node))]));
|
|
329
|
+
};
|
|
253
330
|
const normalizeComponentNamespace = (name) => {
|
|
254
331
|
const next = name.replace(/[^A-Za-z0-9_$]/g, "_");
|
|
255
332
|
return next.length ? next : "Route";
|
|
256
333
|
};
|
|
257
|
-
const escapeComponentName = (used, name) => used.has(name)
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return;
|
|
261
|
-
visited.add(metadata);
|
|
262
|
-
metadata.name_ = undefined;
|
|
263
|
-
if (metadata.rest !== null)
|
|
264
|
-
clearMetadataNameCache(metadata.rest, visited);
|
|
265
|
-
if (metadata.escaped !== null) {
|
|
266
|
-
clearMetadataNameCache(metadata.escaped.original, visited);
|
|
267
|
-
clearMetadataNameCache(metadata.escaped.returns, visited);
|
|
268
|
-
}
|
|
269
|
-
for (const func of metadata.functions) {
|
|
270
|
-
for (const p of func.parameters)
|
|
271
|
-
clearMetadataNameCache(p.type, visited);
|
|
272
|
-
clearMetadataNameCache(func.output, visited);
|
|
273
|
-
}
|
|
274
|
-
for (const set of metadata.sets) {
|
|
275
|
-
set.name_ = undefined;
|
|
276
|
-
clearMetadataNameCache(set.value, visited);
|
|
277
|
-
}
|
|
278
|
-
for (const map of metadata.maps) {
|
|
279
|
-
map.name_ = undefined;
|
|
280
|
-
clearMetadataNameCache(map.key, visited);
|
|
281
|
-
clearMetadataNameCache(map.value, visited);
|
|
282
|
-
}
|
|
283
|
-
for (const array of metadata.arrays) {
|
|
284
|
-
array.name_ = undefined;
|
|
285
|
-
clearMetadataNameCache(array.type.value, visited);
|
|
286
|
-
}
|
|
287
|
-
for (const tuple of metadata.tuples) {
|
|
288
|
-
tuple.name_ = undefined;
|
|
289
|
-
for (const elem of tuple.type
|
|
290
|
-
.elements)
|
|
291
|
-
clearMetadataNameCache(elem, visited);
|
|
292
|
-
}
|
|
293
|
-
for (const alias of metadata.aliases) {
|
|
294
|
-
alias.name_ = undefined;
|
|
295
|
-
clearMetadataNameCache(alias.type.value, visited);
|
|
296
|
-
}
|
|
297
|
-
for (const obj of metadata.objects) {
|
|
298
|
-
obj.name_ = undefined;
|
|
299
|
-
for (const p of obj.type
|
|
300
|
-
.properties) {
|
|
301
|
-
clearMetadataNameCache(p.key, visited);
|
|
302
|
-
clearMetadataNameCache(p.value, visited);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
};
|
|
334
|
+
const escapeComponentName = (used, name) => used.has(StringUtil_1.StringUtil.accessorsOf(name).join("."))
|
|
335
|
+
? escapeComponentName(used, `_${name}`)
|
|
336
|
+
: name;
|
|
306
337
|
const createCollectVisited = () => ({
|
|
307
338
|
aliases: new WeakSet(),
|
|
308
339
|
arrays: new WeakSet(),
|
|
@@ -310,32 +341,19 @@ const createCollectVisited = () => ({
|
|
|
310
341
|
schemas: new WeakSet(),
|
|
311
342
|
tuples: new WeakSet(),
|
|
312
343
|
});
|
|
313
|
-
const uniqueComponents = (input) => {
|
|
314
|
-
const dict = {};
|
|
315
|
-
for (const elem of input) {
|
|
316
|
-
const oldbie = dict[elem.name];
|
|
317
|
-
if (oldbie === undefined)
|
|
318
|
-
dict[elem.name] = elem;
|
|
319
|
-
else if (elem.name.includes(".") ||
|
|
320
|
-
componentScore(oldbie) < componentScore(elem))
|
|
321
|
-
dict[elem.name] = elem;
|
|
322
|
-
}
|
|
323
|
-
return Object.values(dict);
|
|
324
|
-
};
|
|
325
|
-
const componentScore = (input) => JSON.stringify(input, (key, value) =>
|
|
326
|
-
// Resolved-reference back-edges close cycles on recursive schemas;
|
|
327
|
-
// skip them when scoring component "richness".
|
|
328
|
-
key === "type" ? undefined : value).length;
|
|
329
344
|
const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata()) => {
|
|
345
|
+
var _a;
|
|
330
346
|
if (visited.schemas.has(metadata))
|
|
331
347
|
return;
|
|
332
348
|
visited.schemas.add(metadata);
|
|
333
349
|
if (metadata.rest !== null)
|
|
334
350
|
enrollMetadata(dictionary, metadata.rest, visited);
|
|
335
351
|
if (metadata.escaped !== null) {
|
|
336
|
-
enrollMetadata(dictionary, metadata.escaped.original, visited);
|
|
337
352
|
enrollMetadata(dictionary, metadata.escaped.returns, visited);
|
|
338
353
|
}
|
|
354
|
+
for (const template of metadata.templates)
|
|
355
|
+
for (const elem of (_a = template.row) !== null && _a !== void 0 ? _a : template)
|
|
356
|
+
enrollMetadata(dictionary, elem, visited);
|
|
339
357
|
for (const func of metadata.functions) {
|
|
340
358
|
for (const p of func.parameters)
|
|
341
359
|
enrollMetadata(dictionary, p.type, visited);
|
|
@@ -367,6 +385,8 @@ const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata())
|
|
|
367
385
|
}
|
|
368
386
|
};
|
|
369
387
|
const enroll = (dict, elem) => {
|
|
388
|
+
// Collision refinement established equivalence for every remaining same-name
|
|
389
|
+
// entry in this kind; selecting another representative cannot add meaning.
|
|
370
390
|
const oldbie = dict.get(elem.name);
|
|
371
391
|
if (oldbie === elem)
|
|
372
392
|
return false;
|
|
@@ -374,11 +394,6 @@ const enroll = (dict, elem) => {
|
|
|
374
394
|
dict.set(elem.name, elem);
|
|
375
395
|
return true;
|
|
376
396
|
}
|
|
377
|
-
else if (elem.name.includes(".") ||
|
|
378
|
-
componentScore(oldbie) < componentScore(elem)) {
|
|
379
|
-
dict.set(elem.name, elem);
|
|
380
|
-
return true;
|
|
381
|
-
}
|
|
382
397
|
return false;
|
|
383
398
|
};
|
|
384
399
|
const createVisitedMetadata = () => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedHttpRouteAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/TypedHttpRouteAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TypedHttpRouteAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/TypedHttpRouteAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,38 @@
|
|
|
1
1
|
import { IReflectController } from "../structures/IReflectController";
|
|
2
2
|
import { IReflectMcpOperation } from "../structures/IReflectMcpOperation";
|
|
3
|
+
import { IReflectOperationError } from "../structures/IReflectOperationError";
|
|
3
4
|
import { ITypedMcpRoute } from "../structures/ITypedMcpRoute";
|
|
5
|
+
/**
|
|
6
|
+
* Turns a reflected MCP operation into a typed route.
|
|
7
|
+
*
|
|
8
|
+
* @evidence contracts/common.md#principled-implementation An MCP tool is one route whose accessor is `mcp` and the tool name with non-identifier characters replaced.
|
|
9
|
+
* @evidence contracts/common.md#clear-and-simple-design One function.
|
|
10
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts The accessor rule is generic.
|
|
11
|
+
* @evidence contracts/common.md#meaningful-documentation The comment states its purpose.
|
|
12
|
+
* efficient algorithms: The namespace groups declarations; analyze owns graph conversion.
|
|
13
|
+
* reuse equivalent work: The namespace coordinates no computation.
|
|
14
|
+
* bound retention and release resources: The namespace owns no retained state or handles.
|
|
15
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation TypedMcpRouteAnalyzer analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
|
|
16
|
+
*/
|
|
4
17
|
export declare namespace TypedMcpRouteAnalyzer {
|
|
18
|
+
/**
|
|
19
|
+
* Returns the typed route of an MCP tool: its names, schemas, input
|
|
20
|
+
* parameter, return type, and imports. Clone mode resolves a private copy of
|
|
21
|
+
* the native JSON graph and reports missing or unresolved components.
|
|
22
|
+
*
|
|
23
|
+
* @evidence contracts/common.md#principled-implementation Native primitive pipes describe the same JSON wire values the MCP adaptor serializes. Clone requests require these graphs; source-only routes preserve their declared types and imports.
|
|
24
|
+
* @evidence contracts/common.md#clear-and-simple-design One conversion resolves the input and output against their own components and reports clone metadata failures at the route.
|
|
25
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts Native JSON pipes are resolved through the shared metadata adapter; source binding names never select a clone exception and native records remain unchanged.
|
|
26
|
+
* @evidence contracts/common.md#meaningful-documentation The comment states the result.
|
|
27
|
+
* efficient algorithms: Clone mode copies each supplied graph payload once, indexes its components and visits each schema and component target once to check reference closure. Work scales with graph vertices, edges and annotation payload; no compiler or type analysis is repeated.
|
|
28
|
+
* reuse equivalent work: Input and output pipes have independent native component identities, and this operation retains no completed or in-flight request to share across analyses.
|
|
29
|
+
* bound retention and release resources: Resolution copies and visited sets belong to one synchronous conversion; the returned route retains its reachable graphs, and no global cache, process or handle is created.
|
|
30
|
+
* @evidenceExclude contracts/portability.md#os-neutral-implementation TypedMcpRouteAnalyzer.analyze analyzes reflected route metadata; it does not resolve native file identity or launch a process. Source resolution and file emission belong to their filesystem owners.
|
|
31
|
+
*/
|
|
5
32
|
const analyze: (props: {
|
|
6
33
|
controller: IReflectController;
|
|
7
34
|
operation: IReflectMcpOperation;
|
|
35
|
+
clone?: boolean;
|
|
36
|
+
errors?: IReflectOperationError[];
|
|
8
37
|
}) => ITypedMcpRoute[];
|
|
9
38
|
}
|