typia 5.5.6-dev.20240319 → 5.5.6-dev.20240320

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 (465) hide show
  1. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  2. package/lib/factories/MetadataCommentTagFactory.js +54 -0
  3. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  4. package/lib/factories/MetadataTypeTagFactory.js +20 -0
  5. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  6. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -0
  7. package/lib/factories/MetadataTypeTagSchemaFactory.js +84 -0
  8. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -0
  9. package/lib/factories/TypeFactory.js.map +1 -1
  10. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  11. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  12. package/lib/functional/$FormDataReader/$FormDataReader.js.map +1 -1
  13. package/lib/functional/$HeadersReader/$HeadersReader.js.map +1 -1
  14. package/lib/functional/$ParameterReader/$ParameterReader.js.map +1 -1
  15. package/lib/functional/$ProtobufSizer.js.map +1 -1
  16. package/lib/functional/$QueryReader/$QueryReader.js.map +1 -1
  17. package/lib/programmers/AssertProgrammer.js +1 -3
  18. package/lib/programmers/AssertProgrammer.js.map +1 -1
  19. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  20. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  21. package/lib/programmers/IsProgrammer.js.map +1 -1
  22. package/lib/programmers/RandomProgrammer.js.map +1 -1
  23. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  24. package/lib/programmers/ValidateProgrammer.js +1 -3
  25. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  26. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  27. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  28. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  29. package/lib/programmers/internal/application_array.js +5 -1
  30. package/lib/programmers/internal/application_array.js.map +1 -1
  31. package/lib/programmers/internal/application_boolean.js +12 -4
  32. package/lib/programmers/internal/application_boolean.js.map +1 -1
  33. package/lib/programmers/internal/application_constant.js.map +1 -1
  34. package/lib/programmers/internal/application_escaped.js.map +1 -1
  35. package/lib/programmers/internal/application_object.js.map +1 -1
  36. package/lib/programmers/internal/application_string.js +5 -1
  37. package/lib/programmers/internal/application_string.js.map +1 -1
  38. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  39. package/lib/programmers/internal/check_number.js +1 -2
  40. package/lib/programmers/internal/check_number.js.map +1 -1
  41. package/lib/programmers/internal/check_object.js.map +1 -1
  42. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  43. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  44. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  45. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  46. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +2 -6
  47. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  48. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  49. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  50. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -0
  51. package/lib/schemas/metadata/MetadataAtomic.js +2 -0
  52. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  53. package/lib/tags/Default.d.ts +3 -0
  54. package/lib/tags/ExclusiveMaximum.d.ts +4 -0
  55. package/lib/tags/ExclusiveMinimum.d.ts +4 -0
  56. package/lib/tags/Format.d.ts +3 -0
  57. package/lib/tags/MaxItems.d.ts +3 -0
  58. package/lib/tags/MaxLength.d.ts +3 -0
  59. package/lib/tags/Maximum.d.ts +3 -0
  60. package/lib/tags/MinItems.d.ts +3 -0
  61. package/lib/tags/MinLength.d.ts +3 -0
  62. package/lib/tags/Minimum.d.ts +3 -0
  63. package/lib/tags/MultipleOf.d.ts +3 -0
  64. package/lib/tags/Pattern.d.ts +3 -0
  65. package/lib/tags/TagBase.d.ts +6 -2
  66. package/lib/transformers/CallExpressionTransformer.js +1 -1
  67. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  68. package/lib/transformers/ImportTransformer.js +1 -1
  69. package/lib/transformers/ImportTransformer.js.map +1 -1
  70. package/lib/transformers/features/AssertTransformer.js.map +1 -1
  71. package/lib/transformers/features/CreateAssertTransformer.js.map +1 -1
  72. package/package.json +1 -2
  73. package/src/AssertionGuard.ts +1 -1
  74. package/src/CamelCase.ts +118 -121
  75. package/src/IRandomGenerator.ts +62 -62
  76. package/src/IValidation.ts +21 -21
  77. package/src/PascalCase.ts +118 -121
  78. package/src/Primitive.ts +135 -136
  79. package/src/Resolved.ts +118 -119
  80. package/src/SnakeCase.ts +158 -161
  81. package/src/TypeGuardError.ts +36 -36
  82. package/src/executable/TypiaGenerateWizard.ts +83 -83
  83. package/src/executable/TypiaPatchWizard.ts +42 -42
  84. package/src/executable/TypiaSetupWizard.ts +151 -151
  85. package/src/executable/setup/ArgumentParser.ts +43 -43
  86. package/src/executable/setup/CommandExecutor.ts +8 -8
  87. package/src/executable/setup/FileRetriever.ts +22 -22
  88. package/src/executable/setup/PackageManager.ts +71 -71
  89. package/src/executable/setup/PluginConfigurator.ts +69 -69
  90. package/src/executable/typia.ts +55 -55
  91. package/src/factories/CommentFactory.ts +79 -79
  92. package/src/factories/ExpressionFactory.ts +150 -150
  93. package/src/factories/IdentifierFactory.ts +70 -70
  94. package/src/factories/JsonMetadataFactory.ts +53 -53
  95. package/src/factories/LiteralFactory.ts +47 -47
  96. package/src/factories/MetadataCollection.ts +260 -260
  97. package/src/factories/MetadataCommentTagFactory.ts +516 -461
  98. package/src/factories/MetadataFactory.ts +267 -267
  99. package/src/factories/MetadataTypeTagFactory.ts +332 -313
  100. package/src/factories/MetadataTypeTagSchemaFactory.ts +58 -0
  101. package/src/factories/NumericRangeFactory.ts +72 -72
  102. package/src/factories/ProtobufFactory.ts +267 -267
  103. package/src/factories/StatementFactory.ts +72 -72
  104. package/src/factories/TemplateFactory.ts +56 -56
  105. package/src/factories/TypeFactory.ts +118 -118
  106. package/src/factories/ValueFactory.ts +12 -12
  107. package/src/factories/internal/metadata/MetadataHelper.ts +15 -15
  108. package/src/factories/internal/metadata/emend_metadata_atomics.ts +46 -46
  109. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  110. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +38 -38
  111. package/src/factories/internal/metadata/emplace_metadata_object.ts +176 -176
  112. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  113. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  114. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  115. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  116. package/src/factories/internal/metadata/iterate_metadata_array.ts +70 -70
  117. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  118. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  119. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  120. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  121. package/src/factories/internal/metadata/iterate_metadata_constant.ts +48 -48
  122. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  123. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +230 -230
  124. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  125. package/src/factories/internal/metadata/iterate_metadata_native.ts +209 -209
  126. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  127. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  128. package/src/factories/internal/metadata/iterate_metadata_sort.ts +72 -72
  129. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  130. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  131. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  132. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  133. package/src/functional/$FormDataReader/index.ts +1 -1
  134. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  135. package/src/functional/$HeadersReader/index.ts +1 -1
  136. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  137. package/src/functional/$ParameterReader/index.ts +1 -1
  138. package/src/functional/$ProtobufReader.ts +195 -195
  139. package/src/functional/$ProtobufSizer.ts +147 -147
  140. package/src/functional/$ProtobufWriter.ts +150 -150
  141. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  142. package/src/functional/$QueryReader/index.ts +1 -1
  143. package/src/functional/$any.ts +4 -4
  144. package/src/functional/$clone.ts +4 -4
  145. package/src/functional/$convention.ts +37 -37
  146. package/src/functional/$dictionary.ts +22 -22
  147. package/src/functional/$every.ts +11 -11
  148. package/src/functional/$guard.ts +21 -21
  149. package/src/functional/$is_between.ts +2 -2
  150. package/src/functional/$join.ts +46 -46
  151. package/src/functional/$number.ts +12 -12
  152. package/src/functional/$report.ts +13 -13
  153. package/src/functional/$rest.ts +3 -3
  154. package/src/functional/$stoll.ts +8 -8
  155. package/src/functional/$string.ts +43 -43
  156. package/src/functional/$strlen.ts +7 -7
  157. package/src/functional/$tail.ts +5 -5
  158. package/src/functional/$throws.ts +10 -10
  159. package/src/functional/$varint.ts +130 -130
  160. package/src/functional/$zigzag.ts +39 -39
  161. package/src/functional/IProtobufWriter.ts +18 -18
  162. package/src/functional/Namespace/functional.ts +5 -5
  163. package/src/functional/Namespace/http.ts +9 -9
  164. package/src/functional/Namespace/index.ts +76 -76
  165. package/src/functional/Namespace/json.ts +15 -15
  166. package/src/functional/Namespace/misc.ts +14 -14
  167. package/src/functional/Namespace/notations.ts +23 -23
  168. package/src/functional/Namespace/protobuf.ts +20 -20
  169. package/src/functional/is.ts +10 -10
  170. package/src/functional.ts +872 -872
  171. package/src/http.ts +1266 -1266
  172. package/src/index.ts +4 -4
  173. package/src/json.ts +754 -754
  174. package/src/misc.ts +757 -757
  175. package/src/module.ts +1024 -1024
  176. package/src/notations.ts +1020 -1020
  177. package/src/programmers/AssertProgrammer.ts +335 -337
  178. package/src/programmers/CheckerProgrammer.ts +1079 -1079
  179. package/src/programmers/FeatureProgrammer.ts +460 -460
  180. package/src/programmers/IsProgrammer.ts +232 -235
  181. package/src/programmers/RandomProgrammer.ts +888 -888
  182. package/src/programmers/TypiaProgrammer.ts +157 -157
  183. package/src/programmers/ValidateProgrammer.ts +307 -309
  184. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +130 -130
  185. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +81 -81
  186. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +77 -77
  187. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +61 -61
  188. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +73 -73
  189. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +84 -84
  190. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +113 -113
  191. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +203 -203
  192. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +107 -107
  193. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +32 -32
  194. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  195. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  196. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  197. package/src/programmers/helpers/FunctionImporter.ts +87 -87
  198. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  199. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  200. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  201. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  202. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  203. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  204. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  205. package/src/programmers/helpers/PruneJoiner.ts +141 -141
  206. package/src/programmers/helpers/RandomJoiner.ts +140 -140
  207. package/src/programmers/helpers/RandomRanger.ts +171 -171
  208. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  209. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  210. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  211. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  212. package/src/programmers/helpers/disable_function_importer_declare.ts +32 -32
  213. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +87 -87
  214. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +89 -89
  215. package/src/programmers/http/HttpAssertQueryProgrammer.ts +87 -87
  216. package/src/programmers/http/HttpFormDataProgrammer.ts +255 -256
  217. package/src/programmers/http/HttpHeadersProgrammer.ts +322 -323
  218. package/src/programmers/http/HttpIsFormDataProgrammer.ts +90 -90
  219. package/src/programmers/http/HttpIsHeadersProgrammer.ts +92 -92
  220. package/src/programmers/http/HttpIsQueryProgrammer.ts +90 -90
  221. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  222. package/src/programmers/http/HttpQueryProgrammer.ts +260 -261
  223. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +75 -75
  224. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  225. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  226. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +1 -1
  227. package/src/programmers/internal/application_alias.ts +74 -74
  228. package/src/programmers/internal/application_array.ts +63 -59
  229. package/src/programmers/internal/application_boolean.ts +44 -35
  230. package/src/programmers/internal/application_constant.ts +25 -25
  231. package/src/programmers/internal/application_default.ts +17 -17
  232. package/src/programmers/internal/application_default_string.ts +33 -33
  233. package/src/programmers/internal/application_escaped.ts +52 -52
  234. package/src/programmers/internal/application_native.ts +40 -40
  235. package/src/programmers/internal/application_number.ts +97 -97
  236. package/src/programmers/internal/application_object.ts +198 -198
  237. package/src/programmers/internal/application_schema.ts +165 -165
  238. package/src/programmers/internal/application_string.ts +65 -61
  239. package/src/programmers/internal/application_templates.ts +24 -24
  240. package/src/programmers/internal/application_tuple.ts +54 -54
  241. package/src/programmers/internal/check_array_length.ts +45 -45
  242. package/src/programmers/internal/check_bigint.ts +49 -49
  243. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  244. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  245. package/src/programmers/internal/check_everything.ts +23 -23
  246. package/src/programmers/internal/check_native.ts +21 -21
  247. package/src/programmers/internal/check_number.ts +106 -107
  248. package/src/programmers/internal/check_object.ts +60 -61
  249. package/src/programmers/internal/check_string.ts +48 -48
  250. package/src/programmers/internal/check_template.ts +61 -61
  251. package/src/programmers/internal/check_union_array_like.ts +307 -307
  252. package/src/programmers/internal/decode_union_object.ts +99 -99
  253. package/src/programmers/internal/feature_object_entries.ts +58 -58
  254. package/src/programmers/internal/metadata_to_pattern.ts +33 -33
  255. package/src/programmers/internal/prune_object_properties.ts +60 -60
  256. package/src/programmers/internal/random_custom.ts +37 -37
  257. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  258. package/src/programmers/internal/stringify_native.ts +7 -7
  259. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  260. package/src/programmers/internal/template_to_pattern.ts +15 -15
  261. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  262. package/src/programmers/json/JsonApplicationProgrammer.ts +76 -76
  263. package/src/programmers/json/JsonAssertParseProgrammer.ts +81 -81
  264. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +67 -67
  265. package/src/programmers/json/JsonIsParseProgrammer.ts +81 -81
  266. package/src/programmers/json/JsonIsStringifyProgrammer.ts +75 -75
  267. package/src/programmers/json/JsonStringifyProgrammer.ts +896 -900
  268. package/src/programmers/json/JsonValidateParseProgrammer.ts +64 -64
  269. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +83 -83
  270. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +77 -77
  271. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +66 -66
  272. package/src/programmers/misc/MiscCloneProgrammer.ts +721 -721
  273. package/src/programmers/misc/MiscIsCloneProgrammer.ts +78 -78
  274. package/src/programmers/misc/MiscIsPruneProgrammer.ts +66 -66
  275. package/src/programmers/misc/MiscLiteralsProgrammer.ts +72 -72
  276. package/src/programmers/misc/MiscPruneProgrammer.ts +523 -523
  277. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +80 -80
  278. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +73 -73
  279. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +70 -70
  280. package/src/programmers/notations/NotationGeneralProgrammer.ts +647 -647
  281. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +71 -71
  282. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +81 -81
  283. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +87 -87
  284. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +67 -67
  285. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +615 -619
  286. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +819 -819
  287. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +90 -90
  288. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +75 -75
  289. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  290. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +75 -75
  291. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +83 -83
  292. package/src/protobuf.ts +999 -999
  293. package/src/reflect.ts +57 -57
  294. package/src/schemas/json/IJsonApplication.ts +9 -9
  295. package/src/schemas/json/IJsonComponents.ts +19 -19
  296. package/src/schemas/json/IJsonSchema.ts +147 -147
  297. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  298. package/src/schemas/metadata/IMetadata.ts +34 -34
  299. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  300. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  301. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  302. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  303. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  304. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  305. package/src/schemas/metadata/IMetadataConstant.ts +23 -23
  306. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  307. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  308. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  309. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  310. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  311. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  312. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  313. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -15
  314. package/src/schemas/metadata/Metadata.ts +631 -631
  315. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  316. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  317. package/src/schemas/metadata/MetadataArray.ts +49 -49
  318. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  319. package/src/schemas/metadata/MetadataAtomic.ts +85 -84
  320. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  321. package/src/schemas/metadata/MetadataConstant.ts +46 -46
  322. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  323. package/src/schemas/metadata/MetadataObject.ts +154 -154
  324. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  325. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  326. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  327. package/src/tags/Default.ts +18 -15
  328. package/src/tags/ExclusiveMaximum.ts +19 -13
  329. package/src/tags/ExclusiveMinimum.ts +19 -13
  330. package/src/tags/Format.ts +16 -13
  331. package/src/tags/MaxItems.ts +12 -9
  332. package/src/tags/MaxLength.ts +12 -9
  333. package/src/tags/Maximum.ts +18 -13
  334. package/src/tags/MinItems.ts +12 -9
  335. package/src/tags/MinLength.ts +12 -9
  336. package/src/tags/Minimum.ts +18 -13
  337. package/src/tags/MultipleOf.ts +20 -15
  338. package/src/tags/Pattern.ts +12 -9
  339. package/src/tags/TagBase.ts +76 -68
  340. package/src/tags/Type.ts +27 -27
  341. package/src/tags/index.ts +14 -14
  342. package/src/tags/internal/FormatCheatSheet.ts +71 -71
  343. package/src/transform.ts +35 -35
  344. package/src/transformers/CallExpressionTransformer.ts +496 -496
  345. package/src/transformers/FileTransformer.ts +91 -91
  346. package/src/transformers/IProject.ts +15 -15
  347. package/src/transformers/ITransformOptions.ts +62 -62
  348. package/src/transformers/ImportTransformer.ts +66 -66
  349. package/src/transformers/NodeTransformer.ts +13 -13
  350. package/src/transformers/TransformerError.ts +55 -55
  351. package/src/transformers/features/AssertTransformer.ts +16 -16
  352. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  353. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  354. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  355. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  356. package/src/transformers/features/IsTransformer.ts +10 -10
  357. package/src/transformers/features/RandomTransformer.ts +44 -44
  358. package/src/transformers/features/ValidateTransformer.ts +11 -11
  359. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +55 -55
  360. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  361. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  362. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  363. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  364. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  365. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  366. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  367. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  368. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  369. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  370. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  371. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  372. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  373. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  374. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  375. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  376. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  377. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  378. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  379. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  380. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  381. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  382. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  383. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  384. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  385. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  386. package/src/transformers/features/json/JsonApplicationTransformer.ts +133 -133
  387. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  388. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  389. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  390. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  391. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  392. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  393. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  394. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  395. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  396. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  397. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  398. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  399. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  400. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  401. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  402. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  403. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  404. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  405. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  406. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  407. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  408. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  409. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  410. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  411. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  412. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  413. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  414. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  415. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  416. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  417. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  418. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  419. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  420. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  421. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  422. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  423. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  424. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  425. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  426. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  427. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  428. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  429. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  430. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  431. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  432. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  433. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  434. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  435. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  436. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  437. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  438. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  439. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  440. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  441. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  442. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  443. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +63 -63
  444. package/src/transformers/internal/GenericTransformer.ts +104 -104
  445. package/src/typings/Atomic.ts +13 -13
  446. package/src/typings/ClassProperties.ts +5 -5
  447. package/src/typings/Customizable.ts +5 -5
  448. package/src/typings/OmitNever.ts +3 -3
  449. package/src/typings/ProtobufAtomic.ts +19 -19
  450. package/src/typings/SpecialFields.ts +3 -3
  451. package/src/typings/ValidationPipe.ts +9 -9
  452. package/src/typings/Writable.ts +11 -11
  453. package/src/utils/ArrayUtil.ts +43 -43
  454. package/src/utils/Escaper.ts +46 -46
  455. package/src/utils/MapUtil.ts +12 -12
  456. package/src/utils/NameEncoder.ts +32 -32
  457. package/src/utils/NamingConvention/NamingConvention.ts +86 -86
  458. package/src/utils/NamingConvention/index.ts +1 -1
  459. package/src/utils/PatternUtil.ts +29 -29
  460. package/src/utils/RandomGenerator/RandomGenerator.ts +105 -105
  461. package/src/utils/RandomGenerator/index.ts +1 -1
  462. package/src/utils/Singleton.ts +16 -16
  463. package/src/utils/StringUtil/StringUtil.ts +7 -7
  464. package/src/utils/StringUtil/index.ts +1 -1
  465. package/src/typings/path.d.ts +0 -6
@@ -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 = {};