typia 9.4.0 → 9.5.0-dev.20250710

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