typia 6.10.2 → 6.10.3-dev.20240925

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 (447) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +118 -118
  3. package/lib/index.mjs +1 -0
  4. package/lib/index.mjs.map +1 -1
  5. package/lib/programmers/llm/LlmApplicationProgrammer.js +3 -0
  6. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  7. package/lib/tags/Example.d.ts +14 -0
  8. package/lib/tags/Example.js +3 -0
  9. package/lib/tags/Example.js.map +1 -0
  10. package/lib/tags/Examples.d.ts +10 -0
  11. package/lib/tags/Examples.js +3 -0
  12. package/lib/tags/Examples.js.map +1 -0
  13. package/lib/tags/index.d.ts +2 -0
  14. package/lib/tags/index.js +2 -0
  15. package/lib/tags/index.js.map +1 -1
  16. package/package.json +2 -2
  17. package/src/AssertionGuard.ts +1 -1
  18. package/src/CamelCase.ts +75 -75
  19. package/src/IRandomGenerator.ts +66 -66
  20. package/src/IValidation.ts +21 -21
  21. package/src/PascalCase.ts +71 -71
  22. package/src/Primitive.ts +92 -92
  23. package/src/Resolved.ts +74 -74
  24. package/src/SnakeCase.ts +126 -126
  25. package/src/TypeGuardError.ts +37 -37
  26. package/src/executable/TypiaGenerateWizard.ts +83 -83
  27. package/src/executable/TypiaPatchWizard.ts +42 -42
  28. package/src/executable/TypiaSetupWizard.ts +174 -174
  29. package/src/executable/setup/ArgumentParser.ts +43 -43
  30. package/src/executable/setup/CommandExecutor.ts +8 -8
  31. package/src/executable/setup/FileRetriever.ts +22 -22
  32. package/src/executable/setup/PackageManager.ts +86 -86
  33. package/src/executable/setup/PluginConfigurator.ts +69 -69
  34. package/src/executable/typia.ts +55 -55
  35. package/src/factories/CommentFactory.ts +79 -79
  36. package/src/factories/ExpressionFactory.ts +150 -150
  37. package/src/factories/IdentifierFactory.ts +70 -70
  38. package/src/factories/JsonMetadataFactory.ts +53 -53
  39. package/src/factories/LiteralFactory.ts +47 -47
  40. package/src/factories/MetadataCollection.ts +274 -274
  41. package/src/factories/MetadataCommentTagFactory.ts +534 -534
  42. package/src/factories/MetadataFactory.ts +314 -314
  43. package/src/factories/MetadataTypeTagFactory.ts +336 -336
  44. package/src/factories/MetadataTypeTagSchemaFactory.ts +59 -59
  45. package/src/factories/NumericRangeFactory.ts +72 -72
  46. package/src/factories/ProtobufFactory.ts +267 -267
  47. package/src/factories/StatementFactory.ts +74 -74
  48. package/src/factories/TemplateFactory.ts +56 -56
  49. package/src/factories/TypeFactory.ts +118 -118
  50. package/src/factories/ValueFactory.ts +12 -12
  51. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  52. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  53. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  54. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +42 -42
  55. package/src/factories/internal/metadata/emplace_metadata_object.ts +186 -186
  56. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  57. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  58. package/src/factories/internal/metadata/iterate_metadata.ts +100 -100
  59. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  60. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  61. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  62. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  63. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  64. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +28 -28
  65. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  66. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  67. package/src/factories/internal/metadata/iterate_metadata_function.ts +89 -89
  68. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  69. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  70. package/src/factories/internal/metadata/iterate_metadata_native.ts +220 -220
  71. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  72. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  73. package/src/factories/internal/metadata/iterate_metadata_sort.ts +74 -74
  74. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  75. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  76. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  77. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  78. package/src/functional/$FormDataReader/index.ts +1 -1
  79. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  80. package/src/functional/$HeadersReader/index.ts +1 -1
  81. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  82. package/src/functional/$ParameterReader/index.ts +1 -1
  83. package/src/functional/$ProtobufReader.ts +194 -194
  84. package/src/functional/$ProtobufSizer.ts +144 -144
  85. package/src/functional/$ProtobufWriter.ts +145 -145
  86. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  87. package/src/functional/$QueryReader/index.ts +1 -1
  88. package/src/functional/$any.ts +3 -3
  89. package/src/functional/$clone.ts +48 -48
  90. package/src/functional/$convention.ts +37 -37
  91. package/src/functional/$dictionary.ts +22 -22
  92. package/src/functional/$every.ts +11 -11
  93. package/src/functional/$guard.ts +21 -21
  94. package/src/functional/$is_between.ts +2 -2
  95. package/src/functional/$join.ts +46 -46
  96. package/src/functional/$number.ts +12 -12
  97. package/src/functional/$report.ts +13 -13
  98. package/src/functional/$rest.ts +3 -3
  99. package/src/functional/$stoll.ts +8 -8
  100. package/src/functional/$string.ts +43 -43
  101. package/src/functional/$strlen.ts +7 -7
  102. package/src/functional/$tail.ts +5 -5
  103. package/src/functional/$throws.ts +10 -10
  104. package/src/functional/$varint.ts +130 -130
  105. package/src/functional/$zigzag.ts +39 -39
  106. package/src/functional/IProtobufWriter.ts +18 -18
  107. package/src/functional/Namespace/functional.ts +5 -5
  108. package/src/functional/Namespace/http.ts +9 -9
  109. package/src/functional/Namespace/index.ts +77 -77
  110. package/src/functional/Namespace/json.ts +15 -15
  111. package/src/functional/Namespace/llm.ts +20 -20
  112. package/src/functional/Namespace/misc.ts +14 -14
  113. package/src/functional/Namespace/notations.ts +23 -23
  114. package/src/functional/Namespace/protobuf.ts +20 -20
  115. package/src/functional/is.ts +10 -10
  116. package/src/functional.ts +872 -872
  117. package/src/http.ts +1266 -1266
  118. package/src/index.ts +4 -4
  119. package/src/json.ts +738 -738
  120. package/src/llm.ts +186 -186
  121. package/src/misc.ts +757 -757
  122. package/src/module.ts +1023 -1023
  123. package/src/notations.ts +1020 -1020
  124. package/src/programmers/AssertProgrammer.ts +397 -397
  125. package/src/programmers/CheckerProgrammer.ts +1138 -1138
  126. package/src/programmers/FeatureProgrammer.ts +549 -549
  127. package/src/programmers/IsProgrammer.ts +220 -220
  128. package/src/programmers/RandomProgrammer.ts +955 -955
  129. package/src/programmers/TypiaProgrammer.ts +157 -157
  130. package/src/programmers/ValidateProgrammer.ts +382 -382
  131. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +141 -141
  132. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +108 -108
  133. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +98 -98
  134. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  135. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +101 -101
  136. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +106 -106
  137. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +123 -123
  138. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +267 -267
  139. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +126 -126
  140. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  141. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  142. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  143. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  144. package/src/programmers/helpers/FunctionImporter.ts +97 -97
  145. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  146. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  147. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  148. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  149. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  150. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  151. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  152. package/src/programmers/helpers/PruneJoiner.ts +139 -139
  153. package/src/programmers/helpers/RandomJoiner.ts +145 -145
  154. package/src/programmers/helpers/RandomRanger.ts +171 -171
  155. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  156. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  157. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  158. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  159. package/src/programmers/helpers/disable_function_importer_declare.ts +33 -33
  160. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +91 -91
  161. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +91 -91
  162. package/src/programmers/http/HttpAssertQueryProgrammer.ts +93 -93
  163. package/src/programmers/http/HttpFormDataProgrammer.ts +278 -278
  164. package/src/programmers/http/HttpHeadersProgrammer.ts +347 -347
  165. package/src/programmers/http/HttpIsFormDataProgrammer.ts +102 -102
  166. package/src/programmers/http/HttpIsHeadersProgrammer.ts +102 -102
  167. package/src/programmers/http/HttpIsQueryProgrammer.ts +104 -104
  168. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  169. package/src/programmers/http/HttpQueryProgrammer.ts +298 -298
  170. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +85 -85
  171. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +85 -85
  172. package/src/programmers/http/HttpValidateQueryProgrammer.ts +87 -87
  173. package/src/programmers/internal/application_array.ts +61 -61
  174. package/src/programmers/internal/application_bigint.ts +25 -25
  175. package/src/programmers/internal/application_boolean.ts +25 -25
  176. package/src/programmers/internal/application_description.ts +12 -12
  177. package/src/programmers/internal/application_escaped.ts +74 -74
  178. package/src/programmers/internal/application_number.ts +25 -25
  179. package/src/programmers/internal/application_plugin.ts +19 -19
  180. package/src/programmers/internal/application_string.ts +25 -25
  181. package/src/programmers/internal/application_templates.ts +62 -62
  182. package/src/programmers/internal/application_title.ts +20 -20
  183. package/src/programmers/internal/application_union_discriminator.ts +35 -35
  184. package/src/programmers/internal/application_v30_alias.ts +52 -52
  185. package/src/programmers/internal/application_v30_constant.ts +18 -18
  186. package/src/programmers/internal/application_v30_native.ts +28 -28
  187. package/src/programmers/internal/application_v30_object.ts +149 -149
  188. package/src/programmers/internal/application_v30_schema.ts +161 -161
  189. package/src/programmers/internal/application_v30_tuple.ts +33 -33
  190. package/src/programmers/internal/application_v31_alias.ts +41 -41
  191. package/src/programmers/internal/application_v31_constant.ts +29 -29
  192. package/src/programmers/internal/application_v31_native.ts +24 -24
  193. package/src/programmers/internal/application_v31_object.ts +130 -130
  194. package/src/programmers/internal/application_v31_schema.ts +159 -159
  195. package/src/programmers/internal/application_v31_tuple.ts +21 -21
  196. package/src/programmers/internal/check_array_length.ts +45 -45
  197. package/src/programmers/internal/check_bigint.ts +49 -49
  198. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  199. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  200. package/src/programmers/internal/check_everything.ts +23 -23
  201. package/src/programmers/internal/check_native.ts +21 -21
  202. package/src/programmers/internal/check_number.ts +107 -107
  203. package/src/programmers/internal/check_object.ts +61 -61
  204. package/src/programmers/internal/check_string.ts +48 -48
  205. package/src/programmers/internal/check_template.ts +46 -46
  206. package/src/programmers/internal/check_union_array_like.ts +307 -307
  207. package/src/programmers/internal/decode_union_object.ts +99 -99
  208. package/src/programmers/internal/feature_object_entries.ts +58 -58
  209. package/src/programmers/internal/llm_schema_array.ts +22 -22
  210. package/src/programmers/internal/llm_schema_escaped.ts +61 -61
  211. package/src/programmers/internal/llm_schema_native.ts +17 -17
  212. package/src/programmers/internal/llm_schema_object.ts +129 -129
  213. package/src/programmers/internal/llm_schema_station.ts +185 -185
  214. package/src/programmers/internal/llm_schema_tuple.ts +31 -31
  215. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  216. package/src/programmers/internal/postfix_of_tuple.ts +2 -2
  217. package/src/programmers/internal/prune_object_properties.ts +60 -60
  218. package/src/programmers/internal/random_custom.ts +37 -37
  219. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  220. package/src/programmers/internal/stringify_native.ts +7 -7
  221. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  222. package/src/programmers/internal/template_to_pattern.ts +15 -15
  223. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  224. package/src/programmers/json/JsonApplicationProgrammer.ts +82 -82
  225. package/src/programmers/json/JsonAssertParseProgrammer.ts +96 -96
  226. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +104 -104
  227. package/src/programmers/json/JsonIsParseProgrammer.ts +110 -110
  228. package/src/programmers/json/JsonIsStringifyProgrammer.ts +102 -102
  229. package/src/programmers/json/JsonStringifyProgrammer.ts +909 -909
  230. package/src/programmers/json/JsonValidateParseProgrammer.ts +87 -87
  231. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +111 -111
  232. package/src/programmers/llm/LlmApplicationProgrammer.ts +219 -216
  233. package/src/programmers/llm/LlmSchemaProgrammer.ts +49 -49
  234. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +87 -87
  235. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +105 -105
  236. package/src/programmers/misc/MiscCloneProgrammer.ts +781 -781
  237. package/src/programmers/misc/MiscIsCloneProgrammer.ts +93 -93
  238. package/src/programmers/misc/MiscIsPruneProgrammer.ts +91 -91
  239. package/src/programmers/misc/MiscLiteralsProgrammer.ts +70 -70
  240. package/src/programmers/misc/MiscPruneProgrammer.ts +560 -560
  241. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +104 -104
  242. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +101 -101
  243. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +91 -91
  244. package/src/programmers/notations/NotationGeneralProgrammer.ts +714 -714
  245. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +97 -97
  246. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +110 -110
  247. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +91 -91
  248. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +95 -95
  249. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +646 -646
  250. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +852 -852
  251. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +104 -104
  252. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +93 -93
  253. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  254. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +85 -85
  255. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +109 -109
  256. package/src/protobuf.ts +999 -999
  257. package/src/reflect.ts +63 -63
  258. package/src/schemas/json/IJsonApplication.ts +22 -22
  259. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  260. package/src/schemas/metadata/IMetadata.ts +36 -36
  261. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  262. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  263. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  264. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  265. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  266. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  267. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  268. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  269. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  270. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  271. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  272. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  273. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  274. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  275. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  276. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  277. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  278. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  279. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  280. package/src/schemas/metadata/Metadata.ts +616 -616
  281. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  282. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  283. package/src/schemas/metadata/MetadataArray.ts +49 -49
  284. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  285. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  286. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  287. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  288. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  289. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  290. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  291. package/src/schemas/metadata/MetadataObject.ts +139 -139
  292. package/src/schemas/metadata/MetadataParameter.ts +50 -50
  293. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  294. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  295. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  296. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  297. package/src/tags/Constant.ts +15 -15
  298. package/src/tags/ContentMediaType.ts +10 -10
  299. package/src/tags/Default.ts +22 -22
  300. package/src/tags/Example.ts +17 -0
  301. package/src/tags/Examples.ts +16 -0
  302. package/src/tags/ExclusiveMaximum.ts +25 -25
  303. package/src/tags/ExclusiveMinimum.ts +25 -25
  304. package/src/tags/Format.ts +16 -16
  305. package/src/tags/JsonSchemaPlugin.ts +8 -8
  306. package/src/tags/MaxItems.ts +12 -12
  307. package/src/tags/MaxLength.ts +12 -12
  308. package/src/tags/Maximum.ts +19 -19
  309. package/src/tags/MinItems.ts +12 -12
  310. package/src/tags/MinLength.ts +12 -12
  311. package/src/tags/Minimum.ts +19 -19
  312. package/src/tags/MultipleOf.ts +21 -21
  313. package/src/tags/Pattern.ts +31 -31
  314. package/src/tags/TagBase.ts +76 -76
  315. package/src/tags/Type.ts +32 -32
  316. package/src/tags/UniqueItems.ts +14 -14
  317. package/src/tags/index.ts +20 -18
  318. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  319. package/src/transform.ts +35 -35
  320. package/src/transformers/CallExpressionTransformer.ts +508 -508
  321. package/src/transformers/FileTransformer.ts +91 -91
  322. package/src/transformers/IProject.ts +15 -15
  323. package/src/transformers/ITransformOptions.ts +62 -62
  324. package/src/transformers/ImportTransformer.ts +66 -66
  325. package/src/transformers/NodeTransformer.ts +13 -13
  326. package/src/transformers/TransformerError.ts +60 -60
  327. package/src/transformers/features/AssertTransformer.ts +16 -16
  328. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  329. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  330. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  331. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  332. package/src/transformers/features/IsTransformer.ts +10 -10
  333. package/src/transformers/features/RandomTransformer.ts +44 -44
  334. package/src/transformers/features/ValidateTransformer.ts +11 -11
  335. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  336. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  337. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  338. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  339. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  340. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  341. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  342. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  343. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  344. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  345. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  346. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  347. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  348. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  349. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  350. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  351. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  352. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  353. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  354. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  355. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  356. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  357. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  358. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  359. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  360. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  361. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  362. package/src/transformers/features/json/JsonApplicationTransformer.ts +124 -124
  363. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  364. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  365. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  366. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  367. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  368. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  369. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  370. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  371. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  372. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  373. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  374. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  375. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  376. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  377. package/src/transformers/features/llm/LlmApplicationTransformer.ts +83 -83
  378. package/src/transformers/features/llm/LlmSchemaTransformer.ts +53 -53
  379. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  380. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  381. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  382. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  383. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  384. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  385. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  386. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  387. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  388. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  389. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  390. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  391. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  392. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  393. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  394. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  395. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  396. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  397. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  398. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  399. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  400. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  401. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  402. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  403. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  404. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  405. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  406. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  407. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  408. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  409. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  410. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  411. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  412. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  413. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  414. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  415. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  416. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  417. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  418. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  419. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  420. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  421. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  422. package/src/transformers/features/reflect/ReflectNameTransformer.ts +66 -66
  423. package/src/transformers/internal/GenericTransformer.ts +104 -104
  424. package/src/typings/Atomic.ts +13 -13
  425. package/src/typings/ClassProperties.ts +5 -5
  426. package/src/typings/Customizable.ts +5 -5
  427. package/src/typings/Equal.ts +18 -18
  428. package/src/typings/IsTuple.ts +9 -9
  429. package/src/typings/NativeClass.ts +23 -23
  430. package/src/typings/OmitNever.ts +3 -3
  431. package/src/typings/ProtobufAtomic.ts +19 -19
  432. package/src/typings/SpecialFields.ts +3 -3
  433. package/src/typings/ValidationPipe.ts +9 -9
  434. package/src/typings/ValueOf.ts +20 -20
  435. package/src/typings/Writable.ts +11 -11
  436. package/src/utils/ArrayUtil.ts +41 -41
  437. package/src/utils/Escaper.ts +50 -50
  438. package/src/utils/MapUtil.ts +12 -12
  439. package/src/utils/NameEncoder.ts +32 -32
  440. package/src/utils/NamingConvention/NamingConvention.ts +89 -89
  441. package/src/utils/NamingConvention/index.ts +1 -1
  442. package/src/utils/PatternUtil.ts +29 -29
  443. package/src/utils/RandomGenerator/RandomGenerator.ts +119 -119
  444. package/src/utils/RandomGenerator/index.ts +1 -1
  445. package/src/utils/Singleton.ts +16 -16
  446. package/src/utils/StringUtil/StringUtil.ts +7 -7
  447. package/src/utils/StringUtil/index.ts +1 -1
