typia 6.10.2-dev.20240920 → 6.10.2

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 (432) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +118 -118
  3. package/package.json +1 -1
  4. package/src/AssertionGuard.ts +1 -1
  5. package/src/CamelCase.ts +75 -75
  6. package/src/IRandomGenerator.ts +66 -66
  7. package/src/IValidation.ts +21 -21
  8. package/src/PascalCase.ts +71 -71
  9. package/src/Primitive.ts +92 -92
  10. package/src/Resolved.ts +74 -74
  11. package/src/SnakeCase.ts +126 -126
  12. package/src/TypeGuardError.ts +37 -37
  13. package/src/executable/TypiaGenerateWizard.ts +83 -83
  14. package/src/executable/TypiaPatchWizard.ts +42 -42
  15. package/src/executable/TypiaSetupWizard.ts +174 -174
  16. package/src/executable/setup/ArgumentParser.ts +43 -43
  17. package/src/executable/setup/CommandExecutor.ts +8 -8
  18. package/src/executable/setup/FileRetriever.ts +22 -22
  19. package/src/executable/setup/PackageManager.ts +86 -86
  20. package/src/executable/setup/PluginConfigurator.ts +69 -69
  21. package/src/executable/typia.ts +55 -55
  22. package/src/factories/CommentFactory.ts +79 -79
  23. package/src/factories/ExpressionFactory.ts +150 -150
  24. package/src/factories/IdentifierFactory.ts +70 -70
  25. package/src/factories/JsonMetadataFactory.ts +53 -53
  26. package/src/factories/LiteralFactory.ts +47 -47
  27. package/src/factories/MetadataCollection.ts +274 -274
  28. package/src/factories/MetadataCommentTagFactory.ts +534 -534
  29. package/src/factories/MetadataFactory.ts +314 -314
  30. package/src/factories/MetadataTypeTagFactory.ts +336 -336
  31. package/src/factories/MetadataTypeTagSchemaFactory.ts +59 -59
  32. package/src/factories/NumericRangeFactory.ts +72 -72
  33. package/src/factories/ProtobufFactory.ts +267 -267
  34. package/src/factories/StatementFactory.ts +74 -74
  35. package/src/factories/TemplateFactory.ts +56 -56
  36. package/src/factories/TypeFactory.ts +118 -118
  37. package/src/factories/ValueFactory.ts +12 -12
  38. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  39. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  40. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  41. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +42 -42
  42. package/src/factories/internal/metadata/emplace_metadata_object.ts +186 -186
  43. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  44. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  45. package/src/factories/internal/metadata/iterate_metadata.ts +100 -100
  46. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  47. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  48. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  49. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  50. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  51. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +28 -28
  52. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  53. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  54. package/src/factories/internal/metadata/iterate_metadata_function.ts +89 -89
  55. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  56. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  57. package/src/factories/internal/metadata/iterate_metadata_native.ts +220 -220
  58. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  59. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  60. package/src/factories/internal/metadata/iterate_metadata_sort.ts +74 -74
  61. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  62. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  63. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  64. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  65. package/src/functional/$FormDataReader/index.ts +1 -1
  66. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  67. package/src/functional/$HeadersReader/index.ts +1 -1
  68. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  69. package/src/functional/$ParameterReader/index.ts +1 -1
  70. package/src/functional/$ProtobufReader.ts +194 -194
  71. package/src/functional/$ProtobufSizer.ts +144 -144
  72. package/src/functional/$ProtobufWriter.ts +145 -145
  73. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  74. package/src/functional/$QueryReader/index.ts +1 -1
  75. package/src/functional/$any.ts +3 -3
  76. package/src/functional/$clone.ts +48 -48
  77. package/src/functional/$convention.ts +37 -37
  78. package/src/functional/$dictionary.ts +22 -22
  79. package/src/functional/$every.ts +11 -11
  80. package/src/functional/$guard.ts +21 -21
  81. package/src/functional/$is_between.ts +2 -2
  82. package/src/functional/$join.ts +46 -46
  83. package/src/functional/$number.ts +12 -12
  84. package/src/functional/$report.ts +13 -13
  85. package/src/functional/$rest.ts +3 -3
  86. package/src/functional/$stoll.ts +8 -8
  87. package/src/functional/$string.ts +43 -43
  88. package/src/functional/$strlen.ts +7 -7
  89. package/src/functional/$tail.ts +5 -5
  90. package/src/functional/$throws.ts +10 -10
  91. package/src/functional/$varint.ts +130 -130
  92. package/src/functional/$zigzag.ts +39 -39
  93. package/src/functional/IProtobufWriter.ts +18 -18
  94. package/src/functional/Namespace/functional.ts +5 -5
  95. package/src/functional/Namespace/http.ts +9 -9
  96. package/src/functional/Namespace/index.ts +77 -77
  97. package/src/functional/Namespace/json.ts +15 -15
  98. package/src/functional/Namespace/llm.ts +20 -20
  99. package/src/functional/Namespace/misc.ts +14 -14
  100. package/src/functional/Namespace/notations.ts +23 -23
  101. package/src/functional/Namespace/protobuf.ts +20 -20
  102. package/src/functional/is.ts +10 -10
  103. package/src/functional.ts +872 -872
  104. package/src/http.ts +1266 -1266
  105. package/src/index.ts +4 -4
  106. package/src/json.ts +738 -738
  107. package/src/llm.ts +186 -186
  108. package/src/misc.ts +757 -757
  109. package/src/module.ts +1023 -1023
  110. package/src/notations.ts +1020 -1020
  111. package/src/programmers/AssertProgrammer.ts +397 -397
  112. package/src/programmers/CheckerProgrammer.ts +1138 -1138
  113. package/src/programmers/FeatureProgrammer.ts +549 -549
  114. package/src/programmers/IsProgrammer.ts +220 -220
  115. package/src/programmers/RandomProgrammer.ts +955 -955
  116. package/src/programmers/TypiaProgrammer.ts +157 -157
  117. package/src/programmers/ValidateProgrammer.ts +382 -382
  118. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +141 -141
  119. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +108 -108
  120. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +98 -98
  121. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  122. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +101 -101
  123. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +106 -106
  124. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +123 -123
  125. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +267 -267
  126. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +126 -126
  127. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  128. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  129. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  130. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  131. package/src/programmers/helpers/FunctionImporter.ts +97 -97
  132. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  133. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  134. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  135. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  136. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  137. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  138. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  139. package/src/programmers/helpers/PruneJoiner.ts +139 -139
  140. package/src/programmers/helpers/RandomJoiner.ts +145 -145
  141. package/src/programmers/helpers/RandomRanger.ts +171 -171
  142. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  143. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  144. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  145. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  146. package/src/programmers/helpers/disable_function_importer_declare.ts +33 -33
  147. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +91 -91
  148. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +91 -91
  149. package/src/programmers/http/HttpAssertQueryProgrammer.ts +93 -93
  150. package/src/programmers/http/HttpFormDataProgrammer.ts +278 -278
  151. package/src/programmers/http/HttpHeadersProgrammer.ts +347 -347
  152. package/src/programmers/http/HttpIsFormDataProgrammer.ts +102 -102
  153. package/src/programmers/http/HttpIsHeadersProgrammer.ts +102 -102
  154. package/src/programmers/http/HttpIsQueryProgrammer.ts +104 -104
  155. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  156. package/src/programmers/http/HttpQueryProgrammer.ts +298 -298
  157. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +85 -85
  158. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +85 -85
  159. package/src/programmers/http/HttpValidateQueryProgrammer.ts +87 -87
  160. package/src/programmers/internal/application_array.ts +61 -61
  161. package/src/programmers/internal/application_bigint.ts +25 -25
  162. package/src/programmers/internal/application_boolean.ts +25 -25
  163. package/src/programmers/internal/application_description.ts +12 -12
  164. package/src/programmers/internal/application_escaped.ts +74 -74
  165. package/src/programmers/internal/application_number.ts +25 -25
  166. package/src/programmers/internal/application_plugin.ts +19 -19
  167. package/src/programmers/internal/application_string.ts +25 -25
  168. package/src/programmers/internal/application_templates.ts +62 -62
  169. package/src/programmers/internal/application_title.ts +20 -20
  170. package/src/programmers/internal/application_union_discriminator.ts +35 -35
  171. package/src/programmers/internal/application_v30_alias.ts +52 -52
  172. package/src/programmers/internal/application_v30_constant.ts +18 -18
  173. package/src/programmers/internal/application_v30_native.ts +28 -28
  174. package/src/programmers/internal/application_v30_object.ts +149 -149
  175. package/src/programmers/internal/application_v30_schema.ts +161 -161
  176. package/src/programmers/internal/application_v30_tuple.ts +33 -33
  177. package/src/programmers/internal/application_v31_alias.ts +41 -41
  178. package/src/programmers/internal/application_v31_constant.ts +29 -29
  179. package/src/programmers/internal/application_v31_native.ts +24 -24
  180. package/src/programmers/internal/application_v31_object.ts +130 -130
  181. package/src/programmers/internal/application_v31_schema.ts +159 -159
  182. package/src/programmers/internal/application_v31_tuple.ts +21 -21
  183. package/src/programmers/internal/check_array_length.ts +45 -45
  184. package/src/programmers/internal/check_bigint.ts +49 -49
  185. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  186. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  187. package/src/programmers/internal/check_everything.ts +23 -23
  188. package/src/programmers/internal/check_native.ts +21 -21
  189. package/src/programmers/internal/check_number.ts +107 -107
  190. package/src/programmers/internal/check_object.ts +61 -61
  191. package/src/programmers/internal/check_string.ts +48 -48
  192. package/src/programmers/internal/check_template.ts +46 -46
  193. package/src/programmers/internal/check_union_array_like.ts +307 -307
  194. package/src/programmers/internal/decode_union_object.ts +99 -99
  195. package/src/programmers/internal/feature_object_entries.ts +58 -58
  196. package/src/programmers/internal/llm_schema_array.ts +22 -22
  197. package/src/programmers/internal/llm_schema_escaped.ts +61 -61
  198. package/src/programmers/internal/llm_schema_native.ts +17 -17
  199. package/src/programmers/internal/llm_schema_object.ts +129 -129
  200. package/src/programmers/internal/llm_schema_station.ts +185 -185
  201. package/src/programmers/internal/llm_schema_tuple.ts +31 -31
  202. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  203. package/src/programmers/internal/postfix_of_tuple.ts +2 -2
  204. package/src/programmers/internal/prune_object_properties.ts +60 -60
  205. package/src/programmers/internal/random_custom.ts +37 -37
  206. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  207. package/src/programmers/internal/stringify_native.ts +7 -7
  208. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  209. package/src/programmers/internal/template_to_pattern.ts +15 -15
  210. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  211. package/src/programmers/json/JsonApplicationProgrammer.ts +82 -82
  212. package/src/programmers/json/JsonAssertParseProgrammer.ts +96 -96
  213. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +104 -104
  214. package/src/programmers/json/JsonIsParseProgrammer.ts +110 -110
  215. package/src/programmers/json/JsonIsStringifyProgrammer.ts +102 -102
  216. package/src/programmers/json/JsonStringifyProgrammer.ts +909 -909
  217. package/src/programmers/json/JsonValidateParseProgrammer.ts +87 -87
  218. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +111 -111
  219. package/src/programmers/llm/LlmApplicationProgrammer.ts +216 -216
  220. package/src/programmers/llm/LlmSchemaProgrammer.ts +49 -49
  221. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +87 -87
  222. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +105 -105
  223. package/src/programmers/misc/MiscCloneProgrammer.ts +781 -781
  224. package/src/programmers/misc/MiscIsCloneProgrammer.ts +93 -93
  225. package/src/programmers/misc/MiscIsPruneProgrammer.ts +91 -91
  226. package/src/programmers/misc/MiscLiteralsProgrammer.ts +70 -70
  227. package/src/programmers/misc/MiscPruneProgrammer.ts +560 -560
  228. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +104 -104
  229. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +101 -101
  230. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +91 -91
  231. package/src/programmers/notations/NotationGeneralProgrammer.ts +714 -714
  232. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +97 -97
  233. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +110 -110
  234. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +91 -91
  235. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +95 -95
  236. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +646 -646
  237. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +852 -852
  238. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +104 -104
  239. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +93 -93
  240. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  241. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +85 -85
  242. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +109 -109
  243. package/src/protobuf.ts +999 -999
  244. package/src/reflect.ts +63 -63
  245. package/src/schemas/json/IJsonApplication.ts +22 -22
  246. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  247. package/src/schemas/metadata/IMetadata.ts +36 -36
  248. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  249. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  250. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  251. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  252. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  253. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  254. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  255. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  256. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  257. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  258. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  259. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  260. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  261. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  262. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  263. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  264. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  265. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  266. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  267. package/src/schemas/metadata/Metadata.ts +616 -616
  268. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  269. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  270. package/src/schemas/metadata/MetadataArray.ts +49 -49
  271. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  272. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  273. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  274. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  275. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  276. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  277. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  278. package/src/schemas/metadata/MetadataObject.ts +139 -139
  279. package/src/schemas/metadata/MetadataParameter.ts +50 -50
  280. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  281. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  282. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  283. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  284. package/src/tags/Constant.ts +15 -15
  285. package/src/tags/ContentMediaType.ts +10 -10
  286. package/src/tags/Default.ts +22 -22
  287. package/src/tags/ExclusiveMaximum.ts +25 -25
  288. package/src/tags/ExclusiveMinimum.ts +25 -25
  289. package/src/tags/Format.ts +16 -16
  290. package/src/tags/JsonSchemaPlugin.ts +8 -8
  291. package/src/tags/MaxItems.ts +12 -12
  292. package/src/tags/MaxLength.ts +12 -12
  293. package/src/tags/Maximum.ts +19 -19
  294. package/src/tags/MinItems.ts +12 -12
  295. package/src/tags/MinLength.ts +12 -12
  296. package/src/tags/Minimum.ts +19 -19
  297. package/src/tags/MultipleOf.ts +21 -21
  298. package/src/tags/Pattern.ts +31 -31
  299. package/src/tags/TagBase.ts +76 -76
  300. package/src/tags/Type.ts +32 -32
  301. package/src/tags/UniqueItems.ts +14 -14
  302. package/src/tags/index.ts +18 -18
  303. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  304. package/src/transform.ts +35 -35
  305. package/src/transformers/CallExpressionTransformer.ts +508 -508
  306. package/src/transformers/FileTransformer.ts +91 -91
  307. package/src/transformers/IProject.ts +15 -15
  308. package/src/transformers/ITransformOptions.ts +62 -62
  309. package/src/transformers/ImportTransformer.ts +66 -66
  310. package/src/transformers/NodeTransformer.ts +13 -13
  311. package/src/transformers/TransformerError.ts +60 -60
  312. package/src/transformers/features/AssertTransformer.ts +16 -16
  313. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  314. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  315. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  316. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  317. package/src/transformers/features/IsTransformer.ts +10 -10
  318. package/src/transformers/features/RandomTransformer.ts +44 -44
  319. package/src/transformers/features/ValidateTransformer.ts +11 -11
  320. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  321. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  322. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  323. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  324. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  325. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  326. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  327. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  328. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  329. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  330. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  331. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  332. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  333. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  334. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  335. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  336. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  337. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  338. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  339. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  340. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  341. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  342. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  343. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  344. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  345. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  346. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  347. package/src/transformers/features/json/JsonApplicationTransformer.ts +124 -124
  348. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  349. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  350. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  351. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  352. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  353. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  354. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  355. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  356. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  357. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  358. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  359. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  360. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  361. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  362. package/src/transformers/features/llm/LlmApplicationTransformer.ts +83 -83
  363. package/src/transformers/features/llm/LlmSchemaTransformer.ts +53 -53
  364. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  365. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  366. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  367. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  368. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  369. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  370. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  371. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  372. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  373. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  374. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  375. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  376. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  377. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  378. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  379. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  380. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  381. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  382. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  383. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  384. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  385. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  386. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  387. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  388. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  389. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  390. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  391. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  392. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  393. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  394. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  395. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  396. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  397. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  398. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  399. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  400. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  401. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  402. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  403. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  404. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  405. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  406. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  407. package/src/transformers/features/reflect/ReflectNameTransformer.ts +66 -66
  408. package/src/transformers/internal/GenericTransformer.ts +104 -104
  409. package/src/typings/Atomic.ts +13 -13
  410. package/src/typings/ClassProperties.ts +5 -5
  411. package/src/typings/Customizable.ts +5 -5
  412. package/src/typings/Equal.ts +18 -18
  413. package/src/typings/IsTuple.ts +9 -9
  414. package/src/typings/NativeClass.ts +23 -23
  415. package/src/typings/OmitNever.ts +3 -3
  416. package/src/typings/ProtobufAtomic.ts +19 -19
  417. package/src/typings/SpecialFields.ts +3 -3
  418. package/src/typings/ValidationPipe.ts +9 -9
  419. package/src/typings/ValueOf.ts +20 -20
  420. package/src/typings/Writable.ts +11 -11
  421. package/src/utils/ArrayUtil.ts +41 -41
  422. package/src/utils/Escaper.ts +50 -50
  423. package/src/utils/MapUtil.ts +12 -12
  424. package/src/utils/NameEncoder.ts +32 -32
  425. package/src/utils/NamingConvention/NamingConvention.ts +89 -89
  426. package/src/utils/NamingConvention/index.ts +1 -1
  427. package/src/utils/PatternUtil.ts +29 -29
  428. package/src/utils/RandomGenerator/RandomGenerator.ts +119 -119
  429. package/src/utils/RandomGenerator/index.ts +1 -1
  430. package/src/utils/Singleton.ts +16 -16
  431. package/src/utils/StringUtil/StringUtil.ts +7 -7
  432. package/src/utils/StringUtil/index.ts +1 -1
