typia 7.3.0 → 7.4.0-dev.20241215

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 (465) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +148 -148
  3. package/lib/executable/typia.js +0 -0
  4. package/lib/programmers/llm/LlmApplicationOfValidateProgrammer.d.ts +4 -1
  5. package/lib/programmers/llm/LlmApplicationOfValidateProgrammer.js +1 -1
  6. package/lib/programmers/llm/LlmApplicationOfValidateProgrammer.js.map +1 -1
  7. package/lib/programmers/llm/LlmApplicationProgrammer.d.ts +4 -1
  8. package/lib/programmers/llm/LlmApplicationProgrammer.js +3 -3
  9. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  10. package/lib/programmers/llm/LlmParametersProgrammer.d.ts +4 -1
  11. package/lib/programmers/llm/LlmParametersProgrammer.js +2 -2
  12. package/lib/programmers/llm/LlmParametersProgrammer.js.map +1 -1
  13. package/lib/programmers/llm/LlmSchemaProgrammer.d.ts +4 -1
  14. package/lib/programmers/llm/LlmSchemaProgrammer.js +17 -6
  15. package/lib/programmers/llm/LlmSchemaProgrammer.js.map +1 -1
  16. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js +11 -7
  17. package/lib/transformers/features/llm/LlmApplicationOfValidateTransformer.js.map +1 -1
  18. package/lib/transformers/features/llm/LlmApplicationTransformer.js +12 -8
  19. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  20. package/lib/transformers/features/llm/LlmParametersTransformer.js +11 -7
  21. package/lib/transformers/features/llm/LlmParametersTransformer.js.map +1 -1
  22. package/lib/transformers/features/llm/LlmSchemaTransformer.js +11 -7
  23. package/lib/transformers/features/llm/LlmSchemaTransformer.js.map +1 -1
  24. package/package.json +3 -3
  25. package/src/IRandomGenerator.ts +49 -49
  26. package/src/IReadableURLSearchParams.ts +9 -9
  27. package/src/IValidation.ts +21 -21
  28. package/src/executable/TypiaGenerateWizard.ts +83 -83
  29. package/src/executable/TypiaPatchWizard.ts +45 -45
  30. package/src/executable/TypiaSetupWizard.ts +179 -179
  31. package/src/executable/setup/ArgumentParser.ts +42 -42
  32. package/src/executable/setup/FileRetriever.ts +19 -19
  33. package/src/executable/setup/PackageManager.ts +87 -87
  34. package/src/factories/ExpressionFactory.ts +216 -216
  35. package/src/factories/IdentifierFactory.ts +89 -89
  36. package/src/factories/JsonMetadataFactory.ts +76 -76
  37. package/src/factories/LiteralFactory.ts +52 -52
  38. package/src/factories/MetadataCollection.ts +278 -278
  39. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  40. package/src/factories/MetadataFactory.ts +404 -404
  41. package/src/factories/MetadataTypeTagFactory.ts +411 -411
  42. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  43. package/src/factories/NumericRangeFactory.ts +72 -72
  44. package/src/factories/ProtobufFactory.ts +875 -875
  45. package/src/factories/StatementFactory.ts +90 -90
  46. package/src/factories/TemplateFactory.ts +64 -64
  47. package/src/factories/TypeFactory.ts +140 -140
  48. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  49. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  50. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  51. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  52. package/src/factories/internal/metadata/emplace_metadata_object.ts +208 -208
  53. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  54. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  55. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  56. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  57. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  58. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  59. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  60. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  61. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  62. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  63. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  64. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  65. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  66. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  67. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  68. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  69. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  70. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  71. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  72. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  73. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  74. package/src/functional.ts +750 -750
  75. package/src/http.ts +1047 -1047
  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/_functionalTypeGuardErrorFactory.ts +4 -4
  83. package/src/internal/_httpFormDataReadArray.ts +4 -4
  84. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  85. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  86. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  87. package/src/internal/_httpFormDataReadFile.ts +10 -10
  88. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  89. package/src/internal/_httpFormDataReadString.ts +10 -10
  90. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  91. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  92. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  93. package/src/internal/_httpParameterReadBigint.ts +10 -10
  94. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  95. package/src/internal/_httpParameterReadNumber.ts +7 -7
  96. package/src/internal/_httpParameterReadString.ts +2 -2
  97. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  98. package/src/internal/_httpQueryReadArray.ts +4 -4
  99. package/src/internal/_httpQueryReadBigint.ts +12 -12
  100. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  101. package/src/internal/_httpQueryReadNumber.ts +9 -9
  102. package/src/internal/_httpQueryReadString.ts +4 -4
  103. package/src/internal/_isBetween.ts +2 -2
  104. package/src/internal/_isBigintString.ts +8 -8
  105. package/src/internal/_isFormatByte.ts +7 -7
  106. package/src/internal/_isFormatDate.ts +3 -3
  107. package/src/internal/_isFormatDateTime.ts +4 -4
  108. package/src/internal/_isFormatDuration.ts +4 -4
  109. package/src/internal/_isFormatEmail.ts +4 -4
  110. package/src/internal/_isFormatHostname.ts +4 -4
  111. package/src/internal/_isFormatIdnEmail.ts +4 -4
  112. package/src/internal/_isFormatIdnHostname.ts +4 -4
  113. package/src/internal/_isFormatIpv4.ts +4 -4
  114. package/src/internal/_isFormatIpv6.ts +4 -4
  115. package/src/internal/_isFormatIri.ts +3 -3
  116. package/src/internal/_isFormatIriReference.ts +4 -4
  117. package/src/internal/_isFormatJsonPointer.ts +3 -3
  118. package/src/internal/_isFormatPassword.ts +1 -1
  119. package/src/internal/_isFormatRegex.ts +8 -8
  120. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  121. package/src/internal/_isFormatTime.ts +4 -4
  122. package/src/internal/_isFormatUri.ts +6 -6
  123. package/src/internal/_isFormatUriReference.ts +5 -5
  124. package/src/internal/_isFormatUriTemplate.ts +4 -4
  125. package/src/internal/_isFormatUrl.ts +4 -4
  126. package/src/internal/_isFormatUuid.ts +3 -3
  127. package/src/internal/_isTypeFloat.ts +5 -5
  128. package/src/internal/_isTypeInt32.ts +5 -5
  129. package/src/internal/_isTypeInt64.ts +5 -5
  130. package/src/internal/_isTypeUint32.ts +5 -5
  131. package/src/internal/_isTypeUint64.ts +5 -5
  132. package/src/internal/_isUniqueItems.ts +159 -159
  133. package/src/internal/_jsonStringifyNumber.ts +12 -12
  134. package/src/internal/_jsonStringifyRest.ts +3 -3
  135. package/src/internal/_jsonStringifyString.ts +42 -42
  136. package/src/internal/_jsonStringifyTail.ts +2 -2
  137. package/src/internal/_llmApplicationFinalize.ts +20 -20
  138. package/src/internal/_miscCloneAny.ts +46 -46
  139. package/src/internal/_notationAny.ts +37 -37
  140. package/src/internal/_notationCamel.ts +13 -13
  141. package/src/internal/_notationPascal.ts +8 -8
  142. package/src/internal/_notationSnake.ts +43 -43
  143. package/src/internal/_randomArray.ts +21 -21
  144. package/src/internal/_randomBigint.ts +6 -6
  145. package/src/internal/_randomBoolean.ts +1 -1
  146. package/src/internal/_randomFormatByte.ts +3 -3
  147. package/src/internal/_randomFormatDate.ts +18 -18
  148. package/src/internal/_randomFormatDatetime.ts +16 -16
  149. package/src/internal/_randomFormatDuration.ts +27 -27
  150. package/src/internal/_randomFormatEmail.ts +11 -11
  151. package/src/internal/_randomFormatHostname.ts +6 -6
  152. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  153. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  154. package/src/internal/_randomFormatIpv4.ts +11 -11
  155. package/src/internal/_randomFormatIpv6.ts +11 -11
  156. package/src/internal/_randomFormatIri.ts +3 -3
  157. package/src/internal/_randomFormatIriReference.ts +3 -3
  158. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  159. package/src/internal/_randomFormatPassword.ts +8 -8
  160. package/src/internal/_randomFormatRegex.ts +4 -4
  161. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  162. package/src/internal/_randomFormatTime.ts +14 -14
  163. package/src/internal/_randomFormatUri.ts +3 -3
  164. package/src/internal/_randomFormatUriReference.ts +3 -3
  165. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  166. package/src/internal/_randomFormatUrl.ts +11 -11
  167. package/src/internal/_randomFormatUuid.ts +6 -6
  168. package/src/internal/_randomInteger.ts +47 -47
  169. package/src/internal/_randomNumber.ts +74 -74
  170. package/src/internal/_randomPattern.ts +10 -10
  171. package/src/internal/_randomPick.ts +9 -9
  172. package/src/internal/_randomString.ts +24 -24
  173. package/src/internal/_throwTypeGuardError.ts +5 -5
  174. package/src/internal/_validateReport.ts +13 -13
  175. package/src/internal/private/__notationCapitalize.ts +2 -2
  176. package/src/internal/private/__notationUnsnake.ts +24 -24
  177. package/src/json.ts +752 -752
  178. package/src/llm.ts +481 -481
  179. package/src/misc.ts +658 -658
  180. package/src/module.ts +937 -937
  181. package/src/notations.ts +827 -827
  182. package/src/programmers/AssertProgrammer.ts +454 -454
  183. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  184. package/src/programmers/FeatureProgrammer.ts +622 -622
  185. package/src/programmers/ImportProgrammer.ts +185 -185
  186. package/src/programmers/IsProgrammer.ts +273 -273
  187. package/src/programmers/RandomProgrammer.ts +1190 -1190
  188. package/src/programmers/TypiaProgrammer.ts +174 -174
  189. package/src/programmers/ValidateProgrammer.ts +439 -439
  190. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  191. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  192. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  193. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  194. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  195. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  196. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  197. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  198. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  199. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  200. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  201. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  202. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  203. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  204. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  205. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  206. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  207. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  208. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  209. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  210. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  211. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  212. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  213. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  214. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  215. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  216. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  217. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  218. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  219. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  220. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  221. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  222. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  223. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  224. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  225. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  226. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  227. package/src/programmers/internal/check_array_length.ts +47 -47
  228. package/src/programmers/internal/check_bigint.ts +50 -50
  229. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  230. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  231. package/src/programmers/internal/check_everything.ts +23 -23
  232. package/src/programmers/internal/check_native.ts +27 -27
  233. package/src/programmers/internal/check_number.ts +112 -112
  234. package/src/programmers/internal/check_object.ts +75 -75
  235. package/src/programmers/internal/check_string.ts +50 -50
  236. package/src/programmers/internal/check_template.ts +48 -48
  237. package/src/programmers/internal/check_union_array_like.ts +335 -335
  238. package/src/programmers/internal/decode_union_object.ts +116 -116
  239. package/src/programmers/internal/feature_object_entries.ts +61 -61
  240. package/src/programmers/internal/json_schema_alias.ts +47 -47
  241. package/src/programmers/internal/json_schema_array.ts +45 -45
  242. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  243. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  244. package/src/programmers/internal/json_schema_constant.ts +26 -26
  245. package/src/programmers/internal/json_schema_description.ts +12 -12
  246. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  247. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  248. package/src/programmers/internal/json_schema_native.ts +33 -33
  249. package/src/programmers/internal/json_schema_number.ts +15 -15
  250. package/src/programmers/internal/json_schema_object.ts +158 -158
  251. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  252. package/src/programmers/internal/json_schema_station.ts +182 -182
  253. package/src/programmers/internal/json_schema_string.ts +15 -15
  254. package/src/programmers/internal/json_schema_template.ts +55 -55
  255. package/src/programmers/internal/json_schema_title.ts +20 -20
  256. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  257. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  258. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  259. package/src/programmers/internal/prune_object_properties.ts +71 -71
  260. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  261. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  262. package/src/programmers/internal/template_to_pattern.ts +23 -23
  263. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  264. package/src/programmers/json/JsonApplicationProgrammer.ts +279 -279
  265. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  266. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  267. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  268. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  269. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  270. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  271. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  272. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  273. package/src/programmers/llm/LlmApplicationOfValidateProgrammer.ts +83 -81
  274. package/src/programmers/llm/LlmApplicationProgrammer.ts +280 -277
  275. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  276. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -90
  277. package/src/programmers/llm/LlmSchemaProgrammer.ts +173 -143
  278. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  279. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  280. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  281. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  282. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  283. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  284. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  285. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  286. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  287. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  288. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  289. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  290. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  291. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  292. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  293. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  294. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  295. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  296. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  297. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  298. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  299. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  300. package/src/protobuf.ts +868 -868
  301. package/src/reflect.ts +57 -57
  302. package/src/schemas/json/IJsonApplication.ts +73 -73
  303. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  304. package/src/schemas/json/__IJsonApplication.ts +63 -63
  305. package/src/schemas/llm/ILlmApplicationOfValidate.ts +55 -55
  306. package/src/schemas/llm/ILlmFunctionOfValidate.ts +39 -39
  307. package/src/schemas/metadata/IMetadata.ts +35 -35
  308. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  309. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  310. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  311. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  312. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  313. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  314. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  315. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  316. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  317. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  318. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  319. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  320. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  321. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  322. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  323. package/src/schemas/metadata/Metadata.ts +669 -669
  324. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  325. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  326. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  327. package/src/schemas/metadata/MetadataArray.ts +49 -49
  328. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  329. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  330. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  331. package/src/schemas/metadata/MetadataMap.ts +48 -48
  332. package/src/schemas/metadata/MetadataNative.ts +44 -44
  333. package/src/schemas/metadata/MetadataObject.ts +48 -48
  334. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  335. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  336. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  337. package/src/schemas/metadata/MetadataSet.ts +45 -45
  338. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  339. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  340. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  341. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  342. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  343. package/src/tags/Example.ts +24 -24
  344. package/src/tags/Examples.ts +16 -16
  345. package/src/tags/Format.ts +50 -50
  346. package/src/tags/JsonSchemaPlugin.ts +8 -8
  347. package/src/tags/Sequence.ts +10 -10
  348. package/src/tags/TagBase.ts +82 -82
  349. package/src/tags/Type.ts +32 -32
  350. package/src/tags/UniqueItems.ts +14 -14
  351. package/src/tags/index.ts +21 -21
  352. package/src/transform.ts +35 -35
  353. package/src/transformers/CallExpressionTransformer.ts +547 -547
  354. package/src/transformers/FileTransformer.ts +136 -136
  355. package/src/transformers/IProgrammerProps.ts +11 -11
  356. package/src/transformers/ITransformOptions.ts +62 -62
  357. package/src/transformers/ITransformProps.ts +9 -9
  358. package/src/transformers/ITypiaContext.ts +18 -18
  359. package/src/transformers/ImportTransformer.ts +81 -81
  360. package/src/transformers/NodeTransformer.ts +17 -17
  361. package/src/transformers/TransformerError.ts +60 -60
  362. package/src/transformers/features/AssertTransformer.ts +24 -24
  363. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  364. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  365. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  366. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  367. package/src/transformers/features/IsTransformer.ts +18 -18
  368. package/src/transformers/features/RandomTransformer.ts +41 -41
  369. package/src/transformers/features/ValidateTransformer.ts +18 -18
  370. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  371. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  372. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  373. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  374. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  375. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  376. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  377. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  378. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  379. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  380. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  381. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  382. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  383. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  384. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  385. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  386. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  387. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  388. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  389. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  390. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  391. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  392. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  393. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  394. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  395. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  396. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  397. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  398. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  399. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  400. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  401. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  402. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  403. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  404. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  405. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  406. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  407. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  408. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  409. package/src/transformers/features/json/JsonSchemasTransformer.ts +143 -143
  410. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  411. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  412. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  413. package/src/transformers/features/llm/LlmApplicationOfValidateTransformer.ts +120 -115
  414. package/src/transformers/features/llm/LlmApplicationTransformer.ts +118 -113
  415. package/src/transformers/features/llm/LlmParametersTransformer.ts +94 -89
  416. package/src/transformers/features/llm/LlmSchemaTransformer.ts +135 -130
  417. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  418. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  419. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  420. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  421. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  422. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  423. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  424. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  425. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  426. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  427. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  428. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  429. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  430. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  431. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  432. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  433. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  434. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  435. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  436. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  437. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  438. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  439. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  440. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  441. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  442. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  443. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  444. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  445. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  446. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  447. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  448. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  449. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  450. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  451. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  452. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  453. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  454. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  455. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  456. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  457. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  458. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  459. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  460. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  461. package/src/transformers/internal/GenericTransformer.ts +101 -101
  462. package/src/utils/MapUtil.ts +14 -14
  463. package/src/utils/NamingConvention.ts +94 -94
  464. package/src/utils/ProtobufNameEncoder.ts +32 -32
  465. package/src/utils/StringUtil.ts +16 -16
