typia 7.6.0 → 7.6.1-dev.20250203

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +150 -149
  3. package/lib/IReadableURLSearchParams.d.ts +1 -1
  4. package/lib/TypeGuardError.mjs +26 -0
  5. package/lib/TypeGuardError.mjs.map +1 -0
  6. package/lib/executable/setup/PluginConfigurator.js +3 -3
  7. package/lib/executable/typia.js +15 -15
  8. package/lib/factories/MetadataTypeTagFactory.js +1 -1
  9. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  10. package/lib/factories/ProtobufFactory.js +4 -4
  11. package/lib/factories/ProtobufFactory.js.map +1 -1
  12. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +1 -1
  13. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  14. package/lib/functional.mjs +120 -0
  15. package/lib/functional.mjs.map +1 -0
  16. package/lib/http.d.ts +16 -16
  17. package/lib/http.mjs +165 -0
  18. package/lib/http.mjs.map +1 -0
  19. package/lib/index.mjs +27 -1142
  20. package/lib/index.mjs.map +1 -1
  21. package/lib/internal/_isUniqueItems.js +1 -1
  22. package/lib/json.d.ts +5 -5
  23. package/lib/json.mjs +105 -0
  24. package/lib/json.mjs.map +1 -0
  25. package/lib/llm.d.ts +8 -8
  26. package/lib/llm.mjs +33 -0
  27. package/lib/llm.mjs.map +1 -0
  28. package/lib/misc.d.ts +10 -10
  29. package/lib/misc.mjs +111 -0
  30. package/lib/misc.mjs.map +1 -0
  31. package/lib/module.d.ts +5 -5
  32. package/lib/module.mjs +139 -0
  33. package/lib/module.mjs.map +1 -0
  34. package/lib/notations.mjs +153 -0
  35. package/lib/notations.mjs.map +1 -0
  36. package/lib/programmers/FeatureProgrammer.d.ts +3 -3
  37. package/lib/programmers/TypiaProgrammer.js +1 -1
  38. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  39. package/lib/programmers/helpers/UnionExplorer.js +1 -1
  40. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  41. package/lib/programmers/helpers/UnionPredicator.d.ts +1 -1
  42. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  43. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  44. package/lib/programmers/json/JsonApplicationProgrammer.js +1 -1
  45. package/lib/programmers/llm/LlmApplicationProgrammer.js +2 -2
  46. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  47. package/lib/programmers/llm/LlmParametersProgrammer.js +1 -1
  48. package/lib/programmers/llm/LlmParametersProgrammer.js.map +1 -1
  49. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +1 -1
  50. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  51. package/lib/protobuf.d.ts +9 -9
  52. package/lib/protobuf.mjs +111 -0
  53. package/lib/protobuf.mjs.map +1 -0
  54. package/lib/reflect.mjs +18 -0
  55. package/lib/reflect.mjs.map +1 -0
  56. package/lib/schemas/llm/ILlmApplicationOfValidate.d.ts +2 -2
  57. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs +6 -0
  58. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs.map +1 -0
  59. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs +6 -0
  60. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs.map +1 -0
  61. package/lib/tags/TagBase.d.ts +1 -1
  62. package/lib/tags/index.mjs +2 -0
  63. package/lib/tags/index.mjs.map +1 -0
  64. package/lib/transformers/ImportTransformer.js +3 -3
  65. package/lib/transformers/ImportTransformer.js.map +1 -1
  66. package/lib/transformers/features/json/JsonValidateParseTransformer.js +1 -1
  67. package/lib/transformers/features/json/JsonValidateParseTransformer.js.map +1 -1
  68. package/lib/transformers/features/json/JsonValidateStringifyTransformer.js +1 -1
  69. package/lib/transformers/features/json/JsonValidateStringifyTransformer.js.map +1 -1
  70. package/lib/transformers/features/misc/MiscValidateCloneTransformer.js +1 -1
  71. package/lib/transformers/features/misc/MiscValidateCloneTransformer.js.map +1 -1
  72. package/lib/transformers/features/misc/MiscValidatePruneTransformer.js +1 -1
  73. package/lib/transformers/features/misc/MiscValidatePruneTransformer.js.map +1 -1
  74. package/lib/transformers/features/reflect/ReflectNameTransformer.js +1 -1
  75. package/package.json +11 -9
  76. package/src/AssertionGuard.ts +1 -1
  77. package/src/CamelCase.ts +75 -75
  78. package/src/IRandomGenerator.ts +49 -49
  79. package/src/IReadableURLSearchParams.ts +9 -9
  80. package/src/IValidation.ts +21 -21
  81. package/src/PascalCase.ts +71 -71
  82. package/src/Primitive.ts +92 -92
  83. package/src/Resolved.ts +74 -74
  84. package/src/SnakeCase.ts +126 -126
  85. package/src/TypeGuardError.ts +37 -37
  86. package/src/executable/TypiaGenerateWizard.ts +83 -83
  87. package/src/executable/TypiaPatchWizard.ts +45 -45
  88. package/src/executable/TypiaSetupWizard.ts +179 -179
  89. package/src/executable/setup/ArgumentParser.ts +42 -42
  90. package/src/executable/setup/CommandExecutor.ts +8 -8
  91. package/src/executable/setup/FileRetriever.ts +19 -19
  92. package/src/executable/setup/PackageManager.ts +87 -87
  93. package/src/executable/setup/PluginConfigurator.ts +69 -69
  94. package/src/executable/typia.ts +55 -55
  95. package/src/factories/CommentFactory.ts +79 -79
  96. package/src/factories/ExpressionFactory.ts +216 -216
  97. package/src/factories/IdentifierFactory.ts +89 -89
  98. package/src/factories/JsonMetadataFactory.ts +83 -83
  99. package/src/factories/LiteralFactory.ts +52 -52
  100. package/src/factories/MetadataCollection.ts +278 -278
  101. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  102. package/src/factories/MetadataFactory.ts +404 -404
  103. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  104. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  105. package/src/factories/NumericRangeFactory.ts +72 -72
  106. package/src/factories/ProtobufFactory.ts +875 -875
  107. package/src/factories/StatementFactory.ts +90 -90
  108. package/src/factories/TemplateFactory.ts +64 -64
  109. package/src/factories/TypeFactory.ts +140 -140
  110. package/src/factories/ValueFactory.ts +12 -12
  111. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  112. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  113. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  114. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  115. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  116. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  117. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  118. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  119. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  120. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  121. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  122. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  123. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  124. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  125. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  126. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  127. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  128. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  129. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  130. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  131. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  132. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  133. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  134. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  135. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  136. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  137. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  138. package/src/functional.ts +750 -750
  139. package/src/http.ts +1047 -1047
  140. package/src/index.ts +4 -4
  141. package/src/internal/_IProtobufWriter.ts +18 -18
  142. package/src/internal/_ProtobufReader.ts +194 -194
  143. package/src/internal/_ProtobufSizer.ts +145 -145
  144. package/src/internal/_ProtobufWriter.ts +145 -145
  145. package/src/internal/_accessExpressionAsString.ts +46 -46
  146. package/src/internal/_assertGuard.ts +13 -13
  147. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  148. package/src/internal/_httpFormDataReadArray.ts +4 -4
  149. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  150. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  151. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  152. package/src/internal/_httpFormDataReadFile.ts +10 -10
  153. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  154. package/src/internal/_httpFormDataReadString.ts +10 -10
  155. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  156. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  157. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  158. package/src/internal/_httpParameterReadBigint.ts +10 -10
  159. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  160. package/src/internal/_httpParameterReadNumber.ts +7 -7
  161. package/src/internal/_httpParameterReadString.ts +2 -2
  162. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  163. package/src/internal/_httpQueryReadArray.ts +4 -4
  164. package/src/internal/_httpQueryReadBigint.ts +12 -12
  165. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  166. package/src/internal/_httpQueryReadNumber.ts +9 -9
  167. package/src/internal/_httpQueryReadString.ts +4 -4
  168. package/src/internal/_isBetween.ts +2 -2
  169. package/src/internal/_isBigintString.ts +8 -8
  170. package/src/internal/_isFormatByte.ts +7 -7
  171. package/src/internal/_isFormatDate.ts +3 -3
  172. package/src/internal/_isFormatDateTime.ts +4 -4
  173. package/src/internal/_isFormatDuration.ts +4 -4
  174. package/src/internal/_isFormatEmail.ts +4 -4
  175. package/src/internal/_isFormatHostname.ts +4 -4
  176. package/src/internal/_isFormatIdnEmail.ts +4 -4
  177. package/src/internal/_isFormatIdnHostname.ts +4 -4
  178. package/src/internal/_isFormatIpv4.ts +4 -4
  179. package/src/internal/_isFormatIpv6.ts +4 -4
  180. package/src/internal/_isFormatIri.ts +3 -3
  181. package/src/internal/_isFormatIriReference.ts +4 -4
  182. package/src/internal/_isFormatJsonPointer.ts +3 -3
  183. package/src/internal/_isFormatPassword.ts +1 -1
  184. package/src/internal/_isFormatRegex.ts +8 -8
  185. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  186. package/src/internal/_isFormatTime.ts +4 -4
  187. package/src/internal/_isFormatUri.ts +6 -6
  188. package/src/internal/_isFormatUriReference.ts +5 -5
  189. package/src/internal/_isFormatUriTemplate.ts +4 -4
  190. package/src/internal/_isFormatUrl.ts +4 -4
  191. package/src/internal/_isFormatUuid.ts +3 -3
  192. package/src/internal/_isTypeFloat.ts +5 -5
  193. package/src/internal/_isTypeInt32.ts +5 -5
  194. package/src/internal/_isTypeInt64.ts +5 -5
  195. package/src/internal/_isTypeUint32.ts +5 -5
  196. package/src/internal/_isTypeUint64.ts +5 -5
  197. package/src/internal/_isUniqueItems.ts +159 -159
  198. package/src/internal/_jsonStringifyNumber.ts +12 -12
  199. package/src/internal/_jsonStringifyRest.ts +3 -3
  200. package/src/internal/_jsonStringifyString.ts +42 -42
  201. package/src/internal/_jsonStringifyTail.ts +2 -2
  202. package/src/internal/_llmApplicationFinalize.ts +20 -20
  203. package/src/internal/_miscCloneAny.ts +46 -46
  204. package/src/internal/_notationAny.ts +37 -37
  205. package/src/internal/_notationCamel.ts +13 -13
  206. package/src/internal/_notationPascal.ts +8 -8
  207. package/src/internal/_notationSnake.ts +43 -43
  208. package/src/internal/_randomArray.ts +21 -21
  209. package/src/internal/_randomBigint.ts +6 -6
  210. package/src/internal/_randomBoolean.ts +1 -1
  211. package/src/internal/_randomFormatByte.ts +3 -3
  212. package/src/internal/_randomFormatDate.ts +18 -18
  213. package/src/internal/_randomFormatDatetime.ts +16 -16
  214. package/src/internal/_randomFormatDuration.ts +27 -27
  215. package/src/internal/_randomFormatEmail.ts +11 -11
  216. package/src/internal/_randomFormatHostname.ts +6 -6
  217. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  218. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  219. package/src/internal/_randomFormatIpv4.ts +11 -11
  220. package/src/internal/_randomFormatIpv6.ts +11 -11
  221. package/src/internal/_randomFormatIri.ts +3 -3
  222. package/src/internal/_randomFormatIriReference.ts +3 -3
  223. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  224. package/src/internal/_randomFormatPassword.ts +8 -8
  225. package/src/internal/_randomFormatRegex.ts +4 -4
  226. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  227. package/src/internal/_randomFormatTime.ts +14 -14
  228. package/src/internal/_randomFormatUri.ts +3 -3
  229. package/src/internal/_randomFormatUriReference.ts +3 -3
  230. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  231. package/src/internal/_randomFormatUrl.ts +11 -11
  232. package/src/internal/_randomFormatUuid.ts +6 -6
  233. package/src/internal/_randomInteger.ts +47 -47
  234. package/src/internal/_randomNumber.ts +74 -74
  235. package/src/internal/_randomPattern.ts +10 -10
  236. package/src/internal/_randomPick.ts +9 -9
  237. package/src/internal/_randomString.ts +24 -24
  238. package/src/internal/_throwTypeGuardError.ts +5 -5
  239. package/src/internal/_validateReport.ts +13 -13
  240. package/src/internal/private/__notationCapitalize.ts +2 -2
  241. package/src/internal/private/__notationUnsnake.ts +24 -24
  242. package/src/json.ts +752 -752
  243. package/src/llm.ts +481 -481
  244. package/src/misc.ts +658 -658
  245. package/src/module.ts +937 -937
  246. package/src/notations.ts +827 -827
  247. package/src/programmers/AssertProgrammer.ts +454 -454
  248. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  249. package/src/programmers/FeatureProgrammer.ts +622 -622
  250. package/src/programmers/ImportProgrammer.ts +185 -185
  251. package/src/programmers/IsProgrammer.ts +273 -273
  252. package/src/programmers/RandomProgrammer.ts +1190 -1190
  253. package/src/programmers/TypiaProgrammer.ts +174 -174
  254. package/src/programmers/ValidateProgrammer.ts +439 -439
  255. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  256. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  257. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  258. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  259. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  260. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  261. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  262. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  263. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  264. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  265. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  266. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  267. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  268. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  269. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  270. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  271. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  272. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  273. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  274. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  275. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  276. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  277. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  278. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  279. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  280. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  281. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  282. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  283. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  284. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  285. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  286. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  287. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  288. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  289. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  290. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  291. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  292. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  293. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  294. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  295. package/src/programmers/internal/check_array_length.ts +47 -47
  296. package/src/programmers/internal/check_bigint.ts +50 -50
  297. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  298. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  299. package/src/programmers/internal/check_everything.ts +23 -23
  300. package/src/programmers/internal/check_native.ts +27 -27
  301. package/src/programmers/internal/check_number.ts +112 -112
  302. package/src/programmers/internal/check_object.ts +75 -75
  303. package/src/programmers/internal/check_string.ts +50 -50
  304. package/src/programmers/internal/check_template.ts +48 -48
  305. package/src/programmers/internal/check_union_array_like.ts +335 -335
  306. package/src/programmers/internal/decode_union_object.ts +116 -116
  307. package/src/programmers/internal/feature_object_entries.ts +61 -61
  308. package/src/programmers/internal/json_schema_alias.ts +47 -47
  309. package/src/programmers/internal/json_schema_array.ts +45 -45
  310. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  311. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  312. package/src/programmers/internal/json_schema_constant.ts +26 -26
  313. package/src/programmers/internal/json_schema_description.ts +12 -12
  314. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  315. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  316. package/src/programmers/internal/json_schema_native.ts +33 -33
  317. package/src/programmers/internal/json_schema_number.ts +15 -15
  318. package/src/programmers/internal/json_schema_object.ts +158 -158
  319. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  320. package/src/programmers/internal/json_schema_station.ts +182 -182
  321. package/src/programmers/internal/json_schema_string.ts +15 -15
  322. package/src/programmers/internal/json_schema_template.ts +55 -55
  323. package/src/programmers/internal/json_schema_title.ts +20 -20
  324. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  325. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  326. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  327. package/src/programmers/internal/prune_object_properties.ts +71 -71
  328. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  329. package/src/programmers/internal/stringify_native.ts +7 -7
  330. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  331. package/src/programmers/internal/template_to_pattern.ts +23 -23
  332. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  333. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -279
  334. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  335. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  336. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  337. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  338. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  339. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  340. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  341. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  342. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +104 -104
  343. package/src/programmers/llm/LlmApplicationProgrammer.ts +327 -327
  344. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  345. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  346. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  347. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  348. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  349. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  350. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  351. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  352. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  353. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  354. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  355. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  356. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  357. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  358. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  359. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  360. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  361. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  362. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  363. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  364. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  365. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  366. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  367. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  368. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  369. package/src/protobuf.ts +868 -868
  370. package/src/reflect.ts +57 -57
  371. package/src/schemas/json/IJsonApplication.ts +73 -73
  372. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  373. package/src/schemas/json/__IJsonApplication.ts +63 -63
  374. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  375. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  376. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  377. package/src/schemas/metadata/IMetadata.ts +35 -35
  378. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  379. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  380. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  381. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  382. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  383. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  384. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  385. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  386. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  387. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  388. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  389. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  390. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  391. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  392. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  393. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  394. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  395. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  396. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  397. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  398. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  399. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  400. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  401. package/src/schemas/metadata/Metadata.ts +669 -669
  402. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  403. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  404. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  405. package/src/schemas/metadata/MetadataArray.ts +49 -49
  406. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  407. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  408. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  409. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  410. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  411. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  412. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  413. package/src/schemas/metadata/MetadataMap.ts +48 -48
  414. package/src/schemas/metadata/MetadataNative.ts +44 -44
  415. package/src/schemas/metadata/MetadataObject.ts +48 -48
  416. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  417. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  418. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  419. package/src/schemas/metadata/MetadataSet.ts +45 -45
  420. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  421. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  422. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  423. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  424. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  425. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  426. package/src/tags/Constant.ts +15 -15
  427. package/src/tags/ContentMediaType.ts +10 -10
  428. package/src/tags/Default.ts +22 -22
  429. package/src/tags/Example.ts +24 -24
  430. package/src/tags/Examples.ts +16 -16
  431. package/src/tags/ExclusiveMaximum.ts +25 -25
  432. package/src/tags/ExclusiveMinimum.ts +25 -25
  433. package/src/tags/Format.ts +50 -50
  434. package/src/tags/JsonSchemaPlugin.ts +8 -8
  435. package/src/tags/MaxItems.ts +12 -12
  436. package/src/tags/MaxLength.ts +12 -12
  437. package/src/tags/Maximum.ts +19 -19
  438. package/src/tags/MinItems.ts +12 -12
  439. package/src/tags/MinLength.ts +12 -12
  440. package/src/tags/Minimum.ts +19 -19
  441. package/src/tags/MultipleOf.ts +21 -21
  442. package/src/tags/Pattern.ts +31 -31
  443. package/src/tags/Sequence.ts +10 -10
  444. package/src/tags/TagBase.ts +82 -82
  445. package/src/tags/Type.ts +32 -32
  446. package/src/tags/UniqueItems.ts +14 -14
  447. package/src/tags/index.ts +21 -21
  448. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  449. package/src/transform.ts +35 -35
  450. package/src/transformers/CallExpressionTransformer.ts +547 -547
  451. package/src/transformers/FileTransformer.ts +136 -136
  452. package/src/transformers/IProgrammerProps.ts +11 -11
  453. package/src/transformers/ITransformOptions.ts +62 -62
  454. package/src/transformers/ITransformProps.ts +9 -9
  455. package/src/transformers/ITypiaContext.ts +18 -18
  456. package/src/transformers/ImportTransformer.ts +81 -81
  457. package/src/transformers/NodeTransformer.ts +17 -17
  458. package/src/transformers/TransformerError.ts +60 -60
  459. package/src/transformers/features/AssertTransformer.ts +24 -24
  460. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  461. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  462. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  463. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  464. package/src/transformers/features/IsTransformer.ts +18 -18
  465. package/src/transformers/features/RandomTransformer.ts +41 -41
  466. package/src/transformers/features/ValidateTransformer.ts +18 -18
  467. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  468. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  469. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  470. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  471. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  472. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  473. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  474. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  475. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  476. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  477. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  478. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  479. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  480. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  481. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  482. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  483. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  484. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  485. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  486. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  487. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  488. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  489. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  490. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  491. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  492. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  493. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  494. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  495. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  496. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  497. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  498. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  499. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  500. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  501. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  502. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  503. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  504. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  505. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  506. package/src/transformers/features/json/JsonSchemasTransformer.ts +143 -143
  507. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  508. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  509. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  510. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +121 -121
  511. package/src/transformers/features/llm/LlmApplicationTransformer.ts +118 -118
  512. package/src/transformers/features/llm/LlmParametersTransformer.ts +94 -94
  513. package/src/transformers/features/llm/LlmSchemaTransformer.ts +135 -135
  514. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  515. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  516. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  517. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  518. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  519. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  520. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  521. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  522. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  523. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  524. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  525. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  526. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  527. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  528. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  529. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  530. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  531. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  532. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  533. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  534. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  535. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  536. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  537. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  538. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  539. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  540. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  541. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  542. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  543. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  544. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  545. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  546. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  547. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  548. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  549. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  550. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  551. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  552. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  553. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  554. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  555. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  556. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  557. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  558. package/src/transformers/internal/GenericTransformer.ts +101 -101
  559. package/src/typings/Atomic.ts +13 -13
  560. package/src/typings/ClassProperties.ts +5 -5
  561. package/src/typings/Customizable.ts +5 -5
  562. package/src/typings/Equal.ts +18 -18
  563. package/src/typings/IsTuple.ts +9 -9
  564. package/src/typings/NativeClass.ts +23 -23
  565. package/src/typings/OmitNever.ts +3 -3
  566. package/src/typings/ProtobufAtomic.ts +19 -19
  567. package/src/typings/SpecialFields.ts +3 -3
  568. package/src/typings/ValidationPipe.ts +9 -9
  569. package/src/typings/ValueOf.ts +20 -20
  570. package/src/typings/Writable.ts +11 -11
  571. package/src/utils/ArrayUtil.ts +41 -41
  572. package/src/utils/Escaper.ts +50 -50
  573. package/src/utils/MapUtil.ts +14 -14
  574. package/src/utils/NamingConvention.ts +94 -94
  575. package/src/utils/PatternUtil.ts +29 -29
  576. package/src/utils/ProtobufNameEncoder.ts +32 -32
  577. package/src/utils/Singleton.ts +16 -16
  578. package/src/utils/StringUtil.ts +16 -16
