typia 7.6.1 → 7.6.2-dev.20250205

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