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