typia 7.6.0 → 7.6.1-dev.20250203

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