typia 5.5.5 → 5.5.6-dev.20240319

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  2. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  3. package/lib/factories/TypeFactory.js.map +1 -1
  4. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  5. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  6. package/lib/functional/$FormDataReader/$FormDataReader.js.map +1 -1
  7. package/lib/functional/$HeadersReader/$HeadersReader.js.map +1 -1
  8. package/lib/functional/$ParameterReader/$ParameterReader.js.map +1 -1
  9. package/lib/functional/$ProtobufSizer.js.map +1 -1
  10. package/lib/functional/$QueryReader/$QueryReader.js.map +1 -1
  11. package/lib/programmers/AssertProgrammer.js +3 -1
  12. package/lib/programmers/AssertProgrammer.js.map +1 -1
  13. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  14. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  15. package/lib/programmers/IsProgrammer.js.map +1 -1
  16. package/lib/programmers/RandomProgrammer.js.map +1 -1
  17. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  18. package/lib/programmers/ValidateProgrammer.js +3 -1
  19. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  20. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  21. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  22. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  23. package/lib/programmers/internal/application_constant.js.map +1 -1
  24. package/lib/programmers/internal/application_escaped.js.map +1 -1
  25. package/lib/programmers/internal/application_object.js.map +1 -1
  26. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  27. package/lib/programmers/internal/check_number.js +2 -1
  28. package/lib/programmers/internal/check_number.js.map +1 -1
  29. package/lib/programmers/internal/check_object.js.map +1 -1
  30. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  31. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  32. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  33. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  34. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +6 -2
  35. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  36. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  37. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  38. package/lib/transformers/CallExpressionTransformer.js +1 -1
  39. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  40. package/lib/transformers/ImportTransformer.js +1 -1
  41. package/lib/transformers/ImportTransformer.js.map +1 -1
  42. package/lib/transformers/features/AssertTransformer.js.map +1 -1
  43. package/lib/transformers/features/CreateAssertTransformer.js.map +1 -1
  44. package/package.json +2 -1
  45. package/src/AssertionGuard.ts +1 -1
  46. package/src/CamelCase.ts +121 -118
  47. package/src/IRandomGenerator.ts +62 -62
  48. package/src/IValidation.ts +21 -21
  49. package/src/PascalCase.ts +121 -118
  50. package/src/Primitive.ts +136 -135
  51. package/src/Resolved.ts +119 -118
  52. package/src/SnakeCase.ts +161 -158
  53. package/src/TypeGuardError.ts +36 -36
  54. package/src/executable/TypiaGenerateWizard.ts +83 -83
  55. package/src/executable/TypiaPatchWizard.ts +42 -42
  56. package/src/executable/TypiaSetupWizard.ts +151 -151
  57. package/src/executable/setup/ArgumentParser.ts +43 -43
  58. package/src/executable/setup/CommandExecutor.ts +8 -8
  59. package/src/executable/setup/FileRetriever.ts +22 -22
  60. package/src/executable/setup/PackageManager.ts +71 -71
  61. package/src/executable/setup/PluginConfigurator.ts +69 -69
  62. package/src/executable/typia.ts +55 -55
  63. package/src/factories/CommentFactory.ts +79 -79
  64. package/src/factories/ExpressionFactory.ts +150 -150
  65. package/src/factories/IdentifierFactory.ts +70 -70
  66. package/src/factories/JsonMetadataFactory.ts +53 -53
  67. package/src/factories/LiteralFactory.ts +47 -47
  68. package/src/factories/MetadataCollection.ts +260 -260
  69. package/src/factories/MetadataCommentTagFactory.ts +461 -461
  70. package/src/factories/MetadataFactory.ts +267 -267
  71. package/src/factories/MetadataTypeTagFactory.ts +313 -313
  72. package/src/factories/NumericRangeFactory.ts +72 -72
  73. package/src/factories/ProtobufFactory.ts +267 -267
  74. package/src/factories/StatementFactory.ts +72 -72
  75. package/src/factories/TemplateFactory.ts +56 -56
  76. package/src/factories/TypeFactory.ts +118 -118
  77. package/src/factories/ValueFactory.ts +12 -12
  78. package/src/factories/internal/metadata/MetadataHelper.ts +15 -15
  79. package/src/factories/internal/metadata/emend_metadata_atomics.ts +46 -46
  80. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  81. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +38 -38
  82. package/src/factories/internal/metadata/emplace_metadata_object.ts +176 -176
  83. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  84. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  85. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  86. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  87. package/src/factories/internal/metadata/iterate_metadata_array.ts +70 -70
  88. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  89. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  90. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  91. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  92. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  93. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  94. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +230 -230
  95. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  96. package/src/factories/internal/metadata/iterate_metadata_native.ts +209 -209
  97. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  98. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  99. package/src/factories/internal/metadata/iterate_metadata_sort.ts +72 -72
  100. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  101. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  102. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  103. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  104. package/src/functional/$FormDataReader/index.ts +1 -1
  105. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  106. package/src/functional/$HeadersReader/index.ts +1 -1
  107. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  108. package/src/functional/$ParameterReader/index.ts +1 -1
  109. package/src/functional/$ProtobufReader.ts +195 -195
  110. package/src/functional/$ProtobufSizer.ts +147 -147
  111. package/src/functional/$ProtobufWriter.ts +150 -150
  112. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  113. package/src/functional/$QueryReader/index.ts +1 -1
  114. package/src/functional/$any.ts +4 -4
  115. package/src/functional/$clone.ts +4 -4
  116. package/src/functional/$convention.ts +37 -37
  117. package/src/functional/$dictionary.ts +22 -22
  118. package/src/functional/$every.ts +11 -11
  119. package/src/functional/$guard.ts +21 -21
  120. package/src/functional/$is_between.ts +2 -2
  121. package/src/functional/$join.ts +46 -46
  122. package/src/functional/$number.ts +12 -12
  123. package/src/functional/$report.ts +13 -13
  124. package/src/functional/$rest.ts +3 -3
  125. package/src/functional/$stoll.ts +8 -8
  126. package/src/functional/$string.ts +43 -43
  127. package/src/functional/$strlen.ts +7 -7
  128. package/src/functional/$tail.ts +5 -5
  129. package/src/functional/$throws.ts +10 -10
  130. package/src/functional/$varint.ts +130 -130
  131. package/src/functional/$zigzag.ts +39 -39
  132. package/src/functional/IProtobufWriter.ts +18 -18
  133. package/src/functional/Namespace/functional.ts +5 -5
  134. package/src/functional/Namespace/http.ts +9 -9
  135. package/src/functional/Namespace/index.ts +76 -76
  136. package/src/functional/Namespace/json.ts +15 -15
  137. package/src/functional/Namespace/misc.ts +14 -14
  138. package/src/functional/Namespace/notations.ts +23 -23
  139. package/src/functional/Namespace/protobuf.ts +20 -20
  140. package/src/functional/is.ts +10 -10
  141. package/src/functional.ts +872 -872
  142. package/src/http.ts +1266 -1266
  143. package/src/index.ts +4 -4
  144. package/src/json.ts +754 -754
  145. package/src/misc.ts +757 -757
  146. package/src/module.ts +1024 -1024
  147. package/src/notations.ts +1020 -1020
  148. package/src/programmers/AssertProgrammer.ts +337 -335
  149. package/src/programmers/CheckerProgrammer.ts +1079 -1079
  150. package/src/programmers/FeatureProgrammer.ts +460 -460
  151. package/src/programmers/IsProgrammer.ts +235 -232
  152. package/src/programmers/RandomProgrammer.ts +888 -888
  153. package/src/programmers/TypiaProgrammer.ts +157 -157
  154. package/src/programmers/ValidateProgrammer.ts +309 -307
  155. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +130 -130
  156. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +81 -81
  157. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +77 -77
  158. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +61 -61
  159. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +73 -73
  160. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +84 -84
  161. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +113 -113
  162. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +203 -203
  163. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +107 -107
  164. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +32 -32
  165. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  166. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  167. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  168. package/src/programmers/helpers/FunctionImporter.ts +87 -87
  169. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  170. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  171. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  172. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  173. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  174. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  175. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  176. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  177. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  178. package/src/programmers/helpers/RandomRanger.ts +171 -171
  179. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  180. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  181. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  182. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  183. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  184. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +87 -87
  185. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +89 -89
  186. package/src/programmers/http/HttpAssertQueryProgrammer.ts +87 -87
  187. package/src/programmers/http/HttpFormDataProgrammer.ts +256 -255
  188. package/src/programmers/http/HttpHeadersProgrammer.ts +323 -322
  189. package/src/programmers/http/HttpIsFormDataProgrammer.ts +90 -90
  190. package/src/programmers/http/HttpIsHeadersProgrammer.ts +92 -92
  191. package/src/programmers/http/HttpIsQueryProgrammer.ts +90 -90
  192. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  193. package/src/programmers/http/HttpQueryProgrammer.ts +261 -260
  194. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +75 -75
  195. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  196. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  197. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  198. package/src/programmers/internal/application_alias.ts +74 -74
  199. package/src/programmers/internal/application_array.ts +59 -59
  200. package/src/programmers/internal/application_boolean.ts +35 -35
  201. package/src/programmers/internal/application_constant.ts +25 -25
  202. package/src/programmers/internal/application_default.ts +17 -17
  203. package/src/programmers/internal/application_default_string.ts +33 -33
  204. package/src/programmers/internal/application_escaped.ts +52 -52
  205. package/src/programmers/internal/application_native.ts +40 -40
  206. package/src/programmers/internal/application_number.ts +97 -97
  207. package/src/programmers/internal/application_object.ts +198 -198
  208. package/src/programmers/internal/application_schema.ts +165 -165
  209. package/src/programmers/internal/application_string.ts +61 -61
  210. package/src/programmers/internal/application_templates.ts +24 -24
  211. package/src/programmers/internal/application_tuple.ts +54 -54
  212. package/src/programmers/internal/check_array_length.ts +45 -45
  213. package/src/programmers/internal/check_bigint.ts +49 -49
  214. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  215. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  216. package/src/programmers/internal/check_everything.ts +23 -23
  217. package/src/programmers/internal/check_native.ts +21 -21
  218. package/src/programmers/internal/check_number.ts +107 -106
  219. package/src/programmers/internal/check_object.ts +61 -60
  220. package/src/programmers/internal/check_string.ts +48 -48
  221. package/src/programmers/internal/check_template.ts +61 -61
  222. package/src/programmers/internal/check_union_array_like.ts +307 -307
  223. package/src/programmers/internal/decode_union_object.ts +99 -99
  224. package/src/programmers/internal/feature_object_entries.ts +58 -58
  225. package/src/programmers/internal/metadata_to_pattern.ts +33 -33
  226. package/src/programmers/internal/prune_object_properties.ts +60 -60
  227. package/src/programmers/internal/random_custom.ts +37 -37
  228. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  229. package/src/programmers/internal/stringify_native.ts +7 -7
  230. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  231. package/src/programmers/internal/template_to_pattern.ts +15 -15
  232. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  233. package/src/programmers/json/JsonApplicationProgrammer.ts +76 -76
  234. package/src/programmers/json/JsonAssertParseProgrammer.ts +81 -81
  235. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +67 -67
  236. package/src/programmers/json/JsonIsParseProgrammer.ts +81 -81
  237. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  238. package/src/programmers/json/JsonStringifyProgrammer.ts +900 -896
  239. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  240. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  241. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +77 -77
  242. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +66 -66
  243. package/src/programmers/misc/MiscCloneProgrammer.ts +721 -721
  244. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  245. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  246. package/src/programmers/misc/MiscLiteralsProgrammer.ts +72 -72
  247. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  248. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  249. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  250. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +70 -70
  251. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  252. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  253. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  254. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +87 -87
  255. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +67 -67
  256. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +619 -615
  257. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +819 -819
  258. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +90 -90
  259. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  260. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  261. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  262. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  263. package/src/protobuf.ts +999 -999
  264. package/src/reflect.ts +57 -57
  265. package/src/schemas/json/IJsonApplication.ts +9 -9
  266. package/src/schemas/json/IJsonComponents.ts +19 -19
  267. package/src/schemas/json/IJsonSchema.ts +147 -147
  268. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  269. package/src/schemas/metadata/IMetadata.ts +34 -34
  270. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  271. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  272. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  273. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  274. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  275. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  276. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  277. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  278. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  279. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  280. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  281. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  282. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  283. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  284. package/src/schemas/metadata/IMetadataTypeTag.ts +15 -15
  285. package/src/schemas/metadata/Metadata.ts +631 -631
  286. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  287. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  288. package/src/schemas/metadata/MetadataArray.ts +49 -49
  289. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  290. package/src/schemas/metadata/MetadataAtomic.ts +84 -84
  291. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  292. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  293. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  294. package/src/schemas/metadata/MetadataObject.ts +154 -154
  295. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  296. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  297. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  298. package/src/tags/Default.ts +15 -15
  299. package/src/tags/ExclusiveMaximum.ts +13 -13
  300. package/src/tags/ExclusiveMinimum.ts +13 -13
  301. package/src/tags/Format.ts +13 -13
  302. package/src/tags/MaxItems.ts +9 -9
  303. package/src/tags/MaxLength.ts +9 -9
  304. package/src/tags/Maximum.ts +13 -13
  305. package/src/tags/MinItems.ts +9 -9
  306. package/src/tags/MinLength.ts +9 -9
  307. package/src/tags/Minimum.ts +13 -13
  308. package/src/tags/MultipleOf.ts +15 -15
  309. package/src/tags/Pattern.ts +9 -9
  310. package/src/tags/TagBase.ts +68 -68
  311. package/src/tags/Type.ts +27 -27
  312. package/src/tags/index.ts +14 -14
  313. package/src/tags/internal/FormatCheatSheet.ts +71 -71
  314. package/src/transform.ts +35 -35
  315. package/src/transformers/CallExpressionTransformer.ts +496 -496
  316. package/src/transformers/FileTransformer.ts +91 -91
  317. package/src/transformers/IProject.ts +15 -15
  318. package/src/transformers/ITransformOptions.ts +62 -62
  319. package/src/transformers/ImportTransformer.ts +66 -66
  320. package/src/transformers/NodeTransformer.ts +13 -13
  321. package/src/transformers/TransformerError.ts +55 -55
  322. package/src/transformers/features/AssertTransformer.ts +16 -16
  323. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  324. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  325. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  326. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  327. package/src/transformers/features/IsTransformer.ts +10 -10
  328. package/src/transformers/features/RandomTransformer.ts +44 -44
  329. package/src/transformers/features/ValidateTransformer.ts +11 -11
  330. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +55 -55
  331. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  332. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  333. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  334. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  335. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  336. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  337. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  338. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  339. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  340. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  341. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  342. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  343. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  344. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  345. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  346. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  347. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  348. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  349. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  350. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  351. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  352. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  353. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  354. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  355. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  356. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  357. package/src/transformers/features/json/JsonApplicationTransformer.ts +133 -133
  358. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  359. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  360. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  361. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  362. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  363. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  364. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  365. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  366. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  367. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  368. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  369. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  370. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  371. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  372. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  373. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  374. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  375. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  376. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  377. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  378. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  379. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  380. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  381. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  382. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  383. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  384. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  385. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  386. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  387. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  388. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  389. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  390. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  391. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  392. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  393. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  394. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  395. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  396. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  397. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  398. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  399. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  400. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  401. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  402. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  403. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  404. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  405. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  406. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  407. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  408. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  409. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  410. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  411. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  412. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  413. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  414. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  415. package/src/transformers/internal/GenericTransformer.ts +104 -104
  416. package/src/typings/Atomic.ts +13 -13
  417. package/src/typings/ClassProperties.ts +5 -5
  418. package/src/typings/Customizable.ts +5 -5
  419. package/src/typings/OmitNever.ts +3 -3
  420. package/src/typings/ProtobufAtomic.ts +19 -19
  421. package/src/typings/SpecialFields.ts +3 -3
  422. package/src/typings/ValidationPipe.ts +9 -9
  423. package/src/typings/Writable.ts +11 -11
  424. package/src/typings/path.d.ts +6 -0
  425. package/src/utils/ArrayUtil.ts +43 -43
  426. package/src/utils/Escaper.ts +46 -46
  427. package/src/utils/MapUtil.ts +12 -12
  428. package/src/utils/NameEncoder.ts +32 -32
  429. package/src/utils/NamingConvention/NamingConvention.ts +86 -86
  430. package/src/utils/NamingConvention/index.ts +1 -1
  431. package/src/utils/PatternUtil.ts +29 -29
  432. package/src/utils/RandomGenerator/RandomGenerator.ts +105 -105
  433. package/src/utils/RandomGenerator/index.ts +1 -1
  434. package/src/utils/Singleton.ts +16 -16
  435. package/src/utils/StringUtil/StringUtil.ts +7 -7
  436. package/src/utils/StringUtil/index.ts +1 -1