@@ -1,82 +1,82 @@
1
- export type TagBase<
2
- Props extends TagBase.IProps<any, any, any, any, any, any>,
3
- > = {
4
- /**
5
- * This is a dummy property for compilation.
6
- *
7
- * It does not mean anything in runtime.
8
- */
9
- "typia.tag"?: Props;
10
- };
11
- export namespace TagBase {
12
- export interface IProps<
13
- Target extends
14
- | "boolean"
15
- | "bigint"
16
- | "number"
17
- | "string"
18
- | "array"
19
- | "object",
20
- Kind extends string,
21
- Value extends boolean | bigint | number | string | undefined,
22
- Validate extends
23
- | string
24
- | {
25
- [key in Target]?: string;
26
- },
27
- Exclusive extends boolean | string[],
28
- Schema extends object | undefined,
29
- > {
30
- /**
31
- * Target type.
32
- *
33
- * If user tries to adapt this tag to a different type, it would be a compile
34
- * error.
35
- *
36
- * For example, you've configured target type as `string`, but user adapted it
37
- * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
38
- * blocked by TypeScript compiler.
39
- */
40
- target: Target;
41
-
42
- /**
43
- * What kind of tag is this?
44
- */
45
- kind: Kind;
46
-
47
- /**
48
- * Value to be configured by user.
49
- */
50
- value: Value;
51
-
52
- /**
53
- * Validation script.
54
- *
55
- * This script would be inserted into the generated validation function.
56
- * In here script, target variable name must be `$input`. The variable name
57
- * `$input` would be transformed to the suitable when compilation.
58
- *
59
- * Also, If you've take a mistake on this script, compile error would be
60
- * occured. So, define it with confidence. Compiler will block all your
61
- * mistakes.
62
- */
63
- validate?: Validate;
64
-
65
- /**
66
- * Exclusive option.
67
- *
68
- * If this property configured as `true`, same {@link kind} tag cannot be
69
- * duplicated in the target type. Otherwise, if you've configured this
70
- * property as string array, all of the {@link kind} value assigned
71
- * tags cannot be compatible in the target type.
72
- *
73
- * @default false
74
- */
75
- exclusive?: Exclusive | string[];
76
-
77
- /**
78
- * Additional schema info assigned to the {@link IJsonSchema} object.
79
- */
80
- schema?: Schema;
81
- }
82
- }
1
+ export type TagBase<
2
+ Props extends TagBase.IProps<any, any, any, any, any, any>,
3
+ > = {
4
+ /**
5
+ * This is a dummy property for compilation.
6
+ *
7
+ * It does not mean anything in runtime.
8
+ */
9
+ "typia.tag"?: Props;
10
+ };
11
+ export namespace TagBase {
12
+ export interface IProps<
13
+ Target extends
14
+ | "boolean"
15
+ | "bigint"
16
+ | "number"
17
+ | "string"
18
+ | "array"
19
+ | "object",
20
+ Kind extends string,
21
+ Value extends boolean | bigint | number | string | undefined,
22
+ Validate extends
23
+ | string
24
+ | {
25
+ [key in Target]?: string;
26
+ },
27
+ Exclusive extends boolean | string[],
28
+ Schema extends object | undefined,
29
+ > {
30
+ /**
31
+ * Target type.
32
+ *
33
+ * If user tries to adapt this tag to a different type, it would be a compile
34
+ * error.
35
+ *
36
+ * For example, you've configured target type as `string`, but user adapted it
37
+ * onto a `number` type (`number & YourCustomTag<Value>`), then it would be
38
+ * blocked by TypeScript compiler.
39
+ */
40
+ target: Target;
41
+
42
+ /**
43
+ * What kind of tag is this?
44
+ */
45
+ kind: Kind;
46
+
47
+ /**
48
+ * Value to be configured by user.
49
+ */
50
+ value: Value;
51
+
52
+ /**
53
+ * Validation script.
54
+ *
55
+ * This script would be inserted into the generated validation function.
56
+ * In here script, target variable name must be `$input`. The variable name
57
+ * `$input` would be transformed to the suitable when compilation.
58
+ *
59
+ * Also, If you've take a mistake on this script, compile error would be
60
+ * occured. So, define it with confidence. Compiler will block all your
61
+ * mistakes.
62
+ */
63
+ validate?: Validate;
64
+
65
+ /**
66
+ * Exclusive option.
67
+ *
68
+ * If this property configured as `true`, same {@link kind} tag cannot be
69
+ * duplicated in the target type. Otherwise, if you've configured this
70
+ * property as string array, all of the {@link kind} value assigned
71
+ * tags cannot be compatible in the target type.
72
+ *
73
+ * @default false
74
+ */
75
+ exclusive?: Exclusive | string[];
76
+
77
+ /**
78
+ * Additional schema info assigned to the {@link IJsonSchema} object.
79
+ */
80
+ schema?: Schema;
81
+ }
82
+ }
package/src/tags/Type.ts CHANGED
@@ -1,32 +1,32 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type Type<
4
- Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double",
5
- > = TagBase<{
6
- target: Value extends "int64" | "uint64" ? "bigint" | "number" : "number";
7
- kind: "type";
8
- value: Value;
9
- validate: Value extends "int32"
10
- ? `$importInternal("isTypeInt32")($input)`
11
- : Value extends "uint32"
12
- ? `$importInternal("isTypeUint32")($input)`
13
- : Value extends "int64"
14
- ? {
15
- number: `$importInternal("isTypeInt64")($input)`;
16
- bigint: `true`;
17
- }
18
- : Value extends "uint64"
19
- ? {
20
- number: `$importInternal("isTypeUint64")($input)`;
21
- bigint: `BigInt(0) <= $input`;
22
- }
23
- : Value extends "float"
24
- ? `$importInternal("isTypeFloat")($input)`
25
- : `true`;
26
- exclusive: true;
27
- schema: {
28
- type: Value extends "int32" | "uint32" | "int64" | "uint64"
29
- ? "integer"
30
- : "number";
31
- };
32
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type Type<
4
+ Value extends "int32" | "uint32" | "int64" | "uint64" | "float" | "double",
5
+ > = TagBase<{
6
+ target: Value extends "int64" | "uint64" ? "bigint" | "number" : "number";
7
+ kind: "type";
8
+ value: Value;
9
+ validate: Value extends "int32"
10
+ ? `$importInternal("isTypeInt32")($input)`
11
+ : Value extends "uint32"
12
+ ? `$importInternal("isTypeUint32")($input)`
13
+ : Value extends "int64"
14
+ ? {
15
+ number: `$importInternal("isTypeInt64")($input)`;
16
+ bigint: `true`;
17
+ }
18
+ : Value extends "uint64"
19
+ ? {
20
+ number: `$importInternal("isTypeUint64")($input)`;
21
+ bigint: `BigInt(0) <= $input`;
22
+ }
23
+ : Value extends "float"
24
+ ? `$importInternal("isTypeFloat")($input)`
25
+ : `true`;
26
+ exclusive: true;
27
+ schema: {
28
+ type: Value extends "int32" | "uint32" | "int64" | "uint64"
29
+ ? "integer"
30
+ : "number";
31
+ };
32
+ }>;
@@ -1,14 +1,14 @@
1
- import { TagBase } from "./TagBase";
2
-
3
- export type UniqueItems<Value extends boolean = true> = TagBase<{
4
- target: "array";
5
- kind: "uniqueItems";
6
- value: Value;
7
- validate: Value extends true
8
- ? `$importInternal("isUniqueItems")($input)`
9
- : undefined;
10
- exclusive: true;
11
- schema: {
12
- uniqueItems: true;
13
- };
14
- }>;
1
+ import { TagBase } from "./TagBase";
2
+
3
+ export type UniqueItems<Value extends boolean = true> = TagBase<{
4
+ target: "array";
5
+ kind: "uniqueItems";
6
+ value: Value;
7
+ validate: Value extends true
8
+ ? `$importInternal("isUniqueItems")($input)`
9
+ : undefined;
10
+ exclusive: true;
11
+ schema: {
12
+ uniqueItems: true;
13
+ };
14
+ }>;
package/src/tags/index.ts CHANGED
@@ -1,21 +1,21 @@
1
- export * from "./Constant";
2
- export * from "./ContentMediaType";
3
- export * from "./Default";
4
- export * from "./Example";
5
- export * from "./Examples";
6
- export * from "./ExclusiveMaximum";
7
- export * from "./ExclusiveMinimum";
8
- export * from "./Format";
9
- export * from "./JsonSchemaPlugin";
10
- export * from "./Maximum";
11
- export * from "./MaxItems";
12
- export * from "./MaxLength";
13
- export * from "./Minimum";
14
- export * from "./MinItems";
15
- export * from "./MinLength";
16
- export * from "./MultipleOf";
17
- export * from "./Pattern";
18
- export * from "./Sequence";
19
- export * from "./TagBase";
20
- export * from "./Type";
21
- export * from "./UniqueItems";
1
+ export * from "./Constant";
2
+ export * from "./ContentMediaType";
3
+ export * from "./Default";
4
+ export * from "./Example";
5
+ export * from "./Examples";
6
+ export * from "./ExclusiveMaximum";
7
+ export * from "./ExclusiveMinimum";
8
+ export * from "./Format";
9
+ export * from "./JsonSchemaPlugin";
10
+ export * from "./Maximum";
11
+ export * from "./MaxItems";
12
+ export * from "./MaxLength";
13
+ export * from "./Minimum";
14
+ export * from "./MinItems";
15
+ export * from "./MinLength";
16
+ export * from "./MultipleOf";
17
+ export * from "./Pattern";
18
+ export * from "./Sequence";
19
+ export * from "./TagBase";
20
+ export * from "./Type";
21
+ export * from "./UniqueItems";
package/src/transform.ts CHANGED
@@ -1,35 +1,35 @@
1
- import ts from "typescript";
2
-
3
- import { FileTransformer } from "./transformers/FileTransformer";
4
- import { ITransformOptions } from "./transformers/ITransformOptions";
5
- import { ITypiaContext } from "./transformers/ITypiaContext";
6
-
7
- export const transform = (
8
- program: ts.Program,
9
- options: ITransformOptions | undefined,
10
- extras: ITypiaContext["extras"],
11
- ): ts.TransformerFactory<ts.SourceFile> => {
12
- const compilerOptions: ts.CompilerOptions = program.getCompilerOptions();
13
- const strict: boolean =
14
- compilerOptions.strictNullChecks !== undefined
15
- ? !!compilerOptions.strictNullChecks
16
- : !!compilerOptions.strict;
17
- if (strict === false)
18
- extras.addDiagnostic({
19
- category: ts.DiagnosticCategory.Error,
20
- code: "(typia)" as any,
21
- file: undefined,
22
- start: undefined,
23
- length: undefined,
24
- messageText: "strict mode is required.",
25
- });
26
- return FileTransformer.transform({
27
- program,
28
- compilerOptions,
29
- checker: program.getTypeChecker(),
30
- printer: ts.createPrinter(),
31
- options: options ?? {},
32
- extras,
33
- });
34
- };
35
- export default transform;
1
+ import ts from "typescript";
2
+
3
+ import { FileTransformer } from "./transformers/FileTransformer";
4
+ import { ITransformOptions } from "./transformers/ITransformOptions";
5
+ import { ITypiaContext } from "./transformers/ITypiaContext";
6
+
7
+ export const transform = (
8
+ program: ts.Program,
9
+ options: ITransformOptions | undefined,
10
+ extras: ITypiaContext["extras"],
11
+ ): ts.TransformerFactory<ts.SourceFile> => {
12
+ const compilerOptions: ts.CompilerOptions = program.getCompilerOptions();
13
+ const strict: boolean =
14
+ compilerOptions.strictNullChecks !== undefined
15
+ ? !!compilerOptions.strictNullChecks
16
+ : !!compilerOptions.strict;
17
+ if (strict === false)
18
+ extras.addDiagnostic({
19
+ category: ts.DiagnosticCategory.Error,
20
+ code: "(typia)" as any,
21
+ file: undefined,
22
+ start: undefined,
23
+ length: undefined,
24
+ messageText: "strict mode is required.",
25
+ });
26
+ return FileTransformer.transform({
27
+ program,
28
+ compilerOptions,
29
+ checker: program.getTypeChecker(),
30
+ printer: ts.createPrinter(),
31
+ options: options ?? {},
32
+ extras,
33
+ });
34
+ };
35
+ export default transform;