typia 9.4.0 → 9.5.0-dev.20250710

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 (515) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +153 -153
  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/internal/json_schema_title.js +2 -8
  8. package/lib/programmers/internal/json_schema_title.js.map +1 -1
  9. package/lib/programmers/internal/json_schema_title.mjs +1 -7
  10. package/package.json +1 -1
  11. package/src/AssertionGuard.ts +39 -39
  12. package/src/CamelCase.ts +75 -75
  13. package/src/IRandomGenerator.ts +49 -49
  14. package/src/IReadableURLSearchParams.ts +9 -9
  15. package/src/IValidation.ts +1 -1
  16. package/src/PascalCase.ts +71 -71
  17. package/src/Primitive.ts +92 -92
  18. package/src/Resolved.ts +74 -74
  19. package/src/SnakeCase.ts +126 -126
  20. package/src/TypeGuardError.ts +179 -179
  21. package/src/executable/TypiaGenerateWizard.ts +83 -83
  22. package/src/executable/TypiaPatchWizard.ts +45 -45
  23. package/src/executable/TypiaSetupWizard.ts +171 -171
  24. package/src/executable/setup/ArgumentParser.ts +42 -42
  25. package/src/executable/setup/CommandExecutor.ts +8 -8
  26. package/src/executable/setup/FileRetriever.ts +19 -19
  27. package/src/executable/setup/PackageManager.ts +87 -87
  28. package/src/executable/setup/PluginConfigurator.ts +74 -74
  29. package/src/executable/typia.ts +55 -55
  30. package/src/factories/CommentFactory.ts +79 -79
  31. package/src/factories/ExpressionFactory.ts +219 -219
  32. package/src/factories/IdentifierFactory.ts +89 -89
  33. package/src/factories/JsonMetadataFactory.ts +83 -83
  34. package/src/factories/LiteralFactory.ts +52 -52
  35. package/src/factories/MetadataCollection.ts +278 -278
  36. package/src/factories/MetadataCommentTagFactory.ts +648 -648
  37. package/src/factories/MetadataFactory.ts +404 -404
  38. package/src/factories/MetadataTypeTagFactory.ts +413 -413
  39. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  40. package/src/factories/NumericRangeFactory.ts +72 -72
  41. package/src/factories/ProtobufFactory.ts +875 -875
  42. package/src/factories/StatementFactory.ts +90 -90
  43. package/src/factories/TemplateFactory.ts +64 -64
  44. package/src/factories/TypeFactory.ts +140 -140
  45. package/src/factories/ValueFactory.ts +12 -12
  46. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  47. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  48. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  49. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  50. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  51. package/src/factories/internal/metadata/emplace_metadata_object.ts +212 -212
  52. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  53. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  54. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  55. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  56. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  57. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  58. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  59. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  60. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  61. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  62. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  63. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  64. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +212 -212
  65. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  66. package/src/factories/internal/metadata/iterate_metadata_native.ts +264 -264
  67. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  68. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  69. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  70. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  71. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  72. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  73. package/src/functional.ts +740 -740
  74. package/src/http.ts +1040 -1040
  75. package/src/index.ts +4 -4
  76. package/src/internal/_IProtobufWriter.ts +18 -18
  77. package/src/internal/_ProtobufReader.ts +194 -194
  78. package/src/internal/_ProtobufSizer.ts +145 -145
  79. package/src/internal/_ProtobufWriter.ts +145 -145
  80. package/src/internal/_accessExpressionAsString.ts +46 -46
  81. package/src/internal/_assertGuard.ts +13 -13
  82. package/src/internal/_createStandardSchema.ts +134 -134
  83. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  84. package/src/internal/_httpFormDataReadArray.ts +4 -4
  85. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  86. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  87. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  88. package/src/internal/_httpFormDataReadFile.ts +10 -10
  89. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  90. package/src/internal/_httpFormDataReadString.ts +10 -10
  91. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  92. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  93. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  94. package/src/internal/_httpParameterReadBigint.ts +10 -10
  95. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  96. package/src/internal/_httpParameterReadNumber.ts +7 -7
  97. package/src/internal/_httpParameterReadString.ts +2 -2
  98. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  99. package/src/internal/_httpQueryReadArray.ts +4 -4
  100. package/src/internal/_httpQueryReadBigint.ts +12 -12
  101. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  102. package/src/internal/_httpQueryReadNumber.ts +9 -9
  103. package/src/internal/_httpQueryReadString.ts +4 -4
  104. package/src/internal/_isBetween.ts +2 -2
  105. package/src/internal/_isBigintString.ts +8 -8
  106. package/src/internal/_isFormatByte.ts +7 -7
  107. package/src/internal/_isFormatDate.ts +3 -3
  108. package/src/internal/_isFormatDateTime.ts +4 -4
  109. package/src/internal/_isFormatDuration.ts +4 -4
  110. package/src/internal/_isFormatEmail.ts +4 -4
  111. package/src/internal/_isFormatHostname.ts +4 -4
  112. package/src/internal/_isFormatIdnEmail.ts +4 -4
  113. package/src/internal/_isFormatIdnHostname.ts +4 -4
  114. package/src/internal/_isFormatIpv4.ts +4 -4
  115. package/src/internal/_isFormatIpv6.ts +4 -4
  116. package/src/internal/_isFormatIri.ts +3 -3
  117. package/src/internal/_isFormatIriReference.ts +4 -4
  118. package/src/internal/_isFormatJsonPointer.ts +3 -3
  119. package/src/internal/_isFormatPassword.ts +1 -1
  120. package/src/internal/_isFormatRegex.ts +8 -8
  121. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  122. package/src/internal/_isFormatTime.ts +4 -4
  123. package/src/internal/_isFormatUri.ts +6 -6
  124. package/src/internal/_isFormatUriReference.ts +5 -5
  125. package/src/internal/_isFormatUriTemplate.ts +4 -4
  126. package/src/internal/_isFormatUrl.ts +4 -4
  127. package/src/internal/_isFormatUuid.ts +3 -3
  128. package/src/internal/_isTypeFloat.ts +5 -5
  129. package/src/internal/_isTypeInt32.ts +5 -5
  130. package/src/internal/_isTypeInt64.ts +5 -5
  131. package/src/internal/_isTypeUint32.ts +5 -5
  132. package/src/internal/_isTypeUint64.ts +5 -5
  133. package/src/internal/_isUniqueItems.ts +159 -159
  134. package/src/internal/_jsonStringifyNumber.ts +12 -12
  135. package/src/internal/_jsonStringifyRest.ts +3 -3
  136. package/src/internal/_jsonStringifyString.ts +42 -42
  137. package/src/internal/_jsonStringifyTail.ts +2 -2
  138. package/src/internal/_llmApplicationFinalize.ts +20 -20
  139. package/src/internal/_miscCloneAny.ts +46 -46
  140. package/src/internal/_notationAny.ts +37 -37
  141. package/src/internal/_notationCamel.ts +13 -13
  142. package/src/internal/_notationPascal.ts +8 -8
  143. package/src/internal/_notationSnake.ts +43 -43
  144. package/src/internal/_randomArray.ts +21 -21
  145. package/src/internal/_randomBigint.ts +6 -6
  146. package/src/internal/_randomBoolean.ts +1 -1
  147. package/src/internal/_randomFormatByte.ts +3 -3
  148. package/src/internal/_randomFormatDate.ts +18 -18
  149. package/src/internal/_randomFormatDatetime.ts +16 -16
  150. package/src/internal/_randomFormatDuration.ts +27 -27
  151. package/src/internal/_randomFormatEmail.ts +11 -11
  152. package/src/internal/_randomFormatHostname.ts +6 -6
  153. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  154. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  155. package/src/internal/_randomFormatIpv4.ts +11 -11
  156. package/src/internal/_randomFormatIpv6.ts +11 -11
  157. package/src/internal/_randomFormatIri.ts +3 -3
  158. package/src/internal/_randomFormatIriReference.ts +3 -3
  159. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  160. package/src/internal/_randomFormatPassword.ts +8 -8
  161. package/src/internal/_randomFormatRegex.ts +4 -4
  162. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  163. package/src/internal/_randomFormatTime.ts +14 -14
  164. package/src/internal/_randomFormatUri.ts +3 -3
  165. package/src/internal/_randomFormatUriReference.ts +3 -3
  166. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  167. package/src/internal/_randomFormatUrl.ts +11 -11
  168. package/src/internal/_randomFormatUuid.ts +6 -6
  169. package/src/internal/_randomInteger.ts +53 -53
  170. package/src/internal/_randomNumber.ts +80 -80
  171. package/src/internal/_randomPattern.ts +10 -10
  172. package/src/internal/_randomPick.ts +9 -9
  173. package/src/internal/_randomString.ts +24 -24
  174. package/src/internal/_throwTypeGuardError.ts +5 -5
  175. package/src/internal/_validateReport.ts +13 -13
  176. package/src/internal/private/__notationCapitalize.ts +2 -2
  177. package/src/internal/private/__notationUnsnake.ts +24 -24
  178. package/src/json.ts +696 -696
  179. package/src/llm.ts +506 -506
  180. package/src/misc.ts +651 -651
  181. package/src/module.ts +936 -936
  182. package/src/notations.ts +820 -820
  183. package/src/programmers/AssertProgrammer.ts +454 -454
  184. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  185. package/src/programmers/FeatureProgrammer.ts +627 -627
  186. package/src/programmers/ImportProgrammer.ts +185 -185
  187. package/src/programmers/IsProgrammer.ts +273 -273
  188. package/src/programmers/RandomProgrammer.ts +1190 -1190
  189. package/src/programmers/TypiaProgrammer.ts +175 -175
  190. package/src/programmers/ValidateProgrammer.ts +448 -448
  191. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  192. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  193. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  194. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  195. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  196. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  197. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  198. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  199. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  200. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  201. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  202. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  203. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  204. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  205. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  206. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  207. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  208. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  209. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  210. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  211. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  212. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  213. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  214. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  215. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  216. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  217. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  218. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  219. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  220. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  221. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  222. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  223. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  224. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  225. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  226. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  227. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  228. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  229. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  230. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  231. package/src/programmers/internal/check_array_length.ts +47 -47
  232. package/src/programmers/internal/check_bigint.ts +50 -50
  233. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  234. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  235. package/src/programmers/internal/check_everything.ts +23 -23
  236. package/src/programmers/internal/check_native.ts +27 -27
  237. package/src/programmers/internal/check_number.ts +112 -112
  238. package/src/programmers/internal/check_object.ts +75 -75
  239. package/src/programmers/internal/check_string.ts +50 -50
  240. package/src/programmers/internal/check_template.ts +48 -48
  241. package/src/programmers/internal/check_union_array_like.ts +335 -335
  242. package/src/programmers/internal/decode_union_object.ts +116 -116
  243. package/src/programmers/internal/feature_object_entries.ts +61 -61
  244. package/src/programmers/internal/json_schema_alias.ts +47 -47
  245. package/src/programmers/internal/json_schema_array.ts +45 -45
  246. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  247. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  248. package/src/programmers/internal/json_schema_constant.ts +26 -26
  249. package/src/programmers/internal/json_schema_description.ts +12 -12
  250. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  251. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  252. package/src/programmers/internal/json_schema_native.ts +33 -33
  253. package/src/programmers/internal/json_schema_number.ts +15 -15
  254. package/src/programmers/internal/json_schema_object.ts +158 -158
  255. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  256. package/src/programmers/internal/json_schema_station.ts +185 -185
  257. package/src/programmers/internal/json_schema_string.ts +15 -15
  258. package/src/programmers/internal/json_schema_template.ts +55 -55
  259. package/src/programmers/internal/json_schema_title.ts +13 -20
  260. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  261. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  262. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  263. package/src/programmers/internal/prune_object_properties.ts +71 -71
  264. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  265. package/src/programmers/internal/stringify_native.ts +7 -7
  266. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  267. package/src/programmers/internal/template_to_pattern.ts +23 -23
  268. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  269. package/src/programmers/json/JsonApplicationProgrammer.ts +266 -266
  270. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  271. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  272. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  273. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  274. package/src/programmers/json/JsonSchemaProgrammer.ts +26 -26
  275. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  276. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  277. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  278. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  279. package/src/programmers/llm/LlmApplicationProgrammer.ts +401 -401
  280. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  281. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  282. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  283. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  284. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  285. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  286. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  287. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  288. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  289. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  290. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  291. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  292. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  293. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  294. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  295. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  296. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  297. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  298. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  299. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  300. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  301. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  302. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  303. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  304. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  305. package/src/protobuf.ts +861 -861
  306. package/src/reflect.ts +50 -50
  307. package/src/schemas/json/IJsonApplication.ts +77 -77
  308. package/src/schemas/json/IJsonSchemaCollection.ts +195 -195
  309. package/src/schemas/json/IJsonSchemaUnit.ts +250 -250
  310. package/src/schemas/json/__IJsonApplication.ts +63 -63
  311. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  312. package/src/schemas/metadata/IMetadata.ts +35 -35
  313. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  314. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  315. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  316. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  317. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  318. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  319. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  320. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  321. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  322. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  323. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  324. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  325. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  326. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  327. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  328. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  329. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  330. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  331. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  332. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  333. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  334. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  335. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  336. package/src/schemas/metadata/Metadata.ts +687 -687
  337. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  338. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  339. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  340. package/src/schemas/metadata/MetadataArray.ts +49 -49
  341. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  342. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  343. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  344. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  345. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  346. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  347. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  348. package/src/schemas/metadata/MetadataMap.ts +48 -48
  349. package/src/schemas/metadata/MetadataNative.ts +44 -44
  350. package/src/schemas/metadata/MetadataObject.ts +48 -48
  351. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  352. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  353. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  354. package/src/schemas/metadata/MetadataSet.ts +45 -45
  355. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  356. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  357. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  358. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  359. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  360. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  361. package/src/tags/Constant.ts +15 -15
  362. package/src/tags/ContentMediaType.ts +10 -10
  363. package/src/tags/Default.ts +22 -22
  364. package/src/tags/Example.ts +24 -24
  365. package/src/tags/Examples.ts +16 -16
  366. package/src/tags/ExclusiveMaximum.ts +23 -23
  367. package/src/tags/ExclusiveMinimum.ts +23 -23
  368. package/src/tags/Format.ts +50 -50
  369. package/src/tags/JsonSchemaPlugin.ts +8 -8
  370. package/src/tags/MaxItems.ts +12 -12
  371. package/src/tags/MaxLength.ts +12 -12
  372. package/src/tags/Maximum.ts +19 -19
  373. package/src/tags/MinItems.ts +12 -12
  374. package/src/tags/MinLength.ts +12 -12
  375. package/src/tags/Minimum.ts +19 -19
  376. package/src/tags/MultipleOf.ts +21 -21
  377. package/src/tags/Pattern.ts +31 -31
  378. package/src/tags/Sequence.ts +10 -10
  379. package/src/tags/TagBase.ts +82 -82
  380. package/src/tags/Type.ts +37 -37
  381. package/src/tags/UniqueItems.ts +14 -14
  382. package/src/tags/index.ts +21 -21
  383. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  384. package/src/transform.ts +35 -35
  385. package/src/transformers/CallExpressionTransformer.ts +554 -554
  386. package/src/transformers/FileTransformer.ts +136 -136
  387. package/src/transformers/IProgrammerProps.ts +11 -11
  388. package/src/transformers/ITransformOptions.ts +62 -62
  389. package/src/transformers/ITransformProps.ts +9 -9
  390. package/src/transformers/ITypiaContext.ts +18 -18
  391. package/src/transformers/ImportTransformer.ts +81 -81
  392. package/src/transformers/NoTransformConfigurationError.ts +18 -18
  393. package/src/transformers/NodeTransformer.ts +17 -17
  394. package/src/transformers/TransformerError.ts +60 -60
  395. package/src/transformers/features/AssertTransformer.ts +24 -24
  396. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  397. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  398. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  399. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  400. package/src/transformers/features/IsTransformer.ts +18 -18
  401. package/src/transformers/features/RandomTransformer.ts +41 -41
  402. package/src/transformers/features/ValidateTransformer.ts +18 -18
  403. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  404. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  405. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  406. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  407. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  408. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  409. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  410. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  411. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  412. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  413. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  414. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  415. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  416. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  417. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  418. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  419. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  420. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  421. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  422. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  423. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  424. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  425. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  426. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  427. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  428. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  429. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  430. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  431. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  432. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  433. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  434. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  435. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  436. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  437. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  438. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  439. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  440. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  441. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  442. package/src/transformers/features/json/JsonSchemaTransformer.ts +135 -135
  443. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
  444. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  445. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  446. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  447. package/src/transformers/features/llm/LlmApplicationTransformer.ts +145 -145
  448. package/src/transformers/features/llm/LlmControllerTransformer.ts +93 -93
  449. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
  450. package/src/transformers/features/llm/LlmSchemaTransformer.ts +170 -170
  451. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  452. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  453. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  454. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  455. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  456. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  457. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  458. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  459. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  460. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  461. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  462. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  463. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  464. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  465. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  466. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  467. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  468. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  469. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  470. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  471. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  472. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  473. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  474. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  475. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  476. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  477. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  478. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  479. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  480. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  481. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  482. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  483. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  484. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  485. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  486. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  487. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  488. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  489. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  490. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  491. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  492. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  493. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  494. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  495. package/src/transformers/internal/GenericTransformer.ts +101 -101
  496. package/src/typings/Atomic.ts +13 -13
  497. package/src/typings/ClassProperties.ts +5 -5
  498. package/src/typings/Customizable.ts +5 -5
  499. package/src/typings/Equal.ts +18 -18
  500. package/src/typings/IsTuple.ts +9 -9
  501. package/src/typings/NativeClass.ts +23 -23
  502. package/src/typings/OmitNever.ts +3 -3
  503. package/src/typings/ProtobufAtomic.ts +19 -19
  504. package/src/typings/SpecialFields.ts +3 -3
  505. package/src/typings/ValidationPipe.ts +9 -9
  506. package/src/typings/ValueOf.ts +20 -20
  507. package/src/typings/Writable.ts +11 -11
  508. package/src/utils/ArrayUtil.ts +41 -41
  509. package/src/utils/Escaper.ts +50 -50
  510. package/src/utils/MapUtil.ts +14 -14
  511. package/src/utils/NamingConvention.ts +94 -94
  512. package/src/utils/PatternUtil.ts +29 -29
  513. package/src/utils/ProtobufNameEncoder.ts +32 -32
  514. package/src/utils/Singleton.ts +16 -16
  515. package/src/utils/StringUtil.ts +16 -16
