typia 9.4.0 → 9.5.0-dev.20250710

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