typia 6.10.3 → 6.10.4-dev.20240925

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