typia 7.1.0 → 7.2.1-dev.20241212

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