typia 8.2.0 → 9.0.0-dev.20250405-3

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