typia 8.0.1 → 8.0.2-dev.20250314

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