@nestia/sdk 14.0.0 → 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/README.md +1 -1
- package/assets/bundle/distribute/build-sdk.cjs +28 -0
- package/assets/bundle/distribute/package.json +7 -3
- package/assets/bundle/distribute/tsconfig.json +15 -105
- package/lib/INestiaConfig.d.ts +74 -34
- package/lib/NestiaSdkApplication.d.ts +60 -0
- package/lib/NestiaSdkApplication.js +121 -32
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/NestiaSwaggerComposer.d.ts +21 -0
- package/lib/NestiaSwaggerComposer.js +32 -13
- 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 +52 -77
- 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 +44 -0
- package/lib/analyses/ParameterNameAnalyzer.js +63 -0
- package/lib/analyses/ParameterNameAnalyzer.js.map +1 -0
- package/lib/analyses/PathAnalyzer.d.ts +93 -1
- package/lib/analyses/PathAnalyzer.js +160 -23
- package/lib/analyses/PathAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectControllerAnalyzer.d.ts +32 -0
- package/lib/analyses/ReflectControllerAnalyzer.js +24 -1
- package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +29 -0
- package/lib/analyses/ReflectHttpOperationAnalyzer.js +35 -24
- 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 +143 -23
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +32 -0
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +27 -2
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectMcpOperationAnalyzer.d.ts +29 -0
- package/lib/analyses/ReflectMcpOperationAnalyzer.js +35 -11
- 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 +27 -5
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
- package/lib/analyses/SecurityAnalyzer.d.ts +25 -0
- package/lib/analyses/SecurityAnalyzer.js +39 -19
- package/lib/analyses/SecurityAnalyzer.js.map +1 -1
- package/lib/analyses/SwaggerExampleAnalyzer.d.ts +31 -0
- package/lib/analyses/SwaggerExampleAnalyzer.js +36 -0
- package/lib/analyses/SwaggerExampleAnalyzer.js.map +1 -0
- package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +41 -3
- package/lib/analyses/TypedHttpRouteAnalyzer.js +196 -172
- 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 +20 -1
- 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 +125 -41
- 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/executable/sdk.js +16 -1
- package/lib/executable/sdk.js.map +1 -1
- package/lib/factories/ExpressionFactory.d.ts +18 -0
- package/lib/factories/ExpressionFactory.js +21 -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 +33 -11
- 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 +43 -5
- package/lib/generates/SdkGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.d.ts +36 -6
- package/lib/generates/SwaggerGenerator.js +190 -40
- 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 +57 -0
- package/lib/generates/internal/FilePrinter.js +74 -0
- package/lib/generates/internal/FilePrinter.js.map +1 -1
- package/lib/generates/internal/ImportDictionary.d.ts +93 -1
- package/lib/generates/internal/ImportDictionary.js +103 -2
- package/lib/generates/internal/ImportDictionary.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +121 -1
- package/lib/generates/internal/SdkAliasCollection.js +132 -11
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkDistributionComposer.d.ts +19 -0
- package/lib/generates/internal/SdkDistributionComposer.js +149 -52
- package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.d.ts +18 -0
- package/lib/generates/internal/SdkFileProgrammer.js +101 -12
- 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 +40 -23
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +19 -0
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +46 -34
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +142 -1
- package/lib/generates/internal/SdkHttpParameterProgrammer.js +175 -6
- package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +20 -0
- package/lib/generates/internal/SdkHttpRouteProgrammer.js +36 -32
- package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +38 -0
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +66 -18
- 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 +72 -24
- package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkPathTemplate.d.ts +36 -0
- package/lib/generates/internal/SdkPathTemplate.js +65 -0
- package/lib/generates/internal/SdkPathTemplate.js.map +1 -0
- 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 +111 -27
- package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +53 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.js +407 -67
- 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 +46 -36
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +114 -1
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +120 -5
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +18 -0
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +75 -33
- 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 +37 -8
- package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +40 -1
- package/lib/generates/internal/SwaggerOperationParameterComposer.js +230 -25
- package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +21 -0
- package/lib/generates/internal/SwaggerOperationResponseComposer.js +58 -7
- package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
- package/lib/internal/legacy.d.ts +342 -31
- package/lib/internal/legacy.js +207 -31
- 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 +77 -0
- package/lib/structures/IReflectController.d.ts +10 -0
- package/lib/structures/IReflectHttpOperation.d.ts +10 -0
- package/lib/structures/IReflectHttpOperationException.d.ts +13 -2
- package/lib/structures/IReflectHttpOperationParameter.d.ts +55 -3
- package/lib/structures/IReflectHttpOperationSuccess.d.ts +15 -3
- 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 +18 -0
- package/lib/structures/ITypedHttpRouteException.d.ts +13 -1
- package/lib/structures/ITypedHttpRouteParameter.d.ts +48 -1
- package/lib/structures/ITypedHttpRouteSuccess.d.ts +13 -1
- package/lib/structures/ITypedMcpRoute.d.ts +11 -0
- package/lib/structures/ITypedWebSocketRoute.d.ts +18 -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 +45 -0
- package/lib/utils/SourceFinder.js +74 -16
- 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 +39 -2
- package/lib/utils/VersioningStrategy.js +46 -13
- 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_http_rules.go +210 -0
- package/native/sdk/sdk_metadata_json.go +79 -4
- package/native/sdk/sdk_transform.go +1157 -414
- package/package.json +8 -6
- package/src/INestiaConfig.ts +74 -34
- package/src/NestiaSdkApplication.ts +129 -41
- package/src/NestiaSwaggerComposer.ts +32 -14
- package/src/analyses/AccessorAnalyzer.ts +26 -0
- package/src/analyses/ConfigAnalyzer.ts +52 -90
- package/src/analyses/ImportAnalyzer.ts +25 -0
- package/src/analyses/ParameterNameAnalyzer.ts +75 -0
- package/src/analyses/PathAnalyzer.ts +167 -23
- package/src/analyses/ReflectControllerAnalyzer.ts +34 -1
- package/src/analyses/ReflectHttpOperationAnalyzer.ts +36 -14
- package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +31 -0
- package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +153 -39
- package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +38 -7
- package/src/analyses/ReflectMcpOperationAnalyzer.ts +38 -3
- package/src/analyses/ReflectMetadataAnalyzer.ts +47 -0
- package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +40 -7
- package/src/analyses/SecurityAnalyzer.ts +45 -20
- package/src/analyses/SwaggerExampleAnalyzer.ts +39 -0
- package/src/analyses/TypedHttpRouteAnalyzer.ts +263 -198
- package/src/analyses/TypedMcpRouteAnalyzer.ts +180 -20
- package/src/analyses/TypedWebSocketRouteAnalyzer.ts +20 -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 +172 -44
- package/src/executable/internal/NestiaSwaggerWatch.ts +359 -0
- package/src/executable/sdk.ts +24 -1
- package/src/factories/ExpressionFactory.ts +23 -2
- package/src/factories/IdentifierFactory.ts +24 -0
- package/src/factories/LiteralFactory.ts +51 -13
- 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 +43 -12
- package/src/generates/SwaggerGenerator.ts +229 -46
- package/src/generates/internal/E2eFileProgrammer.ts +20 -0
- package/src/generates/internal/FilePrinter.ts +71 -0
- package/src/generates/internal/ImportDictionary.ts +120 -2
- package/src/generates/internal/SdkAliasCollection.ts +144 -15
- package/src/generates/internal/SdkDistributionComposer.ts +181 -56
- package/src/generates/internal/SdkFileProgrammer.ts +126 -16
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +55 -0
- package/src/generates/internal/SdkHttpCloneReferencer.ts +97 -23
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +47 -30
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +53 -64
- package/src/generates/internal/SdkHttpParameterProgrammer.ts +295 -13
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +37 -31
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +122 -18
- package/src/generates/internal/SdkImportWizard.ts +63 -0
- package/src/generates/internal/SdkMcpRouteProgrammer.ts +150 -33
- package/src/generates/internal/SdkPathTemplate.ts +88 -0
- package/src/generates/internal/SdkRouteDirectory.ts +10 -0
- package/src/generates/internal/SdkTypeProgrammer.ts +137 -36
- package/src/generates/internal/SdkTypeTagProgrammer.ts +536 -78
- package/src/generates/internal/SdkWebSocketCloneProgrammer.ts +185 -142
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +62 -68
- package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +205 -5
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +89 -48
- package/src/generates/internal/SwaggerDescriptionComposer.ts +47 -1
- package/src/generates/internal/SwaggerOperationComposer.ts +38 -6
- package/src/generates/internal/SwaggerOperationParameterComposer.ts +318 -36
- package/src/generates/internal/SwaggerOperationResponseComposer.ts +74 -11
- package/src/internal/legacy-augmentation.d.ts +16 -0
- package/src/internal/legacy.ts +407 -49
- package/src/structures/INestiaProject.ts +10 -0
- package/src/structures/INestiaSdkInput.ts +30 -0
- package/src/structures/IOperationMetadata.ts +83 -0
- package/src/structures/IReflectController.ts +10 -0
- package/src/structures/IReflectHttpOperation.ts +10 -0
- package/src/structures/IReflectHttpOperationException.ts +17 -2
- package/src/structures/IReflectHttpOperationParameter.ts +56 -2
- package/src/structures/IReflectHttpOperationSuccess.ts +19 -3
- 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 +18 -0
- package/src/structures/ITypedHttpRouteException.ts +14 -1
- package/src/structures/ITypedHttpRouteParameter.ts +48 -1
- package/src/structures/ITypedHttpRouteSuccess.ts +14 -1
- package/src/structures/ITypedMcpRoute.ts +12 -0
- package/src/structures/ITypedWebSocketRoute.ts +18 -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 +76 -18
- 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 +51 -16
- 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/lib/validators/HttpHeadersValidator.d.ts +0 -11
- package/lib/validators/HttpHeadersValidator.js +0 -15
- package/lib/validators/HttpHeadersValidator.js.map +0 -1
- package/lib/validators/HttpQueryValidator.d.ts +0 -10
- package/lib/validators/HttpQueryValidator.js +0 -14
- package/lib/validators/HttpQueryValidator.js.map +0 -1
- package/src/generates/internal/SwaggerReadonlyArrayEmender.ts +0 -264
- package/src/validators/HttpHeadersValidator.ts +0 -12
- package/src/validators/HttpQueryValidator.ts +0 -11
|
@@ -4,44 +4,46 @@ 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
|
-
const metaErrors =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
functor: next.validate, // @todo -> CHECK IN TYPIA
|
|
43
|
-
metadata,
|
|
44
|
-
});
|
|
41
|
+
const metaErrors = next.validate === undefined
|
|
42
|
+
? []
|
|
43
|
+
: legacy_1.MetadataFactory.validate({
|
|
44
|
+
functor: next.validate,
|
|
45
|
+
metadata,
|
|
46
|
+
});
|
|
45
47
|
if (metaErrors.length)
|
|
46
48
|
errors.push({
|
|
47
49
|
file: props.controller.file,
|
|
@@ -69,31 +71,36 @@ var TypedHttpRouteAnalyzer;
|
|
|
69
71
|
example: value.example,
|
|
70
72
|
examples: value.examples,
|
|
71
73
|
type: value.type,
|
|
72
|
-
metadata: cast(value, `exception (status: ${key})
|
|
74
|
+
metadata: cast(value, `exception (status: ${key})`),
|
|
73
75
|
},
|
|
74
76
|
]));
|
|
75
|
-
const parameters = props.operation.parameters.map((p) => (Object.assign(Object.assign({}, p), { metadata: cast(p, `parameter (name: ${JSON.stringify(p.name)})
|
|
76
|
-
|
|
77
|
-
const success = Object.assign(Object.assign({}, props.operation.success), { metadata: cast(props.operation.success, "success", props.operation.success.encrypted ||
|
|
78
|
-
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
|
|
79
79
|
.filter((t) => { var _a; return ((_a = t.text) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
80
80
|
t.text[0].text &&
|
|
81
81
|
(t.name === "setHeader" || t.name === "assignHeaders"); })
|
|
82
|
-
.map((t) => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
82
|
+
.map((t) => {
|
|
83
|
+
// the words of the first line; the next lines only describe
|
|
84
|
+
const words = t
|
|
85
|
+
.text[0].text.split("\n")[0]
|
|
86
|
+
.trim()
|
|
87
|
+
.split(/\s+/);
|
|
88
|
+
return t.name === "setHeader"
|
|
89
|
+
? {
|
|
90
|
+
type: "setter",
|
|
91
|
+
source: words[0],
|
|
92
|
+
target: words[1],
|
|
93
|
+
}
|
|
94
|
+
: {
|
|
95
|
+
type: "assigner",
|
|
96
|
+
source: words[0],
|
|
97
|
+
};
|
|
98
|
+
}) });
|
|
92
99
|
if (errors.length) {
|
|
93
100
|
props.errors.push(...errors);
|
|
94
101
|
return [];
|
|
95
102
|
}
|
|
96
|
-
return props.paths.map((path) => { var _a, _b, _c; return (Object.assign(Object.assign({}, props.operation), { controller: props.controller, path, accessor: [...PathUtil_1.PathUtil.accessors(path), props.operation.name], exceptions, pathParameters: parameters.filter((p) => p.category === "param"), queryParameters: parameters
|
|
103
|
+
return props.paths.map((path) => { var _a, _b, _c; return (Object.assign(Object.assign({}, props.operation), { controller: props.controller, key: props.operation.name, path, accessor: [...PathUtil_1.PathUtil.accessors(path), props.operation.name], exceptions, pathParameters: parameters.filter((p) => p.category === "param"), queryParameters: parameters
|
|
97
104
|
.filter((p) => p.category === "query")
|
|
98
105
|
.filter((p) => p.field !== null), headerParameters: parameters
|
|
99
106
|
.filter((p) => p.category === "headers")
|
|
@@ -103,6 +110,19 @@ var TypedHttpRouteAnalyzer;
|
|
|
103
110
|
.filter((p) => p.category === "headers")
|
|
104
111
|
.filter((p) => p.field === null)[0]) !== null && _c !== void 0 ? _c : null, success, extensions: props.operation.extensions })); });
|
|
105
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
|
+
*/
|
|
106
126
|
TypedHttpRouteAnalyzer.routeDictionary = (routes) => {
|
|
107
127
|
renameDuplicateComponents(routes);
|
|
108
128
|
const dictionary = {
|
|
@@ -111,20 +131,9 @@ var TypedHttpRouteAnalyzer;
|
|
|
111
131
|
arrays: new Map(),
|
|
112
132
|
tuples: new Map(),
|
|
113
133
|
};
|
|
114
|
-
for (const route of routes)
|
|
115
|
-
for (const
|
|
116
|
-
|
|
117
|
-
...route.queryParameters,
|
|
118
|
-
...route.headerParameters,
|
|
119
|
-
...(route.queryObject ? [route.queryObject] : []),
|
|
120
|
-
...(route.body ? [route.body] : []),
|
|
121
|
-
...(route.headerObject ? [route.headerObject] : []),
|
|
122
|
-
])
|
|
123
|
-
enrollMetadata(dictionary, p.metadata);
|
|
124
|
-
for (const e of Object.values(route.exceptions))
|
|
125
|
-
enrollMetadata(dictionary, e.metadata);
|
|
126
|
-
enrollMetadata(dictionary, route.success.metadata);
|
|
127
|
-
}
|
|
134
|
+
for (const route of routes)
|
|
135
|
+
for (const metadata of routeMetadatas(route))
|
|
136
|
+
enrollMetadata(dictionary, metadata);
|
|
128
137
|
return dictionary;
|
|
129
138
|
};
|
|
130
139
|
})(TypedHttpRouteAnalyzer || (exports.TypedHttpRouteAnalyzer = TypedHttpRouteAnalyzer = {}));
|
|
@@ -134,10 +143,29 @@ const renameDuplicateComponents = (routes) => {
|
|
|
134
143
|
for (const route of routes)
|
|
135
144
|
for (const metadata of routeMetadatas(route))
|
|
136
145
|
collectComponentEntries(entries, route, metadata);
|
|
137
|
-
|
|
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(".")));
|
|
138
156
|
const groups = new Map();
|
|
139
157
|
for (const entry of entries) {
|
|
140
|
-
|
|
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}`;
|
|
141
169
|
const group = groups.get(key);
|
|
142
170
|
if (group === undefined)
|
|
143
171
|
groups.set(key, [entry]);
|
|
@@ -155,54 +183,58 @@ const renameDuplicateComponents = (routes) => {
|
|
|
155
183
|
const prefix = normalizeComponentNamespace(entry.route.controller.class.name);
|
|
156
184
|
const name = escapeComponentName(used, `${prefix}.${oldName}`);
|
|
157
185
|
renamed.set(entry.signature, name);
|
|
158
|
-
used.add(name);
|
|
186
|
+
used.add(StringUtil_1.StringUtil.accessorsOf(name).join("."));
|
|
159
187
|
return name;
|
|
160
188
|
})();
|
|
161
189
|
entry.type.name = next;
|
|
162
190
|
}
|
|
163
191
|
}
|
|
164
|
-
for (const route of routes)
|
|
165
|
-
for (const metadata of routeMetadatas(route))
|
|
166
|
-
clearMetadataNameCache(metadata);
|
|
167
192
|
};
|
|
168
|
-
const routeMetadatas = (route) =>
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
...
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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;
|
|
181
209
|
if (visited.schemas.has(metadata))
|
|
182
210
|
return;
|
|
183
211
|
visited.schemas.add(metadata);
|
|
184
212
|
if (metadata.rest !== null)
|
|
185
|
-
collectComponentEntries(entries, route, metadata.rest, visited);
|
|
213
|
+
collectComponentEntries(entries, route, metadata.rest, visited, includeOriginal);
|
|
186
214
|
if (metadata.escaped !== null) {
|
|
187
|
-
|
|
188
|
-
|
|
215
|
+
if (includeOriginal)
|
|
216
|
+
collectComponentEntries(entries, route, metadata.escaped.original, visited, includeOriginal);
|
|
217
|
+
collectComponentEntries(entries, route, metadata.escaped.returns, visited, includeOriginal);
|
|
189
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);
|
|
190
222
|
for (const func of metadata.functions) {
|
|
191
223
|
for (const p of func.parameters)
|
|
192
|
-
collectComponentEntries(entries, route, p.type, visited);
|
|
193
|
-
collectComponentEntries(entries, route, func.output, visited);
|
|
224
|
+
collectComponentEntries(entries, route, p.type, visited, includeOriginal);
|
|
225
|
+
collectComponentEntries(entries, route, func.output, visited, includeOriginal);
|
|
194
226
|
}
|
|
195
227
|
for (const set of metadata.sets)
|
|
196
|
-
collectComponentEntries(entries, route, set.value, visited);
|
|
228
|
+
collectComponentEntries(entries, route, set.value, visited, includeOriginal);
|
|
197
229
|
for (const map of metadata.maps) {
|
|
198
|
-
collectComponentEntries(entries, route, map.key, visited);
|
|
199
|
-
collectComponentEntries(entries, route, map.value, visited);
|
|
230
|
+
collectComponentEntries(entries, route, map.key, visited, includeOriginal);
|
|
231
|
+
collectComponentEntries(entries, route, map.value, visited, includeOriginal);
|
|
200
232
|
}
|
|
201
233
|
for (const array of metadata.arrays)
|
|
202
234
|
if (visited.arrays.has(array.type) === false) {
|
|
203
235
|
visited.arrays.add(array.type);
|
|
204
236
|
entries.push(componentEntry(route, "arrays", array.type));
|
|
205
|
-
collectComponentEntries(entries, route, array.type.value, visited);
|
|
237
|
+
collectComponentEntries(entries, route, array.type.value, visited, includeOriginal);
|
|
206
238
|
}
|
|
207
239
|
for (const tuple of metadata.tuples)
|
|
208
240
|
if (visited.tuples.has(tuple.type) === false) {
|
|
@@ -210,13 +242,13 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
|
|
|
210
242
|
entries.push(componentEntry(route, "tuples", tuple.type));
|
|
211
243
|
for (const elem of tuple.type
|
|
212
244
|
.elements)
|
|
213
|
-
collectComponentEntries(entries, route, elem, visited);
|
|
245
|
+
collectComponentEntries(entries, route, elem, visited, includeOriginal);
|
|
214
246
|
}
|
|
215
247
|
for (const alias of metadata.aliases)
|
|
216
248
|
if (visited.aliases.has(alias.type) === false) {
|
|
217
249
|
visited.aliases.add(alias.type);
|
|
218
250
|
entries.push(componentEntry(route, "aliases", alias.type));
|
|
219
|
-
collectComponentEntries(entries, route, alias.type.value, visited);
|
|
251
|
+
collectComponentEntries(entries, route, alias.type.value, visited, includeOriginal);
|
|
220
252
|
}
|
|
221
253
|
for (const obj of metadata.objects)
|
|
222
254
|
if (visited.objects.has(obj.type) === false) {
|
|
@@ -224,76 +256,84 @@ const collectComponentEntries = (entries, route, metadata, visited = createColle
|
|
|
224
256
|
entries.push(componentEntry(route, "objects", obj.type));
|
|
225
257
|
for (const p of obj.type
|
|
226
258
|
.properties) {
|
|
227
|
-
collectComponentEntries(entries, route, p.key, visited);
|
|
228
|
-
collectComponentEntries(entries, route, p.value, visited);
|
|
259
|
+
collectComponentEntries(entries, route, p.key, visited, includeOriginal);
|
|
260
|
+
collectComponentEntries(entries, route, p.value, visited, includeOriginal);
|
|
229
261
|
}
|
|
230
262
|
}
|
|
231
263
|
};
|
|
232
264
|
const componentEntry = (route, kind, type) => ({
|
|
233
265
|
kind,
|
|
234
266
|
route,
|
|
235
|
-
signature:
|
|
267
|
+
signature: "",
|
|
236
268
|
type,
|
|
237
269
|
});
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
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
|
+
};
|
|
244
330
|
const normalizeComponentNamespace = (name) => {
|
|
245
331
|
const next = name.replace(/[^A-Za-z0-9_$]/g, "_");
|
|
246
332
|
return next.length ? next : "Route";
|
|
247
333
|
};
|
|
248
|
-
const escapeComponentName = (used, name) => used.has(name)
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return;
|
|
252
|
-
visited.add(metadata);
|
|
253
|
-
metadata.name_ = undefined;
|
|
254
|
-
if (metadata.rest !== null)
|
|
255
|
-
clearMetadataNameCache(metadata.rest, visited);
|
|
256
|
-
if (metadata.escaped !== null) {
|
|
257
|
-
clearMetadataNameCache(metadata.escaped.original, visited);
|
|
258
|
-
clearMetadataNameCache(metadata.escaped.returns, visited);
|
|
259
|
-
}
|
|
260
|
-
for (const func of metadata.functions) {
|
|
261
|
-
for (const p of func.parameters)
|
|
262
|
-
clearMetadataNameCache(p.type, visited);
|
|
263
|
-
clearMetadataNameCache(func.output, visited);
|
|
264
|
-
}
|
|
265
|
-
for (const set of metadata.sets) {
|
|
266
|
-
set.name_ = undefined;
|
|
267
|
-
clearMetadataNameCache(set.value, visited);
|
|
268
|
-
}
|
|
269
|
-
for (const map of metadata.maps) {
|
|
270
|
-
map.name_ = undefined;
|
|
271
|
-
clearMetadataNameCache(map.key, visited);
|
|
272
|
-
clearMetadataNameCache(map.value, visited);
|
|
273
|
-
}
|
|
274
|
-
for (const array of metadata.arrays) {
|
|
275
|
-
array.name_ = undefined;
|
|
276
|
-
clearMetadataNameCache(array.type.value, visited);
|
|
277
|
-
}
|
|
278
|
-
for (const tuple of metadata.tuples) {
|
|
279
|
-
tuple.name_ = undefined;
|
|
280
|
-
for (const elem of tuple.type
|
|
281
|
-
.elements)
|
|
282
|
-
clearMetadataNameCache(elem, visited);
|
|
283
|
-
}
|
|
284
|
-
for (const alias of metadata.aliases) {
|
|
285
|
-
alias.name_ = undefined;
|
|
286
|
-
clearMetadataNameCache(alias.type.value, visited);
|
|
287
|
-
}
|
|
288
|
-
for (const obj of metadata.objects) {
|
|
289
|
-
obj.name_ = undefined;
|
|
290
|
-
for (const p of obj.type
|
|
291
|
-
.properties) {
|
|
292
|
-
clearMetadataNameCache(p.key, visited);
|
|
293
|
-
clearMetadataNameCache(p.value, visited);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
};
|
|
334
|
+
const escapeComponentName = (used, name) => used.has(StringUtil_1.StringUtil.accessorsOf(name).join("."))
|
|
335
|
+
? escapeComponentName(used, `_${name}`)
|
|
336
|
+
: name;
|
|
297
337
|
const createCollectVisited = () => ({
|
|
298
338
|
aliases: new WeakSet(),
|
|
299
339
|
arrays: new WeakSet(),
|
|
@@ -301,32 +341,19 @@ const createCollectVisited = () => ({
|
|
|
301
341
|
schemas: new WeakSet(),
|
|
302
342
|
tuples: new WeakSet(),
|
|
303
343
|
});
|
|
304
|
-
const uniqueComponents = (input) => {
|
|
305
|
-
const dict = {};
|
|
306
|
-
for (const elem of input) {
|
|
307
|
-
const oldbie = dict[elem.name];
|
|
308
|
-
if (oldbie === undefined)
|
|
309
|
-
dict[elem.name] = elem;
|
|
310
|
-
else if (elem.name.includes(".") ||
|
|
311
|
-
componentScore(oldbie) < componentScore(elem))
|
|
312
|
-
dict[elem.name] = elem;
|
|
313
|
-
}
|
|
314
|
-
return Object.values(dict);
|
|
315
|
-
};
|
|
316
|
-
const componentScore = (input) => JSON.stringify(input, (key, value) =>
|
|
317
|
-
// Resolved-reference back-edges close cycles on recursive schemas;
|
|
318
|
-
// skip them when scoring component "richness".
|
|
319
|
-
key === "type" ? undefined : value).length;
|
|
320
344
|
const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata()) => {
|
|
345
|
+
var _a;
|
|
321
346
|
if (visited.schemas.has(metadata))
|
|
322
347
|
return;
|
|
323
348
|
visited.schemas.add(metadata);
|
|
324
349
|
if (metadata.rest !== null)
|
|
325
350
|
enrollMetadata(dictionary, metadata.rest, visited);
|
|
326
351
|
if (metadata.escaped !== null) {
|
|
327
|
-
enrollMetadata(dictionary, metadata.escaped.original, visited);
|
|
328
352
|
enrollMetadata(dictionary, metadata.escaped.returns, visited);
|
|
329
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);
|
|
330
357
|
for (const func of metadata.functions) {
|
|
331
358
|
for (const p of func.parameters)
|
|
332
359
|
enrollMetadata(dictionary, p.type, visited);
|
|
@@ -358,6 +385,8 @@ const enrollMetadata = (dictionary, metadata, visited = createVisitedMetadata())
|
|
|
358
385
|
}
|
|
359
386
|
};
|
|
360
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.
|
|
361
390
|
const oldbie = dict.get(elem.name);
|
|
362
391
|
if (oldbie === elem)
|
|
363
392
|
return false;
|
|
@@ -365,11 +394,6 @@ const enroll = (dict, elem) => {
|
|
|
365
394
|
dict.set(elem.name, elem);
|
|
366
395
|
return true;
|
|
367
396
|
}
|
|
368
|
-
else if (elem.name.includes(".") ||
|
|
369
|
-
componentScore(oldbie) < componentScore(elem)) {
|
|
370
|
-
dict.set(elem.name, elem);
|
|
371
|
-
return true;
|
|
372
|
-
}
|
|
373
397
|
return false;
|
|
374
398
|
};
|
|
375
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
|
}
|