@nestia/sdk 11.2.1 → 12.0.0-dev.20260521.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/bundle/distribute/package.json +1 -1
- package/lib/NestiaSdkApplication.js +5 -4
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/NestiaSwaggerComposer.js +2 -2
- package/lib/NestiaSwaggerComposer.js.map +1 -1
- package/lib/analyses/AccessorAnalyzer.js.map +1 -1
- package/lib/analyses/ConfigAnalyzer.js +133 -7
- package/lib/analyses/ConfigAnalyzer.js.map +1 -1
- package/lib/analyses/ImportAnalyzer.d.ts +9 -2
- package/lib/analyses/ImportAnalyzer.js +13 -50
- package/lib/analyses/ImportAnalyzer.js.map +1 -1
- package/lib/analyses/PathAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.js +5 -4
- package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js +22 -5
- package/lib/analyses/ReflectHttpOperationExceptionAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +8 -8
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +15 -15
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectMetadataAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.d.ts +1 -1
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +1 -1
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
- package/lib/analyses/SecurityAnalyzer.js.map +1 -1
- package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +2 -1
- package/lib/analyses/TypedHttpRouteAnalyzer.js +296 -39
- package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -1
- package/lib/analyses/TypedWebSocketRouteAnalyzer.js +1 -4
- package/lib/analyses/TypedWebSocketRouteAnalyzer.js.map +1 -1
- package/lib/decorators/OperationMetadata.d.ts +12 -2
- package/lib/decorators/OperationMetadata.js +14 -1
- package/lib/decorators/OperationMetadata.js.map +1 -1
- package/lib/executable/internal/CommandParser.js.map +1 -1
- package/lib/executable/internal/NestiaConfigLoader.d.ts +6 -2
- package/lib/executable/internal/NestiaConfigLoader.js +285 -793
- package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
- package/lib/executable/internal/NestiaSdkCommand.js +6 -4
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
- package/lib/executable/sdk.js +17 -5
- package/lib/executable/sdk.js.map +1 -1
- package/lib/generates/CloneGenerator.js +2 -2
- package/lib/generates/CloneGenerator.js.map +1 -1
- package/lib/generates/E2eGenerator.js.map +1 -1
- package/lib/generates/SdkGenerator.js +6 -9
- package/lib/generates/SdkGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.js +20 -107
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +44 -28
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/FilePrinter.d.ts +4 -4
- package/lib/generates/internal/FilePrinter.js +25 -16
- package/lib/generates/internal/FilePrinter.js.map +1 -1
- package/lib/generates/internal/ImportDictionary.d.ts +2 -2
- package/lib/generates/internal/ImportDictionary.js +7 -5
- package/lib/generates/internal/ImportDictionary.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +11 -11
- package/lib/generates/internal/SdkAliasCollection.js +27 -31
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkDistributionComposer.js +15 -70
- package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.js +2 -2
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkHttpCloneProgrammer.js +6 -12
- package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneReferencer.js +2 -1
- package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js +73 -77
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +64 -66
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpParameterProgrammer.d.ts +4 -10
- package/lib/generates/internal/SdkHttpParameterProgrammer.js +15 -22
- package/lib/generates/internal/SdkHttpParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkHttpRouteProgrammer.js +18 -20
- package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +47 -49
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkImportWizard.js.map +1 -1
- package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
- package/lib/generates/internal/SdkTypeProgrammer.d.ts +4 -4
- package/lib/generates/internal/SdkTypeProgrammer.js +66 -67
- package/lib/generates/internal/SdkTypeProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkTypeTagProgrammer.d.ts +1 -2
- package/lib/generates/internal/SdkTypeTagProgrammer.js +29 -11
- package/lib/generates/internal/SdkTypeTagProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +55 -55
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.d.ts +3 -3
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js +9 -12
- package/lib/generates/internal/SdkWebSocketParameterProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +2 -2
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +43 -45
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SwaggerDescriptionComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationComposer.d.ts +1 -1
- package/lib/generates/internal/SwaggerOperationComposer.js +5 -4
- package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +0 -3
- package/lib/generates/internal/SwaggerOperationParameterComposer.js +19 -20
- package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
- package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +1 -1
- package/lib/generates/internal/SwaggerOperationResponseComposer.js +4 -3
- package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internal/legacy.d.ts +180 -0
- package/lib/internal/legacy.js +361 -0
- package/lib/internal/legacy.js.map +1 -0
- package/lib/structures/INestiaProject.d.ts +0 -2
- package/lib/{transformers → structures}/IOperationMetadata.d.ts +2 -7
- package/lib/structures/IOperationMetadata.js.map +1 -0
- package/lib/structures/IReflectHttpOperationException.d.ts +1 -1
- package/lib/structures/IReflectHttpOperationParameter.d.ts +1 -1
- package/lib/structures/IReflectHttpOperationSuccess.d.ts +1 -1
- package/lib/structures/IReflectOperationError.d.ts +1 -1
- package/lib/structures/IReflectOperationError.js.map +1 -1
- package/lib/structures/IReflectWebSocketOperation.d.ts +2 -2
- package/lib/structures/ITypedApplication.d.ts +1 -1
- package/lib/structures/ITypedHttpRouteException.d.ts +1 -1
- package/lib/structures/ITypedHttpRouteParameter.d.ts +1 -1
- package/lib/structures/ITypedHttpRouteSuccess.d.ts +1 -1
- package/lib/structures/ITypedWebSocketRoute.d.ts +2 -2
- package/lib/transform.d.ts +16 -3
- package/lib/transform.js +47 -5
- package/lib/transform.js.map +1 -1
- package/lib/utils/ArrayUtil.js.map +1 -1
- package/lib/utils/FileRetriever.js.map +1 -1
- package/lib/utils/MapUtil.js.map +1 -1
- package/lib/utils/PathUtil.js.map +1 -1
- package/lib/utils/SourceFinder.js.map +1 -1
- package/lib/utils/StringUtil.js.map +1 -1
- package/lib/utils/TsConfigReader.d.ts +7 -0
- package/lib/utils/TsConfigReader.js +102 -0
- package/lib/utils/TsConfigReader.js.map +1 -0
- package/lib/utils/TtscExecutor.d.ts +8 -0
- package/lib/utils/TtscExecutor.js +58 -0
- package/lib/utils/TtscExecutor.js.map +1 -0
- package/lib/utils/VersioningStrategy.js.map +1 -1
- package/lib/validators/HttpHeadersValidator.d.ts +8 -5
- package/lib/validators/HttpHeadersValidator.js +7 -26
- package/lib/validators/HttpHeadersValidator.js.map +1 -1
- package/lib/validators/HttpQueryValidator.d.ts +8 -5
- package/lib/validators/HttpQueryValidator.js +7 -26
- package/lib/validators/HttpQueryValidator.js.map +1 -1
- package/lib/{transformers → validators}/TextPlainValidator.d.ts +1 -1
- package/lib/{transformers → validators}/TextPlainValidator.js +2 -1
- package/lib/validators/TextPlainValidator.js.map +1 -0
- package/native/go.mod +52 -0
- package/native/go.sum +54 -0
- package/native/sdk/register.go +130 -0
- package/native/sdk/sdk.go +17 -0
- package/native/sdk/sdk_metadata_json.go +327 -0
- package/native/sdk/sdk_transform.go +1542 -0
- package/package.json +19 -19
- package/src/NestiaSdkApplication.ts +9 -5
- package/src/NestiaSwaggerComposer.ts +2 -3
- package/src/analyses/ConfigAnalyzer.ts +175 -1
- package/src/analyses/ImportAnalyzer.ts +15 -49
- package/src/analyses/ReflectControllerAnalyzer.ts +1 -1
- package/src/analyses/ReflectHttpOperationAnalyzer.ts +1 -1
- package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +24 -6
- package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +3 -3
- package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +14 -10
- package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +2 -2
- package/src/analyses/TypedHttpRouteAnalyzer.ts +354 -22
- package/src/decorators/OperationMetadata.ts +17 -3
- package/src/executable/internal/NestiaConfigLoader.ts +419 -53
- package/src/executable/internal/NestiaSdkCommand.ts +9 -10
- package/src/executable/sdk.ts +15 -4
- package/src/generates/CloneGenerator.ts +10 -10
- package/src/generates/SwaggerGenerator.ts +28 -9
- package/src/generates/internal/E2eFileProgrammer.ts +80 -43
- package/src/generates/internal/FilePrinter.ts +38 -37
- package/src/generates/internal/ImportDictionary.ts +18 -16
- package/src/generates/internal/SdkAliasCollection.ts +41 -40
- package/src/generates/internal/SdkDistributionComposer.ts +21 -8
- package/src/generates/internal/SdkFileProgrammer.ts +7 -5
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +10 -10
- package/src/generates/internal/SdkHttpCloneReferencer.ts +6 -6
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +101 -78
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +153 -145
- package/src/generates/internal/SdkHttpParameterProgrammer.ts +20 -33
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +2 -2
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +88 -86
- package/src/generates/internal/SdkTypeProgrammer.ts +93 -99
- package/src/generates/internal/SdkTypeTagProgrammer.ts +12 -12
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +128 -118
- package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +15 -13
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +133 -112
- package/src/generates/internal/SwaggerOperationComposer.ts +1 -1
- package/src/generates/internal/SwaggerOperationParameterComposer.ts +10 -9
- package/src/generates/internal/SwaggerOperationResponseComposer.ts +1 -1
- package/src/internal/legacy.ts +492 -0
- package/src/structures/INestiaProject.ts +0 -3
- package/src/{transformers → structures}/IOperationMetadata.ts +2 -7
- package/src/structures/IReflectHttpOperationException.ts +1 -1
- package/src/structures/IReflectHttpOperationParameter.ts +1 -1
- package/src/structures/IReflectHttpOperationSuccess.ts +1 -1
- package/src/structures/IReflectOperationError.ts +1 -1
- package/src/structures/IReflectWebSocketOperation.ts +2 -2
- package/src/structures/ITypedApplication.ts +1 -1
- package/src/structures/ITypedHttpRouteException.ts +1 -1
- package/src/structures/ITypedHttpRouteParameter.ts +1 -1
- package/src/structures/ITypedHttpRouteSuccess.ts +1 -1
- package/src/structures/ITypedWebSocketRoute.ts +2 -2
- package/src/transform.ts +57 -7
- package/src/utils/TsConfigReader.ts +108 -0
- package/src/utils/TtscExecutor.ts +63 -0
- package/src/validators/HttpHeadersValidator.ts +8 -37
- package/src/validators/HttpQueryValidator.ts +8 -37
- package/src/{transformers → validators}/TextPlainValidator.ts +2 -2
- package/lib/analyses/DtoAnalyzer.d.ts +0 -21
- package/lib/analyses/DtoAnalyzer.js +0 -219
- package/lib/analyses/DtoAnalyzer.js.map +0 -1
- package/lib/analyses/ExceptionAnalyzer.d.ts +0 -0
- package/lib/analyses/ExceptionAnalyzer.js +0 -2
- package/lib/analyses/ExceptionAnalyzer.js.map +0 -1
- package/lib/analyses/GenericAnalyzer.d.ts +0 -4
- package/lib/analyses/GenericAnalyzer.js +0 -42
- package/lib/analyses/GenericAnalyzer.js.map +0 -1
- package/lib/structures/IReflectApplication.d.ts +0 -6
- package/lib/structures/IReflectApplication.js +0 -3
- package/lib/structures/IReflectApplication.js.map +0 -1
- package/lib/structures/MethodType.d.ts +0 -4
- package/lib/structures/MethodType.js +0 -8
- package/lib/structures/MethodType.js.map +0 -1
- package/lib/structures/ParamCategory.d.ts +0 -1
- package/lib/structures/ParamCategory.js +0 -3
- package/lib/structures/ParamCategory.js.map +0 -1
- package/lib/structures/TypeEntry.d.ts +0 -9
- package/lib/structures/TypeEntry.js +0 -21
- package/lib/structures/TypeEntry.js.map +0 -1
- package/lib/transformers/IOperationMetadata.js.map +0 -1
- package/lib/transformers/ISdkOperationTransformerContext.d.ts +0 -7
- package/lib/transformers/ISdkOperationTransformerContext.js +0 -3
- package/lib/transformers/ISdkOperationTransformerContext.js.map +0 -1
- package/lib/transformers/SdkOperationProgrammer.d.ts +0 -15
- package/lib/transformers/SdkOperationProgrammer.js +0 -186
- package/lib/transformers/SdkOperationProgrammer.js.map +0 -1
- package/lib/transformers/SdkOperationTransformer.d.ts +0 -4
- package/lib/transformers/SdkOperationTransformer.js +0 -128
- package/lib/transformers/SdkOperationTransformer.js.map +0 -1
- package/lib/transformers/TextPlainValidator.js.map +0 -1
- package/lib/utils/MetadataUtil.d.ts +0 -4
- package/lib/utils/MetadataUtil.js +0 -34
- package/lib/utils/MetadataUtil.js.map +0 -1
- package/lib/utils/StripEnums.d.ts +0 -3
- package/lib/utils/StripEnums.js +0 -3
- package/lib/utils/StripEnums.js.map +0 -1
- package/lib/utils/TypeLiteralExpression.d.ts +0 -0
- package/lib/utils/TypeLiteralExpression.js +0 -2
- package/lib/utils/TypeLiteralExpression.js.map +0 -1
- package/src/analyses/DtoAnalyzer.ts +0 -260
- package/src/analyses/ExceptionAnalyzer.ts +0 -154
- package/src/analyses/GenericAnalyzer.ts +0 -49
- package/src/structures/IReflectApplication.ts +0 -8
- package/src/structures/MethodType.ts +0 -5
- package/src/structures/ParamCategory.ts +0 -1
- package/src/structures/TypeEntry.ts +0 -22
- package/src/transformers/ISdkOperationTransformerContext.ts +0 -8
- package/src/transformers/SdkOperationProgrammer.ts +0 -240
- package/src/transformers/SdkOperationTransformer.ts +0 -248
- package/src/utils/MetadataUtil.ts +0 -26
- package/src/utils/StripEnums.ts +0 -5
- package/src/utils/TypeLiteralExpression.ts +0 -0
- /package/lib/{transformers → structures}/IOperationMetadata.js +0 -0
package/native/go.sum
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
github.com/go-json-experiment/json v0.0.0-20260214004413-d219187c3433 h1:vymEbVwYFP/L05h5TKQxvkXoKxNvTpjxYKdF1Nlwuao=
|
|
2
|
+
github.com/go-json-experiment/json v0.0.0-20260214004413-d219187c3433/go.mod h1:tphK2c80bpPhMOI4v6bIc2xWywPfbqi1Z06+RcrMkDg=
|
|
3
|
+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
|
4
|
+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
|
5
|
+
github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE=
|
|
6
|
+
github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
|
|
7
|
+
github.com/microsoft/typescript-go v0.0.0-20260429010842-56ab4af42157 h1:llOMPhKDiQ+UEJiAaQuuWaJOTg5V7tNNTEf9JPWoYSY=
|
|
8
|
+
github.com/microsoft/typescript-go v0.0.0-20260429010842-56ab4af42157/go.mod h1:m8YA0PMC7ti0GW0RI05D6fEcjQeu98XVS+FWF+VDW2k=
|
|
9
|
+
github.com/peter-evans/patience v0.3.0 h1:rX0JdJeepqdQl1Sk9c9uvorjYYzL2TfgLX1adqYm9cA=
|
|
10
|
+
github.com/peter-evans/patience v0.3.0/go.mod h1:Kmxu5sY1NmBLFSStvXjX1wS9mIv7wMcP/ubucyMOAu0=
|
|
11
|
+
github.com/samchon/ttsc/packages/ttsc v0.0.0-20260519112110-ec1cdf69c509 h1:9XOcQrnIVJ9ZSS2COtZhVgRyMgNojuWV1x/775QXdYk=
|
|
12
|
+
github.com/samchon/ttsc/packages/ttsc v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:V3pedIezHwCYObKxD174holEgc0yyMcGx+4eCI+dgRw=
|
|
13
|
+
github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-20260519112110-ec1cdf69c509 h1:dPku/IntYFpiKuKpsM78WwwxyIdl1QeCRm5hYah7998=
|
|
14
|
+
github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:BCVAEArtMC+X1laJmDwxlsRROIQIYvHeT7Dl0gNjT0A=
|
|
15
|
+
github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-20260519112110-ec1cdf69c509 h1:xo5hPei0KG1R0duQhs3R8ty3NeB/+uNKo8PfcRej/bI=
|
|
16
|
+
github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:0tz+Y8szXmEpXWHWVrLrv11ga1z6tQJQErkUyIWJ9RQ=
|
|
17
|
+
github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-20260519112110-ec1cdf69c509 h1:NsY7Sx27yCLEiHAMQW/FZ9K08AeyfqCFfARbv3YW58Y=
|
|
18
|
+
github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:4xfafgG/qosSp8f0tCf83assFoUKRdGHhvPD1EI9LKg=
|
|
19
|
+
github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-20260519112110-ec1cdf69c509 h1:P0842cLEeKSbUEcr02bojbFeejJNymsoybBvSQImpGc=
|
|
20
|
+
github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:e9awlg1eXjc1Hzx9waw6UEV/2qYJbgo8zFPwQ0mpzig=
|
|
21
|
+
github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-20260519112110-ec1cdf69c509 h1:CVP3DmC77r5Dei7YziDmwlb7h+h4Z7tUAi3sdHY3PQ0=
|
|
22
|
+
github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:DUewcVNEdXyDveQholE4GAsiqqA3C2+SJYqia3nCf00=
|
|
23
|
+
github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-20260519112110-ec1cdf69c509 h1:pSweRJg4DabeOefKJks+adGJ6lvDfCS0GtaKEzUdOl8=
|
|
24
|
+
github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:v86GtrD7qALo6Xkgz1MDomPMSV2D9NdniQWB5t8eY6k=
|
|
25
|
+
github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-20260519112110-ec1cdf69c509 h1:+rhP0a1sNPduYsK1EbL88XFvfAEH3xwNPz04Bz50QGk=
|
|
26
|
+
github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:inUjC/bNlCkO0zIzHZRXlHR/WgLcK0vi2KLc7tpQ1ek=
|
|
27
|
+
github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-20260519112110-ec1cdf69c509 h1:jIEZj4iuDiSFGYQIcBfPTOEOKsw1OiFt1Mii4sDpwu0=
|
|
28
|
+
github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:ESjhY+UiPRspef4JcXcUPNgt4ySQQrlVIUCLKaKeyEQ=
|
|
29
|
+
github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-20260519112110-ec1cdf69c509 h1:ojNRfmIQ6iRGixkd0UN5b9X4BIji7B2tvaC+U9DzezE=
|
|
30
|
+
github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:abIC7C28cUA5IQKmLJulsl2qOvmimhkMNOfjJhRm5jM=
|
|
31
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-20260519112110-ec1cdf69c509 h1:A82Zh/CGlOrit4/tmWqiibutfI/ymj2q2U29rShOkLU=
|
|
32
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:EQwrCr3nY0U1SZBNyp6cQSogAiXsjFxTuT8NlMit1lc=
|
|
33
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-20260519112110-ec1cdf69c509 h1:0GpravTbiWFkotq0V5mCYf719slkFEiqdOJ//00NuGI=
|
|
34
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:hsE2c1bZquSNlDLIkT3SfLH3MrDmMk1BLzWI/KomT1A=
|
|
35
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-20260519112110-ec1cdf69c509 h1:H7ZPgQ8g8uAQrrzKnnYrpxNgUFV245r5ZiLcT5BCxRc=
|
|
36
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:HoQcoC0FEG3iMI6zvjg8r6j/ves+RVH6SRn48VSi5H0=
|
|
37
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-20260519112110-ec1cdf69c509 h1:LpTjuXHHUWskujIXRrbYsuxVWTXHxGG732EheCOVBZ0=
|
|
38
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:XS3LhXkn5xadyRe3tW+9+suW/7gh7dPdL43Q+s/lUDo=
|
|
39
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-20260519112110-ec1cdf69c509 h1:ESHedCnmU7U9bhHD3o5DxWgE5QCOye4FW/TDw6MhXw8=
|
|
40
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-20260519112110-ec1cdf69c509/go.mod h1:otX+qw8aZLNCoBmCwMAn53Nw0RQTPzSoId3DxmE67So=
|
|
41
|
+
github.com/samchon/typia/packages/typia/native v0.0.0-20260510181336-5a7ad21c4d6f h1:0y1cQPDK53apdqBmhaoYY1ceQ6JDAgmKwTdb/V9Rf9E=
|
|
42
|
+
github.com/samchon/typia/packages/typia/native v0.0.0-20260510181336-5a7ad21c4d6f/go.mod h1:SJDrfiCEK5dtObhJeAl0iqelqmmFm/JIjfJ6z0kID60=
|
|
43
|
+
github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
|
|
44
|
+
github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
|
|
45
|
+
github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs=
|
|
46
|
+
github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s=
|
|
47
|
+
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
|
|
48
|
+
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
|
|
49
|
+
golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
|
|
50
|
+
golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
|
51
|
+
golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
|
|
52
|
+
golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
|
|
53
|
+
gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
|
|
54
|
+
gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
package sdk
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"fmt"
|
|
5
|
+
"strings"
|
|
6
|
+
|
|
7
|
+
shimast "github.com/microsoft/typescript-go/shim/ast"
|
|
8
|
+
"github.com/samchon/ttsc/packages/ttsc/driver"
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
// sdkMetadataNamespace is the import alias the injected decorator references.
|
|
12
|
+
const sdkMetadataNamespace = "__OperationMetadata"
|
|
13
|
+
|
|
14
|
+
// init registers the SDK metadata transform with the ttsc driver.
|
|
15
|
+
//
|
|
16
|
+
// ttsc classifies this package (name != "main") as a linked transform and
|
|
17
|
+
// statically links it into the `@nestia/core` host binary — but only for
|
|
18
|
+
// projects that depend on `@nestia/sdk`. A project depending on `@nestia/core`
|
|
19
|
+
// alone never links, compiles, or ships any of this code. When linked, this
|
|
20
|
+
// `init()` runs before the host's `main`; the driver then invokes
|
|
21
|
+
// `ApplyProgram` once per build, after the host's own typia + core passes.
|
|
22
|
+
func init() {
|
|
23
|
+
driver.RegisterPlugin(linkedPlugin{})
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type linkedPlugin struct{}
|
|
27
|
+
|
|
28
|
+
// ApplyProgram injects the `@OperationMetadata("<json>")` decorator that the
|
|
29
|
+
// SDK / Swagger / e2e generators read at runtime, plus the namespace import it
|
|
30
|
+
// references.
|
|
31
|
+
//
|
|
32
|
+
// Insertion is done with synthesized AST nodes (NodeFlagsSynthesized): ttsc's
|
|
33
|
+
// emit prints those structurally, without slicing the original source text, so
|
|
34
|
+
// no source-text rewrite is needed. The metadata is carried as a single JSON
|
|
35
|
+
// string literal — the `OperationMetadata` decorator `JSON.parse`s it — which
|
|
36
|
+
// keeps the constructed AST to one literal node instead of a deep object tree.
|
|
37
|
+
func (linkedPlugin) ApplyProgram(prog *driver.Program, _ driver.PluginContext) error {
|
|
38
|
+
sites, diags := collectNestiaSDKSites(prog)
|
|
39
|
+
if len(diags) > 0 {
|
|
40
|
+
messages := make([]string, 0, len(diags))
|
|
41
|
+
for _, diag := range diags {
|
|
42
|
+
messages = append(messages, diag.String(""))
|
|
43
|
+
}
|
|
44
|
+
return fmt.Errorf("%s", strings.Join(messages, "\n"))
|
|
45
|
+
}
|
|
46
|
+
if len(sites) == 0 {
|
|
47
|
+
return nil
|
|
48
|
+
}
|
|
49
|
+
factory := shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
50
|
+
touched := map[*shimast.SourceFile]bool{}
|
|
51
|
+
for _, site := range sites {
|
|
52
|
+
if site.Method == nil || site.File == nil {
|
|
53
|
+
continue
|
|
54
|
+
}
|
|
55
|
+
injectOperationMetadataDecorator(factory, site.Method, site.Metadata)
|
|
56
|
+
touched[site.File] = true
|
|
57
|
+
}
|
|
58
|
+
for file := range touched {
|
|
59
|
+
injectOperationMetadataImport(factory, file)
|
|
60
|
+
}
|
|
61
|
+
return nil
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
func synthesized(node *shimast.Node) *shimast.Node {
|
|
65
|
+
if node != nil {
|
|
66
|
+
node.Flags |= shimast.NodeFlagsSynthesized
|
|
67
|
+
}
|
|
68
|
+
return node
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// injectOperationMetadataDecorator prepends a synthesized
|
|
72
|
+
// `@__OperationMetadata.OperationMetadata("<json>")` decorator to a controller
|
|
73
|
+
// method. Every site is a method that already carries `@nestia/core`
|
|
74
|
+
// decorators, so its modifier list is non-nil and can be mutated in place.
|
|
75
|
+
func injectOperationMetadataDecorator(
|
|
76
|
+
factory *shimast.NodeFactory,
|
|
77
|
+
method *shimast.Node,
|
|
78
|
+
metadataJSON string,
|
|
79
|
+
) {
|
|
80
|
+
modifiers := method.Modifiers()
|
|
81
|
+
if modifiers == nil {
|
|
82
|
+
return
|
|
83
|
+
}
|
|
84
|
+
namespaceID := synthesized(factory.NewIdentifier(sdkMetadataNamespace))
|
|
85
|
+
memberID := synthesized(factory.NewIdentifier("OperationMetadata"))
|
|
86
|
+
access := synthesized(factory.NewPropertyAccessExpression(
|
|
87
|
+
namespaceID,
|
|
88
|
+
nil,
|
|
89
|
+
memberID,
|
|
90
|
+
shimast.NodeFlagsNone,
|
|
91
|
+
))
|
|
92
|
+
namespaceID.Parent = access
|
|
93
|
+
memberID.Parent = access
|
|
94
|
+
argument := synthesized(factory.NewStringLiteral(metadataJSON, shimast.TokenFlagsNone))
|
|
95
|
+
call := synthesized(factory.NewCallExpression(
|
|
96
|
+
access,
|
|
97
|
+
nil,
|
|
98
|
+
nil,
|
|
99
|
+
factory.NewNodeList([]*shimast.Node{argument}),
|
|
100
|
+
shimast.NodeFlagsNone,
|
|
101
|
+
))
|
|
102
|
+
access.Parent = call
|
|
103
|
+
argument.Parent = call
|
|
104
|
+
decorator := synthesized(factory.NewDecorator(call))
|
|
105
|
+
call.Parent = decorator
|
|
106
|
+
decorator.Parent = method
|
|
107
|
+
modifiers.Nodes = append([]*shimast.Node{decorator}, modifiers.Nodes...)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// injectOperationMetadataImport prepends a synthesized
|
|
111
|
+
// `import * as __OperationMetadata from "@nestia/sdk"` to a touched file.
|
|
112
|
+
func injectOperationMetadataImport(
|
|
113
|
+
factory *shimast.NodeFactory,
|
|
114
|
+
file *shimast.SourceFile,
|
|
115
|
+
) {
|
|
116
|
+
if file == nil || file.Statements == nil {
|
|
117
|
+
return
|
|
118
|
+
}
|
|
119
|
+
namespaceID := synthesized(factory.NewIdentifier(sdkMetadataNamespace))
|
|
120
|
+
namespace := synthesized(factory.NewNamespaceImport(namespaceID))
|
|
121
|
+
namespaceID.Parent = namespace
|
|
122
|
+
clause := synthesized(factory.NewImportClause(shimast.KindUnknown, nil, namespace))
|
|
123
|
+
namespace.Parent = clause
|
|
124
|
+
specifier := synthesized(factory.NewStringLiteral("@nestia/sdk", shimast.TokenFlagsNone))
|
|
125
|
+
declaration := synthesized(factory.NewImportDeclaration(nil, clause, specifier, nil))
|
|
126
|
+
clause.Parent = declaration
|
|
127
|
+
specifier.Parent = declaration
|
|
128
|
+
declaration.Parent = file.AsNode()
|
|
129
|
+
file.Statements.Nodes = append([]*shimast.Node{declaration}, file.Statements.Nodes...)
|
|
130
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Package sdk implements the `@nestia/sdk` ttsc transform plugin: it injects
|
|
2
|
+
// the `@OperationMetadata({...})` decorator the SDK / Swagger / e2e generators
|
|
3
|
+
// read at runtime. It is a separate plugin from `@nestia/core` so that a
|
|
4
|
+
// project depending only on `@nestia/core` never compiles this code — see
|
|
5
|
+
// `packages/core/native/transform` for the shared transform infrastructure
|
|
6
|
+
// this package imports.
|
|
7
|
+
package sdk
|
|
8
|
+
|
|
9
|
+
import (
|
|
10
|
+
"io"
|
|
11
|
+
"os"
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
var (
|
|
15
|
+
stdout io.Writer = os.Stdout
|
|
16
|
+
stderr io.Writer = os.Stderr
|
|
17
|
+
)
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
package sdk
|
|
2
|
+
|
|
3
|
+
import schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
4
|
+
|
|
5
|
+
func nestiaSDKMetadataComponentsLiteral(
|
|
6
|
+
components schemametadata.IMetadataComponents,
|
|
7
|
+
) map[string]any {
|
|
8
|
+
return map[string]any{
|
|
9
|
+
"objects": nestiaSDKMetadataObjectTypes(components.Objects),
|
|
10
|
+
"aliases": nestiaSDKMetadataAliasTypes(components.Aliases),
|
|
11
|
+
"arrays": nestiaSDKMetadataArrayTypes(components.Arrays),
|
|
12
|
+
"tuples": nestiaSDKMetadataTupleTypes(components.Tuples),
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
func nestiaSDKMetadataSchemaLiteral(meta *schemametadata.IMetadataSchema) any {
|
|
17
|
+
if meta == nil {
|
|
18
|
+
return nestiaSDKLiteralNull
|
|
19
|
+
}
|
|
20
|
+
return map[string]any{
|
|
21
|
+
"any": meta.Any,
|
|
22
|
+
"required": meta.Required,
|
|
23
|
+
"optional": meta.Optional,
|
|
24
|
+
"nullable": meta.Nullable,
|
|
25
|
+
"functions": nestiaSDKMetadataFunctions(meta.Functions),
|
|
26
|
+
"atomics": nestiaSDKMetadataAtomics(meta.Atomics),
|
|
27
|
+
"constants": nestiaSDKMetadataConstants(meta.Constants),
|
|
28
|
+
"templates": nestiaSDKMetadataTemplates(meta.Templates),
|
|
29
|
+
"escaped": nestiaSDKMetadataEscaped(meta.Escaped),
|
|
30
|
+
"rest": nestiaSDKMetadataSchemaLiteral(meta.Rest),
|
|
31
|
+
"arrays": nestiaSDKMetadataReferences(meta.Arrays),
|
|
32
|
+
"tuples": nestiaSDKMetadataReferences(meta.Tuples),
|
|
33
|
+
"objects": nestiaSDKMetadataReferences(meta.Objects),
|
|
34
|
+
"aliases": nestiaSDKMetadataReferences(meta.Aliases),
|
|
35
|
+
"natives": nestiaSDKMetadataReferences(meta.Natives),
|
|
36
|
+
"sets": nestiaSDKMetadataSets(meta.Sets),
|
|
37
|
+
"maps": nestiaSDKMetadataMaps(meta.Maps),
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
func nestiaSDKMetadataFunctions(
|
|
42
|
+
input []*schemametadata.IMetadataSchema_IFunction,
|
|
43
|
+
) []any {
|
|
44
|
+
output := []any{}
|
|
45
|
+
for _, fn := range input {
|
|
46
|
+
if fn == nil {
|
|
47
|
+
continue
|
|
48
|
+
}
|
|
49
|
+
output = append(output, map[string]any{
|
|
50
|
+
"parameters": nestiaSDKMetadataParameters(fn.Parameters),
|
|
51
|
+
"output": nestiaSDKMetadataSchemaLiteral(fn.Output),
|
|
52
|
+
"async": fn.Async,
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
return output
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
func nestiaSDKMetadataParameters(
|
|
59
|
+
input []*schemametadata.IMetadataSchema_IParameter,
|
|
60
|
+
) []any {
|
|
61
|
+
output := []any{}
|
|
62
|
+
for _, param := range input {
|
|
63
|
+
if param == nil {
|
|
64
|
+
continue
|
|
65
|
+
}
|
|
66
|
+
output = append(output, map[string]any{
|
|
67
|
+
"name": param.Name,
|
|
68
|
+
"type": nestiaSDKMetadataSchemaLiteral(param.Type),
|
|
69
|
+
"description": nestiaSDKOptionalString(param.Description),
|
|
70
|
+
"jsDocTags": nestiaSDKJSDocTags(param.JsDocTags),
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
return output
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
func nestiaSDKMetadataAtomics(
|
|
77
|
+
input []schemametadata.IMetadataSchema_IAtomic,
|
|
78
|
+
) []any {
|
|
79
|
+
output := []any{}
|
|
80
|
+
for _, atomic := range input {
|
|
81
|
+
output = append(output, map[string]any{
|
|
82
|
+
"type": atomic.Type,
|
|
83
|
+
"tags": nestiaSDKMetadataTagMatrix(atomic.Tags),
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
return output
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
func nestiaSDKMetadataConstants(
|
|
90
|
+
input []schemametadata.IMetadataSchema_IConstant,
|
|
91
|
+
) []any {
|
|
92
|
+
output := []any{}
|
|
93
|
+
for _, constant := range input {
|
|
94
|
+
values := []any{}
|
|
95
|
+
for _, value := range constant.Values {
|
|
96
|
+
values = append(values, map[string]any{
|
|
97
|
+
"value": value.Value,
|
|
98
|
+
"tags": nestiaSDKMetadataTagMatrix(value.Tags),
|
|
99
|
+
"description": nestiaSDKOptionalString(value.Description),
|
|
100
|
+
"jsDocTags": nestiaSDKJSDocTags(value.JsDocTags),
|
|
101
|
+
})
|
|
102
|
+
}
|
|
103
|
+
output = append(output, map[string]any{
|
|
104
|
+
"type": constant.Type,
|
|
105
|
+
"values": values,
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
return output
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
func nestiaSDKMetadataTemplates(
|
|
112
|
+
input []schemametadata.IMetadataSchema_ITemplate,
|
|
113
|
+
) []any {
|
|
114
|
+
output := []any{}
|
|
115
|
+
for _, template := range input {
|
|
116
|
+
row := []any{}
|
|
117
|
+
for _, child := range template.Row {
|
|
118
|
+
row = append(row, nestiaSDKMetadataSchemaLiteral(child))
|
|
119
|
+
}
|
|
120
|
+
output = append(output, map[string]any{
|
|
121
|
+
"row": row,
|
|
122
|
+
"tags": nestiaSDKMetadataTagMatrix(template.Tags),
|
|
123
|
+
})
|
|
124
|
+
}
|
|
125
|
+
return output
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
func nestiaSDKMetadataEscaped(
|
|
129
|
+
input *schemametadata.IMetadataSchema_IEscaped,
|
|
130
|
+
) any {
|
|
131
|
+
if input == nil {
|
|
132
|
+
return nestiaSDKLiteralNull
|
|
133
|
+
}
|
|
134
|
+
return map[string]any{
|
|
135
|
+
"original": nestiaSDKMetadataSchemaLiteral(input.Original),
|
|
136
|
+
"returns": nestiaSDKMetadataSchemaLiteral(input.Returns),
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
func nestiaSDKMetadataReferences(
|
|
141
|
+
input []schemametadata.IMetadataSchema_IReference,
|
|
142
|
+
) []any {
|
|
143
|
+
output := []any{}
|
|
144
|
+
for _, ref := range input {
|
|
145
|
+
output = append(output, map[string]any{
|
|
146
|
+
"name": ref.Name,
|
|
147
|
+
"tags": nestiaSDKMetadataTagMatrix(ref.Tags),
|
|
148
|
+
})
|
|
149
|
+
}
|
|
150
|
+
return output
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
func nestiaSDKMetadataSets(input []schemametadata.IMetadataSchema_ISet) []any {
|
|
154
|
+
output := []any{}
|
|
155
|
+
for _, set := range input {
|
|
156
|
+
output = append(output, map[string]any{
|
|
157
|
+
"value": nestiaSDKMetadataSchemaLiteral(set.Value),
|
|
158
|
+
"tags": nestiaSDKMetadataTagMatrix(set.Tags),
|
|
159
|
+
})
|
|
160
|
+
}
|
|
161
|
+
return output
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
func nestiaSDKMetadataMaps(input []schemametadata.IMetadataSchema_IMap) []any {
|
|
165
|
+
output := []any{}
|
|
166
|
+
for _, entry := range input {
|
|
167
|
+
output = append(output, map[string]any{
|
|
168
|
+
"key": nestiaSDKMetadataSchemaLiteral(entry.Key),
|
|
169
|
+
"value": nestiaSDKMetadataSchemaLiteral(entry.Value),
|
|
170
|
+
"tags": nestiaSDKMetadataTagMatrix(entry.Tags),
|
|
171
|
+
})
|
|
172
|
+
}
|
|
173
|
+
return output
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
func nestiaSDKMetadataObjectTypes(
|
|
177
|
+
input []schemametadata.IMetadataSchema_IObjectType,
|
|
178
|
+
) []any {
|
|
179
|
+
output := []any{}
|
|
180
|
+
for _, object := range input {
|
|
181
|
+
properties := []any{}
|
|
182
|
+
for _, property := range object.Properties {
|
|
183
|
+
if property == nil {
|
|
184
|
+
continue
|
|
185
|
+
}
|
|
186
|
+
properties = append(properties, map[string]any{
|
|
187
|
+
"key": nestiaSDKMetadataSchemaLiteral(property.Key),
|
|
188
|
+
"value": nestiaSDKMetadataSchemaLiteral(property.Value),
|
|
189
|
+
"description": nestiaSDKOptionalString(property.Description),
|
|
190
|
+
"jsDocTags": nestiaSDKJSDocTags(property.JsDocTags),
|
|
191
|
+
"mutability": nestiaSDKOptionalString(property.Mutability),
|
|
192
|
+
})
|
|
193
|
+
}
|
|
194
|
+
output = append(output, map[string]any{
|
|
195
|
+
"name": object.Name,
|
|
196
|
+
"properties": properties,
|
|
197
|
+
"description": nestiaSDKOptionalString(object.Description),
|
|
198
|
+
"jsDocTags": nestiaSDKJSDocTags(object.JsDocTags),
|
|
199
|
+
"index": object.Index,
|
|
200
|
+
"recursive": object.Recursive,
|
|
201
|
+
"nullables": nestiaSDKBoolArray(object.Nullables),
|
|
202
|
+
})
|
|
203
|
+
}
|
|
204
|
+
return output
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
func nestiaSDKMetadataAliasTypes(
|
|
208
|
+
input []schemametadata.IMetadataSchema_IAliasType,
|
|
209
|
+
) []any {
|
|
210
|
+
output := []any{}
|
|
211
|
+
for _, alias := range input {
|
|
212
|
+
output = append(output, map[string]any{
|
|
213
|
+
"name": alias.Name,
|
|
214
|
+
"value": nestiaSDKMetadataSchemaLiteral(alias.Value),
|
|
215
|
+
"description": nestiaSDKOptionalString(alias.Description),
|
|
216
|
+
"jsDocTags": nestiaSDKJSDocTags(alias.JsDocTags),
|
|
217
|
+
"recursive": alias.Recursive,
|
|
218
|
+
"nullables": nestiaSDKBoolArray(alias.Nullables),
|
|
219
|
+
})
|
|
220
|
+
}
|
|
221
|
+
return output
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
func nestiaSDKMetadataArrayTypes(
|
|
225
|
+
input []schemametadata.IMetadataSchema_IArrayType,
|
|
226
|
+
) []any {
|
|
227
|
+
output := []any{}
|
|
228
|
+
for _, array := range input {
|
|
229
|
+
output = append(output, map[string]any{
|
|
230
|
+
"name": array.Name,
|
|
231
|
+
"value": nestiaSDKMetadataSchemaLiteral(array.Value),
|
|
232
|
+
"nullables": nestiaSDKBoolArray(array.Nullables),
|
|
233
|
+
"recursive": array.Recursive,
|
|
234
|
+
"index": nestiaSDKOptionalInt(array.Index),
|
|
235
|
+
})
|
|
236
|
+
}
|
|
237
|
+
return output
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
func nestiaSDKMetadataTupleTypes(
|
|
241
|
+
input []schemametadata.IMetadataSchema_ITupleType,
|
|
242
|
+
) []any {
|
|
243
|
+
output := []any{}
|
|
244
|
+
for _, tuple := range input {
|
|
245
|
+
elements := []any{}
|
|
246
|
+
for _, elem := range tuple.Elements {
|
|
247
|
+
elements = append(elements, nestiaSDKMetadataSchemaLiteral(elem))
|
|
248
|
+
}
|
|
249
|
+
output = append(output, map[string]any{
|
|
250
|
+
"name": tuple.Name,
|
|
251
|
+
"elements": elements,
|
|
252
|
+
"index": nestiaSDKOptionalInt(tuple.Index),
|
|
253
|
+
"recursive": tuple.Recursive,
|
|
254
|
+
"nullables": nestiaSDKBoolArray(tuple.Nullables),
|
|
255
|
+
})
|
|
256
|
+
}
|
|
257
|
+
return output
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
func nestiaSDKMetadataTagMatrix(
|
|
261
|
+
input [][]schemametadata.IMetadataTypeTag,
|
|
262
|
+
) []any {
|
|
263
|
+
output := []any{}
|
|
264
|
+
for _, row := range input {
|
|
265
|
+
items := []any{}
|
|
266
|
+
for _, tag := range row {
|
|
267
|
+
items = append(items, nestiaSDKMetadataTypeTag(tag))
|
|
268
|
+
}
|
|
269
|
+
output = append(output, items)
|
|
270
|
+
}
|
|
271
|
+
return output
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
func nestiaSDKMetadataTypeTag(tag schemametadata.IMetadataTypeTag) map[string]any {
|
|
275
|
+
output := map[string]any{
|
|
276
|
+
"target": tag.Target,
|
|
277
|
+
"name": tag.Name,
|
|
278
|
+
"kind": tag.Kind,
|
|
279
|
+
"exclusive": tag.Exclusive,
|
|
280
|
+
"value": tag.Value,
|
|
281
|
+
"schema": tag.Schema,
|
|
282
|
+
}
|
|
283
|
+
if tag.Validate != "" {
|
|
284
|
+
output["validate"] = tag.Validate
|
|
285
|
+
}
|
|
286
|
+
return output
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
func nestiaSDKJSDocTags(input []schemametadata.IJsDocTagInfo) []any {
|
|
290
|
+
output := []any{}
|
|
291
|
+
for _, tag := range input {
|
|
292
|
+
text := []any{}
|
|
293
|
+
for _, item := range tag.Text {
|
|
294
|
+
text = append(text, map[string]any{
|
|
295
|
+
"text": item.Text,
|
|
296
|
+
"kind": item.Kind,
|
|
297
|
+
})
|
|
298
|
+
}
|
|
299
|
+
output = append(output, map[string]any{
|
|
300
|
+
"name": tag.Name,
|
|
301
|
+
"text": text,
|
|
302
|
+
})
|
|
303
|
+
}
|
|
304
|
+
return output
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
func nestiaSDKBoolArray(input []bool) []any {
|
|
308
|
+
output := []any{}
|
|
309
|
+
for _, value := range input {
|
|
310
|
+
output = append(output, value)
|
|
311
|
+
}
|
|
312
|
+
return output
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
func nestiaSDKOptionalString(input *string) any {
|
|
316
|
+
if input == nil {
|
|
317
|
+
return nestiaSDKLiteralNull
|
|
318
|
+
}
|
|
319
|
+
return *input
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
func nestiaSDKOptionalInt(input *int) any {
|
|
323
|
+
if input == nil {
|
|
324
|
+
return nestiaSDKLiteralNull
|
|
325
|
+
}
|
|
326
|
+
return *input
|
|
327
|
+
}
|