@@ -1,9 +1,9 @@
1
- import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufCreateDecodeTransformer {
6
- export const transform = GenericTransformer.factory("protobuf.createDecode")(
7
- (project) => (modulo) => ProtobufDecodeProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufCreateDecodeTransformer {
6
+ export const transform = GenericTransformer.factory("protobuf.createDecode")(
7
+ (project) => (modulo) => ProtobufDecodeProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufCreateEncodeTransformer {
6
- export const transform = GenericTransformer.factory("protobuf.createEncode")(
7
- (project) => (modulo) => ProtobufEncodeProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufCreateEncodeTransformer {
6
+ export const transform = GenericTransformer.factory("protobuf.createEncode")(
7
+ (project) => (modulo) => ProtobufEncodeProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ProtobufIsDecodeProgrammer } from "../../../programmers/protobuf/ProtobufIsDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufCreateIsDecodeTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "protobuf.createIsDecode",
8
- )((project) => (modulo) => ProtobufIsDecodeProgrammer.write(project)(modulo));
9
- }
1
+ import { ProtobufIsDecodeProgrammer } from "../../../programmers/protobuf/ProtobufIsDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufCreateIsDecodeTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "protobuf.createIsDecode",
8
+ )((project) => (modulo) => ProtobufIsDecodeProgrammer.write(project)(modulo));
9
+ }
@@ -1,9 +1,9 @@
1
- import { ProtobufIsEncodeProgrammer } from "../../../programmers/protobuf/ProtobufIsEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufCreateIsEncodeTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "protobuf.createIsEncode",
8
- )((project) => (modulo) => ProtobufIsEncodeProgrammer.write(project)(modulo));
9
- }
1
+ import { ProtobufIsEncodeProgrammer } from "../../../programmers/protobuf/ProtobufIsEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufCreateIsEncodeTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "protobuf.createIsEncode",
8
+ )((project) => (modulo) => ProtobufIsEncodeProgrammer.write(project)(modulo));
9
+ }
@@ -1,12 +1,12 @@
1
- import { ProtobufValidateDecodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufCreateValidateDecodeTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "protobuf.createValidateDecode",
8
- )(
9
- (project) => (modulo) =>
10
- ProtobufValidateDecodeProgrammer.write(project)(modulo),
11
- );
12
- }
1
+ import { ProtobufValidateDecodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufCreateValidateDecodeTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "protobuf.createValidateDecode",
8
+ )(
9
+ (project) => (modulo) =>
10
+ ProtobufValidateDecodeProgrammer.write(project)(modulo),
11
+ );
12
+ }
@@ -1,12 +1,12 @@
1
- import { ProtobufValidateEncodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufCreateValidateEncodeTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "protobuf.createValidateEncode",
8
- )(
9
- (project) => (modulo) =>
10
- ProtobufValidateEncodeProgrammer.write(project)(modulo),
11
- );
12
- }
1
+ import { ProtobufValidateEncodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufCreateValidateEncodeTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "protobuf.createValidateEncode",
8
+ )(
9
+ (project) => (modulo) =>
10
+ ProtobufValidateEncodeProgrammer.write(project)(modulo),
11
+ );
12
+ }
@@ -1,9 +1,9 @@
1
- import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufDecodeTransformer {
6
- export const transform = GenericTransformer.scalar("protobuf.decode")(
7
- (project) => (modulo) => ProtobufDecodeProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { ProtobufDecodeProgrammer } from "../../../programmers/protobuf/ProtobufDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufDecodeTransformer {
6
+ export const transform = GenericTransformer.scalar("protobuf.decode")(
7
+ (project) => (modulo) => ProtobufDecodeProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufEncodeTransformer {
6
- export const transform = GenericTransformer.scalar("protobuf.encode")(
7
- (project) => (modulo) => ProtobufEncodeProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { ProtobufEncodeProgrammer } from "../../../programmers/protobuf/ProtobufEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufEncodeTransformer {
6
+ export const transform = GenericTransformer.scalar("protobuf.encode")(
7
+ (project) => (modulo) => ProtobufEncodeProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ProtobufIsDecodeProgrammer } from "../../../programmers/protobuf/ProtobufIsDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufIsDecodeTransformer {
6
- export const transform = GenericTransformer.scalar("protobuf.isDecode")(
7
- (project) => (modulo) => ProtobufIsDecodeProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { ProtobufIsDecodeProgrammer } from "../../../programmers/protobuf/ProtobufIsDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufIsDecodeTransformer {
6
+ export const transform = GenericTransformer.scalar("protobuf.isDecode")(
7
+ (project) => (modulo) => ProtobufIsDecodeProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { ProtobufIsEncodeProgrammer } from "../../../programmers/protobuf/ProtobufIsEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufIsEncodeTransformer {
6
- export const transform = GenericTransformer.scalar("protobuf.isEncode")(
7
- (project) => (modulo) => ProtobufIsEncodeProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { ProtobufIsEncodeProgrammer } from "../../../programmers/protobuf/ProtobufIsEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufIsEncodeTransformer {
6
+ export const transform = GenericTransformer.scalar("protobuf.isEncode")(
7
+ (project) => (modulo) => ProtobufIsEncodeProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,33 +1,33 @@
1
- import ts from "typescript";
2
-
3
- import { ProtobufMessageProgrammer } from "../../../programmers/protobuf/ProtobufMessageProgrammer";
4
-
5
- import { IProject } from "../../IProject";
6
- import { TransformerError } from "../../TransformerError";
7
-
8
- export namespace ProtobufMessageTransformer {
9
- export const transform =
10
- (project: IProject) =>
11
- (_modulo: ts.LeftHandSideExpression) =>
12
- (expression: ts.CallExpression): ts.Expression => {
13
- // CHECK GENERIC ARGUMENT EXISTENCE
14
- if (!expression.typeArguments || !expression.typeArguments[0])
15
- throw new TransformerError({
16
- code: "typia.protobuf.message",
17
- message: "generic argument is not specified.",
18
- });
19
-
20
- // GET TYPE INFO
21
- const type: ts.Type = project.checker.getTypeFromTypeNode(
22
- expression.typeArguments[0],
23
- );
24
- if (type.isTypeParameter())
25
- throw new TransformerError({
26
- code: "tyipa.protobuf.message",
27
- message: "non-specified generic argument.",
28
- });
29
-
30
- // DO TRANSFORM
31
- return ProtobufMessageProgrammer.write(project)(type);
32
- };
33
- }
1
+ import ts from "typescript";
2
+
3
+ import { ProtobufMessageProgrammer } from "../../../programmers/protobuf/ProtobufMessageProgrammer";
4
+
5
+ import { IProject } from "../../IProject";
6
+ import { TransformerError } from "../../TransformerError";
7
+
8
+ export namespace ProtobufMessageTransformer {
9
+ export const transform =
10
+ (project: IProject) =>
11
+ (_modulo: ts.LeftHandSideExpression) =>
12
+ (expression: ts.CallExpression): ts.Expression => {
13
+ // CHECK GENERIC ARGUMENT EXISTENCE
14
+ if (!expression.typeArguments || !expression.typeArguments[0])
15
+ throw new TransformerError({
16
+ code: "typia.protobuf.message",
17
+ message: "generic argument is not specified.",
18
+ });
19
+
20
+ // GET TYPE INFO
21
+ const type: ts.Type = project.checker.getTypeFromTypeNode(
22
+ expression.typeArguments[0],
23
+ );
24
+ if (type.isTypeParameter())
25
+ throw new TransformerError({
26
+ code: "tyipa.protobuf.message",
27
+ message: "non-specified generic argument.",
28
+ });
29
+
30
+ // DO TRANSFORM
31
+ return ProtobufMessageProgrammer.write(project)(type);
32
+ };
33
+ }
@@ -1,10 +1,10 @@
1
- import { ProtobufValidateDecodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateDecodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufValidateDecodeTransformer {
6
- export const transform = GenericTransformer.scalar("protobuf.validateDecode")(
7
- (project) => (modulo) =>
8
- ProtobufValidateDecodeProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { ProtobufValidateDecodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateDecodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufValidateDecodeTransformer {
6
+ export const transform = GenericTransformer.scalar("protobuf.validateDecode")(
7
+ (project) => (modulo) =>
8
+ ProtobufValidateDecodeProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { ProtobufValidateEncodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateEncodeProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace ProtobufValidateEncodeTransformer {
6
- export const transform = GenericTransformer.scalar("protobuf.validateEncode")(
7
- (project) => (modulo) =>
8
- ProtobufValidateEncodeProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { ProtobufValidateEncodeProgrammer } from "../../../programmers/protobuf/ProtobufValidateEncodeProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace ProtobufValidateEncodeTransformer {
6
+ export const transform = GenericTransformer.scalar("protobuf.validateEncode")(
7
+ (project) => (modulo) =>
8
+ ProtobufValidateEncodeProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,63 +1,63 @@
1
- import ts from "typescript";
2
-
3
- import { LiteralFactory } from "../../../factories/LiteralFactory";
4
- import { MetadataCollection } from "../../../factories/MetadataCollection";
5
- import { MetadataFactory } from "../../../factories/MetadataFactory";
6
-
7
- import { IMetadataApplication } from "../../../schemas/metadata/IMetadataApplication";
8
- import { Metadata } from "../../../schemas/metadata/Metadata";
9
-
10
- import { IProject } from "../../IProject";
11
- import { TransformerError } from "../../TransformerError";
12
-
13
- export namespace ReflectMetadataTransformer {
14
- export const transform =
15
- (project: IProject) =>
16
- (expression: ts.CallExpression): ts.Expression => {
17
- if (!expression.typeArguments?.length)
18
- throw new TransformerError({
19
- code: "typia.reflect.metadata",
20
- message: "no generic argument.",
21
- });
22
-
23
- // VALIDATE TUPLE ARGUMENTS
24
- const top: ts.Node = expression.typeArguments[0]!;
25
- if (!ts.isTupleTypeNode(top)) return expression;
26
- else if (top.elements.some((child) => !ts.isTypeNode(child)))
27
- return expression;
28
-
29
- // GET TYPES
30
- const types: ts.Type[] = top.elements.map((child) =>
31
- project.checker.getTypeFromTypeNode(child as ts.TypeNode),
32
- );
33
- if (types.some((t) => t.isTypeParameter()))
34
- throw new TransformerError({
35
- code: "typia.reflect.metadata",
36
- message: "non-specified generic argument(s).",
37
- });
38
-
39
- // METADATA
40
- const collection: MetadataCollection = new MetadataCollection();
41
- const metadatas: Array<Metadata> = types.map((type) => {
42
- const result = MetadataFactory.analyze(
43
- project.checker,
44
- project.context,
45
- )({
46
- escape: true,
47
- constant: true,
48
- absorb: true,
49
- functional: true,
50
- })(collection)(type);
51
- if (result.success === false)
52
- throw TransformerError.from("typia.reflect.metadata")(result.errors);
53
- return result.data;
54
- });
55
-
56
- // CONVERT TO PRIMITIVE TYPE
57
- const app: IMetadataApplication = {
58
- metadatas: metadatas.map((metadata) => metadata.toJSON()),
59
- components: collection.toJSON(),
60
- };
61
- return LiteralFactory.generate(app);
62
- };
63
- }
1
+ import ts from "typescript";
2
+
3
+ import { LiteralFactory } from "../../../factories/LiteralFactory";
4
+ import { MetadataCollection } from "../../../factories/MetadataCollection";
5
+ import { MetadataFactory } from "../../../factories/MetadataFactory";
6
+
7
+ import { IMetadataApplication } from "../../../schemas/metadata/IMetadataApplication";
8
+ import { Metadata } from "../../../schemas/metadata/Metadata";
9
+
10
+ import { IProject } from "../../IProject";
11
+ import { TransformerError } from "../../TransformerError";
12
+
13
+ export namespace ReflectMetadataTransformer {
14
+ export const transform =
15
+ (project: IProject) =>
16
+ (expression: ts.CallExpression): ts.Expression => {
17
+ if (!expression.typeArguments?.length)
18
+ throw new TransformerError({
19
+ code: "typia.reflect.metadata",
20
+ message: "no generic argument.",
21
+ });
22
+
23
+ // VALIDATE TUPLE ARGUMENTS
24
+ const top: ts.Node = expression.typeArguments[0]!;
25
+ if (!ts.isTupleTypeNode(top)) return expression;
26
+ else if (top.elements.some((child) => !ts.isTypeNode(child)))
27
+ return expression;
28
+
29
+ // GET TYPES
30
+ const types: ts.Type[] = top.elements.map((child) =>
31
+ project.checker.getTypeFromTypeNode(child as ts.TypeNode),
32
+ );
33
+ if (types.some((t) => t.isTypeParameter()))
34
+ throw new TransformerError({
35
+ code: "typia.reflect.metadata",
36
+ message: "non-specified generic argument(s).",
37
+ });
38
+
39
+ // METADATA
40
+ const collection: MetadataCollection = new MetadataCollection();
41
+ const metadatas: Array<Metadata> = types.map((type) => {
42
+ const result = MetadataFactory.analyze(
43
+ project.checker,
44
+ project.context,
45
+ )({
46
+ escape: true,
47
+ constant: true,
48
+ absorb: true,
49
+ functional: true,
50
+ })(collection)(type);
51
+ if (result.success === false)
52
+ throw TransformerError.from("typia.reflect.metadata")(result.errors);
53
+ return result.data;
54
+ });
55
+
56
+ // CONVERT TO PRIMITIVE TYPE
57
+ const app: IMetadataApplication = {
58
+ metadatas: metadatas.map((metadata) => metadata.toJSON()),
59
+ components: collection.toJSON(),
60
+ };
61
+ return LiteralFactory.generate(app);
62
+ };
63
+ }
@@ -1,66 +1,66 @@
1
- import ts from "typescript";
2
-
3
- import { MetadataCollection } from "../../../factories/MetadataCollection";
4
- import { MetadataFactory } from "../../../factories/MetadataFactory";
5
-
6
- import { Metadata } from "../../../schemas/metadata/Metadata";
7
-
8
- import { ValidationPipe } from "../../../typings/ValidationPipe";
9
-
10
- import { IProject } from "../../IProject";
11
- import { TransformerError } from "../../TransformerError";
12
-
13
- export namespace ReflectNameTransformer {
14
- export const transform =
15
- (project: IProject) =>
16
- (expression: ts.CallExpression): ts.Expression => {
17
- if (!expression.typeArguments?.length)
18
- throw new TransformerError({
19
- code: "typia.reflect.metadata",
20
- message: "no generic argument.",
21
- });
22
- const top: ts.Node = expression.typeArguments[0]!;
23
- const regular: boolean = (() => {
24
- // CHECK SECOND ARGUMENT EXISTENCE
25
- const second: ts.Node | undefined = expression.typeArguments[1]!;
26
- if (second === undefined) return false;
27
-
28
- // GET BOOELAN VALUE
29
- const value: Metadata = getMetadata(project)(second);
30
- return value.size() === 1 &&
31
- value.constants.length === 1 &&
32
- value.constants[0]!.type === "boolean" &&
33
- value.constants[0]!.values.length === 1
34
- ? (value.constants[0]!.values[0]!.value as boolean)
35
- : false;
36
- })();
37
-
38
- // RETURNS NAME
39
- return ts.factory.createStringLiteral(
40
- regular ? getMetadata(project)(top).getName() : top.getFullText(),
41
- );
42
- };
43
- }
44
-
45
- const getMetadata =
46
- (project: IProject) =>
47
- (node: ts.Node): Metadata => {
48
- const type: ts.Type = project.checker.getTypeFromTypeNode(
49
- node as ts.TypeNode,
50
- );
51
- const collection: MetadataCollection = new MetadataCollection({
52
- replace: MetadataCollection.replace,
53
- });
54
- const result: ValidationPipe<Metadata, MetadataFactory.IError> =
55
- MetadataFactory.analyze(
56
- project.checker,
57
- project.context,
58
- )({
59
- escape: false,
60
- constant: true,
61
- absorb: false,
62
- })(collection)(type);
63
- if (result.success === false)
64
- throw TransformerError.from("typia.reflect.name")(result.errors);
65
- return result.data;
66
- };
1
+ import ts from "typescript";
2
+
3
+ import { MetadataCollection } from "../../../factories/MetadataCollection";
4
+ import { MetadataFactory } from "../../../factories/MetadataFactory";
5
+
6
+ import { Metadata } from "../../../schemas/metadata/Metadata";
7
+
8
+ import { ValidationPipe } from "../../../typings/ValidationPipe";
9
+
10
+ import { IProject } from "../../IProject";
11
+ import { TransformerError } from "../../TransformerError";
12
+
13
+ export namespace ReflectNameTransformer {
14
+ export const transform =
15
+ (project: IProject) =>
16
+ (expression: ts.CallExpression): ts.Expression => {
17
+ if (!expression.typeArguments?.length)
18
+ throw new TransformerError({
19
+ code: "typia.reflect.metadata",
20
+ message: "no generic argument.",
21
+ });
22
+ const top: ts.Node = expression.typeArguments[0]!;
23
+ const regular: boolean = (() => {
24
+ // CHECK SECOND ARGUMENT EXISTENCE
25
+ const second: ts.Node | undefined = expression.typeArguments[1]!;
26
+ if (second === undefined) return false;
27
+
28
+ // GET BOOELAN VALUE
29
+ const value: Metadata = getMetadata(project)(second);
30
+ return value.size() === 1 &&
31
+ value.constants.length === 1 &&
32
+ value.constants[0]!.type === "boolean" &&
33
+ value.constants[0]!.values.length === 1
34
+ ? (value.constants[0]!.values[0]!.value as boolean)
35
+ : false;
36
+ })();
37
+
38
+ // RETURNS NAME
39
+ return ts.factory.createStringLiteral(
40
+ regular ? getMetadata(project)(top).getName() : top.getFullText(),
41
+ );
42
+ };
43
+ }
44
+
45
+ const getMetadata =
46
+ (project: IProject) =>
47
+ (node: ts.Node): Metadata => {
48
+ const type: ts.Type = project.checker.getTypeFromTypeNode(
49
+ node as ts.TypeNode,
50
+ );
51
+ const collection: MetadataCollection = new MetadataCollection({
52
+ replace: MetadataCollection.replace,
53
+ });
54
+ const result: ValidationPipe<Metadata, MetadataFactory.IError> =
55
+ MetadataFactory.analyze(
56
+ project.checker,
57
+ project.context,
58
+ )({
59
+ escape: false,
60
+ constant: true,
61
+ absorb: false,
62
+ })(collection)(type);
63
+ if (result.success === false)
64
+ throw TransformerError.from("typia.reflect.name")(result.errors);
65
+ return result.data;
66
+ };