typia 7.6.2-dev.20250205 → 7.6.2

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