typia 7.6.2-dev.20250205 → 7.6.2

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