typia 7.5.1 → 7.6.0-dev.20241229

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