typia 7.4.0 → 7.4.1-dev.20241216

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