typia 9.3.0-dev.20250511 → 9.3.0

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 (521) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +149 -149
  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/llm.d.mts +179 -31
  8. package/lib/llm.d.ts +179 -31
  9. package/lib/llm.js.map +1 -1
  10. package/lib/schemas/json/IJsonApplication.d.mts +5 -1
  11. package/lib/schemas/json/IJsonApplication.d.ts +5 -1
  12. package/lib/schemas/json/IJsonApplication.js.map +1 -1
  13. package/lib/transformers/features/llm/LlmControllerTransformer.js +3 -3
  14. package/lib/transformers/features/llm/LlmControllerTransformer.js.map +1 -1
  15. package/lib/transformers/features/llm/LlmControllerTransformer.mjs +3 -3
  16. package/package.json +3 -3
  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 +219 -219
  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 +648 -648
  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 +264 -264
  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 +740 -740
  80. package/src/http.ts +1040 -1040
  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/_createStandardSchema.ts +134 -134
  89. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  90. package/src/internal/_httpFormDataReadArray.ts +4 -4
  91. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  92. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  93. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  94. package/src/internal/_httpFormDataReadFile.ts +10 -10
  95. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  96. package/src/internal/_httpFormDataReadString.ts +10 -10
  97. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  98. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  99. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  100. package/src/internal/_httpParameterReadBigint.ts +10 -10
  101. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  102. package/src/internal/_httpParameterReadNumber.ts +7 -7
  103. package/src/internal/_httpParameterReadString.ts +2 -2
  104. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  105. package/src/internal/_httpQueryReadArray.ts +4 -4
  106. package/src/internal/_httpQueryReadBigint.ts +12 -12
  107. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  108. package/src/internal/_httpQueryReadNumber.ts +9 -9
  109. package/src/internal/_httpQueryReadString.ts +4 -4
  110. package/src/internal/_isBetween.ts +2 -2
  111. package/src/internal/_isBigintString.ts +8 -8
  112. package/src/internal/_isFormatByte.ts +7 -7
  113. package/src/internal/_isFormatDate.ts +3 -3
  114. package/src/internal/_isFormatDateTime.ts +4 -4
  115. package/src/internal/_isFormatDuration.ts +4 -4
  116. package/src/internal/_isFormatEmail.ts +4 -4
  117. package/src/internal/_isFormatHostname.ts +4 -4
  118. package/src/internal/_isFormatIdnEmail.ts +4 -4
  119. package/src/internal/_isFormatIdnHostname.ts +4 -4
  120. package/src/internal/_isFormatIpv4.ts +4 -4
  121. package/src/internal/_isFormatIpv6.ts +4 -4
  122. package/src/internal/_isFormatIri.ts +3 -3
  123. package/src/internal/_isFormatIriReference.ts +4 -4
  124. package/src/internal/_isFormatJsonPointer.ts +3 -3
  125. package/src/internal/_isFormatPassword.ts +1 -1
  126. package/src/internal/_isFormatRegex.ts +8 -8
  127. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  128. package/src/internal/_isFormatTime.ts +4 -4
  129. package/src/internal/_isFormatUri.ts +6 -6
  130. package/src/internal/_isFormatUriReference.ts +5 -5
  131. package/src/internal/_isFormatUriTemplate.ts +4 -4
  132. package/src/internal/_isFormatUrl.ts +4 -4
  133. package/src/internal/_isFormatUuid.ts +3 -3
  134. package/src/internal/_isTypeFloat.ts +5 -5
  135. package/src/internal/_isTypeInt32.ts +5 -5
  136. package/src/internal/_isTypeInt64.ts +5 -5
  137. package/src/internal/_isTypeUint32.ts +5 -5
  138. package/src/internal/_isTypeUint64.ts +5 -5
  139. package/src/internal/_isUniqueItems.ts +159 -159
  140. package/src/internal/_jsonStringifyNumber.ts +12 -12
  141. package/src/internal/_jsonStringifyRest.ts +3 -3
  142. package/src/internal/_jsonStringifyString.ts +42 -42
  143. package/src/internal/_jsonStringifyTail.ts +2 -2
  144. package/src/internal/_llmApplicationFinalize.ts +20 -20
  145. package/src/internal/_miscCloneAny.ts +46 -46
  146. package/src/internal/_notationAny.ts +37 -37
  147. package/src/internal/_notationCamel.ts +13 -13
  148. package/src/internal/_notationPascal.ts +8 -8
  149. package/src/internal/_notationSnake.ts +43 -43
  150. package/src/internal/_randomArray.ts +21 -21
  151. package/src/internal/_randomBigint.ts +6 -6
  152. package/src/internal/_randomBoolean.ts +1 -1
  153. package/src/internal/_randomFormatByte.ts +3 -3
  154. package/src/internal/_randomFormatDate.ts +18 -18
  155. package/src/internal/_randomFormatDatetime.ts +16 -16
  156. package/src/internal/_randomFormatDuration.ts +27 -27
  157. package/src/internal/_randomFormatEmail.ts +11 -11
  158. package/src/internal/_randomFormatHostname.ts +6 -6
  159. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  160. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  161. package/src/internal/_randomFormatIpv4.ts +11 -11
  162. package/src/internal/_randomFormatIpv6.ts +11 -11
  163. package/src/internal/_randomFormatIri.ts +3 -3
  164. package/src/internal/_randomFormatIriReference.ts +3 -3
  165. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  166. package/src/internal/_randomFormatPassword.ts +8 -8
  167. package/src/internal/_randomFormatRegex.ts +4 -4
  168. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  169. package/src/internal/_randomFormatTime.ts +14 -14
  170. package/src/internal/_randomFormatUri.ts +3 -3
  171. package/src/internal/_randomFormatUriReference.ts +3 -3
  172. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  173. package/src/internal/_randomFormatUrl.ts +11 -11
  174. package/src/internal/_randomFormatUuid.ts +6 -6
  175. package/src/internal/_randomInteger.ts +53 -53
  176. package/src/internal/_randomNumber.ts +80 -80
  177. package/src/internal/_randomPattern.ts +10 -10
  178. package/src/internal/_randomPick.ts +9 -9
  179. package/src/internal/_randomString.ts +24 -24
  180. package/src/internal/_throwTypeGuardError.ts +5 -5
  181. package/src/internal/_validateReport.ts +13 -13
  182. package/src/internal/private/__notationCapitalize.ts +2 -2
  183. package/src/internal/private/__notationUnsnake.ts +24 -24
  184. package/src/json.ts +696 -696
  185. package/src/llm.ts +506 -358
  186. package/src/misc.ts +651 -651
  187. package/src/module.ts +936 -936
  188. package/src/notations.ts +820 -820
  189. package/src/programmers/AssertProgrammer.ts +454 -454
  190. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  191. package/src/programmers/FeatureProgrammer.ts +627 -627
  192. package/src/programmers/ImportProgrammer.ts +185 -185
  193. package/src/programmers/IsProgrammer.ts +273 -273
  194. package/src/programmers/RandomProgrammer.ts +1190 -1190
  195. package/src/programmers/TypiaProgrammer.ts +175 -175
  196. package/src/programmers/ValidateProgrammer.ts +448 -448
  197. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  198. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  199. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  200. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  201. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  202. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  203. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  204. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  205. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  206. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  207. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  208. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  209. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  210. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  211. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  212. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  213. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  214. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  215. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  216. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  217. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  218. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  219. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  220. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  221. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  222. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  223. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  224. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  225. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  226. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  227. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  228. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  229. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  230. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  231. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  232. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  233. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  234. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  235. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  236. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  237. package/src/programmers/internal/check_array_length.ts +47 -47
  238. package/src/programmers/internal/check_bigint.ts +50 -50
  239. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  240. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  241. package/src/programmers/internal/check_everything.ts +23 -23
  242. package/src/programmers/internal/check_native.ts +27 -27
  243. package/src/programmers/internal/check_number.ts +112 -112
  244. package/src/programmers/internal/check_object.ts +75 -75
  245. package/src/programmers/internal/check_string.ts +50 -50
  246. package/src/programmers/internal/check_template.ts +48 -48
  247. package/src/programmers/internal/check_union_array_like.ts +335 -335
  248. package/src/programmers/internal/decode_union_object.ts +116 -116
  249. package/src/programmers/internal/feature_object_entries.ts +61 -61
  250. package/src/programmers/internal/json_schema_alias.ts +47 -47
  251. package/src/programmers/internal/json_schema_array.ts +45 -45
  252. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  253. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  254. package/src/programmers/internal/json_schema_constant.ts +26 -26
  255. package/src/programmers/internal/json_schema_description.ts +12 -12
  256. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  257. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  258. package/src/programmers/internal/json_schema_native.ts +33 -33
  259. package/src/programmers/internal/json_schema_number.ts +15 -15
  260. package/src/programmers/internal/json_schema_object.ts +158 -158
  261. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  262. package/src/programmers/internal/json_schema_station.ts +185 -185
  263. package/src/programmers/internal/json_schema_string.ts +15 -15
  264. package/src/programmers/internal/json_schema_template.ts +55 -55
  265. package/src/programmers/internal/json_schema_title.ts +20 -20
  266. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  267. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  268. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  269. package/src/programmers/internal/prune_object_properties.ts +71 -71
  270. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  271. package/src/programmers/internal/stringify_native.ts +7 -7
  272. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  273. package/src/programmers/internal/template_to_pattern.ts +23 -23
  274. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  275. package/src/programmers/json/JsonApplicationProgrammer.ts +266 -266
  276. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  277. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  278. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  279. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  280. package/src/programmers/json/JsonSchemaProgrammer.ts +26 -26
  281. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  282. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  283. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  284. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  285. package/src/programmers/llm/LlmApplicationProgrammer.ts +401 -401
  286. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  287. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  288. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  289. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  290. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  291. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  292. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  293. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  294. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  295. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  296. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  297. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  298. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  299. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  300. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  301. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  302. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  303. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  304. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  305. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  306. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  307. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  308. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  309. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  310. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  311. package/src/protobuf.ts +861 -861
  312. package/src/reflect.ts +50 -50
  313. package/src/schemas/json/IJsonApplication.ts +77 -73
  314. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  315. package/src/schemas/json/IJsonSchemaUnit.ts +32 -32
  316. package/src/schemas/json/__IJsonApplication.ts +63 -63
  317. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  318. package/src/schemas/metadata/IMetadata.ts +35 -35
  319. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  320. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  321. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  322. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  323. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  324. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  325. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  326. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  327. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  328. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  329. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  330. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  331. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  332. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  333. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  334. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  335. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  336. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  337. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  338. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  339. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  340. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  341. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  342. package/src/schemas/metadata/Metadata.ts +687 -687
  343. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  344. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  345. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  346. package/src/schemas/metadata/MetadataArray.ts +49 -49
  347. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  348. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  349. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  350. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  351. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  352. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  353. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  354. package/src/schemas/metadata/MetadataMap.ts +48 -48
  355. package/src/schemas/metadata/MetadataNative.ts +44 -44
  356. package/src/schemas/metadata/MetadataObject.ts +48 -48
  357. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  358. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  359. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  360. package/src/schemas/metadata/MetadataSet.ts +45 -45
  361. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  362. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  363. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  364. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  365. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  366. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  367. package/src/tags/Constant.ts +15 -15
  368. package/src/tags/ContentMediaType.ts +10 -10
  369. package/src/tags/Default.ts +22 -22
  370. package/src/tags/Example.ts +24 -24
  371. package/src/tags/Examples.ts +16 -16
  372. package/src/tags/ExclusiveMaximum.ts +23 -23
  373. package/src/tags/ExclusiveMinimum.ts +23 -23
  374. package/src/tags/Format.ts +50 -50
  375. package/src/tags/JsonSchemaPlugin.ts +8 -8
  376. package/src/tags/MaxItems.ts +12 -12
  377. package/src/tags/MaxLength.ts +12 -12
  378. package/src/tags/Maximum.ts +19 -19
  379. package/src/tags/MinItems.ts +12 -12
  380. package/src/tags/MinLength.ts +12 -12
  381. package/src/tags/Minimum.ts +19 -19
  382. package/src/tags/MultipleOf.ts +21 -21
  383. package/src/tags/Pattern.ts +31 -31
  384. package/src/tags/Sequence.ts +10 -10
  385. package/src/tags/TagBase.ts +82 -82
  386. package/src/tags/Type.ts +37 -37
  387. package/src/tags/UniqueItems.ts +14 -14
  388. package/src/tags/index.ts +21 -21
  389. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  390. package/src/transform.ts +35 -35
  391. package/src/transformers/CallExpressionTransformer.ts +554 -554
  392. package/src/transformers/FileTransformer.ts +136 -136
  393. package/src/transformers/IProgrammerProps.ts +11 -11
  394. package/src/transformers/ITransformOptions.ts +62 -62
  395. package/src/transformers/ITransformProps.ts +9 -9
  396. package/src/transformers/ITypiaContext.ts +18 -18
  397. package/src/transformers/ImportTransformer.ts +81 -81
  398. package/src/transformers/NoTransformConfigurationError.ts +18 -18
  399. package/src/transformers/NodeTransformer.ts +17 -17
  400. package/src/transformers/TransformerError.ts +60 -60
  401. package/src/transformers/features/AssertTransformer.ts +24 -24
  402. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  403. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  404. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  405. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  406. package/src/transformers/features/IsTransformer.ts +18 -18
  407. package/src/transformers/features/RandomTransformer.ts +41 -41
  408. package/src/transformers/features/ValidateTransformer.ts +18 -18
  409. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  410. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  411. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  412. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  413. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  414. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  415. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  416. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  417. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  418. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  419. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  420. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  421. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  422. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  423. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  424. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  425. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  426. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  427. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  428. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  429. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  430. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  431. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  432. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  433. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  434. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  435. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  436. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  437. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  438. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  439. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  440. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  441. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  442. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  443. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  444. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  445. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  446. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  447. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  448. package/src/transformers/features/json/JsonSchemaTransformer.ts +135 -135
  449. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
  450. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  451. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  452. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  453. package/src/transformers/features/llm/LlmApplicationTransformer.ts +145 -145
  454. package/src/transformers/features/llm/LlmControllerTransformer.ts +93 -93
  455. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
  456. package/src/transformers/features/llm/LlmSchemaTransformer.ts +170 -170
  457. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  458. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  459. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  460. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  461. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  462. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  463. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  464. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  465. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  466. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  467. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  468. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  469. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  470. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  471. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  472. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  473. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  474. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  475. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  476. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  477. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  478. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  479. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  480. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  481. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  482. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  483. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  484. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  485. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  486. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  487. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  488. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  489. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  490. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  491. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  492. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  493. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  494. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  495. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  496. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  497. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  498. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  499. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  500. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  501. package/src/transformers/internal/GenericTransformer.ts +101 -101
  502. package/src/typings/Atomic.ts +13 -13
  503. package/src/typings/ClassProperties.ts +5 -5
  504. package/src/typings/Customizable.ts +5 -5
  505. package/src/typings/Equal.ts +18 -18
  506. package/src/typings/IsTuple.ts +9 -9
  507. package/src/typings/NativeClass.ts +23 -23
  508. package/src/typings/OmitNever.ts +3 -3
  509. package/src/typings/ProtobufAtomic.ts +19 -19
  510. package/src/typings/SpecialFields.ts +3 -3
  511. package/src/typings/ValidationPipe.ts +9 -9
  512. package/src/typings/ValueOf.ts +20 -20
  513. package/src/typings/Writable.ts +11 -11
  514. package/src/utils/ArrayUtil.ts +41 -41
  515. package/src/utils/Escaper.ts +50 -50
  516. package/src/utils/MapUtil.ts +14 -14
  517. package/src/utils/NamingConvention.ts +94 -94
  518. package/src/utils/PatternUtil.ts +29 -29
  519. package/src/utils/ProtobufNameEncoder.ts +32 -32
  520. package/src/utils/Singleton.ts +16 -16
  521. package/src/utils/StringUtil.ts +16 -16