package/src/SnakeCase.ts CHANGED
@@ -1,126 +1,126 @@
1
- import { Equal } from "./typings/Equal";
2
- import { NativeClass } from "./typings/NativeClass";
3
- import { ValueOf } from "./typings/ValueOf";
4
-
5
- /**
6
- * Snake case type.
7
- *
8
- * `SnakeCase` type is a type that all keys of an object are converted to snake case.
9
- *
10
- * It also erase every method properties like {@link Resolved} type.
11
- *
12
- * @template T Target type to be snake cased
13
- * @author Jeongho Nam - https://github.com/samchon
14
- */
15
- export type SnakeCase<T> =
16
- Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
17
-
18
- /* -----------------------------------------------------------
19
- OBJECT CONVERSION
20
- ----------------------------------------------------------- */
21
-
22
- type SnakageMain<T> = T extends [never]
23
- ? never // special trick for (jsonable | null) type
24
- : T extends { valueOf(): boolean | bigint | number | string }
25
- ? ValueOf<T>
26
- : T extends Function
27
- ? never
28
- : T extends object
29
- ? SnakageObject<T>
30
- : T;
31
-
32
- type SnakageObject<T extends object> =
33
- T extends Array<infer U>
34
- ? IsTuple<T> extends true
35
- ? SnakageTuple<T>
36
- : SnakageMain<U>[]
37
- : T extends Set<infer U>
38
- ? Set<SnakageMain<U>>
39
- : T extends Map<infer K, infer V>
40
- ? Map<SnakageMain<K>, SnakageMain<V>>
41
- : T extends WeakSet<any> | WeakMap<any, any>
42
- ? never
43
- : T extends NativeClass
44
- ? T
45
- : {
46
- [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
47
- T[Key]
48
- >;
49
- };
50
-
51
- /* -----------------------------------------------------------
52
- SPECIAL CASES
53
- ----------------------------------------------------------- */
54
- type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
55
- never,
56
- ]
57
- ? false
58
- : T extends readonly any[]
59
- ? number extends T["length"]
60
- ? false
61
- : true
62
- : false;
63
- type SnakageTuple<T extends readonly any[]> = T extends []
64
- ? []
65
- : T extends [infer F]
66
- ? [SnakageMain<F>]
67
- : T extends [infer F, ...infer Rest extends readonly any[]]
68
- ? [SnakageMain<F>, ...SnakageTuple<Rest>]
69
- : T extends [(infer F)?]
70
- ? [SnakageMain<F>?]
71
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
72
- ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
73
- : [];
74
-
75
- /* -----------------------------------------------------------
76
- STRING CONVERTER
77
- ----------------------------------------------------------- */
78
- type SnakageString<Key extends string> = Key extends `${infer _}`
79
- ? SnakageStringRepeatedly<Key, "">
80
- : Key;
81
- type SnakageStringRepeatedly<
82
- S extends string,
83
- Previous extends string,
84
- > = S extends `${infer First}${infer Second}${infer Rest}`
85
- ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
86
- First,
87
- Second
88
- >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
89
- : S extends `${infer First}`
90
- ? `${Underscore<Previous, First>}${Lowercase<First>}`
91
- : "";
92
- type Underscore<First extends string, Second extends string> = First extends
93
- | UpperAlphabetic
94
- | ""
95
- | "_"
96
- ? ""
97
- : Second extends UpperAlphabetic
98
- ? "_"
99
- : "";
100
- type UpperAlphabetic =
101
- | "A"
102
- | "B"
103
- | "C"
104
- | "D"
105
- | "E"
106
- | "F"
107
- | "G"
108
- | "H"
109
- | "I"
110
- | "J"
111
- | "K"
112
- | "L"
113
- | "M"
114
- | "N"
115
- | "O"
116
- | "P"
117
- | "Q"
118
- | "R"
119
- | "S"
120
- | "T"
121
- | "U"
122
- | "V"
123
- | "W"
124
- | "X"
125
- | "Y"
126
- | "Z";
1
+ import { Equal } from "./typings/Equal";
2
+ import { NativeClass } from "./typings/NativeClass";
3
+ import { ValueOf } from "./typings/ValueOf";
4
+
5
+ /**
6
+ * Snake case type.
7
+ *
8
+ * `SnakeCase` type is a type that all keys of an object are converted to snake case.
9
+ *
10
+ * It also erase every method properties like {@link Resolved} type.
11
+ *
12
+ * @template T Target type to be snake cased
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ */
15
+ export type SnakeCase<T> =
16
+ Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
17
+
18
+ /* -----------------------------------------------------------
19
+ OBJECT CONVERSION
20
+ ----------------------------------------------------------- */
21
+
22
+ type SnakageMain<T> = T extends [never]
23
+ ? never // special trick for (jsonable | null) type
24
+ : T extends { valueOf(): boolean | bigint | number | string }
25
+ ? ValueOf<T>
26
+ : T extends Function
27
+ ? never
28
+ : T extends object
29
+ ? SnakageObject<T>
30
+ : T;
31
+
32
+ type SnakageObject<T extends object> =
33
+ T extends Array<infer U>
34
+ ? IsTuple<T> extends true
35
+ ? SnakageTuple<T>
36
+ : SnakageMain<U>[]
37
+ : T extends Set<infer U>
38
+ ? Set<SnakageMain<U>>
39
+ : T extends Map<infer K, infer V>
40
+ ? Map<SnakageMain<K>, SnakageMain<V>>
41
+ : T extends WeakSet<any> | WeakMap<any, any>
42
+ ? never
43
+ : T extends NativeClass
44
+ ? T
45
+ : {
46
+ [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
47
+ T[Key]
48
+ >;
49
+ };
50
+
51
+ /* -----------------------------------------------------------
52
+ SPECIAL CASES
53
+ ----------------------------------------------------------- */
54
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
55
+ never,
56
+ ]
57
+ ? false
58
+ : T extends readonly any[]
59
+ ? number extends T["length"]
60
+ ? false
61
+ : true
62
+ : false;
63
+ type SnakageTuple<T extends readonly any[]> = T extends []
64
+ ? []
65
+ : T extends [infer F]
66
+ ? [SnakageMain<F>]
67
+ : T extends [infer F, ...infer Rest extends readonly any[]]
68
+ ? [SnakageMain<F>, ...SnakageTuple<Rest>]
69
+ : T extends [(infer F)?]
70
+ ? [SnakageMain<F>?]
71
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
72
+ ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
73
+ : [];
74
+
75
+ /* -----------------------------------------------------------
76
+ STRING CONVERTER
77
+ ----------------------------------------------------------- */
78
+ type SnakageString<Key extends string> = Key extends `${infer _}`
79
+ ? SnakageStringRepeatedly<Key, "">
80
+ : Key;
81
+ type SnakageStringRepeatedly<
82
+ S extends string,
83
+ Previous extends string,
84
+ > = S extends `${infer First}${infer Second}${infer Rest}`
85
+ ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
86
+ First,
87
+ Second
88
+ >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
89
+ : S extends `${infer First}`
90
+ ? `${Underscore<Previous, First>}${Lowercase<First>}`
91
+ : "";
92
+ type Underscore<First extends string, Second extends string> = First extends
93
+ | UpperAlphabetic
94
+ | ""
95
+ | "_"
96
+ ? ""
97
+ : Second extends UpperAlphabetic
98
+ ? "_"
99
+ : "";
100
+ type UpperAlphabetic =
101
+ | "A"
102
+ | "B"
103
+ | "C"
104
+ | "D"
105
+ | "E"
106
+ | "F"
107
+ | "G"
108
+ | "H"
109
+ | "I"
110
+ | "J"
111
+ | "K"
112
+ | "L"
113
+ | "M"
114
+ | "N"
115
+ | "O"
116
+ | "P"
117
+ | "Q"
118
+ | "R"
119
+ | "S"
120
+ | "T"
121
+ | "U"
122
+ | "V"
123
+ | "W"
124
+ | "X"
125
+ | "Y"
126
+ | "Z";
@@ -1,37 +1,37 @@
1
- export class TypeGuardError<T = any> extends Error {
2
- public readonly method: string;
3
- public readonly path: string | undefined;
4
- public readonly expected: string;
5
- public readonly value: any;
6
- protected readonly fake_expected_typed_value_?: T | undefined;
7
-
8
- public constructor(props: TypeGuardError.IProps) {
9
- // MESSAGE CONSTRUCTION
10
- super(
11
- props.message ||
12
- `Error on ${props.method}(): invalid type${
13
- props.path ? ` on ${props.path}` : ""
14
- }, expect to be ${props.expected}`,
15
- );
16
-
17
- // INHERITANCE POLYFILL
18
- const proto = new.target.prototype;
19
- if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
20
- else (this as any).__proto__ = proto;
21
-
22
- // ASSIGN MEMBERS
23
- this.method = props.method;
24
- this.path = props.path;
25
- this.expected = props.expected;
26
- this.value = props.value;
27
- }
28
- }
29
- export namespace TypeGuardError {
30
- export interface IProps {
31
- method: string;
32
- path?: undefined | string;
33
- expected: string;
34
- value: any;
35
- message?: undefined | string;
36
- }
37
- }
1
+ export class TypeGuardError<T = any> extends Error {
2
+ public readonly method: string;
3
+ public readonly path: string | undefined;
4
+ public readonly expected: string;
5
+ public readonly value: any;
6
+ protected readonly fake_expected_typed_value_?: T | undefined;
7
+
8
+ public constructor(props: TypeGuardError.IProps) {
9
+ // MESSAGE CONSTRUCTION
10
+ super(
11
+ props.message ||
12
+ `Error on ${props.method}(): invalid type${
13
+ props.path ? ` on ${props.path}` : ""
14
+ }, expect to be ${props.expected}`,
15
+ );
16
+
17
+ // INHERITANCE POLYFILL
18
+ const proto = new.target.prototype;
19
+ if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
20
+ else (this as any).__proto__ = proto;
21
+
22
+ // ASSIGN MEMBERS
23
+ this.method = props.method;
24
+ this.path = props.path;
25
+ this.expected = props.expected;
26
+ this.value = props.value;
27
+ }
28
+ }
29
+ export namespace TypeGuardError {
30
+ export interface IProps {
31
+ method: string;
32
+ path?: undefined | string;
33
+ expected: string;
34
+ value: any;
35
+ message?: undefined | string;
36
+ }
37
+ }
@@ -1,83 +1,83 @@
1
- import fs from "fs";
2
-
3
- import { TypiaProgrammer } from "../programmers/TypiaProgrammer";
4
-
5
- import { ArgumentParser } from "./setup/ArgumentParser";
6
- import { PackageManager } from "./setup/PackageManager";
7
-
8
- export namespace TypiaGenerateWizard {
9
- export async function generate(): Promise<void> {
10
- console.log("----------------------------------------");
11
- console.log(" Typia Generate Wizard");
12
- console.log("----------------------------------------");
13
-
14
- // LOAD PACKAGE.JSON INFO
15
- const pack: PackageManager = await PackageManager.mount();
16
- const options: IArguments = await ArgumentParser.parse(pack, inquiry);
17
- await TypiaProgrammer.build(options);
18
- }
19
-
20
- const inquiry: ArgumentParser.Inquiry<IArguments> = async (
21
- _pack,
22
- command,
23
- prompt,
24
- action,
25
- ) => {
26
- // PREPARE ASSETS
27
- command.option("--input [path]", "input directory");
28
- command.option("--output [directory]", "output directory");
29
- command.option("--project [project]", "tsconfig.json file location");
30
-
31
- const questioned = { value: false };
32
-
33
- const input = (name: string) => async (message: string) => {
34
- const result = await prompt()({
35
- type: "input",
36
- name,
37
- message,
38
- default: "",
39
- });
40
- return result[name] as string;
41
- };
42
- const select =
43
- (name: string) =>
44
- (message: string) =>
45
- async <Choice extends string>(choices: Choice[]): Promise<Choice> => {
46
- questioned.value = true;
47
- return (
48
- await prompt()({
49
- type: "list",
50
- name: name,
51
- message: message,
52
- choices: choices,
53
- })
54
- )[name];
55
- };
56
- const configure = async (): Promise<string> => {
57
- const files: string[] = await (
58
- await fs.promises.readdir(process.cwd())
59
- ).filter(
60
- (str) =>
61
- str.substring(0, 8) === "tsconfig" &&
62
- str.substring(str.length - 5) === ".json",
63
- );
64
- if (files.length === 0)
65
- throw new URIError(`Unable to find "tsconfig.json" file.`);
66
- else if (files.length === 1) return files[0]!;
67
- return select("tsconfig")("TS Config File")(files);
68
- };
69
-
70
- return action(async (options) => {
71
- options.input ??= await input("input")("input directory");
72
- options.output ??= await input("output")("output directory");
73
- options.project ??= await configure();
74
- return options as IArguments;
75
- });
76
- };
77
-
78
- export interface IArguments {
79
- input: string;
80
- output: string;
81
- project: string;
82
- }
83
- }
1
+ import fs from "fs";
2
+
3
+ import { TypiaProgrammer } from "../programmers/TypiaProgrammer";
4
+
5
+ import { ArgumentParser } from "./setup/ArgumentParser";
6
+ import { PackageManager } from "./setup/PackageManager";
7
+
8
+ export namespace TypiaGenerateWizard {
9
+ export async function generate(): Promise<void> {
10
+ console.log("----------------------------------------");
11
+ console.log(" Typia Generate Wizard");
12
+ console.log("----------------------------------------");
13
+
14
+ // LOAD PACKAGE.JSON INFO
15
+ const pack: PackageManager = await PackageManager.mount();
16
+ const options: IArguments = await ArgumentParser.parse(pack, inquiry);
17
+ await TypiaProgrammer.build(options);
18
+ }
19
+
20
+ const inquiry: ArgumentParser.Inquiry<IArguments> = async (
21
+ _pack,
22
+ command,
23
+ prompt,
24
+ action,
25
+ ) => {
26
+ // PREPARE ASSETS
27
+ command.option("--input [path]", "input directory");
28
+ command.option("--output [directory]", "output directory");
29
+ command.option("--project [project]", "tsconfig.json file location");
30
+
31
+ const questioned = { value: false };
32
+
33
+ const input = (name: string) => async (message: string) => {
34
+ const result = await prompt()({
35
+ type: "input",
36
+ name,
37
+ message,
38
+ default: "",
39
+ });
40
+ return result[name] as string;
41
+ };
42
+ const select =
43
+ (name: string) =>
44
+ (message: string) =>
45
+ async <Choice extends string>(choices: Choice[]): Promise<Choice> => {
46
+ questioned.value = true;
47
+ return (
48
+ await prompt()({
49
+ type: "list",
50
+ name: name,
51
+ message: message,
52
+ choices: choices,
53
+ })
54
+ )[name];
55
+ };
56
+ const configure = async (): Promise<string> => {
57
+ const files: string[] = await (
58
+ await fs.promises.readdir(process.cwd())
59
+ ).filter(
60
+ (str) =>
61
+ str.substring(0, 8) === "tsconfig" &&
62
+ str.substring(str.length - 5) === ".json",
63
+ );
64
+ if (files.length === 0)
65
+ throw new URIError(`Unable to find "tsconfig.json" file.`);
66
+ else if (files.length === 1) return files[0]!;
67
+ return select("tsconfig")("TS Config File")(files);
68
+ };
69
+
70
+ return action(async (options) => {
71
+ options.input ??= await input("input")("input directory");
72
+ options.output ??= await input("output")("output directory");
73
+ options.project ??= await configure();
74
+ return options as IArguments;
75
+ });
76
+ };
77
+
78
+ export interface IArguments {
79
+ input: string;
80
+ output: string;
81
+ project: string;
82
+ }
83
+ }
@@ -1,45 +1,45 @@
1
- import fs from "fs";
2
-
3
- export namespace TypiaPatchWizard {
4
- export const main = async (): Promise<void> => {
5
- console.log("----------------------------------------");
6
- console.log(" Typia Setup Wizard");
7
- console.log("----------------------------------------");
8
- console.log(
9
- [
10
- `Since TypeScript v5.3 update, "tsc" no more parses JSDoc comments.`,
11
- ``,
12
- `Therefore, "typia" revives the JSDoc parsing feature by patching "tsc".`,
13
- ``,
14
- `This is a temporary feature of "typia", and it would be removed when "ts-patch" being updated.`,
15
- ].join("\n"),
16
- );
17
-
18
- await patch();
19
- };
20
-
21
- export const patch = async (): Promise<void> => {
22
- for (const file of ["tsc.js", "_tsc.js"])
23
- try {
24
- const location: string = require.resolve(`typescript/lib/${file}`);
25
- const content: string = await fs.promises.readFile(location, "utf8");
26
- if (content.indexOf(FROM_WITH_COMMENT) !== -1)
27
- await fs.promises.writeFile(
28
- location,
29
- content.replace(FROM_WITH_COMMENT, TO_WITH_COMMENT),
30
- "utf8",
31
- );
32
- else if (content.indexOf(FROM_ONLY) !== -1)
33
- await fs.promises.writeFile(
34
- location,
35
- content.replace(FROM_ONLY, TO_ONLY),
36
- "utf8",
37
- );
38
- } catch {}
39
- };
40
- }
41
-
42
- const FROM_WITH_COMMENT = `var defaultJSDocParsingMode = 2 /* ParseForTypeErrors */`;
43
- const TO_WITH_COMMENT = `var defaultJSDocParsingMode = 0 /* ParseAll */`;
44
- const FROM_ONLY = `var defaultJSDocParsingMode = 2`;
45
- const TO_ONLY = `var defaultJSDocParsingMode = 0`;
1
+ import fs from "fs";
2
+
3
+ export namespace TypiaPatchWizard {
4
+ export const main = async (): Promise<void> => {
5
+ console.log("----------------------------------------");
6
+ console.log(" Typia Setup Wizard");
7
+ console.log("----------------------------------------");
8
+ console.log(
9
+ [
10
+ `Since TypeScript v5.3 update, "tsc" no more parses JSDoc comments.`,
11
+ ``,
12
+ `Therefore, "typia" revives the JSDoc parsing feature by patching "tsc".`,
13
+ ``,
14
+ `This is a temporary feature of "typia", and it would be removed when "ts-patch" being updated.`,
15
+ ].join("\n"),
16
+ );
17
+
18
+ await patch();
19
+ };
20
+
21
+ export const patch = async (): Promise<void> => {
22
+ for (const file of ["tsc.js", "_tsc.js"])
23
+ try {
24
+ const location: string = require.resolve(`typescript/lib/${file}`);
25
+ const content: string = await fs.promises.readFile(location, "utf8");
26
+ if (content.indexOf(FROM_WITH_COMMENT) !== -1)
27
+ await fs.promises.writeFile(
28
+ location,
29
+ content.replace(FROM_WITH_COMMENT, TO_WITH_COMMENT),
30
+ "utf8",
31
+ );
32
+ else if (content.indexOf(FROM_ONLY) !== -1)
33
+ await fs.promises.writeFile(
34
+ location,
35
+ content.replace(FROM_ONLY, TO_ONLY),
36
+ "utf8",
37
+ );
38
+ } catch {}
39
+ };
40
+ }
41
+
42
+ const FROM_WITH_COMMENT = `var defaultJSDocParsingMode = 2 /* ParseForTypeErrors */`;
43
+ const TO_WITH_COMMENT = `var defaultJSDocParsingMode = 0 /* ParseAll */`;
44
+ const FROM_ONLY = `var defaultJSDocParsingMode = 2`;
45
+ const TO_ONLY = `var defaultJSDocParsingMode = 0`;