package/src/reflect.ts CHANGED
@@ -1,50 +1,50 @@
1
- import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
2
-
3
- import { NoTransformConfigurationError } from "./transformers/NoTransformConfigurationError";
4
-
5
- /**
6
- * > You must configure the generic argument `Types`.
7
- *
8
- * Metadata Application.
9
- *
10
- * Creates a Metadata application which contains the metadata and components.
11
- *
12
- * Note that, all of the collection types like Array, Tuple and Objects are
13
- * stored in the {@link IMetadataApplication.components} property. Also, alias
14
- * types are stored in the {@link IMetadataApplication.aliases} property, too.
15
- *
16
- * @template Types Tuple of target types
17
- * @returns Metadata application
18
- *
19
- * @author Jeongho Nam - https://github.com/samchon
20
- */
21
- export function metadata(): never;
22
-
23
- /**
24
- * Metadata Application.
25
- *
26
- * Creates a Metadata application which contains the metadata and components.
27
- *
28
- * Note that, all of the collection types like Array, Tuple and Objects are
29
- * stored in the {@link IMetadataApplication.components} property. Also, alias
30
- * types are stored in the {@link IMetadataApplication.aliases} property, too.
31
- *
32
- * @template Types Tuple of target types
33
- * @returns Metadata application
34
- *
35
- * @author Jeongho Nam - https://github.com/samchon
36
- */
37
- export function metadata<Types extends unknown[]>(): IMetadataApplication;
38
-
39
- /**
40
- * @internal
41
- */
42
- export function metadata(): never {
43
- NoTransformConfigurationError("reflect.metadata");
44
- }
45
-
46
- export function name<T, Regular extends boolean = false>(): string;
47
- export function name(): never;
48
- export function name(): never {
49
- NoTransformConfigurationError("reflect.name");
50
- }
1
+ import { IMetadataApplication } from "./schemas/metadata/IMetadataApplication";
2
+
3
+ import { NoTransformConfigurationError } from "./transformers/NoTransformConfigurationError";
4
+
5
+ /**
6
+ * > You must configure the generic argument `Types`.
7
+ *
8
+ * Metadata Application.
9
+ *
10
+ * Creates a Metadata application which contains the metadata and components.
11
+ *
12
+ * Note that, all of the collection types like Array, Tuple and Objects are
13
+ * stored in the {@link IMetadataApplication.components} property. Also, alias
14
+ * types are stored in the {@link IMetadataApplication.aliases} property, too.
15
+ *
16
+ * @template Types Tuple of target types
17
+ * @returns Metadata application
18
+ *
19
+ * @author Jeongho Nam - https://github.com/samchon
20
+ */
21
+ export function metadata(): never;
22
+
23
+ /**
24
+ * Metadata Application.
25
+ *
26
+ * Creates a Metadata application which contains the metadata and components.
27
+ *
28
+ * Note that, all of the collection types like Array, Tuple and Objects are
29
+ * stored in the {@link IMetadataApplication.components} property. Also, alias
30
+ * types are stored in the {@link IMetadataApplication.aliases} property, too.
31
+ *
32
+ * @template Types Tuple of target types
33
+ * @returns Metadata application
34
+ *
35
+ * @author Jeongho Nam - https://github.com/samchon
36
+ */
37
+ export function metadata<Types extends unknown[]>(): IMetadataApplication;
38
+
39
+ /**
40
+ * @internal
41
+ */
42
+ export function metadata(): never {
43
+ NoTransformConfigurationError("reflect.metadata");
44
+ }
45
+
46
+ export function name<T, Regular extends boolean = false>(): string;
47
+ export function name(): never;
48
+ export function name(): never {
49
+ NoTransformConfigurationError("reflect.name");
50
+ }
@@ -1,77 +1,77 @@
1
- import { IJsonSchemaCollection } from "./IJsonSchemaCollection";
2
-
3
- /**
4
- * Collection of JSON schemas.
5
- *
6
- * @deprecated Use {@link IJsonSchemaCollection} instead please.
7
- * This interface type would be changed to {@link ILlmApplication} like
8
- * structure in the future version (maybe next v8 major update).
9
- * @template Version Version of the OpenAPI specification.
10
- * @template Types Original TypeScript types used in the JSON schemas.
11
- * @author Jeongho Nam - https://github.com/samchon
12
- */
13
- export type IJsonApplication = IJsonSchemaCollection;
14
- export namespace IJsonApplication {
15
- export type IV3_0 = IJsonSchemaCollection.IV3_0;
16
- export type IV3_1 = IJsonSchemaCollection.IV3_1;
17
- }
18
-
19
- // export interface IJsonApplication<
20
- // Version extends "3.0" | "3.1" = "3.1",
21
- // App extends any = object,
22
- // > {
23
- // version: Version;
24
- // components: IJsonApplication.IComponents<IJsonApplication.Schema<Version>>;
25
- // functions: IJsonApplication.IFunction<IJsonApplication.Schema<Version>>[];
26
- // __application?: App | undefined;
27
- // }
28
- // export namespace IJsonApplication {
29
- // export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
30
- // ? OpenApi.IJsonSchema
31
- // : OpenApiV3.IJsonSchema;
32
-
33
- // export interface IComponents<
34
- // Schema extends
35
- // | OpenApi.IJsonSchema
36
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
37
- // > {
38
- // schemas?: Record<string, Schema>;
39
- // }
40
-
41
- // export interface IFunction<
42
- // Schema extends
43
- // | OpenApi.IJsonSchema
44
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
45
- // > {
46
- // async: boolean;
47
- // name: string;
48
- // parameters: IParameter<Schema>[];
49
- // output: IOutput<Schema> | undefined;
50
- // summary?: string | undefined;
51
- // description?: string | undefined;
52
- // deprecated?: boolean;
53
- // tags?: string[];
54
- // }
55
-
56
- // export interface IParameter<
57
- // Schema extends
58
- // | OpenApi.IJsonSchema
59
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
60
- // > {
61
- // name: string;
62
- // required: boolean;
63
- // schema: Schema;
64
- // title?: string | undefined;
65
- // description?: string | undefined;
66
- // }
67
-
68
- // export interface IOutput<
69
- // Schema extends
70
- // | OpenApi.IJsonSchema
71
- // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
72
- // > {
73
- // schema: Schema;
74
- // required: boolean;
75
- // description?: string | undefined;
76
- // }
77
- // }
1
+ import { IJsonSchemaCollection } from "./IJsonSchemaCollection";
2
+
3
+ /**
4
+ * Collection of JSON schemas.
5
+ *
6
+ * @deprecated Use {@link IJsonSchemaCollection} instead please.
7
+ * This interface type would be changed to {@link ILlmApplication} like
8
+ * structure in the future version (maybe next v8 major update).
9
+ * @template Version Version of the OpenAPI specification.
10
+ * @template Types Original TypeScript types used in the JSON schemas.
11
+ * @author Jeongho Nam - https://github.com/samchon
12
+ */
13
+ export type IJsonApplication = IJsonSchemaCollection;
14
+ export namespace IJsonApplication {
15
+ export type IV3_0 = IJsonSchemaCollection.IV3_0;
16
+ export type IV3_1 = IJsonSchemaCollection.IV3_1;
17
+ }
18
+
19
+ // export interface IJsonApplication<
20
+ // Version extends "3.0" | "3.1" = "3.1",
21
+ // App extends any = object,
22
+ // > {
23
+ // version: Version;
24
+ // components: IJsonApplication.IComponents<IJsonApplication.Schema<Version>>;
25
+ // functions: IJsonApplication.IFunction<IJsonApplication.Schema<Version>>[];
26
+ // __application?: App | undefined;
27
+ // }
28
+ // export namespace IJsonApplication {
29
+ // export type Schema<Version extends "3.0" | "3.1"> = Version extends "3.1"
30
+ // ? OpenApi.IJsonSchema
31
+ // : OpenApiV3.IJsonSchema;
32
+
33
+ // export interface IComponents<
34
+ // Schema extends
35
+ // | OpenApi.IJsonSchema
36
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
37
+ // > {
38
+ // schemas?: Record<string, Schema>;
39
+ // }
40
+
41
+ // export interface IFunction<
42
+ // Schema extends
43
+ // | OpenApi.IJsonSchema
44
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
45
+ // > {
46
+ // async: boolean;
47
+ // name: string;
48
+ // parameters: IParameter<Schema>[];
49
+ // output: IOutput<Schema> | undefined;
50
+ // summary?: string | undefined;
51
+ // description?: string | undefined;
52
+ // deprecated?: boolean;
53
+ // tags?: string[];
54
+ // }
55
+
56
+ // export interface IParameter<
57
+ // Schema extends
58
+ // | OpenApi.IJsonSchema
59
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
60
+ // > {
61
+ // name: string;
62
+ // required: boolean;
63
+ // schema: Schema;
64
+ // title?: string | undefined;
65
+ // description?: string | undefined;
66
+ // }
67
+
68
+ // export interface IOutput<
69
+ // Schema extends
70
+ // | OpenApi.IJsonSchema
71
+ // | OpenApiV3.IJsonSchema = OpenApi.IJsonSchema,
72
+ // > {
73
+ // schema: Schema;
74
+ // required: boolean;
75
+ // description?: string | undefined;
76
+ // }
77
+ // }
@@ -1,195 +1,195 @@
1
- import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
-
3
- /**
4
- * Collection of JSON schemas with OpenAPI specification support.
5
- *
6
- * `IJsonSchemaCollection` represents a comprehensive collection of JSON schemas
7
- * that can be generated from TypeScript types using the `typia.json.schemas()` function.
8
- * This interface supports both OpenAPI v3.0 and v3.1 specifications, with the ability
9
- * to automatically generate appropriate schema definitions based on the specified version.
10
- *
11
- * The collection includes:
12
- * - Generated JSON schemas array containing schema definitions for the specified types
13
- * - Reusable components that can be referenced across different schemas
14
- * - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1 standards
15
- *
16
- * Key differences between versions:
17
- * - OpenAPI v3.0: Uses {@link OpenApiV3.IJsonSchema} format with limited tuple support
18
- * - OpenAPI v3.1: Uses {@link OpenApi.IJsonSchema} format with full JSON Schema Draft 2020-12 compatibility
19
- *
20
- * @template Version The OpenAPI specification version to target ("3.0" or "3.1").
21
- * Defaults to "3.1" for enhanced JSON Schema compatibility.
22
- * @template Types Array of original TypeScript types that were analyzed to generate
23
- * the JSON schemas. This provides type safety and traceability
24
- * back to the source TypeScript definitions.
25
- *
26
- * @example
27
- * ```typescript
28
- * // Generate schemas for OpenAPI v3.1 (default)
29
- * const schemas = typia.json.schemas<[User, Product]>();
30
- * // Type: IJsonSchemaCollection<"3.1", [User, Product]>
31
- *
32
- * // Generate schemas for OpenAPI v3.0 (Swagger compatibility)
33
- * const swaggerSchemas = typia.json.schemas<[User, Product], "3.0">();
34
- * // Type: IJsonSchemaCollection<"3.0", [User, Product]>
35
- * ```
36
- *
37
- * @author Jeongho Nam - https://github.com/samchon
38
- */
39
- export type IJsonSchemaCollection<
40
- Version extends "3.0" | "3.1" = "3.1",
41
- Types = unknown[],
42
- > = Version extends "3.0"
43
- ? IJsonSchemaCollection.IV3_0<Types>
44
- : IJsonSchemaCollection.IV3_1<Types>;
45
-
46
- export namespace IJsonSchemaCollection {
47
- /**
48
- * JSON Schema collection formatted for OpenAPI v3.0 specification.
49
- *
50
- * This interface represents a collection of JSON schemas that comply with
51
- * OpenAPI v3.0 standards, which are compatible with Swagger tools and
52
- * legacy OpenAPI implementations. OpenAPI v3.0 has some limitations
53
- * compared to v3.1, particularly around tuple types and pattern properties.
54
- *
55
- * Key characteristics of v3.0:
56
- * - Cannot express tuple types natively (falls back to array representations)
57
- * - Cannot express pattern properties in object schemas
58
- * - Uses nullable property instead of union with null type
59
- * - Limited JSON Schema Draft compatibility (based on Draft 4)
60
- *
61
- * @template Types Array of original TypeScript types used to generate the schemas.
62
- * This provides compile-time type information about what types
63
- * were analyzed during schema generation.
64
- */
65
- export interface IV3_0<Types = unknown[]> {
66
- /**
67
- * OpenAPI specification version identifier.
68
- *
69
- * Always set to "3.0" to indicate this collection uses OpenAPI v3.0
70
- * schema format and constraints.
71
- */
72
- version: "3.0";
73
-
74
- /**
75
- * Array of generated JSON schemas.
76
- *
77
- * Contains the actual JSON schema definitions generated from the input TypeScript types.
78
- * Each schema in this array corresponds to one of the types specified in the `Types`
79
- * template parameter. The schemas follow OpenAPI v3.0 format and may contain
80
- * references to components defined in the {@link components} property.
81
- *
82
- * Schema references typically use the format: `{ "$ref": "#/components/schemas/TypeName" }`
83
- */
84
- schemas: OpenApiV3.IJsonSchema[];
85
-
86
- /**
87
- * Reusable schema components for OpenAPI v3.0.
88
- *
89
- * Contains reusable schema definitions, security schemes, and other components
90
- * that can be referenced from the main schemas. This follows the OpenAPI v3.0
91
- * components structure and enables schema reuse and modularity.
92
- *
93
- * Components include:
94
- * - schemas: Named type definitions that can be referenced via $ref
95
- * - securitySchemes: Authentication and authorization schemes
96
- * - parameters: Reusable parameter definitions
97
- * - requestBodies: Reusable request body definitions
98
- * - responses: Reusable response definitions
99
- * - headers: Reusable header definitions
100
- * - examples: Reusable example definitions
101
- */
102
- components: OpenApiV3.IComponents;
103
-
104
- /**
105
- * Type metadata for compile-time type tracking.
106
- *
107
- * This optional property stores the original TypeScript types that were
108
- * used to generate the JSON schemas. It's primarily used for type safety
109
- * and doesn't affect runtime behavior. The property is marked as optional
110
- * and undefined to prevent it from appearing in serialized JSON output.
111
- *
112
- * This enables:
113
- * - Compile-time type checking against the original types
114
- * - IDE intellisense and autocompletion
115
- * - Type-safe schema validation and usage
116
- */
117
- __types?: Types | undefined;
118
- }
119
-
120
- /**
121
- * JSON Schema collection formatted for OpenAPI v3.1 specification.
122
- *
123
- * This interface represents a collection of JSON schemas that comply with
124
- * OpenAPI v3.1 standards, which provide enhanced JSON Schema compatibility
125
- * and support for modern JSON Schema features. OpenAPI v3.1 is based on
126
- * JSON Schema Draft 2020-12 and offers significant improvements over v3.0.
127
- *
128
- * Key advantages of v3.1:
129
- * - Full tuple type support with prefixItems
130
- * - Pattern properties support for dynamic object keys
131
- * - Proper null type handling via union types
132
- * - Enhanced JSON Schema Draft 2020-12 compatibility
133
- * - Better const, enum, and validation support
134
- *
135
- * @template Types Array of original TypeScript types used to generate the schemas.
136
- * This provides compile-time type information about what types
137
- * were analyzed during schema generation.
138
- */
139
- export interface IV3_1<Types = unknown[]> {
140
- /**
141
- * OpenAPI specification version identifier.
142
- *
143
- * Always set to "3.1" to indicate this collection uses OpenAPI v3.1
144
- * schema format with enhanced JSON Schema compatibility.
145
- */
146
- version: "3.1";
147
-
148
- /**
149
- * Reusable schema components for OpenAPI v3.1.
150
- *
151
- * Contains reusable schema definitions and other components following the
152
- * OpenAPI v3.1 specification. This structure is similar to v3.0 but supports
153
- * enhanced JSON Schema features and improved type definitions.
154
- *
155
- * Components include:
156
- * - schemas: Named type definitions with enhanced JSON Schema support
157
- * - securitySchemes: Authentication and authorization schemes
158
- *
159
- * The emended OpenAPI v3.1 format used here removes ambiguous expressions
160
- * and standardizes certain patterns for better tooling compatibility.
161
- */
162
- components: OpenApi.IComponents;
163
-
164
- /**
165
- * Array of generated JSON schemas with v3.1 enhancements.
166
- *
167
- * Contains JSON schema definitions that take advantage of OpenAPI v3.1's
168
- * enhanced capabilities. These schemas can express more complex TypeScript
169
- * types accurately, including:
170
- * - Tuple types using prefixItems
171
- * - Union types with proper null handling
172
- * - Complex nested object structures
173
- * - Pattern-based property definitions
174
- *
175
- * Each schema corresponds to one of the input TypeScript types and may
176
- * reference components defined in the {@link components} property.
177
- */
178
- schemas: OpenApi.IJsonSchema[];
179
-
180
- /**
181
- * Type metadata for compile-time type tracking.
182
- *
183
- * This optional property stores the original TypeScript types that were
184
- * used to generate the JSON schemas. It provides compile-time type safety
185
- * and enables better development experience without affecting runtime behavior.
186
- *
187
- * Benefits include:
188
- * - Strong typing connection to original TypeScript definitions
189
- * - Enhanced IDE support and autocompletion
190
- * - Compile-time validation of schema usage
191
- * - Type-safe integration with validation libraries
192
- */
193
- __types?: Types | undefined;
194
- }
195
- }
1
+ import type { OpenApi, OpenApiV3 } from "@samchon/openapi";
2
+
3
+ /**
4
+ * Collection of JSON schemas with OpenAPI specification support.
5
+ *
6
+ * `IJsonSchemaCollection` represents a comprehensive collection of JSON schemas
7
+ * that can be generated from TypeScript types using the `typia.json.schemas()` function.
8
+ * This interface supports both OpenAPI v3.0 and v3.1 specifications, with the ability
9
+ * to automatically generate appropriate schema definitions based on the specified version.
10
+ *
11
+ * The collection includes:
12
+ * - Generated JSON schemas array containing schema definitions for the specified types
13
+ * - Reusable components that can be referenced across different schemas
14
+ * - Version-specific formatting that adheres to either OpenAPI v3.0 or v3.1 standards
15
+ *
16
+ * Key differences between versions:
17
+ * - OpenAPI v3.0: Uses {@link OpenApiV3.IJsonSchema} format with limited tuple support
18
+ * - OpenAPI v3.1: Uses {@link OpenApi.IJsonSchema} format with full JSON Schema Draft 2020-12 compatibility
19
+ *
20
+ * @template Version The OpenAPI specification version to target ("3.0" or "3.1").
21
+ * Defaults to "3.1" for enhanced JSON Schema compatibility.
22
+ * @template Types Array of original TypeScript types that were analyzed to generate
23
+ * the JSON schemas. This provides type safety and traceability
24
+ * back to the source TypeScript definitions.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Generate schemas for OpenAPI v3.1 (default)
29
+ * const schemas = typia.json.schemas<[User, Product]>();
30
+ * // Type: IJsonSchemaCollection<"3.1", [User, Product]>
31
+ *
32
+ * // Generate schemas for OpenAPI v3.0 (Swagger compatibility)
33
+ * const swaggerSchemas = typia.json.schemas<[User, Product], "3.0">();
34
+ * // Type: IJsonSchemaCollection<"3.0", [User, Product]>
35
+ * ```
36
+ *
37
+ * @author Jeongho Nam - https://github.com/samchon
38
+ */
39
+ export type IJsonSchemaCollection<
40
+ Version extends "3.0" | "3.1" = "3.1",
41
+ Types = unknown[],
42
+ > = Version extends "3.0"
43
+ ? IJsonSchemaCollection.IV3_0<Types>
44
+ : IJsonSchemaCollection.IV3_1<Types>;
45
+
46
+ export namespace IJsonSchemaCollection {
47
+ /**
48
+ * JSON Schema collection formatted for OpenAPI v3.0 specification.
49
+ *
50
+ * This interface represents a collection of JSON schemas that comply with
51
+ * OpenAPI v3.0 standards, which are compatible with Swagger tools and
52
+ * legacy OpenAPI implementations. OpenAPI v3.0 has some limitations
53
+ * compared to v3.1, particularly around tuple types and pattern properties.
54
+ *
55
+ * Key characteristics of v3.0:
56
+ * - Cannot express tuple types natively (falls back to array representations)
57
+ * - Cannot express pattern properties in object schemas
58
+ * - Uses nullable property instead of union with null type
59
+ * - Limited JSON Schema Draft compatibility (based on Draft 4)
60
+ *
61
+ * @template Types Array of original TypeScript types used to generate the schemas.
62
+ * This provides compile-time type information about what types
63
+ * were analyzed during schema generation.
64
+ */
65
+ export interface IV3_0<Types = unknown[]> {
66
+ /**
67
+ * OpenAPI specification version identifier.
68
+ *
69
+ * Always set to "3.0" to indicate this collection uses OpenAPI v3.0
70
+ * schema format and constraints.
71
+ */
72
+ version: "3.0";
73
+
74
+ /**
75
+ * Array of generated JSON schemas.
76
+ *
77
+ * Contains the actual JSON schema definitions generated from the input TypeScript types.
78
+ * Each schema in this array corresponds to one of the types specified in the `Types`
79
+ * template parameter. The schemas follow OpenAPI v3.0 format and may contain
80
+ * references to components defined in the {@link components} property.
81
+ *
82
+ * Schema references typically use the format: `{ "$ref": "#/components/schemas/TypeName" }`
83
+ */
84
+ schemas: OpenApiV3.IJsonSchema[];
85
+
86
+ /**
87
+ * Reusable schema components for OpenAPI v3.0.
88
+ *
89
+ * Contains reusable schema definitions, security schemes, and other components
90
+ * that can be referenced from the main schemas. This follows the OpenAPI v3.0
91
+ * components structure and enables schema reuse and modularity.
92
+ *
93
+ * Components include:
94
+ * - schemas: Named type definitions that can be referenced via $ref
95
+ * - securitySchemes: Authentication and authorization schemes
96
+ * - parameters: Reusable parameter definitions
97
+ * - requestBodies: Reusable request body definitions
98
+ * - responses: Reusable response definitions
99
+ * - headers: Reusable header definitions
100
+ * - examples: Reusable example definitions
101
+ */
102
+ components: OpenApiV3.IComponents;
103
+
104
+ /**
105
+ * Type metadata for compile-time type tracking.
106
+ *
107
+ * This optional property stores the original TypeScript types that were
108
+ * used to generate the JSON schemas. It's primarily used for type safety
109
+ * and doesn't affect runtime behavior. The property is marked as optional
110
+ * and undefined to prevent it from appearing in serialized JSON output.
111
+ *
112
+ * This enables:
113
+ * - Compile-time type checking against the original types
114
+ * - IDE intellisense and autocompletion
115
+ * - Type-safe schema validation and usage
116
+ */
117
+ __types?: Types | undefined;
118
+ }
119
+
120
+ /**
121
+ * JSON Schema collection formatted for OpenAPI v3.1 specification.
122
+ *
123
+ * This interface represents a collection of JSON schemas that comply with
124
+ * OpenAPI v3.1 standards, which provide enhanced JSON Schema compatibility
125
+ * and support for modern JSON Schema features. OpenAPI v3.1 is based on
126
+ * JSON Schema Draft 2020-12 and offers significant improvements over v3.0.
127
+ *
128
+ * Key advantages of v3.1:
129
+ * - Full tuple type support with prefixItems
130
+ * - Pattern properties support for dynamic object keys
131
+ * - Proper null type handling via union types
132
+ * - Enhanced JSON Schema Draft 2020-12 compatibility
133
+ * - Better const, enum, and validation support
134
+ *
135
+ * @template Types Array of original TypeScript types used to generate the schemas.
136
+ * This provides compile-time type information about what types
137
+ * were analyzed during schema generation.
138
+ */
139
+ export interface IV3_1<Types = unknown[]> {
140
+ /**
141
+ * OpenAPI specification version identifier.
142
+ *
143
+ * Always set to "3.1" to indicate this collection uses OpenAPI v3.1
144
+ * schema format with enhanced JSON Schema compatibility.
145
+ */
146
+ version: "3.1";
147
+
148
+ /**
149
+ * Reusable schema components for OpenAPI v3.1.
150
+ *
151
+ * Contains reusable schema definitions and other components following the
152
+ * OpenAPI v3.1 specification. This structure is similar to v3.0 but supports
153
+ * enhanced JSON Schema features and improved type definitions.
154
+ *
155
+ * Components include:
156
+ * - schemas: Named type definitions with enhanced JSON Schema support
157
+ * - securitySchemes: Authentication and authorization schemes
158
+ *
159
+ * The emended OpenAPI v3.1 format used here removes ambiguous expressions
160
+ * and standardizes certain patterns for better tooling compatibility.
161
+ */
162
+ components: OpenApi.IComponents;
163
+
164
+ /**
165
+ * Array of generated JSON schemas with v3.1 enhancements.
166
+ *
167
+ * Contains JSON schema definitions that take advantage of OpenAPI v3.1's
168
+ * enhanced capabilities. These schemas can express more complex TypeScript
169
+ * types accurately, including:
170
+ * - Tuple types using prefixItems
171
+ * - Union types with proper null handling
172
+ * - Complex nested object structures
173
+ * - Pattern-based property definitions
174
+ *
175
+ * Each schema corresponds to one of the input TypeScript types and may
176
+ * reference components defined in the {@link components} property.
177
+ */
178
+ schemas: OpenApi.IJsonSchema[];
179
+
180
+ /**
181
+ * Type metadata for compile-time type tracking.
182
+ *
183
+ * This optional property stores the original TypeScript types that were
184
+ * used to generate the JSON schemas. It provides compile-time type safety
185
+ * and enables better development experience without affecting runtime behavior.
186
+ *
187
+ * Benefits include:
188
+ * - Strong typing connection to original TypeScript definitions
189
+ * - Enhanced IDE support and autocompletion
190
+ * - Compile-time validation of schema usage
191
+ * - Type-safe integration with validation libraries
192
+ */
193
+ __types?: Types | undefined;
194
+ }
195
+ }