@@ -1,46 +1,46 @@
1
- export namespace Escaper {
2
- export const variable = (str: string): boolean =>
3
- reserved(str) === false && /^[a-zA-Z_$][a-zA-Z_$0-9]*$/g.test(str);
4
-
5
- export const reserved = (str: string): boolean => RESERVED.has(str);
6
- }
7
-
8
- const RESERVED: Set<string> = new Set([
9
- "break",
10
- "case",
11
- "catch",
12
- "class",
13
- "const",
14
- "continue",
15
- "debugger",
16
- "default",
17
- "delete",
18
- "do",
19
- "else",
20
- "enum",
21
- "export",
22
- "extends",
23
- "false",
24
- "finally",
25
- "for",
26
- "function",
27
- "if",
28
- "import",
29
- "in",
30
- "instanceof",
31
- "new",
32
- "null",
33
- "package",
34
- "return",
35
- "super",
36
- "switch",
37
- "this",
38
- "throw",
39
- "true",
40
- "try",
41
- "typeof",
42
- "var",
43
- "void",
44
- "while",
45
- "with",
46
- ]);
1
+ export namespace Escaper {
2
+ export const variable = (str: string): boolean =>
3
+ reserved(str) === false && /^[a-zA-Z_$][a-zA-Z_$0-9]*$/g.test(str);
4
+
5
+ export const reserved = (str: string): boolean => RESERVED.has(str);
6
+ }
7
+
8
+ const RESERVED: Set<string> = new Set([
9
+ "break",
10
+ "case",
11
+ "catch",
12
+ "class",
13
+ "const",
14
+ "continue",
15
+ "debugger",
16
+ "default",
17
+ "delete",
18
+ "do",
19
+ "else",
20
+ "enum",
21
+ "export",
22
+ "extends",
23
+ "false",
24
+ "finally",
25
+ "for",
26
+ "function",
27
+ "if",
28
+ "import",
29
+ "in",
30
+ "instanceof",
31
+ "new",
32
+ "null",
33
+ "package",
34
+ "return",
35
+ "super",
36
+ "switch",
37
+ "this",
38
+ "throw",
39
+ "true",
40
+ "try",
41
+ "typeof",
42
+ "var",
43
+ "void",
44
+ "while",
45
+ "with",
46
+ ]);
@@ -1,12 +1,12 @@
1
- export namespace MapUtil {
2
- export const take =
3
- <Key, T>(dict: Map<Key, T>) =>
4
- (key: Key, generator: () => T): T => {
5
- const oldbie: T | undefined = dict.get(key);
6
- if (oldbie) return oldbie;
7
-
8
- const value: T = generator();
9
- dict.set(key, value);
10
- return value;
11
- };
12
- }
1
+ export namespace MapUtil {
2
+ export const take =
3
+ <Key, T>(dict: Map<Key, T>) =>
4
+ (key: Key, generator: () => T): T => {
5
+ const oldbie: T | undefined = dict.get(key);
6
+ if (oldbie) return oldbie;
7
+
8
+ const value: T = generator();
9
+ dict.set(key, value);
10
+ return value;
11
+ };
12
+ }
@@ -1,32 +1,32 @@
1
- export namespace NameEncoder {
2
- export function encode(str: string): string {
3
- for (const [before, after] of REPLACERS)
4
- str = str.split(before).join(after);
5
- return str;
6
- }
7
-
8
- export function decode(str: string): string {
9
- for (const [before, after] of REPLACERS)
10
- if (after !== "") str = str.split(after).join(before);
11
- return str;
12
- }
13
- }
14
-
15
- const REPLACERS: [string, string][] = [
16
- ["$", "_dollar_"],
17
- ["&", "_and_"],
18
- ["|", "_or_"],
19
- ["{", "_blt_"],
20
- ["}", "_bgt_"],
21
- ["<", "_lt_"],
22
- [">", "_gt_"],
23
- ["(", "_lp_"],
24
- [")", "_rp_"],
25
- ["[", "_alt_"],
26
- ["]", "_agt_"],
27
- [",", "_comma_"],
28
- ["`", "_backquote_"],
29
- ["'", "_singlequote_"],
30
- ['"', "_doublequote_"],
31
- [" ", "_space_"],
32
- ];
1
+ export namespace NameEncoder {
2
+ export function encode(str: string): string {
3
+ for (const [before, after] of REPLACERS)
4
+ str = str.split(before).join(after);
5
+ return str;
6
+ }
7
+
8
+ export function decode(str: string): string {
9
+ for (const [before, after] of REPLACERS)
10
+ if (after !== "") str = str.split(after).join(before);
11
+ return str;
12
+ }
13
+ }
14
+
15
+ const REPLACERS: [string, string][] = [
16
+ ["$", "_dollar_"],
17
+ ["&", "_and_"],
18
+ ["|", "_or_"],
19
+ ["{", "_blt_"],
20
+ ["}", "_bgt_"],
21
+ ["<", "_lt_"],
22
+ [">", "_gt_"],
23
+ ["(", "_lp_"],
24
+ [")", "_rp_"],
25
+ ["[", "_alt_"],
26
+ ["]", "_agt_"],
27
+ [",", "_comma_"],
28
+ ["`", "_backquote_"],
29
+ ["'", "_singlequote_"],
30
+ ['"', "_doublequote_"],
31
+ [" ", "_space_"],
32
+ ];
@@ -1,86 +1,86 @@
1
- import { StringUtil } from "../StringUtil";
2
-
3
- export function snake(str: string): string {
4
- const indexes: number[] = [];
5
- for (let i: number = 0; i < str.length; i++) {
6
- const code: number = str.charCodeAt(i);
7
- if (65 <= code && code <= 90) indexes.push(i);
8
- }
9
- for (let i: number = indexes.length - 1; i > 0; --i) {
10
- const now: number = indexes[i]!;
11
- const prev: number = indexes[i - 1]!;
12
- if (now - prev === 1) indexes.splice(i, 1);
13
- }
14
- if (indexes.length !== 0 && indexes[0] === 0) indexes.splice(0, 1);
15
- if (indexes.length === 0) return str.toLowerCase();
16
-
17
- let ret: string = "";
18
- for (let i: number = 0; i < indexes.length; i++) {
19
- const first: number = i === 0 ? 0 : indexes[i - 1]!;
20
- const last: number = indexes[i]!;
21
-
22
- ret += str.substring(first, last).toLowerCase();
23
- ret += "_";
24
- }
25
- ret += str.substring(indexes[indexes.length - 1]!).toLowerCase();
26
- return ret;
27
- }
28
-
29
- export function camel(str: string): string {
30
- return unsnake((str: string) => {
31
- if (str.length === 0) return str;
32
- else if (str[0] === str[0]!.toUpperCase())
33
- return str[0]!.toLowerCase() + str.substring(1);
34
- else return str;
35
- })(str);
36
- }
37
-
38
- export function pascal(str: string): string {
39
- return unsnake((str: string) => {
40
- if (str.length === 0) return str;
41
- else if (str[0] === str[0]!.toLowerCase())
42
- return str[0]!.toUpperCase() + str.substring(1);
43
- else return str;
44
- })(str);
45
- }
46
-
47
- const unsnake =
48
- (escaper: (str: string) => string) =>
49
- (str: string): string => {
50
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
51
- let prefix: string = "";
52
- for (let i: number = 0; i < str.length; i++) {
53
- if (str[i] === "_") prefix += "_";
54
- else break;
55
- }
56
- if (prefix.length !== 0) str = str.substring(prefix.length);
57
-
58
- const indexes: [number, number][] = [];
59
- for (let i: number = 0; i < str.length; i++) {
60
- const ch: string = str[i]!;
61
- if (ch !== "_") continue;
62
-
63
- const last = indexes[indexes.length - 1];
64
- if (last === undefined || last[0] + last[1] !== i) indexes.push([i, 1]);
65
- else ++last[1];
66
- }
67
- if (indexes.length === 0) return prefix + escaper(str);
68
-
69
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
70
- let ret: string = "";
71
- for (let i: number = 0; i < indexes.length; i++) {
72
- const [first] = indexes[i]!;
73
- if (i === 0)
74
- if (first === 0) ret += "_";
75
- else ret += str.substring(0, first);
76
- else {
77
- const [prevFirst, prevLength] = indexes[i - 1]!;
78
- const piece: string = str.substring(prevFirst + prevLength, first);
79
- if (piece.length) ret += StringUtil.capitalize(piece);
80
- }
81
- }
82
- const last = indexes[indexes.length - 1]!;
83
- const piece: string = str.substring(last[0] + last[1]);
84
- if (last.length) ret += StringUtil.capitalize(piece);
85
- return prefix + escaper(ret);
86
- };
1
+ import { StringUtil } from "../StringUtil";
2
+
3
+ export function snake(str: string): string {
4
+ const indexes: number[] = [];
5
+ for (let i: number = 0; i < str.length; i++) {
6
+ const code: number = str.charCodeAt(i);
7
+ if (65 <= code && code <= 90) indexes.push(i);
8
+ }
9
+ for (let i: number = indexes.length - 1; i > 0; --i) {
10
+ const now: number = indexes[i]!;
11
+ const prev: number = indexes[i - 1]!;
12
+ if (now - prev === 1) indexes.splice(i, 1);
13
+ }
14
+ if (indexes.length !== 0 && indexes[0] === 0) indexes.splice(0, 1);
15
+ if (indexes.length === 0) return str.toLowerCase();
16
+
17
+ let ret: string = "";
18
+ for (let i: number = 0; i < indexes.length; i++) {
19
+ const first: number = i === 0 ? 0 : indexes[i - 1]!;
20
+ const last: number = indexes[i]!;
21
+
22
+ ret += str.substring(first, last).toLowerCase();
23
+ ret += "_";
24
+ }
25
+ ret += str.substring(indexes[indexes.length - 1]!).toLowerCase();
26
+ return ret;
27
+ }
28
+
29
+ export function camel(str: string): string {
30
+ return unsnake((str: string) => {
31
+ if (str.length === 0) return str;
32
+ else if (str[0] === str[0]!.toUpperCase())
33
+ return str[0]!.toLowerCase() + str.substring(1);
34
+ else return str;
35
+ })(str);
36
+ }
37
+
38
+ export function pascal(str: string): string {
39
+ return unsnake((str: string) => {
40
+ if (str.length === 0) return str;
41
+ else if (str[0] === str[0]!.toLowerCase())
42
+ return str[0]!.toUpperCase() + str.substring(1);
43
+ else return str;
44
+ })(str);
45
+ }
46
+
47
+ const unsnake =
48
+ (escaper: (str: string) => string) =>
49
+ (str: string): string => {
50
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
51
+ let prefix: string = "";
52
+ for (let i: number = 0; i < str.length; i++) {
53
+ if (str[i] === "_") prefix += "_";
54
+ else break;
55
+ }
56
+ if (prefix.length !== 0) str = str.substring(prefix.length);
57
+
58
+ const indexes: [number, number][] = [];
59
+ for (let i: number = 0; i < str.length; i++) {
60
+ const ch: string = str[i]!;
61
+ if (ch !== "_") continue;
62
+
63
+ const last = indexes[indexes.length - 1];
64
+ if (last === undefined || last[0] + last[1] !== i) indexes.push([i, 1]);
65
+ else ++last[1];
66
+ }
67
+ if (indexes.length === 0) return prefix + escaper(str);
68
+
69
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
70
+ let ret: string = "";
71
+ for (let i: number = 0; i < indexes.length; i++) {
72
+ const [first] = indexes[i]!;
73
+ if (i === 0)
74
+ if (first === 0) ret += "_";
75
+ else ret += str.substring(0, first);
76
+ else {
77
+ const [prevFirst, prevLength] = indexes[i - 1]!;
78
+ const piece: string = str.substring(prevFirst + prevLength, first);
79
+ if (piece.length) ret += StringUtil.capitalize(piece);
80
+ }
81
+ }
82
+ const last = indexes[indexes.length - 1]!;
83
+ const piece: string = str.substring(last[0] + last[1]);
84
+ if (last.length) ret += StringUtil.capitalize(piece);
85
+ return prefix + escaper(ret);
86
+ };
@@ -1 +1 @@
1
- export * as NamingConvention from "./NamingConvention";
1
+ export * as NamingConvention from "./NamingConvention";
@@ -1,29 +1,29 @@
1
- export namespace PatternUtil {
2
- export const fix = (str: string): string => {
3
- const first: number = str.indexOf(STRING);
4
- const last: number = str.lastIndexOf(STRING);
5
- return [
6
- first === -1 || none("(")(str.slice(0, first)) ? "^" : "",
7
- str,
8
- last === -1 || none(")")(str.slice(last + STRING.length)) ? "$" : "",
9
- ].join("");
10
- };
11
-
12
- export const escape = (str: string): string => {
13
- return str.replace(/[|\\/{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
14
- };
15
-
16
- export const NUMBER =
17
- "[+-]?" + // optional sign
18
- "\\d+(?:\\.\\d+)?" + // integer or decimal
19
- "(?:[eE][+-]?\\d+)?"; // optional exponent
20
- export const BOOLEAN = "true|false";
21
- export const STRING = "(.*)";
22
- }
23
-
24
- const none =
25
- (parenthesis: string) =>
26
- (str: string): boolean => {
27
- for (const ch of str) if (ch !== parenthesis) return true;
28
- return false;
29
- };
1
+ export namespace PatternUtil {
2
+ export const fix = (str: string): string => {
3
+ const first: number = str.indexOf(STRING);
4
+ const last: number = str.lastIndexOf(STRING);
5
+ return [
6
+ first === -1 || none("(")(str.slice(0, first)) ? "^" : "",
7
+ str,
8
+ last === -1 || none(")")(str.slice(last + STRING.length)) ? "$" : "",
9
+ ].join("");
10
+ };
11
+
12
+ export const escape = (str: string): string => {
13
+ return str.replace(/[|\\/{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
14
+ };
15
+
16
+ export const NUMBER =
17
+ "[+-]?" + // optional sign
18
+ "\\d+(?:\\.\\d+)?" + // integer or decimal
19
+ "(?:[eE][+-]?\\d+)?"; // optional exponent
20
+ export const BOOLEAN = "true|false";
21
+ export const STRING = "(.*)";
22
+ }
23
+
24
+ const none =
25
+ (parenthesis: string) =>
26
+ (str: string): boolean => {
27
+ for (const ch of str) if (ch !== parenthesis) return true;
28
+ return false;
29
+ };
@@ -1,105 +1,105 @@
1
- import RandExp from "randexp";
2
-
3
- const ALPHABETS = "abcdefghijklmnopqrstuvwxyz";
4
-
5
- /* -----------------------------------------------------------
6
- REGULAR
7
- ----------------------------------------------------------- */
8
- export const boolean = () => Math.random() < 0.5;
9
- export const integer = (min?: number, max?: number) => {
10
- min ??= 0;
11
- max ??= 100;
12
- return Math.floor(Math.random() * (max - min + 1)) + min;
13
- };
14
- export const bigint = (min?: bigint, max?: bigint) =>
15
- BigInt(integer(Number(min ?? BigInt(0)), Number(max ?? BigInt(100))));
16
- export const number = (min?: number, max?: number) => {
17
- min ??= 0;
18
- max ??= 100;
19
- return Math.random() * (max - min) + min;
20
- };
21
- export const string = (length?: number): string =>
22
- new Array(length ?? integer(5, 10))
23
- .fill(0)
24
- .map(() => ALPHABETS[integer(0, ALPHABETS.length - 1)])
25
- .join("");
26
-
27
- export const array = <T>(closure: (index: number) => T, count?: number): T[] =>
28
- new Array(count ?? length()).fill(0).map((_e, index) => closure(index));
29
- export const pick = <T>(array: T[]): T => array[integer(0, array.length - 1)]!;
30
- export const length = () => integer(0, 3);
31
- export const pattern = (regex: RegExp): string => {
32
- const r: RandExp = new RandExp(regex);
33
- for (let i: number = 0; i < 10; ++i) {
34
- const str: string = r.gen();
35
- if (regex.test(str)) return str;
36
- }
37
- return r.gen();
38
- };
39
-
40
- /* -----------------------------------------------------------
41
- SECIAL FORMATS
42
- ----------------------------------------------------------- */
43
- // SPECIAL CHARACTERS
44
- export const byte = () => "vt7ekz4lIoNTTS9sDQYdWKharxIFAR54+z/umIxSgUM=";
45
- export const password = () => string(integer(4, 16));
46
- export const regex = () =>
47
- "/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/";
48
- export const uuid = () =>
49
- "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
50
- const r = (Math.random() * 16) | 0;
51
- const v = c === "x" ? r : (r & 0x3) | 0x8;
52
- return v.toString(16);
53
- });
54
-
55
- // ADDRESSES
56
- export const email = () => `${string(10)}@${string(10)}.${string(3)}`;
57
- export const hostname = () => `${string(10)}.${string(3)}`;
58
- export const idnEmail = () => email();
59
- export const idnHostname = () => hostname();
60
- export const iri = () => url();
61
- export const iriReference = () => url();
62
- export const ipv4 = () => array(() => integer(0, 255), 4).join(".");
63
- export const ipv6 = (): string =>
64
- array(() => integer(0, 65535).toString(16), 8).join(":");
65
- export const uri = () => url();
66
- export const uriReference = () => url();
67
- export const uriTemplate = () => url();
68
- export const url = () => `https://${string(10)}.${string(3)}`;
69
-
70
- // TIMESTAMPS
71
- export const datetime = (min?: number, max?: number) =>
72
- new Date(
73
- number(min ?? Date.now() - 30 * DAY, max ?? Date.now() + 7 * DAY),
74
- ).toISOString();
75
- export const date = (min?: number, max?: number) =>
76
- new Date(number(min ?? 0, max ?? Date.now() * 2))
77
- .toISOString()
78
- .substring(0, 10);
79
- export const time = () =>
80
- new Date(number(0, DAY)).toISOString().substring(11, 23);
81
- export const duration = () => {
82
- const period: string = durate([
83
- ["Y", integer(0, 100)],
84
- ["M", integer(0, 12)],
85
- ["D", integer(0, 31)],
86
- ]);
87
- const time: string = durate([
88
- ["H", integer(0, 24)],
89
- ["M", integer(0, 60)],
90
- ["S", integer(0, 60)],
91
- ]);
92
- if (period.length + time.length === 0) return "PT0S";
93
- return `P${period}${time.length ? "T" : ""}${time}`;
94
- };
95
-
96
- // POINTERS
97
- export const jsonPointer = () => `/components/schemas/${string(10)}`;
98
- export const relativeJsonPointer = () => `${integer(0, 10)}#`;
99
-
100
- const DAY = 86400000;
101
- const durate = (elements: [string, number][]) =>
102
- elements
103
- .filter(([_unit, value]) => value !== 0)
104
- .map(([unit, value]) => `${value}${unit}`)
105
- .join("");
1
+ import RandExp from "randexp";
2
+
3
+ const ALPHABETS = "abcdefghijklmnopqrstuvwxyz";
4
+
5
+ /* -----------------------------------------------------------
6
+ REGULAR
7
+ ----------------------------------------------------------- */
8
+ export const boolean = () => Math.random() < 0.5;
9
+ export const integer = (min?: number, max?: number) => {
10
+ min ??= 0;
11
+ max ??= 100;
12
+ return Math.floor(Math.random() * (max - min + 1)) + min;
13
+ };
14
+ export const bigint = (min?: bigint, max?: bigint) =>
15
+ BigInt(integer(Number(min ?? BigInt(0)), Number(max ?? BigInt(100))));
16
+ export const number = (min?: number, max?: number) => {
17
+ min ??= 0;
18
+ max ??= 100;
19
+ return Math.random() * (max - min) + min;
20
+ };
21
+ export const string = (length?: number): string =>
22
+ new Array(length ?? integer(5, 10))
23
+ .fill(0)
24
+ .map(() => ALPHABETS[integer(0, ALPHABETS.length - 1)])
25
+ .join("");
26
+
27
+ export const array = <T>(closure: (index: number) => T, count?: number): T[] =>
28
+ new Array(count ?? length()).fill(0).map((_e, index) => closure(index));
29
+ export const pick = <T>(array: T[]): T => array[integer(0, array.length - 1)]!;
30
+ export const length = () => integer(0, 3);
31
+ export const pattern = (regex: RegExp): string => {
32
+ const r: RandExp = new RandExp(regex);
33
+ for (let i: number = 0; i < 10; ++i) {
34
+ const str: string = r.gen();
35
+ if (regex.test(str)) return str;
36
+ }
37
+ return r.gen();
38
+ };
39
+
40
+ /* -----------------------------------------------------------
41
+ SECIAL FORMATS
42
+ ----------------------------------------------------------- */
43
+ // SPECIAL CHARACTERS
44
+ export const byte = () => "vt7ekz4lIoNTTS9sDQYdWKharxIFAR54+z/umIxSgUM=";
45
+ export const password = () => string(integer(4, 16));
46
+ export const regex = () =>
47
+ "/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/";
48
+ export const uuid = () =>
49
+ "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
50
+ const r = (Math.random() * 16) | 0;
51
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
52
+ return v.toString(16);
53
+ });
54
+
55
+ // ADDRESSES
56
+ export const email = () => `${string(10)}@${string(10)}.${string(3)}`;
57
+ export const hostname = () => `${string(10)}.${string(3)}`;
58
+ export const idnEmail = () => email();
59
+ export const idnHostname = () => hostname();
60
+ export const iri = () => url();
61
+ export const iriReference = () => url();
62
+ export const ipv4 = () => array(() => integer(0, 255), 4).join(".");
63
+ export const ipv6 = (): string =>
64
+ array(() => integer(0, 65535).toString(16), 8).join(":");
65
+ export const uri = () => url();
66
+ export const uriReference = () => url();
67
+ export const uriTemplate = () => url();
68
+ export const url = () => `https://${string(10)}.${string(3)}`;
69
+
70
+ // TIMESTAMPS
71
+ export const datetime = (min?: number, max?: number) =>
72
+ new Date(
73
+ number(min ?? Date.now() - 30 * DAY, max ?? Date.now() + 7 * DAY),
74
+ ).toISOString();
75
+ export const date = (min?: number, max?: number) =>
76
+ new Date(number(min ?? 0, max ?? Date.now() * 2))
77
+ .toISOString()
78
+ .substring(0, 10);
79
+ export const time = () =>
80
+ new Date(number(0, DAY)).toISOString().substring(11, 23);
81
+ export const duration = () => {
82
+ const period: string = durate([
83
+ ["Y", integer(0, 100)],
84
+ ["M", integer(0, 12)],
85
+ ["D", integer(0, 31)],
86
+ ]);
87
+ const time: string = durate([
88
+ ["H", integer(0, 24)],
89
+ ["M", integer(0, 60)],
90
+ ["S", integer(0, 60)],
91
+ ]);
92
+ if (period.length + time.length === 0) return "PT0S";
93
+ return `P${period}${time.length ? "T" : ""}${time}`;
94
+ };
95
+
96
+ // POINTERS
97
+ export const jsonPointer = () => `/components/schemas/${string(10)}`;
98
+ export const relativeJsonPointer = () => `${integer(0, 10)}#`;
99
+
100
+ const DAY = 86400000;
101
+ const durate = (elements: [string, number][]) =>
102
+ elements
103
+ .filter(([_unit, value]) => value !== 0)
104
+ .map(([unit, value]) => `${value}${unit}`)
105
+ .join("");
@@ -1 +1 @@
1
- export * as RandomGenerator from "./RandomGenerator";
1
+ export * as RandomGenerator from "./RandomGenerator";
@@ -1,16 +1,16 @@
1
- export class Singleton<T, Args extends any[] = []> {
2
- private readonly closure_: (...args: Args) => T;
3
- private value_: T | object;
4
-
5
- public constructor(closure: (...args: Args) => T) {
6
- this.closure_ = closure;
7
- this.value_ = NOT_MOUNTED_YET;
8
- }
9
-
10
- public get(...args: Args): T {
11
- if (this.value_ === NOT_MOUNTED_YET) this.value_ = this.closure_(...args);
12
- return this.value_ as T;
13
- }
14
- }
15
-
16
- const NOT_MOUNTED_YET = {};
1
+ export class Singleton<T, Args extends any[] = []> {
2
+ private readonly closure_: (...args: Args) => T;
3
+ private value_: T | object;
4
+
5
+ public constructor(closure: (...args: Args) => T) {
6
+ this.closure_ = closure;
7
+ this.value_ = NOT_MOUNTED_YET;
8
+ }
9
+
10
+ public get(...args: Args): T {
11
+ if (this.value_ === NOT_MOUNTED_YET) this.value_ = this.closure_(...args);
12
+ return this.value_ as T;
13
+ }
14
+ }
15
+
16
+ const NOT_MOUNTED_YET = {};