typia 9.3.0-dev.20250511 → 9.3.0

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