typia 7.6.2-dev.20250204 → 7.6.2

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