typia 7.6.2-dev.20250205 → 7.6.3

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