typia 7.0.1 → 7.0.2-dev.20241205

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