@@ -1,12 +1,12 @@
1
- import { HttpValidateFormDataProgrammer } from "../../../programmers/http/HttpValidateFormDataProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateHttpValidateFormDataTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "http.createValidateFormData",
8
- )(
9
- (project) => (modulo) =>
10
- HttpValidateFormDataProgrammer.write(project)(modulo),
11
- );
12
- }
1
+ import { HttpValidateFormDataProgrammer } from "../../../programmers/http/HttpValidateFormDataProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateHttpValidateFormDataTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "http.createValidateFormData",
8
+ )(
9
+ (project) => (modulo) =>
10
+ HttpValidateFormDataProgrammer.write(project)(modulo),
11
+ );
12
+ }
@@ -1,12 +1,12 @@
1
- import { HttpValidateHeadersProgrammer } from "../../../programmers/http/HttpValidateHeadersProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateHttpValidateHeadersTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "http.createValidateHeaders",
8
- )(
9
- (project) => (modulo) =>
10
- HttpValidateHeadersProgrammer.write(project)(modulo),
11
- );
12
- }
1
+ import { HttpValidateHeadersProgrammer } from "../../../programmers/http/HttpValidateHeadersProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateHttpValidateHeadersTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "http.createValidateHeaders",
8
+ )(
9
+ (project) => (modulo) =>
10
+ HttpValidateHeadersProgrammer.write(project)(modulo),
11
+ );
12
+ }
@@ -1,11 +1,11 @@
1
- import { HttpValidateQueryProgrammer } from "../../../programmers/http/HttpValidateQueryProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace CreateHttpValidateQueryTransformer {
6
- export const transform = GenericTransformer.factory(
7
- "http.createValidateQuery",
8
- )(
9
- (project) => (modulo) => HttpValidateQueryProgrammer.write(project)(modulo),
10
- );
11
- }
1
+ import { HttpValidateQueryProgrammer } from "../../../programmers/http/HttpValidateQueryProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace CreateHttpValidateQueryTransformer {
6
+ export const transform = GenericTransformer.factory(
7
+ "http.createValidateQuery",
8
+ )(
9
+ (project) => (modulo) => HttpValidateQueryProgrammer.write(project)(modulo),
10
+ );
11
+ }
@@ -1,10 +1,10 @@
1
- import { HttpAssertFormDataProgrammer } from "../../../programmers/http/HttpAssertFormDataProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpAssertFormDataTransformer {
6
- export const transform = GenericTransformer.scalar("http.assertFormData")(
7
- (project) => (modulo) =>
8
- HttpAssertFormDataProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { HttpAssertFormDataProgrammer } from "../../../programmers/http/HttpAssertFormDataProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpAssertFormDataTransformer {
6
+ export const transform = GenericTransformer.scalar("http.assertFormData")(
7
+ (project) => (modulo) =>
8
+ HttpAssertFormDataProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,9 +1,9 @@
1
- import { HttpAssertHeadersProgrammer } from "../../../programmers/http/HttpAssertHeadersProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpAssertHeadersTransformer {
6
- export const transform = GenericTransformer.scalar("http.assertHeaders")(
7
- (project) => (modulo) => HttpAssertHeadersProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpAssertHeadersProgrammer } from "../../../programmers/http/HttpAssertHeadersProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpAssertHeadersTransformer {
6
+ export const transform = GenericTransformer.scalar("http.assertHeaders")(
7
+ (project) => (modulo) => HttpAssertHeadersProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpAssertQueryProgrammer } from "../../../programmers/http/HttpAssertQueryProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpAssertQueryTransformer {
6
- export const transform = GenericTransformer.scalar("http.assertQuery")(
7
- (project) => (modulo) => HttpAssertQueryProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpAssertQueryProgrammer } from "../../../programmers/http/HttpAssertQueryProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpAssertQueryTransformer {
6
+ export const transform = GenericTransformer.scalar("http.assertQuery")(
7
+ (project) => (modulo) => HttpAssertQueryProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpFormDataProgrammer } from "../../../programmers/http/HttpFormDataProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpFormDataTransformer {
6
- export const transform = GenericTransformer.scalar("http.formdata")(
7
- (project) => (modulo) => HttpFormDataProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpFormDataProgrammer } from "../../../programmers/http/HttpFormDataProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpFormDataTransformer {
6
+ export const transform = GenericTransformer.scalar("http.formdata")(
7
+ (project) => (modulo) => HttpFormDataProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpHeadersProgrammer } from "../../../programmers/http/HttpHeadersProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpHeadersTransformer {
6
- export const transform = GenericTransformer.scalar("http.headers")(
7
- (project) => (modulo) => HttpHeadersProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpHeadersProgrammer } from "../../../programmers/http/HttpHeadersProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpHeadersTransformer {
6
+ export const transform = GenericTransformer.scalar("http.headers")(
7
+ (project) => (modulo) => HttpHeadersProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpIsFormDataProgrammer } from "../../../programmers/http/HttpIsFormDataProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpIsFormDataTransformer {
6
- export const transform = GenericTransformer.scalar("http.isFormData")(
7
- (project) => (modulo) => HttpIsFormDataProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpIsFormDataProgrammer } from "../../../programmers/http/HttpIsFormDataProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpIsFormDataTransformer {
6
+ export const transform = GenericTransformer.scalar("http.isFormData")(
7
+ (project) => (modulo) => HttpIsFormDataProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpIsHeadersProgrammer } from "../../../programmers/http/HttpIsHeadersProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpIsHeadersTransformer {
6
- export const transform = GenericTransformer.scalar("http.isHeaders")(
7
- (project) => (modulo) => HttpIsHeadersProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpIsHeadersProgrammer } from "../../../programmers/http/HttpIsHeadersProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpIsHeadersTransformer {
6
+ export const transform = GenericTransformer.scalar("http.isHeaders")(
7
+ (project) => (modulo) => HttpIsHeadersProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpIsQueryProgrammer } from "../../../programmers/http/HttpIsQueryProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpIsQueryTransformer {
6
- export const transform = GenericTransformer.scalar("http.isQuery")(
7
- (project) => (modulo) => HttpIsQueryProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpIsQueryProgrammer } from "../../../programmers/http/HttpIsQueryProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpIsQueryTransformer {
6
+ export const transform = GenericTransformer.scalar("http.isQuery")(
7
+ (project) => (modulo) => HttpIsQueryProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpParameterProgrammer } from "../../../programmers/http/HttpParameterProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpParameterTransformer {
6
- export const transform = GenericTransformer.scalar("http.parameter")(
7
- (project) => (modulo) => HttpParameterProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpParameterProgrammer } from "../../../programmers/http/HttpParameterProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpParameterTransformer {
6
+ export const transform = GenericTransformer.scalar("http.parameter")(
7
+ (project) => (modulo) => HttpParameterProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,9 +1,9 @@
1
- import { HttpQueryProgrammer } from "../../../programmers/http/HttpQueryProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpQueryTransformer {
6
- export const transform = GenericTransformer.scalar("http.query")(
7
- (project) => (modulo) => HttpQueryProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpQueryProgrammer } from "../../../programmers/http/HttpQueryProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpQueryTransformer {
6
+ export const transform = GenericTransformer.scalar("http.query")(
7
+ (project) => (modulo) => HttpQueryProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,10 +1,10 @@
1
- import { HttpValidateFormDataProgrammer } from "../../../programmers/http/HttpValidateFormDataProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpValidateFormDataTransformer {
6
- export const transform = GenericTransformer.scalar("http.validateFormData")(
7
- (project) => (modulo) =>
8
- HttpValidateFormDataProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { HttpValidateFormDataProgrammer } from "../../../programmers/http/HttpValidateFormDataProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpValidateFormDataTransformer {
6
+ export const transform = GenericTransformer.scalar("http.validateFormData")(
7
+ (project) => (modulo) =>
8
+ HttpValidateFormDataProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,10 +1,10 @@
1
- import { HttpValidateHeadersProgrammer } from "../../../programmers/http/HttpValidateHeadersProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpValidateHeadersTransformer {
6
- export const transform = GenericTransformer.scalar("http.validateHeaders")(
7
- (project) => (modulo) =>
8
- HttpValidateHeadersProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { HttpValidateHeadersProgrammer } from "../../../programmers/http/HttpValidateHeadersProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpValidateHeadersTransformer {
6
+ export const transform = GenericTransformer.scalar("http.validateHeaders")(
7
+ (project) => (modulo) =>
8
+ HttpValidateHeadersProgrammer.write(project)(modulo),
9
+ );
10
+ }
@@ -1,9 +1,9 @@
1
- import { HttpValidateQueryProgrammer } from "../../../programmers/http/HttpValidateQueryProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace HttpValidateQueryTransformer {
6
- export const transform = GenericTransformer.scalar("http.validateQuery")(
7
- (project) => (modulo) => HttpValidateQueryProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { HttpValidateQueryProgrammer } from "../../../programmers/http/HttpValidateQueryProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace HttpValidateQueryTransformer {
6
+ export const transform = GenericTransformer.scalar("http.validateQuery")(
7
+ (project) => (modulo) => HttpValidateQueryProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,124 +1,124 @@
1
- import ts from "typescript";
2
-
3
- import { LiteralFactory } from "../../../factories/LiteralFactory";
4
- import { MetadataCollection } from "../../../factories/MetadataCollection";
5
- import { MetadataFactory } from "../../../factories/MetadataFactory";
6
-
7
- import { IJsonApplication } from "../../../schemas/json/IJsonApplication";
8
- import { Metadata } from "../../../schemas/metadata/Metadata";
9
-
10
- import { JsonApplicationProgrammer } from "../../../programmers/json/JsonApplicationProgrammer";
11
-
12
- import { ValidationPipe } from "../../../typings/ValidationPipe";
13
-
14
- import { IProject } from "../../IProject";
15
- import { TransformerError } from "../../TransformerError";
16
-
17
- export namespace JsonApplicationTransformer {
18
- export const transform =
19
- (project: IProject) =>
20
- (expression: ts.CallExpression): ts.Expression => {
21
- if (!expression.typeArguments?.length)
22
- throw new TransformerError({
23
- code: "typia.json.application",
24
- message: "no generic argument.",
25
- });
26
-
27
- //----
28
- // GET ARGUMENTS
29
- //----
30
- // VALIDATE TUPLE ARGUMENTS
31
- const top: ts.Node = expression.typeArguments[0]!;
32
- if (!ts.isTupleTypeNode(top)) return expression;
33
- else if (top.elements.some((child) => !ts.isTypeNode(child)))
34
- return expression;
35
-
36
- // GET TYPES
37
- const types: ts.Type[] = top.elements.map((child) =>
38
- project.checker.getTypeFromTypeNode(child as ts.TypeNode),
39
- );
40
- if (types.some((t) => t.isTypeParameter()))
41
- throw new TransformerError({
42
- code: "typia.json.application",
43
- message: "non-specified generic argument(s).",
44
- });
45
-
46
- // ADDITIONAL PARAMETERS
47
- const version: "3.0" | "3.1" = get_parameter<"3.0" | "3.1">({
48
- checker: project.checker,
49
- name: "Version",
50
- is: (str) => str === "3.0" || str === "3.1",
51
- cast: (str) => str as "3.0" | "3.1",
52
- default: () => "3.1",
53
- })(expression.typeArguments[1]);
54
-
55
- //----
56
- // GENERATORS
57
- //----
58
- // METADATA
59
- const collection: MetadataCollection = new MetadataCollection({
60
- replace: MetadataCollection.replace,
61
- });
62
- const results: ValidationPipe<Metadata, MetadataFactory.IError>[] =
63
- types.map((type) =>
64
- MetadataFactory.analyze(
65
- project.checker,
66
- project.context,
67
- )({
68
- escape: true,
69
- constant: true,
70
- absorb: false,
71
- validate: JsonApplicationProgrammer.validate,
72
- })(collection)(type),
73
- );
74
-
75
- // REPORT BUG IF REQUIRED
76
- const metadatas: Metadata[] = [];
77
- const errors: MetadataFactory.IError[] = [];
78
- for (const r of results) {
79
- if (r.success === false) errors.push(...r.errors);
80
- else metadatas.push(r.data);
81
- }
82
- if (errors.length)
83
- throw TransformerError.from("typia.json.application")(errors);
84
-
85
- // APPLICATION
86
- const app: IJsonApplication<any> =
87
- JsonApplicationProgrammer.write(version)(metadatas);
88
- return LiteralFactory.generate(app);
89
- };
90
-
91
- const get_parameter =
92
- <Value>(props: {
93
- checker: ts.TypeChecker;
94
- name: string;
95
- is: (value: string) => boolean;
96
- cast: (value: string) => Value;
97
- default: () => Value;
98
- }) =>
99
- (node: ts.TypeNode | undefined): Value => {
100
- if (!node) return props.default();
101
-
102
- // CHECK LITERAL TYPE
103
- const type: ts.Type = props.checker.getTypeFromTypeNode(node);
104
- if (
105
- !type.isLiteral() &&
106
- (type.getFlags() & ts.TypeFlags.BooleanLiteral) === 0
107
- )
108
- throw new TransformerError({
109
- code: "typia.json.application",
110
- message: `generic argument "${props.name}" must be constant.`,
111
- });
112
-
113
- // GET VALUE AND VALIDATE IT
114
- const value = type.isLiteral()
115
- ? type.value
116
- : props.checker.typeToString(type);
117
- if (typeof value !== "string" || props.is(value) === false)
118
- throw new TransformerError({
119
- code: "typia.json.application",
120
- message: `invalid value on generic argument "${props.name}".`,
121
- });
122
- return props.cast(value);
123
- };
124
- }
1
+ import ts from "typescript";
2
+
3
+ import { LiteralFactory } from "../../../factories/LiteralFactory";
4
+ import { MetadataCollection } from "../../../factories/MetadataCollection";
5
+ import { MetadataFactory } from "../../../factories/MetadataFactory";
6
+
7
+ import { IJsonApplication } from "../../../schemas/json/IJsonApplication";
8
+ import { Metadata } from "../../../schemas/metadata/Metadata";
9
+
10
+ import { JsonApplicationProgrammer } from "../../../programmers/json/JsonApplicationProgrammer";
11
+
12
+ import { ValidationPipe } from "../../../typings/ValidationPipe";
13
+
14
+ import { IProject } from "../../IProject";
15
+ import { TransformerError } from "../../TransformerError";
16
+
17
+ export namespace JsonApplicationTransformer {
18
+ export const transform =
19
+ (project: IProject) =>
20
+ (expression: ts.CallExpression): ts.Expression => {
21
+ if (!expression.typeArguments?.length)
22
+ throw new TransformerError({
23
+ code: "typia.json.application",
24
+ message: "no generic argument.",
25
+ });
26
+
27
+ //----
28
+ // GET ARGUMENTS
29
+ //----
30
+ // VALIDATE TUPLE ARGUMENTS
31
+ const top: ts.Node = expression.typeArguments[0]!;
32
+ if (!ts.isTupleTypeNode(top)) return expression;
33
+ else if (top.elements.some((child) => !ts.isTypeNode(child)))
34
+ return expression;
35
+
36
+ // GET TYPES
37
+ const types: ts.Type[] = top.elements.map((child) =>
38
+ project.checker.getTypeFromTypeNode(child as ts.TypeNode),
39
+ );
40
+ if (types.some((t) => t.isTypeParameter()))
41
+ throw new TransformerError({
42
+ code: "typia.json.application",
43
+ message: "non-specified generic argument(s).",
44
+ });
45
+
46
+ // ADDITIONAL PARAMETERS
47
+ const version: "3.0" | "3.1" = get_parameter<"3.0" | "3.1">({
48
+ checker: project.checker,
49
+ name: "Version",
50
+ is: (str) => str === "3.0" || str === "3.1",
51
+ cast: (str) => str as "3.0" | "3.1",
52
+ default: () => "3.1",
53
+ })(expression.typeArguments[1]);
54
+
55
+ //----
56
+ // GENERATORS
57
+ //----
58
+ // METADATA
59
+ const collection: MetadataCollection = new MetadataCollection({
60
+ replace: MetadataCollection.replace,
61
+ });
62
+ const results: ValidationPipe<Metadata, MetadataFactory.IError>[] =
63
+ types.map((type) =>
64
+ MetadataFactory.analyze(
65
+ project.checker,
66
+ project.context,
67
+ )({
68
+ escape: true,
69
+ constant: true,
70
+ absorb: false,
71
+ validate: JsonApplicationProgrammer.validate,
72
+ })(collection)(type),
73
+ );
74
+
75
+ // REPORT BUG IF REQUIRED
76
+ const metadatas: Metadata[] = [];
77
+ const errors: MetadataFactory.IError[] = [];
78
+ for (const r of results) {
79
+ if (r.success === false) errors.push(...r.errors);
80
+ else metadatas.push(r.data);
81
+ }
82
+ if (errors.length)
83
+ throw TransformerError.from("typia.json.application")(errors);
84
+
85
+ // APPLICATION
86
+ const app: IJsonApplication<any> =
87
+ JsonApplicationProgrammer.write(version)(metadatas);
88
+ return LiteralFactory.generate(app);
89
+ };
90
+
91
+ const get_parameter =
92
+ <Value>(props: {
93
+ checker: ts.TypeChecker;
94
+ name: string;
95
+ is: (value: string) => boolean;
96
+ cast: (value: string) => Value;
97
+ default: () => Value;
98
+ }) =>
99
+ (node: ts.TypeNode | undefined): Value => {
100
+ if (!node) return props.default();
101
+
102
+ // CHECK LITERAL TYPE
103
+ const type: ts.Type = props.checker.getTypeFromTypeNode(node);
104
+ if (
105
+ !type.isLiteral() &&
106
+ (type.getFlags() & ts.TypeFlags.BooleanLiteral) === 0
107
+ )
108
+ throw new TransformerError({
109
+ code: "typia.json.application",
110
+ message: `generic argument "${props.name}" must be constant.`,
111
+ });
112
+
113
+ // GET VALUE AND VALIDATE IT
114
+ const value = type.isLiteral()
115
+ ? type.value
116
+ : props.checker.typeToString(type);
117
+ if (typeof value !== "string" || props.is(value) === false)
118
+ throw new TransformerError({
119
+ code: "typia.json.application",
120
+ message: `invalid value on generic argument "${props.name}".`,
121
+ });
122
+ return props.cast(value);
123
+ };
124
+ }
@@ -1,9 +1,9 @@
1
- import { JsonAssertParseProgrammer } from "../../../programmers/json/JsonAssertParseProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace JsonAssertParseTransformer {
6
- export const transform = GenericTransformer.scalar("json.assertParse")(
7
- (project) => (modulo) => JsonAssertParseProgrammer.write(project)(modulo),
8
- );
9
- }
1
+ import { JsonAssertParseProgrammer } from "../../../programmers/json/JsonAssertParseProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace JsonAssertParseTransformer {
6
+ export const transform = GenericTransformer.scalar("json.assertParse")(
7
+ (project) => (modulo) => JsonAssertParseProgrammer.write(project)(modulo),
8
+ );
9
+ }
@@ -1,10 +1,10 @@
1
- import { JsonAssertStringifyProgrammer } from "../../../programmers/json/JsonAssertStringifyProgrammer";
2
-
3
- import { GenericTransformer } from "../../internal/GenericTransformer";
4
-
5
- export namespace JsonAssertStringifyTransformer {
6
- export const transform = GenericTransformer.scalar("json.assertStringify")(
7
- (project) => (modulo) =>
8
- JsonAssertStringifyProgrammer.write(project)(modulo),
9
- );
10
- }
1
+ import { JsonAssertStringifyProgrammer } from "../../../programmers/json/JsonAssertStringifyProgrammer";
2
+
3
+ import { GenericTransformer } from "../../internal/GenericTransformer";
4
+
5
+ export namespace JsonAssertStringifyTransformer {
6
+ export const transform = GenericTransformer.scalar("json.assertStringify")(
7
+ (project) => (modulo) =>
8
+ JsonAssertStringifyProgrammer.write(project)(modulo),
9
+ );
10
+ }