typia 7.6.1 → 7.6.2-dev.20250205

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 (523) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +150 -150
  3. package/lib/executable/setup/PluginConfigurator.js +3 -3
  4. package/lib/executable/typia.js +15 -15
  5. package/lib/factories/JsonMetadataFactory.js +1 -1
  6. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  7. package/lib/programmers/llm/LlmModelPredicator.js +1 -1
  8. package/lib/programmers/llm/LlmModelPredicator.js.map +1 -1
  9. package/lib/transformers/features/json/JsonSchemasTransformer.js +32 -30
  10. package/lib/transformers/features/json/JsonSchemasTransformer.js.map +1 -1
  11. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js +29 -23
  12. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js.map +1 -1
  13. package/lib/transformers/features/llm/LlmApplicationTransformer.js +29 -23
  14. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  15. package/lib/transformers/features/llm/LlmParametersTransformer.js +28 -22
  16. package/lib/transformers/features/llm/LlmParametersTransformer.js.map +1 -1
  17. package/lib/transformers/features/llm/LlmSchemaTransformer.js +28 -22
  18. package/lib/transformers/features/llm/LlmSchemaTransformer.js.map +1 -1
  19. package/lib/transformers/features/reflect/ReflectNameTransformer.js +2 -2
  20. package/package.json +1 -1
  21. package/src/AssertionGuard.ts +1 -1
  22. package/src/CamelCase.ts +75 -75
  23. package/src/IRandomGenerator.ts +49 -49
  24. package/src/IReadableURLSearchParams.ts +9 -9
  25. package/src/IValidation.ts +21 -21
  26. package/src/PascalCase.ts +71 -71
  27. package/src/Primitive.ts +92 -92
  28. package/src/Resolved.ts +74 -74
  29. package/src/SnakeCase.ts +126 -126
  30. package/src/TypeGuardError.ts +37 -37
  31. package/src/executable/TypiaGenerateWizard.ts +83 -83
  32. package/src/executable/TypiaPatchWizard.ts +45 -45
  33. package/src/executable/TypiaSetupWizard.ts +179 -179
  34. package/src/executable/setup/ArgumentParser.ts +42 -42
  35. package/src/executable/setup/CommandExecutor.ts +8 -8
  36. package/src/executable/setup/FileRetriever.ts +19 -19
  37. package/src/executable/setup/PackageManager.ts +87 -87
  38. package/src/executable/setup/PluginConfigurator.ts +69 -69
  39. package/src/executable/typia.ts +55 -55
  40. package/src/factories/CommentFactory.ts +79 -79
  41. package/src/factories/ExpressionFactory.ts +216 -216
  42. package/src/factories/IdentifierFactory.ts +89 -89
  43. package/src/factories/JsonMetadataFactory.ts +83 -83
  44. package/src/factories/LiteralFactory.ts +52 -52
  45. package/src/factories/MetadataCollection.ts +278 -278
  46. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  47. package/src/factories/MetadataFactory.ts +404 -404
  48. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  49. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  50. package/src/factories/NumericRangeFactory.ts +72 -72
  51. package/src/factories/ProtobufFactory.ts +875 -875
  52. package/src/factories/StatementFactory.ts +90 -90
  53. package/src/factories/TemplateFactory.ts +64 -64
  54. package/src/factories/TypeFactory.ts +140 -140
  55. package/src/factories/ValueFactory.ts +12 -12
  56. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  57. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  58. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  59. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  60. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  61. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  62. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  63. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  64. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  65. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  66. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  67. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  68. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  69. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  70. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  71. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  72. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  73. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  74. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  75. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  76. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  77. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  78. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  79. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  80. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  81. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  82. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  83. package/src/functional.ts +750 -750
  84. package/src/http.ts +1047 -1047
  85. package/src/index.ts +4 -4
  86. package/src/internal/_IProtobufWriter.ts +18 -18
  87. package/src/internal/_ProtobufReader.ts +194 -194
  88. package/src/internal/_ProtobufSizer.ts +145 -145
  89. package/src/internal/_ProtobufWriter.ts +145 -145
  90. package/src/internal/_accessExpressionAsString.ts +46 -46
  91. package/src/internal/_assertGuard.ts +13 -13
  92. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  93. package/src/internal/_httpFormDataReadArray.ts +4 -4
  94. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  95. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  96. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  97. package/src/internal/_httpFormDataReadFile.ts +10 -10
  98. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  99. package/src/internal/_httpFormDataReadString.ts +10 -10
  100. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  101. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  102. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  103. package/src/internal/_httpParameterReadBigint.ts +10 -10
  104. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  105. package/src/internal/_httpParameterReadNumber.ts +7 -7
  106. package/src/internal/_httpParameterReadString.ts +2 -2
  107. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  108. package/src/internal/_httpQueryReadArray.ts +4 -4
  109. package/src/internal/_httpQueryReadBigint.ts +12 -12
  110. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  111. package/src/internal/_httpQueryReadNumber.ts +9 -9
  112. package/src/internal/_httpQueryReadString.ts +4 -4
  113. package/src/internal/_isBetween.ts +2 -2
  114. package/src/internal/_isBigintString.ts +8 -8
  115. package/src/internal/_isFormatByte.ts +7 -7
  116. package/src/internal/_isFormatDate.ts +3 -3
  117. package/src/internal/_isFormatDateTime.ts +4 -4
  118. package/src/internal/_isFormatDuration.ts +4 -4
  119. package/src/internal/_isFormatEmail.ts +4 -4
  120. package/src/internal/_isFormatHostname.ts +4 -4
  121. package/src/internal/_isFormatIdnEmail.ts +4 -4
  122. package/src/internal/_isFormatIdnHostname.ts +4 -4
  123. package/src/internal/_isFormatIpv4.ts +4 -4
  124. package/src/internal/_isFormatIpv6.ts +4 -4
  125. package/src/internal/_isFormatIri.ts +3 -3
  126. package/src/internal/_isFormatIriReference.ts +4 -4
  127. package/src/internal/_isFormatJsonPointer.ts +3 -3
  128. package/src/internal/_isFormatPassword.ts +1 -1
  129. package/src/internal/_isFormatRegex.ts +8 -8
  130. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  131. package/src/internal/_isFormatTime.ts +4 -4
  132. package/src/internal/_isFormatUri.ts +6 -6
  133. package/src/internal/_isFormatUriReference.ts +5 -5
  134. package/src/internal/_isFormatUriTemplate.ts +4 -4
  135. package/src/internal/_isFormatUrl.ts +4 -4
  136. package/src/internal/_isFormatUuid.ts +3 -3
  137. package/src/internal/_isTypeFloat.ts +5 -5
  138. package/src/internal/_isTypeInt32.ts +5 -5
  139. package/src/internal/_isTypeInt64.ts +5 -5
  140. package/src/internal/_isTypeUint32.ts +5 -5
  141. package/src/internal/_isTypeUint64.ts +5 -5
  142. package/src/internal/_isUniqueItems.ts +159 -159
  143. package/src/internal/_jsonStringifyNumber.ts +12 -12
  144. package/src/internal/_jsonStringifyRest.ts +3 -3
  145. package/src/internal/_jsonStringifyString.ts +42 -42
  146. package/src/internal/_jsonStringifyTail.ts +2 -2
  147. package/src/internal/_llmApplicationFinalize.ts +20 -20
  148. package/src/internal/_miscCloneAny.ts +46 -46
  149. package/src/internal/_notationAny.ts +37 -37
  150. package/src/internal/_notationCamel.ts +13 -13
  151. package/src/internal/_notationPascal.ts +8 -8
  152. package/src/internal/_notationSnake.ts +43 -43
  153. package/src/internal/_randomArray.ts +21 -21
  154. package/src/internal/_randomBigint.ts +6 -6
  155. package/src/internal/_randomBoolean.ts +1 -1
  156. package/src/internal/_randomFormatByte.ts +3 -3
  157. package/src/internal/_randomFormatDate.ts +18 -18
  158. package/src/internal/_randomFormatDatetime.ts +16 -16
  159. package/src/internal/_randomFormatDuration.ts +27 -27
  160. package/src/internal/_randomFormatEmail.ts +11 -11
  161. package/src/internal/_randomFormatHostname.ts +6 -6
  162. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  163. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  164. package/src/internal/_randomFormatIpv4.ts +11 -11
  165. package/src/internal/_randomFormatIpv6.ts +11 -11
  166. package/src/internal/_randomFormatIri.ts +3 -3
  167. package/src/internal/_randomFormatIriReference.ts +3 -3
  168. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  169. package/src/internal/_randomFormatPassword.ts +8 -8
  170. package/src/internal/_randomFormatRegex.ts +4 -4
  171. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  172. package/src/internal/_randomFormatTime.ts +14 -14
  173. package/src/internal/_randomFormatUri.ts +3 -3
  174. package/src/internal/_randomFormatUriReference.ts +3 -3
  175. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  176. package/src/internal/_randomFormatUrl.ts +11 -11
  177. package/src/internal/_randomFormatUuid.ts +6 -6
  178. package/src/internal/_randomInteger.ts +47 -47
  179. package/src/internal/_randomNumber.ts +74 -74
  180. package/src/internal/_randomPattern.ts +10 -10
  181. package/src/internal/_randomPick.ts +9 -9
  182. package/src/internal/_randomString.ts +24 -24
  183. package/src/internal/_throwTypeGuardError.ts +5 -5
  184. package/src/internal/_validateReport.ts +13 -13
  185. package/src/internal/private/__notationCapitalize.ts +2 -2
  186. package/src/internal/private/__notationUnsnake.ts +24 -24
  187. package/src/json.ts +752 -752
  188. package/src/llm.ts +481 -481
  189. package/src/misc.ts +658 -658
  190. package/src/module.ts +937 -937
  191. package/src/notations.ts +827 -827
  192. package/src/programmers/AssertProgrammer.ts +454 -454
  193. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  194. package/src/programmers/FeatureProgrammer.ts +622 -622
  195. package/src/programmers/ImportProgrammer.ts +185 -185
  196. package/src/programmers/IsProgrammer.ts +273 -273
  197. package/src/programmers/RandomProgrammer.ts +1190 -1190
  198. package/src/programmers/TypiaProgrammer.ts +174 -174
  199. package/src/programmers/ValidateProgrammer.ts +439 -439
  200. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  201. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  202. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  203. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  204. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  205. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  206. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  207. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  208. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  209. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  210. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  211. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  212. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  213. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  214. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  215. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  216. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  217. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  218. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  219. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  220. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  221. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  222. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  223. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  224. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  225. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  226. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  227. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  228. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  229. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  230. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  231. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  232. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  233. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  234. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  235. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  236. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  237. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  238. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  239. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  240. package/src/programmers/internal/check_array_length.ts +47 -47
  241. package/src/programmers/internal/check_bigint.ts +50 -50
  242. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  243. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  244. package/src/programmers/internal/check_everything.ts +23 -23
  245. package/src/programmers/internal/check_native.ts +27 -27
  246. package/src/programmers/internal/check_number.ts +112 -112
  247. package/src/programmers/internal/check_object.ts +75 -75
  248. package/src/programmers/internal/check_string.ts +50 -50
  249. package/src/programmers/internal/check_template.ts +48 -48
  250. package/src/programmers/internal/check_union_array_like.ts +335 -335
  251. package/src/programmers/internal/decode_union_object.ts +116 -116
  252. package/src/programmers/internal/feature_object_entries.ts +61 -61
  253. package/src/programmers/internal/json_schema_alias.ts +47 -47
  254. package/src/programmers/internal/json_schema_array.ts +45 -45
  255. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  256. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  257. package/src/programmers/internal/json_schema_constant.ts +26 -26
  258. package/src/programmers/internal/json_schema_description.ts +12 -12
  259. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  260. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  261. package/src/programmers/internal/json_schema_native.ts +33 -33
  262. package/src/programmers/internal/json_schema_number.ts +15 -15
  263. package/src/programmers/internal/json_schema_object.ts +158 -158
  264. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  265. package/src/programmers/internal/json_schema_station.ts +182 -182
  266. package/src/programmers/internal/json_schema_string.ts +15 -15
  267. package/src/programmers/internal/json_schema_template.ts +55 -55
  268. package/src/programmers/internal/json_schema_title.ts +20 -20
  269. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  270. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  271. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  272. package/src/programmers/internal/prune_object_properties.ts +71 -71
  273. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  274. package/src/programmers/internal/stringify_native.ts +7 -7
  275. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  276. package/src/programmers/internal/template_to_pattern.ts +23 -23
  277. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  278. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -279
  279. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  280. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  281. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  282. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  283. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  284. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  285. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  286. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  287. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +104 -104
  288. package/src/programmers/llm/LlmApplicationProgrammer.ts +327 -327
  289. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  290. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  291. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  292. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  293. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  294. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  295. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  296. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  297. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  298. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  299. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  300. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  301. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  302. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  303. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  304. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  305. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  306. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  307. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  308. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  309. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  310. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  311. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  312. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  313. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  314. package/src/protobuf.ts +868 -868
  315. package/src/reflect.ts +57 -57
  316. package/src/schemas/json/IJsonApplication.ts +73 -73
  317. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  318. package/src/schemas/json/__IJsonApplication.ts +63 -63
  319. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  320. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  321. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  322. package/src/schemas/metadata/IMetadata.ts +35 -35
  323. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  324. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  325. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  326. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  327. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  328. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  329. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  330. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  331. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  332. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  333. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  334. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  335. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  336. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  337. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  338. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  339. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  340. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  341. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  342. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  343. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  344. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  345. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  346. package/src/schemas/metadata/Metadata.ts +669 -669
  347. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  348. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  349. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  350. package/src/schemas/metadata/MetadataArray.ts +49 -49
  351. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  352. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  353. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  354. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  355. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  356. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  357. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  358. package/src/schemas/metadata/MetadataMap.ts +48 -48
  359. package/src/schemas/metadata/MetadataNative.ts +44 -44
  360. package/src/schemas/metadata/MetadataObject.ts +48 -48
  361. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  362. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  363. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  364. package/src/schemas/metadata/MetadataSet.ts +45 -45
  365. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  366. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  367. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  368. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  369. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  370. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  371. package/src/tags/Constant.ts +15 -15
  372. package/src/tags/ContentMediaType.ts +10 -10
  373. package/src/tags/Default.ts +22 -22
  374. package/src/tags/Example.ts +24 -24
  375. package/src/tags/Examples.ts +16 -16
  376. package/src/tags/ExclusiveMaximum.ts +25 -25
  377. package/src/tags/ExclusiveMinimum.ts +25 -25
  378. package/src/tags/Format.ts +50 -50
  379. package/src/tags/JsonSchemaPlugin.ts +8 -8
  380. package/src/tags/MaxItems.ts +12 -12
  381. package/src/tags/MaxLength.ts +12 -12
  382. package/src/tags/Maximum.ts +19 -19
  383. package/src/tags/MinItems.ts +12 -12
  384. package/src/tags/MinLength.ts +12 -12
  385. package/src/tags/Minimum.ts +19 -19
  386. package/src/tags/MultipleOf.ts +21 -21
  387. package/src/tags/Pattern.ts +31 -31
  388. package/src/tags/Sequence.ts +10 -10
  389. package/src/tags/TagBase.ts +82 -82
  390. package/src/tags/Type.ts +32 -32
  391. package/src/tags/UniqueItems.ts +14 -14
  392. package/src/tags/index.ts +21 -21
  393. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  394. package/src/transform.ts +35 -35
  395. package/src/transformers/CallExpressionTransformer.ts +547 -547
  396. package/src/transformers/FileTransformer.ts +136 -136
  397. package/src/transformers/IProgrammerProps.ts +11 -11
  398. package/src/transformers/ITransformOptions.ts +62 -62
  399. package/src/transformers/ITransformProps.ts +9 -9
  400. package/src/transformers/ITypiaContext.ts +18 -18
  401. package/src/transformers/ImportTransformer.ts +81 -81
  402. package/src/transformers/NodeTransformer.ts +17 -17
  403. package/src/transformers/TransformerError.ts +60 -60
  404. package/src/transformers/features/AssertTransformer.ts +24 -24
  405. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  406. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  407. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  408. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  409. package/src/transformers/features/IsTransformer.ts +18 -18
  410. package/src/transformers/features/RandomTransformer.ts +41 -41
  411. package/src/transformers/features/ValidateTransformer.ts +18 -18
  412. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  413. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  414. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  415. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  416. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  417. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  418. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  419. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  420. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  421. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  422. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  423. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  424. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  425. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  426. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  427. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  428. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  429. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  430. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  431. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  432. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  433. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  434. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  435. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  436. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  437. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  438. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  439. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  440. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  441. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  442. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  443. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  444. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  445. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  446. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  447. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  448. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  449. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  450. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  451. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -143
  452. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  453. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  454. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  455. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +129 -121
  456. package/src/transformers/features/llm/LlmApplicationTransformer.ts +125 -118
  457. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -94
  458. package/src/transformers/features/llm/LlmSchemaTransformer.ts +143 -135
  459. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  460. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  461. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  462. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  463. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  464. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  465. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  466. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  467. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  468. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  469. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  470. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  471. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  472. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  473. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  474. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  475. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  476. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  477. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  478. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  479. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  480. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  481. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  482. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  483. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  484. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  485. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  486. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  487. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  488. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  489. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  490. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  491. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  492. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  493. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  494. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  495. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  496. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  497. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  498. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  499. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  500. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  501. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  502. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  503. package/src/transformers/internal/GenericTransformer.ts +101 -101
  504. package/src/typings/Atomic.ts +13 -13
  505. package/src/typings/ClassProperties.ts +5 -5
  506. package/src/typings/Customizable.ts +5 -5
  507. package/src/typings/Equal.ts +18 -18
  508. package/src/typings/IsTuple.ts +9 -9
  509. package/src/typings/NativeClass.ts +23 -23
  510. package/src/typings/OmitNever.ts +3 -3
  511. package/src/typings/ProtobufAtomic.ts +19 -19
  512. package/src/typings/SpecialFields.ts +3 -3
  513. package/src/typings/ValidationPipe.ts +9 -9
  514. package/src/typings/ValueOf.ts +20 -20
  515. package/src/typings/Writable.ts +11 -11
  516. package/src/utils/ArrayUtil.ts +41 -41
  517. package/src/utils/Escaper.ts +50 -50
  518. package/src/utils/MapUtil.ts +14 -14
  519. package/src/utils/NamingConvention.ts +94 -94
  520. package/src/utils/PatternUtil.ts +29 -29
  521. package/src/utils/ProtobufNameEncoder.ts +32 -32
  522. package/src/utils/Singleton.ts +16 -16
  523. package/src/utils/StringUtil.ts +16 -16