package/src/json.ts CHANGED
@@ -1,696 +1,696 @@
1
- import { IJsonSchemaCollection } from "./schemas/json/IJsonSchemaCollection";
2
- import { IJsonSchemaUnit } from "./schemas/json/IJsonSchemaUnit";
3
-
4
- import { NoTransformConfigurationError } from "./transformers/NoTransformConfigurationError";
5
-
6
- import { IValidation } from "./IValidation";
7
- import { Primitive } from "./Primitive";
8
- import { TypeGuardError } from "./TypeGuardError";
9
-
10
- /* ===========================================================
11
- JSON
12
- - METADATA
13
- - PARSE
14
- - STRINGIFY
15
- - FACTORY FUNCTIONS
16
- ==============================================================
17
- METADATA
18
- ----------------------------------------------------------- */
19
- /**
20
- * > You must configure the generic argument `Types`.
21
- *
22
- * JSON Schemas Generator.
23
- *
24
- * Creates a JSON schema list which contains both main JSON schemas
25
- * and components. Note that, all of the named types are stored in the
26
- * {@link IJsonSchemaCollection.components} property for the `$ref` referencing.
27
- *
28
- * Also, you can specify the OpenAPI version by configuring the second generic
29
- * argument `Version`. For reference, the default version is `"3.1"`, and key
30
- * different of `"3.0"` and `"3.1"` is whether supporting the tuple type or not.
31
- *
32
- * @template Types Tuple of target types
33
- * @template Version Version of OpenAPI specification. Default is 3.1
34
- * @return JSON schema collection
35
- *
36
- * @author Jeongho Nam - https://github.com/samchon
37
- */
38
- export function schemas(): never;
39
-
40
- /**
41
- * JSON Schemas Generator.
42
- *
43
- * Creates a JSON schema list which contains both main JSON schemas
44
- * and components. Note that, all of the named types are stored in the
45
- * {@link IJsonSchemaCollection.components} property for the `$ref` referencing.
46
- *
47
- * Also, you can specify the OpenAPI version by configuring the second generic
48
- * argument `Version`. For reference, the default version is `"3.1"`, and key
49
- * different of `"3.0"` and `"3.1"` is whether supporting the tuple type or not.
50
- *
51
- * @template Types Tuple of target types
52
- * @template Version Version of OpenAPI specification. Default is 3.1
53
- * @return JSON schema collection
54
- *
55
- * @author Jeongho Nam - https://github.com/samchon
56
- */
57
- export function schemas<
58
- Types extends unknown[],
59
- Version extends "3.0" | "3.1" = "3.1",
60
- >(): IJsonSchemaCollection<Version, Types>;
61
-
62
- /**
63
- * @internal
64
- */
65
- export function schemas(): never {
66
- NoTransformConfigurationError("json.schemas");
67
- }
68
-
69
- /**
70
- * > You must configure the generic argument `Type`.
71
- *
72
- * JSON schema generator.
73
- *
74
- * Creates a JSON schema unit which contains a main JSON schema and
75
- * its components. Note that, all of the named types are stored in the
76
- * {@link IJsonSchemaUnit.components} property for the `$ref` referencing.
77
- *
78
- * Also, you can specify the OpenAPI version by configuring the second
79
- * generic argument `Version`. For reference, the default version is `"3.1"`,
80
- * and key different of `"3.0"` and `"3.1"` is whether supporting the
81
- * tuple type or not.
82
- *
83
- * @template Type Target type
84
- * @template Version Version of OpenAPI specification. Default is 3.1
85
- * @return JSON schema unit
86
- *
87
- * @author Jeongho Nam - https://github.com/samchon
88
- */
89
- export function schema(): never;
90
-
91
- /**
92
- * JSON schema generator.
93
- *
94
- * Creates a JSON schema unit which contains a main JSON schema and
95
- * its components. Note that, all of the named types are stored in the
96
- * {@link IJsonSchemaUnit.components} property for the `$ref` referencing.
97
- *
98
- * Also, you can specify the OpenAPI version by configuring the second
99
- * generic argument `Version`. For reference, the default version is `"3.1"`,
100
- * and key different of `"3.0"` and `"3.1"` is whether supporting the
101
- * tuple type or not.
102
- *
103
- * @template Type Target type
104
- * @template Version Version of OpenAPI specification. Default is 3.1
105
- * @return JSON schema unit
106
- *
107
- * @author Jeongho Nam - https://github.com/samchon
108
- */
109
- export function schema<
110
- Type extends unknown,
111
- Version extends "3.0" | "3.1" = "3.1",
112
- >(): IJsonSchemaUnit<Version, Type>;
113
-
114
- /**
115
- * @internal
116
- */
117
- export function schema(): never {
118
- NoTransformConfigurationError("json.schema");
119
- }
120
-
121
- /* -----------------------------------------------------------
122
- PARSE
123
- ----------------------------------------------------------- */
124
- /**
125
- * > You must configure the generic argument `T`.
126
- *
127
- * Safe `JSON.parse()` function with type assertion.
128
- *
129
- * `typia.json.assertParse()` is a combination function of `JSON.parse()` and
130
- * {@link assert}. Therefore, it converts a JSON (JavaScript Object Notation) string
131
- * to a `T` typed instance with type assertion.
132
- *
133
- * In such reason, when parsed JSON string value is not matched with the type `T`, it
134
- * throws {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
135
- * there's no problem on the parsed value, the parsed value would be returned.
136
- *
137
- * @template T Expected type of parsed value
138
- * @param input JSON string
139
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
140
- * @returns Parsed value
141
- *
142
- * @author Jeongho Nam - https://github.com/samchon
143
- */
144
- export function assertParse(
145
- input: string,
146
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
147
- ): never;
148
-
149
- /**
150
- * Safe `JSON.parse()` function with type assertion.
151
- *
152
- * `typia.json.assertParse()` is a combination function of `JSON.parse()` and
153
- * {@link assert}. Therefore, it converts a JSON (JavaScript Object Notation) string
154
- * to a `T` typed instance with type assertion.
155
- *
156
- * In such reason, when parsed JSON string value is not matched with the type `T`,
157
- * it throws {@link TypeGuardError} or custom error generated by *errorFactory*.
158
- * Otherwise, there's no problem on the parsed value, the parsed value would be
159
- * returned.
160
- *
161
- * @template T Expected type of parsed value
162
- * @param input JSON string
163
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
164
- * @returns Parsed value
165
- *
166
- * @author Jeongho Nam - https://github.com/samchon
167
- */
168
- export function assertParse<T>(
169
- input: string,
170
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
171
- ): Primitive<T>;
172
-
173
- /**
174
- * @internal
175
- */
176
- export function assertParse<T>(): Primitive<T> {
177
- NoTransformConfigurationError("json.assertParse");
178
- }
179
-
180
- /**
181
- * > You must configure the generic argument `T`.
182
- *
183
- * Safe `JSON.parse()` function with type checking.
184
- *
185
- * `typia.json.isParse()` is a combination function of `JSON.parse()` and {@link is}.
186
- * Therefore, it converts a JSON (JavaScript Object Notation) string to a `T` typed
187
- * instance with type checking.
188
- *
189
- * In such reason, when parsed JSON string value is not matched with the type `T`, it
190
- * returns `null` value. Otherwise, there's no problem on the parsed value, the parsed
191
- * value would be returned.
192
- *
193
- * @template T Expected type of parsed value
194
- * @param input JSON string
195
- * @returns Parsed value when exact type, otherwise `null`
196
- *
197
- * @author Jeongho Nam - https://github.com/samchon
198
- */
199
- export function isParse(input: string): never;
200
-
201
- /**
202
- * Safe `JSON.parse()` function with type checking.
203
- *
204
- * `typia.json.isParse()` is a combination function of `JSON.parse()` and {@link is}.
205
- * Therefore, it converts a JSON (JavaScript Object Notation) string to a `T` typed
206
- * instance with type checking.
207
- *
208
- * In such reason, when parsed JSON string value is not matched with the type `T`, it
209
- * returns `null` value. Otherwise, there's no problem on the parsed value, the parsed
210
- * value would be returned.
211
- *
212
- * @template T Expected type of parsed value
213
- * @param input JSON string
214
- * @returns Parsed value when exact type, otherwise `null`
215
- *
216
- * @author Jeongho Nam - https://github.com/samchon
217
- */
218
- export function isParse<T>(input: string): Primitive<T> | null;
219
-
220
- /**
221
- * @internal
222
- */
223
- export function isParse<T>(): Primitive<T> | null {
224
- NoTransformConfigurationError("json.isParse");
225
- }
226
-
227
- /**
228
- * > You must configure the generic argument `T`.
229
- *
230
- * Safe `JSON.parse()` function with detailed type validation.
231
- *
232
- * `typia.json.validateParse()` is a combination function of `JSON.parse()` and
233
- * {@link validate}. Therefore, it converts a JSON (JavaScript Object Notation) string
234
- * to a `T` typed instance with detailed type validation.
235
- *
236
- * In such reason, when parsed JSON string value is not matched with the type `T`, it
237
- * returns {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
238
- * there's no problem on the parsed value, the parsed value would be stored in `data`
239
- * property of the output {@link IValidation.ISuccess} instance.
240
- *
241
- * @template T Expected type of parsed value
242
- * @param input JSON string
243
- * @returns Validation result with JSON parsed value
244
- *
245
- * @author Jeongho Nam - https://github.com/samchon
246
- */
247
- export function validateParse(input: string): never;
248
-
249
- /**
250
- * Safe `JSON.parse()` function with detailed type validation.
251
- *
252
- * `typia.json.validateParse()` is a combination function of `JSON.parse()` and
253
- * {@link validate}. Therefore, it converts a JSON (JavaScript Object Notation) string
254
- * to a `T` typed instance with detailed type validation.
255
- *
256
- * In such reason, when parsed JSON string value is not matched with the type `T`, it
257
- * returns {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
258
- * there's no problem on the parsed value, the parsed value would be stored in `data`
259
- * property of the output {@link IValidation.ISuccess} instance.
260
- *
261
- * @template T Expected type of parsed value
262
- * @param input JSON string
263
- * @returns Validation result with JSON parsed value
264
- *
265
- * @author Jeongho Nam - https://github.com/samchon
266
- */
267
- export function validateParse<T>(input: string): IValidation<Primitive<T>>;
268
-
269
- /**
270
- * @internal
271
- */
272
- export function validateParse<T>(): IValidation<Primitive<T>> {
273
- NoTransformConfigurationError("json.validateParse");
274
- }
275
-
276
- /* -----------------------------------------------------------
277
- STRINGIFY
278
- ----------------------------------------------------------- */
279
- /**
280
- * 8x faster `JSON.stringify()` function.
281
- *
282
- * Converts an input value to a JSON (JavaScript Object Notation) string, about 8x
283
- * faster than the native `JSON.stringify()` function. The 5x faster principle is
284
- * because it writes an optimized JSON conversion plan, only for the type `T`.
285
- *
286
- * For reference, this `typia.json.stringify()` does not validate the input value type.
287
- * It just believes that the input value is following the type `T`. Therefore, if you
288
- * can't ensure the input value type, it would be better to call one of below
289
- * functions instead.
290
- *
291
- * - {@link assertStringify}
292
- * - {@link isStringify}
293
- * - {@link validateStringify}
294
- *
295
- * @template T Type of the input value
296
- * @param input A value to be converted
297
- * @return JSON string value
298
- *
299
- * @author Jeongho Nam - https://github.com/samchon
300
- */
301
- export function stringify<T>(input: T): string;
302
-
303
- /**
304
- * @internal
305
- */
306
- export function stringify(): never {
307
- NoTransformConfigurationError("json.stringify");
308
- }
309
-
310
- /**
311
- * 5x faster `JSON.stringify()` function with type assertion.
312
- *
313
- * `typia.json.assertStringify()` is a combination function of {@link assert} and
314
- * {@link stringify}. Therefore, it converts an input value to
315
- * JSON (JavaScript Object Notation) string, with type assertion.
316
- *
317
- * In such reason, when `input` value is not matched with the type `T`, it throws an
318
- * {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
319
- * there's no problem on the `input` value, JSON string would be returned.
320
- *
321
- * For reference, with type assertion, it is even 5x times faster than the native
322
- * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
323
- * with confidence.
324
- *
325
- * @template T Type of the input value
326
- * @param input A value to be asserted and converted
327
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
328
- * @return JSON string value
329
- *
330
- * @author Jeongho Nam - https://github.com/samchon
331
- */
332
- export function assertStringify<T>(
333
- input: T,
334
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
335
- ): string;
336
-
337
- /**
338
- * 5x faster `JSON.stringify()` function with type assertion.
339
- *
340
- * `typia.json.assertStringify()` is a combination function of {@link assert} and
341
- * {@link stringify}. Therefore, it converts an input value to
342
- * JSON (JavaScript Object Notation) string, with type assertion.
343
- *
344
- * In such reason, when `input` value is not matched with the type `T`, it throws an
345
- * {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
346
- * there's no problem on the `input` value, JSON string would be returned.
347
- *
348
- * For reference, with type assertion, it is even 5x times faster than the native
349
- * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
350
- * with confidence.
351
- *
352
- * @template T Type of the input value
353
- * @param input A value to be asserted and converted
354
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
355
- * @return JSON string value
356
- *
357
- * @author Jeongho Nam - https://github.com/samchon
358
- */
359
- export function assertStringify<T>(
360
- input: T,
361
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
362
- ): unknown;
363
-
364
- /**
365
- * @internal
366
- */
367
- export function assertStringify(): string {
368
- NoTransformConfigurationError("json.assertStringify");
369
- }
370
-
371
- /**
372
- * 7x faster `JSON.stringify()` function with type checking.
373
- *
374
- * `typia.json.stringify()` is a combination function of {@link is} and
375
- * {@link stringify}. Therefore, it converts an input value to JSON
376
- * (JavaScript Object Notation) string, with type checking.
377
- *
378
- * In such reason, when `input` value is not matched with the type `T`, it returns
379
- * `null` value. Otherwise, there's no problem on the `input` value, JSON string
380
- * would be returned.
381
- *
382
- * For reference, with type checking, it is even 7x times faster than the native
383
- * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
384
- * with confidence.
385
- *
386
- * @template T Type of the input value
387
- * @param input A value to be checked and converted
388
- * @return JSON string value when exact type, otherwise null
389
- *
390
- * @author Jeongho Nam - https://github.com/samchon
391
- */
392
- export function isStringify<T>(input: T): string | null;
393
-
394
- /**
395
- * 7x faster `JSON.stringify()` function with type checking.
396
- *
397
- * `typia.json.isStringify()` is a combination function of {@link is} and
398
- * {@link stringify}. Therefore, it converts an input value to JSON
399
- * (JavaScript Object Notation) string, with type checking.
400
- *
401
- * In such reason, when `input` value is not matched with the type `T`, it returns
402
- * `null` value. Otherwise, there's no problem on the `input` value, JSON string
403
- * would be returned.
404
- *
405
- * For reference, with type checking, it is even 7x times faster than the native
406
- * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
407
- * with confidence.
408
- *
409
- * @template T Type of the input value
410
- * @param input A value to be checked and converted
411
- * @return JSON string value when exact type, otherwise null
412
- *
413
- * @author Jeongho Nam - https://github.com/samchon
414
- */
415
- export function isStringify<T>(input: unknown): string | null;
416
-
417
- /**
418
- * @internal
419
- */
420
- export function isStringify(): string | null {
421
- NoTransformConfigurationError("json.isStringify");
422
- }
423
-
424
- /**
425
- * 5x faster `JSON.stringify()` function with detailed type validation.
426
- *
427
- * `typia.json.validateStringify()` is a combination function of {@link validate} and
428
- * {@link stringify}. Therefore, it converts an input value to JSON (JavaScript Object
429
- * Notation) string, with detailed type validation.
430
- *
431
- * In such reason, when `input` value is not matched with the type `T`, it returns
432
- * {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
433
- * there's no problem on the `input` value, JSON string would be stored in `data`
434
- * property of the output {@link IValidation.ISuccess} instance.
435
- *
436
- * For reference, with detailed type validation, it is even 5x times faster than the
437
- * native `JSON.stringify()` function. So, just enjoy the safe and fast JSON
438
- * conversion with confidence.
439
- *
440
- * @template T Type of the input value
441
- * @param input A value to be checked and converted
442
- * @returns Validation result with JSON string value
443
- *
444
- * @author Jeongho Nam - https://github.com/samchon
445
- */
446
- export function validateStringify<T>(input: T): IValidation<string>;
447
-
448
- /**
449
- * 5x faster `JSON.stringify()` function with detailed type validation.
450
- *
451
- * `typia.json.validateStringify()` is a combination function of {@link validate} and
452
- * {@link stringify}. Therefore, it converts an input value to JSON (JavaScript Object
453
- * Notation) string, with detailed type validation.
454
- *
455
- * In such reason, when `input` value is not matched with the type `T`, it returns
456
- * {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
457
- * there's no problem on the `input` value, JSON string would be stored in `data`
458
- * property of the output {@link IValidation.ISuccess} instance.
459
- *
460
- * For reference, with detailed type validation, it is even 5x times faster than the
461
- * native `JSON.stringify()` function. So, just enjoy the safe and fast JSON
462
- * conversion with confidence.
463
- *
464
- * @template T Type of the input value
465
- * @param input A value to be checked and converted
466
- * @returns Validation result with JSON string value
467
- *
468
- * @author Jeongho Nam - https://github.com/samchon
469
- */
470
- export function validateStringify<T>(input: unknown): IValidation<string>;
471
-
472
- /**
473
- * @internal
474
- */
475
- export function validateStringify(): IValidation<string> {
476
- NoTransformConfigurationError("json.validateStringify");
477
- }
478
-
479
- /* -----------------------------------------------------------
480
- FACTORY FUNCTIONS
481
- ----------------------------------------------------------- */
482
- /**
483
- * Creates a reusable {@link isParse} function.
484
- *
485
- * @danger You must configure the generic argument `T`
486
- * @returns Nothing until you configure the generic argument `T`
487
- * @throws compile error
488
- *
489
- * @author Jeongho Nam - https://github.com/samchon
490
- */
491
- export function createIsParse(): never;
492
-
493
- /**
494
- * Creates a reusable {@link isParse} function.
495
- *
496
- * @template T Expected type of parsed value
497
- * @returns A reusable `isParse` function
498
- *
499
- * @author Jeongho Nam - https://github.com/samchon
500
- */
501
- export function createIsParse<T>(): (input: string) => Primitive<T> | null;
502
-
503
- /**
504
- * @internal
505
- */
506
- export function createIsParse<T>(): (input: string) => Primitive<T> | null {
507
- NoTransformConfigurationError("json.createIsParse");
508
- }
509
-
510
- /**
511
- * Creates a reusable {@link assertParse} function.
512
- *
513
- * @danger You must configure the generic argument `T`
514
- * @returns Nothing until you configure the generic argument `T`
515
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
516
- * @throws compile error
517
- *
518
- * @author Jeongho Nam - https://github.com/samchon
519
- */
520
- export function createAssertParse(
521
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
522
- ): never;
523
-
524
- /**
525
- * Creates a reusable {@link assertParse} function.
526
- *
527
- * @template T Expected type of parsed value
528
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
529
- * @returns A reusable `assertParse` function
530
- *
531
- * @author Jeongho Nam - https://github.com/samchon
532
- */
533
- export function createAssertParse<T>(
534
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
535
- ): (input: string) => Primitive<T>;
536
-
537
- /**
538
- * @internal
539
- */
540
- export function createAssertParse<T>(): (input: string) => Primitive<T> {
541
- NoTransformConfigurationError("json.createAssertParse");
542
- }
543
-
544
- /**
545
- * Creates a reusable {@link validateParse} function.
546
- *
547
- * @danger You must configure the generic argument `T`
548
- * @returns Nothing until you configure the generic argument `T`
549
- * @throws compile error
550
- *
551
- * @author Jeongho Nam - https://github.com/samchon
552
- */
553
- export function createValidateParse(): never;
554
-
555
- /**
556
- * Creates a reusable {@link validateParse} function.
557
- *
558
- * @template T Expected type of parsed value
559
- * @returns A reusable `validateParse` function
560
- *
561
- * @author Jeongho Nam - https://github.com/samchon
562
- */
563
- export function createValidateParse<T>(): (
564
- input: string,
565
- ) => IValidation<Primitive<T>>;
566
-
567
- /**
568
- * @internal
569
- */
570
- export function createValidateParse<T>(): (
571
- input: string,
572
- ) => IValidation<Primitive<T>> {
573
- NoTransformConfigurationError("json.createValidateParse");
574
- }
575
-
576
- /**
577
- * Creates a reusable {@link stringify} function.
578
- *
579
- * @danger You must configure the generic argument `T`
580
- * @returns Nothing until you configure the generic argument `T`
581
- * @throws compile error
582
- *
583
- * @author Jeongho Nam - https://github.com/samchon
584
- */
585
- export function createStringify(): never;
586
-
587
- /**
588
- * Creates a reusable {@link stringify} function.
589
- *
590
- * @template T Type of the input value
591
- * @returns A reusable `stringify` function
592
- *
593
- * @author Jeongho Nam - https://github.com/samchon
594
- */
595
- export function createStringify<T>(): (input: T) => string;
596
-
597
- /**
598
- * @internal
599
- */
600
- export function createStringify<T>(): (input: T) => string {
601
- NoTransformConfigurationError("json.createStringify");
602
- }
603
-
604
- /**
605
- * Creates a reusable {@link assertStringify} function.
606
- *
607
- * @danger You must configure the generic argument `T`
608
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
609
- * @returns Nothing until you configure the generic argument `T`
610
- * @throws compile error
611
- *
612
- * @author Jeongho Nam - https://github.com/samchon
613
- */
614
- export function createAssertStringify(
615
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
616
- ): never;
617
-
618
- /**
619
- * Creates a reusable {@link assertStringify} function.
620
- *
621
- * @template T Type of the input value
622
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
623
- * @returns A reusable `assertStringify` function
624
- *
625
- * @author Jeongho Nam - https://github.com/samchon
626
- */
627
- export function createAssertStringify<T>(
628
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
629
- ): (input: unknown) => string;
630
-
631
- /**
632
- * @internal
633
- */
634
- export function createAssertStringify(): (input: unknown) => string {
635
- NoTransformConfigurationError("json.createAssertStringify");
636
- }
637
-
638
- /**
639
- * Creates a reusable {@link isStringify} function.
640
- *
641
- * @danger You must configure the generic argument `T`
642
- * @returns Nothing until you configure the generic argument `T`
643
- * @throws compile error
644
- *
645
- * @author Jeongho Nam - https://github.com/samchon
646
- */
647
- export function createIsStringify(): never;
648
-
649
- /**
650
- * Creates a reusable {@link isStringify} function.
651
- *
652
- * @template T Type of the input value
653
- * @returns A reusable `isStringify` function
654
- *
655
- * @author Jeongho Nam - https://github.com/samchon
656
- */
657
- export function createIsStringify<T>(): (input: unknown) => string | null;
658
-
659
- /**
660
- * @internal
661
- */
662
- export function createIsStringify(): (input: unknown) => string | null {
663
- NoTransformConfigurationError("json.createIsStringify");
664
- }
665
-
666
- /**
667
- * Creates a reusable {@link validateStringify} function.
668
- *
669
- * @danger You must configure the generic argument `T`
670
- * @returns Nothing until you configure the generic argument `T`
671
- * @throws compile error
672
- *
673
- * @author Jeongho Nam - https://github.com/samchon
674
- */
675
- export function createValidateStringify(): never;
676
-
677
- /**
678
- * Creates a reusable {@link validateStringify} function.
679
- *
680
- * @template T Type of the input value
681
- * @returns A reusable `validateStringify` function
682
-
683
- * @author Jeongho Nam - https://github.com/samchon
684
- */
685
- export function createValidateStringify<T>(): (
686
- input: unknown,
687
- ) => IValidation<string>;
688
-
689
- /**
690
- * @internal
691
- */
692
- export function createValidateStringify(): (
693
- input: unknown,
694
- ) => IValidation<string> {
695
- NoTransformConfigurationError("json.createValidateStringify");
696
- }
1
+ import { IJsonSchemaCollection } from "./schemas/json/IJsonSchemaCollection";
2
+ import { IJsonSchemaUnit } from "./schemas/json/IJsonSchemaUnit";
3
+
4
+ import { NoTransformConfigurationError } from "./transformers/NoTransformConfigurationError";
5
+
6
+ import { IValidation } from "./IValidation";
7
+ import { Primitive } from "./Primitive";
8
+ import { TypeGuardError } from "./TypeGuardError";
9
+
10
+ /* ===========================================================
11
+ JSON
12
+ - METADATA
13
+ - PARSE
14
+ - STRINGIFY
15
+ - FACTORY FUNCTIONS
16
+ ==============================================================
17
+ METADATA
18
+ ----------------------------------------------------------- */
19
+ /**
20
+ * > You must configure the generic argument `Types`.
21
+ *
22
+ * JSON Schemas Generator.
23
+ *
24
+ * Creates a JSON schema list which contains both main JSON schemas
25
+ * and components. Note that, all of the named types are stored in the
26
+ * {@link IJsonSchemaCollection.components} property for the `$ref` referencing.
27
+ *
28
+ * Also, you can specify the OpenAPI version by configuring the second generic
29
+ * argument `Version`. For reference, the default version is `"3.1"`, and key
30
+ * different of `"3.0"` and `"3.1"` is whether supporting the tuple type or not.
31
+ *
32
+ * @template Types Tuple of target types
33
+ * @template Version Version of OpenAPI specification. Default is 3.1
34
+ * @return JSON schema collection
35
+ *
36
+ * @author Jeongho Nam - https://github.com/samchon
37
+ */
38
+ export function schemas(): never;
39
+
40
+ /**
41
+ * JSON Schemas Generator.
42
+ *
43
+ * Creates a JSON schema list which contains both main JSON schemas
44
+ * and components. Note that, all of the named types are stored in the
45
+ * {@link IJsonSchemaCollection.components} property for the `$ref` referencing.
46
+ *
47
+ * Also, you can specify the OpenAPI version by configuring the second generic
48
+ * argument `Version`. For reference, the default version is `"3.1"`, and key
49
+ * different of `"3.0"` and `"3.1"` is whether supporting the tuple type or not.
50
+ *
51
+ * @template Types Tuple of target types
52
+ * @template Version Version of OpenAPI specification. Default is 3.1
53
+ * @return JSON schema collection
54
+ *
55
+ * @author Jeongho Nam - https://github.com/samchon
56
+ */
57
+ export function schemas<
58
+ Types extends unknown[],
59
+ Version extends "3.0" | "3.1" = "3.1",
60
+ >(): IJsonSchemaCollection<Version, Types>;
61
+
62
+ /**
63
+ * @internal
64
+ */
65
+ export function schemas(): never {
66
+ NoTransformConfigurationError("json.schemas");
67
+ }
68
+
69
+ /**
70
+ * > You must configure the generic argument `Type`.
71
+ *
72
+ * JSON schema generator.
73
+ *
74
+ * Creates a JSON schema unit which contains a main JSON schema and
75
+ * its components. Note that, all of the named types are stored in the
76
+ * {@link IJsonSchemaUnit.components} property for the `$ref` referencing.
77
+ *
78
+ * Also, you can specify the OpenAPI version by configuring the second
79
+ * generic argument `Version`. For reference, the default version is `"3.1"`,
80
+ * and key different of `"3.0"` and `"3.1"` is whether supporting the
81
+ * tuple type or not.
82
+ *
83
+ * @template Type Target type
84
+ * @template Version Version of OpenAPI specification. Default is 3.1
85
+ * @return JSON schema unit
86
+ *
87
+ * @author Jeongho Nam - https://github.com/samchon
88
+ */
89
+ export function schema(): never;
90
+
91
+ /**
92
+ * JSON schema generator.
93
+ *
94
+ * Creates a JSON schema unit which contains a main JSON schema and
95
+ * its components. Note that, all of the named types are stored in the
96
+ * {@link IJsonSchemaUnit.components} property for the `$ref` referencing.
97
+ *
98
+ * Also, you can specify the OpenAPI version by configuring the second
99
+ * generic argument `Version`. For reference, the default version is `"3.1"`,
100
+ * and key different of `"3.0"` and `"3.1"` is whether supporting the
101
+ * tuple type or not.
102
+ *
103
+ * @template Type Target type
104
+ * @template Version Version of OpenAPI specification. Default is 3.1
105
+ * @return JSON schema unit
106
+ *
107
+ * @author Jeongho Nam - https://github.com/samchon
108
+ */
109
+ export function schema<
110
+ Type extends unknown,
111
+ Version extends "3.0" | "3.1" = "3.1",
112
+ >(): IJsonSchemaUnit<Version, Type>;
113
+
114
+ /**
115
+ * @internal
116
+ */
117
+ export function schema(): never {
118
+ NoTransformConfigurationError("json.schema");
119
+ }
120
+
121
+ /* -----------------------------------------------------------
122
+ PARSE
123
+ ----------------------------------------------------------- */
124
+ /**
125
+ * > You must configure the generic argument `T`.
126
+ *
127
+ * Safe `JSON.parse()` function with type assertion.
128
+ *
129
+ * `typia.json.assertParse()` is a combination function of `JSON.parse()` and
130
+ * {@link assert}. Therefore, it converts a JSON (JavaScript Object Notation) string
131
+ * to a `T` typed instance with type assertion.
132
+ *
133
+ * In such reason, when parsed JSON string value is not matched with the type `T`, it
134
+ * throws {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
135
+ * there's no problem on the parsed value, the parsed value would be returned.
136
+ *
137
+ * @template T Expected type of parsed value
138
+ * @param input JSON string
139
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
140
+ * @returns Parsed value
141
+ *
142
+ * @author Jeongho Nam - https://github.com/samchon
143
+ */
144
+ export function assertParse(
145
+ input: string,
146
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
147
+ ): never;
148
+
149
+ /**
150
+ * Safe `JSON.parse()` function with type assertion.
151
+ *
152
+ * `typia.json.assertParse()` is a combination function of `JSON.parse()` and
153
+ * {@link assert}. Therefore, it converts a JSON (JavaScript Object Notation) string
154
+ * to a `T` typed instance with type assertion.
155
+ *
156
+ * In such reason, when parsed JSON string value is not matched with the type `T`,
157
+ * it throws {@link TypeGuardError} or custom error generated by *errorFactory*.
158
+ * Otherwise, there's no problem on the parsed value, the parsed value would be
159
+ * returned.
160
+ *
161
+ * @template T Expected type of parsed value
162
+ * @param input JSON string
163
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
164
+ * @returns Parsed value
165
+ *
166
+ * @author Jeongho Nam - https://github.com/samchon
167
+ */
168
+ export function assertParse<T>(
169
+ input: string,
170
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
171
+ ): Primitive<T>;
172
+
173
+ /**
174
+ * @internal
175
+ */
176
+ export function assertParse<T>(): Primitive<T> {
177
+ NoTransformConfigurationError("json.assertParse");
178
+ }
179
+
180
+ /**
181
+ * > You must configure the generic argument `T`.
182
+ *
183
+ * Safe `JSON.parse()` function with type checking.
184
+ *
185
+ * `typia.json.isParse()` is a combination function of `JSON.parse()` and {@link is}.
186
+ * Therefore, it converts a JSON (JavaScript Object Notation) string to a `T` typed
187
+ * instance with type checking.
188
+ *
189
+ * In such reason, when parsed JSON string value is not matched with the type `T`, it
190
+ * returns `null` value. Otherwise, there's no problem on the parsed value, the parsed
191
+ * value would be returned.
192
+ *
193
+ * @template T Expected type of parsed value
194
+ * @param input JSON string
195
+ * @returns Parsed value when exact type, otherwise `null`
196
+ *
197
+ * @author Jeongho Nam - https://github.com/samchon
198
+ */
199
+ export function isParse(input: string): never;
200
+
201
+ /**
202
+ * Safe `JSON.parse()` function with type checking.
203
+ *
204
+ * `typia.json.isParse()` is a combination function of `JSON.parse()` and {@link is}.
205
+ * Therefore, it converts a JSON (JavaScript Object Notation) string to a `T` typed
206
+ * instance with type checking.
207
+ *
208
+ * In such reason, when parsed JSON string value is not matched with the type `T`, it
209
+ * returns `null` value. Otherwise, there's no problem on the parsed value, the parsed
210
+ * value would be returned.
211
+ *
212
+ * @template T Expected type of parsed value
213
+ * @param input JSON string
214
+ * @returns Parsed value when exact type, otherwise `null`
215
+ *
216
+ * @author Jeongho Nam - https://github.com/samchon
217
+ */
218
+ export function isParse<T>(input: string): Primitive<T> | null;
219
+
220
+ /**
221
+ * @internal
222
+ */
223
+ export function isParse<T>(): Primitive<T> | null {
224
+ NoTransformConfigurationError("json.isParse");
225
+ }
226
+
227
+ /**
228
+ * > You must configure the generic argument `T`.
229
+ *
230
+ * Safe `JSON.parse()` function with detailed type validation.
231
+ *
232
+ * `typia.json.validateParse()` is a combination function of `JSON.parse()` and
233
+ * {@link validate}. Therefore, it converts a JSON (JavaScript Object Notation) string
234
+ * to a `T` typed instance with detailed type validation.
235
+ *
236
+ * In such reason, when parsed JSON string value is not matched with the type `T`, it
237
+ * returns {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
238
+ * there's no problem on the parsed value, the parsed value would be stored in `data`
239
+ * property of the output {@link IValidation.ISuccess} instance.
240
+ *
241
+ * @template T Expected type of parsed value
242
+ * @param input JSON string
243
+ * @returns Validation result with JSON parsed value
244
+ *
245
+ * @author Jeongho Nam - https://github.com/samchon
246
+ */
247
+ export function validateParse(input: string): never;
248
+
249
+ /**
250
+ * Safe `JSON.parse()` function with detailed type validation.
251
+ *
252
+ * `typia.json.validateParse()` is a combination function of `JSON.parse()` and
253
+ * {@link validate}. Therefore, it converts a JSON (JavaScript Object Notation) string
254
+ * to a `T` typed instance with detailed type validation.
255
+ *
256
+ * In such reason, when parsed JSON string value is not matched with the type `T`, it
257
+ * returns {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
258
+ * there's no problem on the parsed value, the parsed value would be stored in `data`
259
+ * property of the output {@link IValidation.ISuccess} instance.
260
+ *
261
+ * @template T Expected type of parsed value
262
+ * @param input JSON string
263
+ * @returns Validation result with JSON parsed value
264
+ *
265
+ * @author Jeongho Nam - https://github.com/samchon
266
+ */
267
+ export function validateParse<T>(input: string): IValidation<Primitive<T>>;
268
+
269
+ /**
270
+ * @internal
271
+ */
272
+ export function validateParse<T>(): IValidation<Primitive<T>> {
273
+ NoTransformConfigurationError("json.validateParse");
274
+ }
275
+
276
+ /* -----------------------------------------------------------
277
+ STRINGIFY
278
+ ----------------------------------------------------------- */
279
+ /**
280
+ * 8x faster `JSON.stringify()` function.
281
+ *
282
+ * Converts an input value to a JSON (JavaScript Object Notation) string, about 8x
283
+ * faster than the native `JSON.stringify()` function. The 5x faster principle is
284
+ * because it writes an optimized JSON conversion plan, only for the type `T`.
285
+ *
286
+ * For reference, this `typia.json.stringify()` does not validate the input value type.
287
+ * It just believes that the input value is following the type `T`. Therefore, if you
288
+ * can't ensure the input value type, it would be better to call one of below
289
+ * functions instead.
290
+ *
291
+ * - {@link assertStringify}
292
+ * - {@link isStringify}
293
+ * - {@link validateStringify}
294
+ *
295
+ * @template T Type of the input value
296
+ * @param input A value to be converted
297
+ * @return JSON string value
298
+ *
299
+ * @author Jeongho Nam - https://github.com/samchon
300
+ */
301
+ export function stringify<T>(input: T): string;
302
+
303
+ /**
304
+ * @internal
305
+ */
306
+ export function stringify(): never {
307
+ NoTransformConfigurationError("json.stringify");
308
+ }
309
+
310
+ /**
311
+ * 5x faster `JSON.stringify()` function with type assertion.
312
+ *
313
+ * `typia.json.assertStringify()` is a combination function of {@link assert} and
314
+ * {@link stringify}. Therefore, it converts an input value to
315
+ * JSON (JavaScript Object Notation) string, with type assertion.
316
+ *
317
+ * In such reason, when `input` value is not matched with the type `T`, it throws an
318
+ * {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
319
+ * there's no problem on the `input` value, JSON string would be returned.
320
+ *
321
+ * For reference, with type assertion, it is even 5x times faster than the native
322
+ * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
323
+ * with confidence.
324
+ *
325
+ * @template T Type of the input value
326
+ * @param input A value to be asserted and converted
327
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
328
+ * @return JSON string value
329
+ *
330
+ * @author Jeongho Nam - https://github.com/samchon
331
+ */
332
+ export function assertStringify<T>(
333
+ input: T,
334
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
335
+ ): string;
336
+
337
+ /**
338
+ * 5x faster `JSON.stringify()` function with type assertion.
339
+ *
340
+ * `typia.json.assertStringify()` is a combination function of {@link assert} and
341
+ * {@link stringify}. Therefore, it converts an input value to
342
+ * JSON (JavaScript Object Notation) string, with type assertion.
343
+ *
344
+ * In such reason, when `input` value is not matched with the type `T`, it throws an
345
+ * {@link TypeGuardError} or custom error generated by *errorFactory*. Otherwise,
346
+ * there's no problem on the `input` value, JSON string would be returned.
347
+ *
348
+ * For reference, with type assertion, it is even 5x times faster than the native
349
+ * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
350
+ * with confidence.
351
+ *
352
+ * @template T Type of the input value
353
+ * @param input A value to be asserted and converted
354
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
355
+ * @return JSON string value
356
+ *
357
+ * @author Jeongho Nam - https://github.com/samchon
358
+ */
359
+ export function assertStringify<T>(
360
+ input: T,
361
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
362
+ ): unknown;
363
+
364
+ /**
365
+ * @internal
366
+ */
367
+ export function assertStringify(): string {
368
+ NoTransformConfigurationError("json.assertStringify");
369
+ }
370
+
371
+ /**
372
+ * 7x faster `JSON.stringify()` function with type checking.
373
+ *
374
+ * `typia.json.stringify()` is a combination function of {@link is} and
375
+ * {@link stringify}. Therefore, it converts an input value to JSON
376
+ * (JavaScript Object Notation) string, with type checking.
377
+ *
378
+ * In such reason, when `input` value is not matched with the type `T`, it returns
379
+ * `null` value. Otherwise, there's no problem on the `input` value, JSON string
380
+ * would be returned.
381
+ *
382
+ * For reference, with type checking, it is even 7x times faster than the native
383
+ * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
384
+ * with confidence.
385
+ *
386
+ * @template T Type of the input value
387
+ * @param input A value to be checked and converted
388
+ * @return JSON string value when exact type, otherwise null
389
+ *
390
+ * @author Jeongho Nam - https://github.com/samchon
391
+ */
392
+ export function isStringify<T>(input: T): string | null;
393
+
394
+ /**
395
+ * 7x faster `JSON.stringify()` function with type checking.
396
+ *
397
+ * `typia.json.isStringify()` is a combination function of {@link is} and
398
+ * {@link stringify}. Therefore, it converts an input value to JSON
399
+ * (JavaScript Object Notation) string, with type checking.
400
+ *
401
+ * In such reason, when `input` value is not matched with the type `T`, it returns
402
+ * `null` value. Otherwise, there's no problem on the `input` value, JSON string
403
+ * would be returned.
404
+ *
405
+ * For reference, with type checking, it is even 7x times faster than the native
406
+ * `JSON.stringify()` function. So, just enjoy the safe and fast JSON conversion
407
+ * with confidence.
408
+ *
409
+ * @template T Type of the input value
410
+ * @param input A value to be checked and converted
411
+ * @return JSON string value when exact type, otherwise null
412
+ *
413
+ * @author Jeongho Nam - https://github.com/samchon
414
+ */
415
+ export function isStringify<T>(input: unknown): string | null;
416
+
417
+ /**
418
+ * @internal
419
+ */
420
+ export function isStringify(): string | null {
421
+ NoTransformConfigurationError("json.isStringify");
422
+ }
423
+
424
+ /**
425
+ * 5x faster `JSON.stringify()` function with detailed type validation.
426
+ *
427
+ * `typia.json.validateStringify()` is a combination function of {@link validate} and
428
+ * {@link stringify}. Therefore, it converts an input value to JSON (JavaScript Object
429
+ * Notation) string, with detailed type validation.
430
+ *
431
+ * In such reason, when `input` value is not matched with the type `T`, it returns
432
+ * {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
433
+ * there's no problem on the `input` value, JSON string would be stored in `data`
434
+ * property of the output {@link IValidation.ISuccess} instance.
435
+ *
436
+ * For reference, with detailed type validation, it is even 5x times faster than the
437
+ * native `JSON.stringify()` function. So, just enjoy the safe and fast JSON
438
+ * conversion with confidence.
439
+ *
440
+ * @template T Type of the input value
441
+ * @param input A value to be checked and converted
442
+ * @returns Validation result with JSON string value
443
+ *
444
+ * @author Jeongho Nam - https://github.com/samchon
445
+ */
446
+ export function validateStringify<T>(input: T): IValidation<string>;
447
+
448
+ /**
449
+ * 5x faster `JSON.stringify()` function with detailed type validation.
450
+ *
451
+ * `typia.json.validateStringify()` is a combination function of {@link validate} and
452
+ * {@link stringify}. Therefore, it converts an input value to JSON (JavaScript Object
453
+ * Notation) string, with detailed type validation.
454
+ *
455
+ * In such reason, when `input` value is not matched with the type `T`, it returns
456
+ * {@link IValidation.IFailure} value with detailed error reasons. Otherwise,
457
+ * there's no problem on the `input` value, JSON string would be stored in `data`
458
+ * property of the output {@link IValidation.ISuccess} instance.
459
+ *
460
+ * For reference, with detailed type validation, it is even 5x times faster than the
461
+ * native `JSON.stringify()` function. So, just enjoy the safe and fast JSON
462
+ * conversion with confidence.
463
+ *
464
+ * @template T Type of the input value
465
+ * @param input A value to be checked and converted
466
+ * @returns Validation result with JSON string value
467
+ *
468
+ * @author Jeongho Nam - https://github.com/samchon
469
+ */
470
+ export function validateStringify<T>(input: unknown): IValidation<string>;
471
+
472
+ /**
473
+ * @internal
474
+ */
475
+ export function validateStringify(): IValidation<string> {
476
+ NoTransformConfigurationError("json.validateStringify");
477
+ }
478
+
479
+ /* -----------------------------------------------------------
480
+ FACTORY FUNCTIONS
481
+ ----------------------------------------------------------- */
482
+ /**
483
+ * Creates a reusable {@link isParse} function.
484
+ *
485
+ * @danger You must configure the generic argument `T`
486
+ * @returns Nothing until you configure the generic argument `T`
487
+ * @throws compile error
488
+ *
489
+ * @author Jeongho Nam - https://github.com/samchon
490
+ */
491
+ export function createIsParse(): never;
492
+
493
+ /**
494
+ * Creates a reusable {@link isParse} function.
495
+ *
496
+ * @template T Expected type of parsed value
497
+ * @returns A reusable `isParse` function
498
+ *
499
+ * @author Jeongho Nam - https://github.com/samchon
500
+ */
501
+ export function createIsParse<T>(): (input: string) => Primitive<T> | null;
502
+
503
+ /**
504
+ * @internal
505
+ */
506
+ export function createIsParse<T>(): (input: string) => Primitive<T> | null {
507
+ NoTransformConfigurationError("json.createIsParse");
508
+ }
509
+
510
+ /**
511
+ * Creates a reusable {@link assertParse} function.
512
+ *
513
+ * @danger You must configure the generic argument `T`
514
+ * @returns Nothing until you configure the generic argument `T`
515
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
516
+ * @throws compile error
517
+ *
518
+ * @author Jeongho Nam - https://github.com/samchon
519
+ */
520
+ export function createAssertParse(
521
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
522
+ ): never;
523
+
524
+ /**
525
+ * Creates a reusable {@link assertParse} function.
526
+ *
527
+ * @template T Expected type of parsed value
528
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
529
+ * @returns A reusable `assertParse` function
530
+ *
531
+ * @author Jeongho Nam - https://github.com/samchon
532
+ */
533
+ export function createAssertParse<T>(
534
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
535
+ ): (input: string) => Primitive<T>;
536
+
537
+ /**
538
+ * @internal
539
+ */
540
+ export function createAssertParse<T>(): (input: string) => Primitive<T> {
541
+ NoTransformConfigurationError("json.createAssertParse");
542
+ }
543
+
544
+ /**
545
+ * Creates a reusable {@link validateParse} function.
546
+ *
547
+ * @danger You must configure the generic argument `T`
548
+ * @returns Nothing until you configure the generic argument `T`
549
+ * @throws compile error
550
+ *
551
+ * @author Jeongho Nam - https://github.com/samchon
552
+ */
553
+ export function createValidateParse(): never;
554
+
555
+ /**
556
+ * Creates a reusable {@link validateParse} function.
557
+ *
558
+ * @template T Expected type of parsed value
559
+ * @returns A reusable `validateParse` function
560
+ *
561
+ * @author Jeongho Nam - https://github.com/samchon
562
+ */
563
+ export function createValidateParse<T>(): (
564
+ input: string,
565
+ ) => IValidation<Primitive<T>>;
566
+
567
+ /**
568
+ * @internal
569
+ */
570
+ export function createValidateParse<T>(): (
571
+ input: string,
572
+ ) => IValidation<Primitive<T>> {
573
+ NoTransformConfigurationError("json.createValidateParse");
574
+ }
575
+
576
+ /**
577
+ * Creates a reusable {@link stringify} function.
578
+ *
579
+ * @danger You must configure the generic argument `T`
580
+ * @returns Nothing until you configure the generic argument `T`
581
+ * @throws compile error
582
+ *
583
+ * @author Jeongho Nam - https://github.com/samchon
584
+ */
585
+ export function createStringify(): never;
586
+
587
+ /**
588
+ * Creates a reusable {@link stringify} function.
589
+ *
590
+ * @template T Type of the input value
591
+ * @returns A reusable `stringify` function
592
+ *
593
+ * @author Jeongho Nam - https://github.com/samchon
594
+ */
595
+ export function createStringify<T>(): (input: T) => string;
596
+
597
+ /**
598
+ * @internal
599
+ */
600
+ export function createStringify<T>(): (input: T) => string {
601
+ NoTransformConfigurationError("json.createStringify");
602
+ }
603
+
604
+ /**
605
+ * Creates a reusable {@link assertStringify} function.
606
+ *
607
+ * @danger You must configure the generic argument `T`
608
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
609
+ * @returns Nothing until you configure the generic argument `T`
610
+ * @throws compile error
611
+ *
612
+ * @author Jeongho Nam - https://github.com/samchon
613
+ */
614
+ export function createAssertStringify(
615
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
616
+ ): never;
617
+
618
+ /**
619
+ * Creates a reusable {@link assertStringify} function.
620
+ *
621
+ * @template T Type of the input value
622
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
623
+ * @returns A reusable `assertStringify` function
624
+ *
625
+ * @author Jeongho Nam - https://github.com/samchon
626
+ */
627
+ export function createAssertStringify<T>(
628
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
629
+ ): (input: unknown) => string;
630
+
631
+ /**
632
+ * @internal
633
+ */
634
+ export function createAssertStringify(): (input: unknown) => string {
635
+ NoTransformConfigurationError("json.createAssertStringify");
636
+ }
637
+
638
+ /**
639
+ * Creates a reusable {@link isStringify} function.
640
+ *
641
+ * @danger You must configure the generic argument `T`
642
+ * @returns Nothing until you configure the generic argument `T`
643
+ * @throws compile error
644
+ *
645
+ * @author Jeongho Nam - https://github.com/samchon
646
+ */
647
+ export function createIsStringify(): never;
648
+
649
+ /**
650
+ * Creates a reusable {@link isStringify} function.
651
+ *
652
+ * @template T Type of the input value
653
+ * @returns A reusable `isStringify` function
654
+ *
655
+ * @author Jeongho Nam - https://github.com/samchon
656
+ */
657
+ export function createIsStringify<T>(): (input: unknown) => string | null;
658
+
659
+ /**
660
+ * @internal
661
+ */
662
+ export function createIsStringify(): (input: unknown) => string | null {
663
+ NoTransformConfigurationError("json.createIsStringify");
664
+ }
665
+
666
+ /**
667
+ * Creates a reusable {@link validateStringify} function.
668
+ *
669
+ * @danger You must configure the generic argument `T`
670
+ * @returns Nothing until you configure the generic argument `T`
671
+ * @throws compile error
672
+ *
673
+ * @author Jeongho Nam - https://github.com/samchon
674
+ */
675
+ export function createValidateStringify(): never;
676
+
677
+ /**
678
+ * Creates a reusable {@link validateStringify} function.
679
+ *
680
+ * @template T Type of the input value
681
+ * @returns A reusable `validateStringify` function
682
+
683
+ * @author Jeongho Nam - https://github.com/samchon
684
+ */
685
+ export function createValidateStringify<T>(): (
686
+ input: unknown,
687
+ ) => IValidation<string>;
688
+
689
+ /**
690
+ * @internal
691
+ */
692
+ export function createValidateStringify(): (
693
+ input: unknown,
694
+ ) => IValidation<string> {
695
+ NoTransformConfigurationError("json.createValidateStringify");
696
+ }