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