@@ -1,82 +1,82 @@
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 { ITransformProps } from "../../ITransformProps";
11
- import { ITypiaContext } from "../../ITypiaContext";
12
- import { TransformerError } from "../../TransformerError";
13
-
14
- export namespace ReflectNameTransformer {
15
- export const transform = (
16
- props: Pick<ITransformProps, "context" | "expression">,
17
- ): ts.Expression => {
18
- if (!props.expression.typeArguments?.length)
19
- throw new TransformerError({
20
- code: "typia.reflect.metadata",
21
- message: "no generic argument.",
22
- });
23
- const top: ts.Node = props.expression.typeArguments[0]!;
24
- const regular: boolean = (() => {
25
- // CHECK SECOND ARGUMENT EXISTENCE
26
- const second: ts.Node | undefined = props.expression.typeArguments[1]!;
27
- if (second === undefined) return false;
28
-
29
- // GET BOOLEAN VALUE
30
- const value: Metadata = getMetadata({
31
- context: props.context,
32
- node: second,
33
- });
34
- return value.size() === 1 &&
35
- value.constants.length === 1 &&
36
- value.constants[0]!.type === "boolean" &&
37
- value.constants[0]!.values.length === 1
38
- ? (value.constants[0]!.values[0]!.value as boolean)
39
- : false;
40
- })();
41
-
42
- // RETURNS NAME
43
- return ts.factory.createStringLiteral(
44
- regular
45
- ? getMetadata({
46
- context: props.context,
47
- node: top,
48
- }).getName()
49
- : top.getFullText(),
50
- );
51
- };
52
- }
53
-
54
- const getMetadata = (props: {
55
- context: ITypiaContext;
56
- node: ts.Node;
57
- }): Metadata => {
58
- const type: ts.Type = props.context.checker.getTypeFromTypeNode(
59
- props.node as ts.TypeNode,
60
- );
61
- const collection: MetadataCollection = new MetadataCollection({
62
- replace: MetadataCollection.replace,
63
- });
64
- const result: ValidationPipe<Metadata, MetadataFactory.IError> =
65
- MetadataFactory.analyze({
66
- checker: props.context.checker,
67
- transformer: props.context.transformer,
68
- options: {
69
- escape: false,
70
- constant: true,
71
- absorb: false,
72
- },
73
- collection,
74
- type,
75
- });
76
- if (result.success === false)
77
- throw TransformerError.from({
78
- code: "typia.reflect.name",
79
- errors: result.errors,
80
- });
81
- return result.data;
82
- };
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 { ITransformProps } from "../../ITransformProps";
11
+ import { ITypiaContext } from "../../ITypiaContext";
12
+ import { TransformerError } from "../../TransformerError";
13
+
14
+ export namespace ReflectNameTransformer {
15
+ export const transform = (
16
+ props: Pick<ITransformProps, "context" | "expression">,
17
+ ): ts.Expression => {
18
+ if (!props.expression.typeArguments?.length)
19
+ throw new TransformerError({
20
+ code: "typia.reflect.metadata",
21
+ message: "no generic argument.",
22
+ });
23
+ const top: ts.Node = props.expression.typeArguments[0]!;
24
+ const regular: boolean = (() => {
25
+ // CHECK SECOND ARGUMENT EXISTENCE
26
+ const second: ts.Node | undefined = props.expression.typeArguments[1]!;
27
+ if (second === undefined) return false;
28
+
29
+ // GET BOOLEAN VALUE
30
+ const value: Metadata = getMetadata({
31
+ context: props.context,
32
+ node: second,
33
+ });
34
+ return value.size() === 1 &&
35
+ value.constants.length === 1 &&
36
+ value.constants[0]!.type === "boolean" &&
37
+ value.constants[0]!.values.length === 1
38
+ ? (value.constants[0]!.values[0]!.value as boolean)
39
+ : false;
40
+ })();
41
+
42
+ // RETURNS NAME
43
+ return ts.factory.createStringLiteral(
44
+ regular
45
+ ? getMetadata({
46
+ context: props.context,
47
+ node: top,
48
+ }).getName()
49
+ : top.getFullText(),
50
+ );
51
+ };
52
+ }
53
+
54
+ const getMetadata = (props: {
55
+ context: ITypiaContext;
56
+ node: ts.Node;
57
+ }): Metadata => {
58
+ const type: ts.Type = props.context.checker.getTypeFromTypeNode(
59
+ props.node as ts.TypeNode,
60
+ );
61
+ const collection: MetadataCollection = new MetadataCollection({
62
+ replace: MetadataCollection.replace,
63
+ });
64
+ const result: ValidationPipe<Metadata, MetadataFactory.IError> =
65
+ MetadataFactory.analyze({
66
+ checker: props.context.checker,
67
+ transformer: props.context.transformer,
68
+ options: {
69
+ absorb: false,
70
+ constant: true,
71
+ escape: false,
72
+ },
73
+ collection,
74
+ type,
75
+ });
76
+ if (result.success === false)
77
+ throw TransformerError.from({
78
+ code: "typia.reflect.name",
79
+ errors: result.errors,
80
+ });
81
+ return result.data;
82
+ };
@@ -1,101 +1,101 @@
1
- import ts from "typescript";
2
-
3
- import { IProgrammerProps } from "../IProgrammerProps";
4
- import { ITransformProps } from "../ITransformProps";
5
- import { TransformerError } from "../TransformerError";
6
-
7
- export namespace GenericTransformer {
8
- export interface IProps extends ITransformProps {
9
- method: string;
10
- write: (props: IProgrammerProps) => ts.Expression | ts.ArrowFunction;
11
- }
12
-
13
- export const scalar = (props: IProps) => {
14
- // CHECK PARAMETER
15
- if (props.expression.arguments.length === 0)
16
- throw new TransformerError({
17
- code: `typia.${props.method}`,
18
- message: `no input value.`,
19
- });
20
-
21
- // GET TYPE INFO
22
- const [type, node, generic]: [ts.Type, ts.Node, boolean] =
23
- props.expression.typeArguments && props.expression.typeArguments[0]
24
- ? [
25
- props.context.checker.getTypeFromTypeNode(
26
- props.expression.typeArguments[0],
27
- ),
28
- props.expression.typeArguments[0],
29
- true,
30
- ]
31
- : [
32
- props.context.checker.getTypeAtLocation(
33
- props.expression.arguments[0]!,
34
- ),
35
- props.expression.arguments[0]!,
36
- false,
37
- ];
38
- if (type.isTypeParameter())
39
- throw new TransformerError({
40
- code: `typia.${props.method}`,
41
- message: `non-specified generic argument.`,
42
- });
43
-
44
- // DO TRANSFORM
45
- return ts.factory.createCallExpression(
46
- props.write({
47
- context: props.context,
48
- modulo: props.modulo,
49
- type,
50
- name: generic
51
- ? node.getFullText().trim()
52
- : getTypeName({
53
- checker: props.context.checker,
54
- type,
55
- node,
56
- }),
57
- }),
58
- undefined,
59
- props.expression.arguments,
60
- );
61
- };
62
-
63
- export const factory = (props: IProps) => {
64
- // CHECK GENERIC ARGUMENT EXISTENCE
65
- if (!props.expression.typeArguments?.[0])
66
- throw new TransformerError({
67
- code: `typia.${props.method}`,
68
- message: `generic argument is not specified.`,
69
- });
70
-
71
- // GET TYPE INFO
72
- const node: ts.TypeNode = props.expression.typeArguments[0];
73
- const type: ts.Type = props.context.checker.getTypeFromTypeNode(node);
74
-
75
- if (type.isTypeParameter())
76
- throw new TransformerError({
77
- code: `typia.${props.method}`,
78
- message: `non-specified generic argument.`,
79
- });
80
-
81
- // DO TRANSFORM
82
- return props.write({
83
- context: props.context,
84
- modulo: props.modulo,
85
- type,
86
- name: node.getFullText().trim(),
87
- init: props.expression.arguments[0],
88
- });
89
- };
90
-
91
- const getTypeName = (props: {
92
- checker: ts.TypeChecker;
93
- type: ts.Type;
94
- node: ts.Node;
95
- }): string =>
96
- props.checker.typeToString(
97
- props.type,
98
- props.node,
99
- ts.TypeFormatFlags.NodeBuilderFlagsMask,
100
- );
101
- }
1
+ import ts from "typescript";
2
+
3
+ import { IProgrammerProps } from "../IProgrammerProps";
4
+ import { ITransformProps } from "../ITransformProps";
5
+ import { TransformerError } from "../TransformerError";
6
+
7
+ export namespace GenericTransformer {
8
+ export interface IProps extends ITransformProps {
9
+ method: string;
10
+ write: (props: IProgrammerProps) => ts.Expression | ts.ArrowFunction;
11
+ }
12
+
13
+ export const scalar = (props: IProps) => {
14
+ // CHECK PARAMETER
15
+ if (props.expression.arguments.length === 0)
16
+ throw new TransformerError({
17
+ code: `typia.${props.method}`,
18
+ message: `no input value.`,
19
+ });
20
+
21
+ // GET TYPE INFO
22
+ const [type, node, generic]: [ts.Type, ts.Node, boolean] =
23
+ props.expression.typeArguments && props.expression.typeArguments[0]
24
+ ? [
25
+ props.context.checker.getTypeFromTypeNode(
26
+ props.expression.typeArguments[0],
27
+ ),
28
+ props.expression.typeArguments[0],
29
+ true,
30
+ ]
31
+ : [
32
+ props.context.checker.getTypeAtLocation(
33
+ props.expression.arguments[0]!,
34
+ ),
35
+ props.expression.arguments[0]!,
36
+ false,
37
+ ];
38
+ if (type.isTypeParameter())
39
+ throw new TransformerError({
40
+ code: `typia.${props.method}`,
41
+ message: `non-specified generic argument.`,
42
+ });
43
+
44
+ // DO TRANSFORM
45
+ return ts.factory.createCallExpression(
46
+ props.write({
47
+ context: props.context,
48
+ modulo: props.modulo,
49
+ type,
50
+ name: generic
51
+ ? node.getFullText().trim()
52
+ : getTypeName({
53
+ checker: props.context.checker,
54
+ type,
55
+ node,
56
+ }),
57
+ }),
58
+ undefined,
59
+ props.expression.arguments,
60
+ );
61
+ };
62
+
63
+ export const factory = (props: IProps) => {
64
+ // CHECK GENERIC ARGUMENT EXISTENCE
65
+ if (!props.expression.typeArguments?.[0])
66
+ throw new TransformerError({
67
+ code: `typia.${props.method}`,
68
+ message: `generic argument is not specified.`,
69
+ });
70
+
71
+ // GET TYPE INFO
72
+ const node: ts.TypeNode = props.expression.typeArguments[0];
73
+ const type: ts.Type = props.context.checker.getTypeFromTypeNode(node);
74
+
75
+ if (type.isTypeParameter())
76
+ throw new TransformerError({
77
+ code: `typia.${props.method}`,
78
+ message: `non-specified generic argument.`,
79
+ });
80
+
81
+ // DO TRANSFORM
82
+ return props.write({
83
+ context: props.context,
84
+ modulo: props.modulo,
85
+ type,
86
+ name: node.getFullText().trim(),
87
+ init: props.expression.arguments[0],
88
+ });
89
+ };
90
+
91
+ const getTypeName = (props: {
92
+ checker: ts.TypeChecker;
93
+ type: ts.Type;
94
+ node: ts.Node;
95
+ }): string =>
96
+ props.checker.typeToString(
97
+ props.type,
98
+ props.node,
99
+ ts.TypeFormatFlags.NodeBuilderFlagsMask,
100
+ );
101
+ }
@@ -1,13 +1,13 @@
1
- export namespace Atomic {
2
- export type Type = boolean | number | string | bigint;
3
-
4
- export type Literal = "boolean" | "integer" | "number" | "string" | "bigint";
5
-
6
- export type Mapper = {
7
- boolean: boolean;
8
- integer: number;
9
- number: number;
10
- string: string;
11
- bigint: bigint;
12
- };
13
- }
1
+ export namespace Atomic {
2
+ export type Type = boolean | number | string | bigint;
3
+
4
+ export type Literal = "boolean" | "integer" | "number" | "string" | "bigint";
5
+
6
+ export type Mapper = {
7
+ boolean: boolean;
8
+ integer: number;
9
+ number: number;
10
+ string: string;
11
+ bigint: bigint;
12
+ };
13
+ }
@@ -1,5 +1,5 @@
1
- import { OmitNever } from "./OmitNever";
2
-
3
- export type ClassProperties<T extends object> = OmitNever<{
4
- [K in keyof T]: T[K] extends Function ? never : T[K];
5
- }>;
1
+ import { OmitNever } from "./OmitNever";
2
+
3
+ export type ClassProperties<T extends object> = OmitNever<{
4
+ [K in keyof T]: T[K] extends Function ? never : T[K];
5
+ }>;
@@ -1,5 +1,5 @@
1
- export type Customizable = {
2
- number: number;
3
- string: string;
4
- bigint: bigint;
5
- };
1
+ export type Customizable = {
2
+ number: number;
3
+ string: string;
4
+ bigint: bigint;
5
+ };
@@ -1,18 +1,18 @@
1
- /**
2
- * Compare the equivalence of the two types X and Y.
3
- *
4
- * The two types X and Y refer to any type that can be expressed in the type script, such as the union type and the object type.
5
- *
6
- * @template X One of the types to compare
7
- * @template Y One of the types to compare
8
- *
9
- * ```ts
10
- * type Answer = Equal<1 | 2, 1 | 2>; // true
11
- * ```
12
- *
13
- * @author Kyungsu Kang - https://github.com/kakasoo
14
- */
15
- export type Equal<X, Y> =
16
- (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2
17
- ? true
18
- : false;
1
+ /**
2
+ * Compare the equivalence of the two types X and Y.
3
+ *
4
+ * The two types X and Y refer to any type that can be expressed in the type script, such as the union type and the object type.
5
+ *
6
+ * @template X One of the types to compare
7
+ * @template Y One of the types to compare
8
+ *
9
+ * ```ts
10
+ * type Answer = Equal<1 | 2, 1 | 2>; // true
11
+ * ```
12
+ *
13
+ * @author Kyungsu Kang - https://github.com/kakasoo
14
+ */
15
+ export type Equal<X, Y> =
16
+ (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2
17
+ ? true
18
+ : false;
@@ -1,9 +1,9 @@
1
- export type IsTuple<T extends readonly any[] | { length: number }> = [
2
- T,
3
- ] extends [never]
4
- ? false
5
- : T extends readonly any[]
6
- ? number extends T["length"]
7
- ? false
8
- : true
9
- : false;
1
+ export type IsTuple<T extends readonly any[] | { length: number }> = [
2
+ T,
3
+ ] extends [never]
4
+ ? false
5
+ : T extends readonly any[]
6
+ ? number extends T["length"]
7
+ ? false
8
+ : true
9
+ : false;
@@ -1,23 +1,23 @@
1
- export type NativeClass =
2
- | Date
3
- | Set<any>
4
- | Map<any, any>
5
- | WeakSet<any>
6
- | WeakMap<any, any>
7
- | Uint8Array
8
- | Uint8ClampedArray
9
- | Uint16Array
10
- | Uint32Array
11
- | BigUint64Array
12
- | Int8Array
13
- | Int16Array
14
- | Int32Array
15
- | BigInt64Array
16
- | Float32Array
17
- | Float64Array
18
- | ArrayBuffer
19
- | SharedArrayBuffer
20
- | DataView
21
- | Blob
22
- | File
23
- | RegExp;
1
+ export type NativeClass =
2
+ | Date
3
+ | Set<any>
4
+ | Map<any, any>
5
+ | WeakSet<any>
6
+ | WeakMap<any, any>
7
+ | Uint8Array
8
+ | Uint8ClampedArray
9
+ | Uint16Array
10
+ | Uint32Array
11
+ | BigUint64Array
12
+ | Int8Array
13
+ | Int16Array
14
+ | Int32Array
15
+ | BigInt64Array
16
+ | Float32Array
17
+ | Float64Array
18
+ | ArrayBuffer
19
+ | SharedArrayBuffer
20
+ | DataView
21
+ | Blob
22
+ | File
23
+ | RegExp;
@@ -1,3 +1,3 @@
1
- import { SpecialFields } from "./SpecialFields";
2
-
3
- export type OmitNever<T extends object> = Omit<T, SpecialFields<T, never>>;
1
+ import { SpecialFields } from "./SpecialFields";
2
+
3
+ export type OmitNever<T extends object> = Omit<T, SpecialFields<T, never>>;
@@ -1,19 +1,19 @@
1
- export type ProtobufAtomic =
2
- | "bool"
3
- | "int32"
4
- | "uint32"
5
- | "int64"
6
- | "uint64"
7
- | "float"
8
- | "double"
9
- | "string";
10
- export namespace ProtobufAtomic {
11
- export type Numeric =
12
- | "int32"
13
- | "uint32"
14
- | "int64"
15
- | "uint64"
16
- | "float"
17
- | "double";
18
- export type BigNumeric = "int64" | "uint64";
19
- }
1
+ export type ProtobufAtomic =
2
+ | "bool"
3
+ | "int32"
4
+ | "uint32"
5
+ | "int64"
6
+ | "uint64"
7
+ | "float"
8
+ | "double"
9
+ | "string";
10
+ export namespace ProtobufAtomic {
11
+ export type Numeric =
12
+ | "int32"
13
+ | "uint32"
14
+ | "int64"
15
+ | "uint64"
16
+ | "float"
17
+ | "double";
18
+ export type BigNumeric = "int64" | "uint64";
19
+ }
@@ -1,3 +1,3 @@
1
- export type SpecialFields<Instance extends object, Target> = {
2
- [P in keyof Instance]: Instance[P] extends Target ? P : never;
3
- }[keyof Instance & string];
1
+ export type SpecialFields<Instance extends object, Target> = {
2
+ [P in keyof Instance]: Instance[P] extends Target ? P : never;
3
+ }[keyof Instance & string];
@@ -1,9 +1,9 @@
1
- export type ValidationPipe<T, E> =
2
- | {
3
- success: true;
4
- data: T;
5
- }
6
- | {
7
- success: false;
8
- errors: E[];
9
- };
1
+ export type ValidationPipe<T, E> =
2
+ | {
3
+ success: true;
4
+ data: T;
5
+ }
6
+ | {
7
+ success: false;
8
+ errors: E[];
9
+ };
@@ -1,20 +1,20 @@
1
- export type ValueOf<Instance> =
2
- IsValueOf<Instance, Boolean> extends true
3
- ? boolean
4
- : IsValueOf<Instance, Number> extends true
5
- ? number
6
- : IsValueOf<Instance, String> extends true
7
- ? string
8
- : Instance;
9
-
10
- type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
11
- ? Object extends IValueOf<infer Primitive>
12
- ? Instance extends Primitive
13
- ? false
14
- : true // not Primitive, but Object
15
- : false // cannot be
16
- : false;
17
-
18
- interface IValueOf<T> {
19
- valueOf(): T;
20
- }
1
+ export type ValueOf<Instance> =
2
+ IsValueOf<Instance, Boolean> extends true
3
+ ? boolean
4
+ : IsValueOf<Instance, Number> extends true
5
+ ? number
6
+ : IsValueOf<Instance, String> extends true
7
+ ? string
8
+ : Instance;
9
+
10
+ type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object
11
+ ? Object extends IValueOf<infer Primitive>
12
+ ? Instance extends Primitive
13
+ ? false
14
+ : true // not Primitive, but Object
15
+ : false // cannot be
16
+ : false;
17
+
18
+ interface IValueOf<T> {
19
+ valueOf(): T;
20
+ }
@@ -1,11 +1,11 @@
1
- import { ClassProperties } from "./ClassProperties";
2
-
3
- export type Writable<T extends object> = {
4
- -readonly [P in keyof T]: T[P];
5
- };
6
-
7
- export function Writable<T extends object>(
8
- elem: T,
9
- ): Writable<ClassProperties<T>> {
10
- return elem as any;
11
- }
1
+ import { ClassProperties } from "./ClassProperties";
2
+
3
+ export type Writable<T extends object> = {
4
+ -readonly [P in keyof T]: T[P];
5
+ };
6
+
7
+ export function Writable<T extends object>(
8
+ elem: T,
9
+ ): Writable<ClassProperties<T>> {
10
+ return elem as any;
11
+ }