@nestia/sdk 12.0.0-dev.20260601.1 → 12.0.0-dev.20260612.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.
Files changed (209) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +93 -93
  3. package/assets/bundle/api/HttpError.ts +1 -1
  4. package/assets/bundle/api/IConnection.ts +1 -1
  5. package/assets/bundle/api/Primitive.ts +1 -1
  6. package/assets/bundle/api/Resolved.ts +1 -1
  7. package/assets/bundle/api/index.ts +4 -4
  8. package/assets/bundle/api/module.ts +6 -6
  9. package/assets/bundle/distribute/README.md +37 -37
  10. package/assets/bundle/distribute/package.json +28 -28
  11. package/assets/bundle/distribute/tsconfig.json +109 -109
  12. package/assets/bundle/e2e/index.ts +42 -42
  13. package/assets/config/nestia.config.ts +97 -97
  14. package/lib/NestiaSdkApplication.js +29 -7
  15. package/lib/NestiaSdkApplication.js.map +1 -1
  16. package/lib/NestiaSwaggerComposer.js +21 -13
  17. package/lib/NestiaSwaggerComposer.js.map +1 -1
  18. package/lib/analyses/AccessorAnalyzer.d.ts +4 -1
  19. package/lib/analyses/AccessorAnalyzer.js.map +1 -1
  20. package/lib/analyses/ConfigAnalyzer.js +1 -1
  21. package/lib/analyses/PathAnalyzer.d.ts +18 -3
  22. package/lib/analyses/PathAnalyzer.js +32 -0
  23. package/lib/analyses/PathAnalyzer.js.map +1 -1
  24. package/lib/analyses/ReflectControllerAnalyzer.js +3 -2
  25. package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
  26. package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +1 -1
  27. package/lib/analyses/ReflectHttpOperationAnalyzer.js +1 -1
  28. package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
  29. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +1 -1
  30. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +53 -20
  31. package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -1
  32. package/lib/analyses/ReflectMcpOperationAnalyzer.d.ts +14 -0
  33. package/lib/analyses/ReflectMcpOperationAnalyzer.js +79 -0
  34. package/lib/analyses/ReflectMcpOperationAnalyzer.js.map +1 -0
  35. package/lib/analyses/TypedMcpRouteAnalyzer.d.ts +9 -0
  36. package/lib/analyses/TypedMcpRouteAnalyzer.js +31 -0
  37. package/lib/analyses/TypedMcpRouteAnalyzer.js.map +1 -0
  38. package/lib/executable/internal/NestiaConfigLoader.js +5 -1
  39. package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
  40. package/lib/executable/internal/NestiaSdkCommand.js +30 -14
  41. package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
  42. package/lib/executable/internal/NestiaSdkWatcher.d.ts +10 -0
  43. package/lib/executable/internal/NestiaSdkWatcher.js +322 -0
  44. package/lib/executable/internal/NestiaSdkWatcher.js.map +1 -0
  45. package/lib/executable/sdk.js +12 -12
  46. package/lib/executable/sdk.js.map +1 -1
  47. package/lib/generates/CloneGenerator.js +4 -2
  48. package/lib/generates/CloneGenerator.js.map +1 -1
  49. package/lib/generates/SdkGenerator.js +50 -1
  50. package/lib/generates/SdkGenerator.js.map +1 -1
  51. package/lib/generates/SwaggerGenerator.js +18 -2
  52. package/lib/generates/SwaggerGenerator.js.map +1 -1
  53. package/lib/generates/internal/E2eFileProgrammer.js +3 -1
  54. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  55. package/lib/generates/internal/ImportDictionary.d.ts +1 -0
  56. package/lib/generates/internal/ImportDictionary.js +9 -4
  57. package/lib/generates/internal/ImportDictionary.js.map +1 -1
  58. package/lib/generates/internal/SdkAliasCollection.d.ts +2 -0
  59. package/lib/generates/internal/SdkAliasCollection.js +11 -2
  60. package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
  61. package/lib/generates/internal/SdkDistributionComposer.d.ts +1 -0
  62. package/lib/generates/internal/SdkDistributionComposer.js +3 -0
  63. package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
  64. package/lib/generates/internal/SdkFileProgrammer.js +4 -1
  65. package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
  66. package/lib/generates/internal/SdkHttpCloneReferencer.d.ts +1 -1
  67. package/lib/generates/internal/SdkHttpCloneReferencer.js +42 -9
  68. package/lib/generates/internal/SdkHttpCloneReferencer.js.map +1 -1
  69. package/lib/generates/internal/SdkHttpFunctionProgrammer.js +3 -4
  70. package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
  71. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +2 -1
  72. package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
  73. package/lib/generates/internal/SdkHttpSimulationProgrammer.js +6 -3
  74. package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
  75. package/lib/generates/internal/SdkMcpRouteProgrammer.d.ts +15 -0
  76. package/lib/generates/internal/SdkMcpRouteProgrammer.js +148 -0
  77. package/lib/generates/internal/SdkMcpRouteProgrammer.js.map +1 -0
  78. package/lib/generates/internal/SdkRouteDirectory.d.ts +2 -1
  79. package/lib/generates/internal/SdkRouteDirectory.js.map +1 -1
  80. package/lib/generates/internal/SdkWebSocketCloneProgrammer.d.ts +6 -0
  81. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js +283 -0
  82. package/lib/generates/internal/SdkWebSocketCloneProgrammer.js.map +1 -0
  83. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +11 -9
  84. package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
  85. package/lib/generates/internal/SwaggerOperationParameterComposer.js +10 -2
  86. package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -1
  87. package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +1 -1
  88. package/lib/generates/internal/SwaggerOperationResponseComposer.js +6 -1
  89. package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -1
  90. package/lib/generates/internal/SwaggerReadonlyArrayEmender.d.ts +9 -0
  91. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js +174 -0
  92. package/lib/generates/internal/SwaggerReadonlyArrayEmender.js.map +1 -0
  93. package/lib/structures/INestiaSdkInput.d.ts +9 -2
  94. package/lib/structures/IReflectController.d.ts +2 -1
  95. package/lib/structures/IReflectHttpOperationSuccess.d.ts +4 -2
  96. package/lib/structures/IReflectMcpOperation.d.ts +35 -0
  97. package/lib/structures/IReflectMcpOperation.js +3 -0
  98. package/lib/structures/IReflectMcpOperation.js.map +1 -0
  99. package/lib/structures/IReflectMcpOperationParameter.d.ts +19 -0
  100. package/lib/structures/IReflectMcpOperationParameter.js +3 -0
  101. package/lib/structures/IReflectMcpOperationParameter.js.map +1 -0
  102. package/lib/structures/ITypedApplication.d.ts +2 -1
  103. package/lib/structures/ITypedHttpRouteSuccess.d.ts +3 -1
  104. package/lib/structures/ITypedMcpRoute.d.ts +31 -0
  105. package/lib/structures/ITypedMcpRoute.js +3 -0
  106. package/lib/structures/ITypedMcpRoute.js.map +1 -0
  107. package/lib/utils/HttpResponseContentTypeUtil.d.ts +5 -0
  108. package/lib/utils/HttpResponseContentTypeUtil.js +22 -0
  109. package/lib/utils/HttpResponseContentTypeUtil.js.map +1 -0
  110. package/native/go.mod +52 -52
  111. package/native/go.sum +84 -54
  112. package/native/sdk/register.go +322 -165
  113. package/native/sdk/sdk.go +17 -17
  114. package/native/sdk/sdk_metadata_json.go +327 -327
  115. package/native/sdk/sdk_transform.go +1879 -1549
  116. package/package.json +11 -9
  117. package/src/INestiaConfig.ts +267 -267
  118. package/src/NestiaSdkApplication.ts +39 -8
  119. package/src/NestiaSwaggerComposer.ts +153 -142
  120. package/src/analyses/AccessorAnalyzer.ts +64 -67
  121. package/src/analyses/ConfigAnalyzer.ts +330 -330
  122. package/src/analyses/ImportAnalyzer.ts +92 -92
  123. package/src/analyses/PathAnalyzer.ts +130 -69
  124. package/src/analyses/ReflectControllerAnalyzer.ts +112 -105
  125. package/src/analyses/ReflectHttpOperationAnalyzer.ts +183 -183
  126. package/src/analyses/ReflectHttpOperationExceptionAnalyzer.ts +90 -90
  127. package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +350 -350
  128. package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +163 -130
  129. package/src/analyses/ReflectMcpOperationAnalyzer.ts +124 -0
  130. package/src/analyses/ReflectMetadataAnalyzer.ts +44 -44
  131. package/src/analyses/SecurityAnalyzer.ts +25 -25
  132. package/src/analyses/TypedMcpRouteAnalyzer.ts +34 -0
  133. package/src/decorators/OperationMetadata.ts +29 -29
  134. package/src/executable/internal/CommandParser.ts +15 -15
  135. package/src/executable/internal/NestiaConfigLoader.ts +451 -446
  136. package/src/executable/internal/NestiaSdkCommand.ts +124 -106
  137. package/src/executable/internal/NestiaSdkWatcher.ts +342 -0
  138. package/src/executable/sdk.ts +90 -88
  139. package/src/generates/CloneGenerator.ts +73 -66
  140. package/src/generates/E2eGenerator.ts +32 -32
  141. package/src/generates/SdkGenerator.ts +176 -118
  142. package/src/generates/SwaggerGenerator.ts +342 -310
  143. package/src/generates/internal/E2eFileProgrammer.ts +240 -233
  144. package/src/generates/internal/FilePrinter.ts +65 -65
  145. package/src/generates/internal/ImportDictionary.ts +209 -204
  146. package/src/generates/internal/SdkAliasCollection.ts +274 -261
  147. package/src/generates/internal/SdkDistributionComposer.ts +123 -116
  148. package/src/generates/internal/SdkFileProgrammer.ts +116 -112
  149. package/src/generates/internal/SdkHttpCloneProgrammer.ts +126 -126
  150. package/src/generates/internal/SdkHttpCloneReferencer.ts +131 -77
  151. package/src/generates/internal/SdkHttpFunctionProgrammer.ts +301 -301
  152. package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +520 -510
  153. package/src/generates/internal/SdkHttpParameterProgrammer.ts +165 -165
  154. package/src/generates/internal/SdkHttpRouteProgrammer.ts +109 -109
  155. package/src/generates/internal/SdkHttpSimulationProgrammer.ts +331 -314
  156. package/src/generates/internal/SdkImportWizard.ts +62 -62
  157. package/src/generates/internal/SdkMcpRouteProgrammer.ts +452 -0
  158. package/src/generates/internal/SdkRouteDirectory.ts +21 -18
  159. package/src/generates/internal/SdkTypeTagProgrammer.ts +114 -114
  160. package/src/generates/internal/SdkWebSocketCloneProgrammer.ts +319 -0
  161. package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +389 -389
  162. package/src/generates/internal/SdkWebSocketParameterProgrammer.ts +89 -89
  163. package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +331 -323
  164. package/src/generates/internal/SwaggerDescriptionComposer.ts +64 -64
  165. package/src/generates/internal/SwaggerOperationComposer.ts +119 -119
  166. package/src/generates/internal/SwaggerOperationParameterComposer.ts +175 -162
  167. package/src/generates/internal/SwaggerOperationResponseComposer.ts +115 -110
  168. package/src/generates/internal/SwaggerReadonlyArrayEmender.ts +262 -0
  169. package/src/index.ts +4 -4
  170. package/src/internal/legacy.ts +492 -492
  171. package/src/module.ts +4 -4
  172. package/src/structures/INestiaProject.ts +10 -10
  173. package/src/structures/INestiaSdkInput.ts +27 -20
  174. package/src/structures/IOperationMetadata.ts +41 -41
  175. package/src/structures/IReflectController.ts +18 -15
  176. package/src/structures/IReflectHttpOperation.ts +26 -26
  177. package/src/structures/IReflectHttpOperationException.ts +18 -18
  178. package/src/structures/IReflectHttpOperationParameter.ts +79 -79
  179. package/src/structures/IReflectHttpOperationSuccess.ts +18 -21
  180. package/src/structures/IReflectImport.ts +6 -6
  181. package/src/structures/IReflectMcpOperation.ts +38 -0
  182. package/src/structures/IReflectMcpOperationParameter.ts +27 -0
  183. package/src/structures/IReflectOperationError.ts +26 -26
  184. package/src/structures/IReflectType.ts +4 -4
  185. package/src/structures/IReflectWebSocketOperation.ts +17 -17
  186. package/src/structures/ITypedApplication.ts +12 -11
  187. package/src/structures/ITypedHttpRoute.ts +41 -41
  188. package/src/structures/ITypedHttpRouteException.ts +15 -15
  189. package/src/structures/ITypedHttpRouteParameter.ts +41 -41
  190. package/src/structures/ITypedHttpRouteSuccess.ts +18 -22
  191. package/src/structures/ITypedMcpRoute.ts +33 -0
  192. package/src/structures/ITypedWebSocketRoute.ts +24 -24
  193. package/src/structures/ITypedWebSocketRouteParameter.ts +3 -3
  194. package/src/transform.ts +59 -59
  195. package/src/typings/get-function-location.d.ts +7 -7
  196. package/src/utils/ArrayUtil.ts +26 -26
  197. package/src/utils/EmittedJavaScriptPatcher.ts +88 -88
  198. package/src/utils/FileRetriever.ts +22 -22
  199. package/src/utils/HttpResponseContentTypeUtil.ts +30 -0
  200. package/src/utils/MapUtil.ts +14 -14
  201. package/src/utils/PathUtil.ts +10 -10
  202. package/src/utils/SourceFinder.ts +63 -63
  203. package/src/utils/StringUtil.ts +17 -17
  204. package/src/utils/TsConfigReader.ts +108 -108
  205. package/src/utils/TtscExecutor.ts +68 -68
  206. package/src/utils/VersioningStrategy.ts +28 -28
  207. package/src/validators/HttpHeadersValidator.ts +11 -11
  208. package/src/validators/HttpQueryValidator.ts +11 -11
  209. package/src/validators/TextPlainValidator.ts +17 -17
@@ -1,327 +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
- }
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
+ }