typia 6.6.3-dev.20240801 → 6.7.0-dev.20240802

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 (673) hide show
  1. package/lib/TypeGuardError.mjs +26 -0
  2. package/lib/TypeGuardError.mjs.map +1 -0
  3. package/lib/_external/node_modules_drange_lib/index.mjs +180 -0
  4. package/lib/_external/node_modules_drange_lib/index.mjs.map +1 -0
  5. package/lib/_external/node_modules_randexp_lib/randexp.mjs +270 -0
  6. package/lib/_external/node_modules_randexp_lib/randexp.mjs.map +1 -0
  7. package/lib/_external/node_modules_ret_lib/index.mjs +296 -0
  8. package/lib/_external/node_modules_ret_lib/index.mjs.map +1 -0
  9. package/lib/_external/node_modules_ret_lib/positions.mjs +11 -0
  10. package/lib/_external/node_modules_ret_lib/positions.mjs.map +1 -0
  11. package/lib/_external/node_modules_ret_lib/sets.mjs +55 -0
  12. package/lib/_external/node_modules_ret_lib/sets.mjs.map +1 -0
  13. package/lib/_external/node_modules_ret_lib/types.mjs +13 -0
  14. package/lib/_external/node_modules_ret_lib/types.mjs.map +1 -0
  15. package/lib/_external/node_modules_ret_lib/util.mjs +116 -0
  16. package/lib/_external/node_modules_ret_lib/util.mjs.map +1 -0
  17. package/lib/_virtual/_commonjsHelpers.mjs +6 -0
  18. package/lib/_virtual/_commonjsHelpers.mjs.map +1 -0
  19. package/lib/_virtual/index.mjs +4 -0
  20. package/lib/_virtual/index.mjs.map +1 -0
  21. package/lib/_virtual/positions.mjs +4 -0
  22. package/lib/_virtual/positions.mjs.map +1 -0
  23. package/lib/_virtual/sets.mjs +4 -0
  24. package/lib/_virtual/sets.mjs.map +1 -0
  25. package/lib/_virtual/util.mjs +4 -0
  26. package/lib/_virtual/util.mjs.map +1 -0
  27. package/lib/functional/Namespace/functional.mjs +8 -0
  28. package/lib/functional/Namespace/functional.mjs.map +1 -0
  29. package/lib/functional/Namespace/http.mjs +12 -0
  30. package/lib/functional/Namespace/http.mjs.map +1 -0
  31. package/lib/functional/Namespace/index.mjs +54 -0
  32. package/lib/functional/Namespace/index.mjs.map +1 -0
  33. package/lib/functional/Namespace/json.mjs +18 -0
  34. package/lib/functional/Namespace/json.mjs.map +1 -0
  35. package/lib/functional/Namespace/misc.mjs +16 -0
  36. package/lib/functional/Namespace/misc.mjs.map +1 -0
  37. package/lib/functional/Namespace/notations.mjs +24 -0
  38. package/lib/functional/Namespace/notations.mjs.map +1 -0
  39. package/lib/functional/Namespace/protobuf.mjs +22 -0
  40. package/lib/functional/Namespace/protobuf.mjs.map +1 -0
  41. package/lib/functional/_FormDataReader/_FormDataReader.mjs +64 -0
  42. package/lib/functional/_FormDataReader/_FormDataReader.mjs.map +1 -0
  43. package/lib/functional/_HeadersReader/_HeadersReader.mjs +25 -0
  44. package/lib/functional/_HeadersReader/_HeadersReader.mjs.map +1 -0
  45. package/lib/functional/_ParameterReader/_ParameterReader.mjs +25 -0
  46. package/lib/functional/_ParameterReader/_ParameterReader.mjs.map +1 -0
  47. package/lib/functional/_ProtobufReader.mjs +176 -0
  48. package/lib/functional/_ProtobufReader.mjs.map +1 -0
  49. package/lib/functional/_ProtobufSizer.mjs +131 -0
  50. package/lib/functional/_ProtobufSizer.mjs.map +1 -0
  51. package/lib/functional/_ProtobufWriter.mjs +122 -0
  52. package/lib/functional/_ProtobufWriter.mjs.map +1 -0
  53. package/lib/functional/_QueryReader/_QueryReader.mjs +38 -0
  54. package/lib/functional/_QueryReader/_QueryReader.mjs.map +1 -0
  55. package/lib/functional/_any.mjs +6 -0
  56. package/lib/functional/_any.mjs.map +1 -0
  57. package/lib/functional/_clone.mjs +62 -0
  58. package/lib/functional/_clone.mjs.map +1 -0
  59. package/lib/functional/_convention.mjs +37 -0
  60. package/lib/functional/_convention.mjs.map +1 -0
  61. package/lib/functional/_every.mjs +10 -0
  62. package/lib/functional/_every.mjs.map +1 -0
  63. package/lib/functional/_guard.mjs +18 -0
  64. package/lib/functional/_guard.mjs.map +1 -0
  65. package/lib/functional/_is_between.mjs +4 -0
  66. package/lib/functional/_is_between.mjs.map +1 -0
  67. package/lib/functional/_join.mjs +44 -0
  68. package/lib/functional/_join.mjs.map +1 -0
  69. package/lib/functional/_number.mjs +15 -0
  70. package/lib/functional/_number.mjs.map +1 -0
  71. package/lib/functional/_report.mjs +16 -0
  72. package/lib/functional/_report.mjs.map +1 -0
  73. package/lib/functional/_rest.mjs +6 -0
  74. package/lib/functional/_rest.mjs.map +1 -0
  75. package/lib/functional/_stoll.mjs +12 -0
  76. package/lib/functional/_stoll.mjs.map +1 -0
  77. package/lib/functional/_string.mjs +41 -0
  78. package/lib/functional/_string.mjs.map +1 -0
  79. package/lib/functional/_strlen.mjs +11 -0
  80. package/lib/functional/_strlen.mjs.map +1 -0
  81. package/lib/functional/_tail.mjs +7 -0
  82. package/lib/functional/_tail.mjs.map +1 -0
  83. package/lib/functional/_throws.mjs +11 -0
  84. package/lib/functional/_throws.mjs.map +1 -0
  85. package/lib/functional/is.mjs +13 -0
  86. package/lib/functional/is.mjs.map +1 -0
  87. package/lib/functional.mjs +150 -0
  88. package/lib/functional.mjs.map +1 -0
  89. package/lib/http.mjs +239 -0
  90. package/lib/http.mjs.map +1 -0
  91. package/lib/index.mjs +23 -3493
  92. package/lib/index.mjs.map +1 -1
  93. package/lib/json.mjs +126 -0
  94. package/lib/json.mjs.map +1 -0
  95. package/lib/misc.mjs +154 -0
  96. package/lib/misc.mjs.map +1 -0
  97. package/lib/module.mjs +161 -0
  98. package/lib/module.mjs.map +1 -0
  99. package/lib/notations.mjs +222 -0
  100. package/lib/notations.mjs.map +1 -0
  101. package/lib/programmers/AssertProgrammer.d.ts +12 -1
  102. package/lib/programmers/AssertProgrammer.js +87 -58
  103. package/lib/programmers/AssertProgrammer.js.map +1 -1
  104. package/lib/programmers/CheckerProgrammer.d.ts +7 -0
  105. package/lib/programmers/CheckerProgrammer.js +3 -0
  106. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  107. package/lib/programmers/FeatureProgrammer.d.ts +24 -0
  108. package/lib/programmers/FeatureProgrammer.js +46 -3
  109. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  110. package/lib/programmers/IsProgrammer.d.ts +10 -3
  111. package/lib/programmers/IsProgrammer.js +39 -39
  112. package/lib/programmers/IsProgrammer.js.map +1 -1
  113. package/lib/programmers/ValidateProgrammer.d.ts +11 -1
  114. package/lib/programmers/ValidateProgrammer.js +91 -52
  115. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  116. package/lib/programmers/helpers/FunctionImporter.js +3 -2
  117. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  118. package/lib/programmers/http/HttpAssertFormDataProgrammer.d.ts +10 -1
  119. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +58 -14
  120. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -1
  121. package/lib/programmers/http/HttpFormDataProgrammer.d.ts +9 -1
  122. package/lib/programmers/http/HttpFormDataProgrammer.js +35 -27
  123. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  124. package/lib/programmers/json/JsonAssertParseProgrammer.d.ts +10 -1
  125. package/lib/programmers/json/JsonAssertParseProgrammer.js +59 -15
  126. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  127. package/lib/programmers/json/JsonAssertStringifyProgrammer.d.ts +10 -1
  128. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +61 -13
  129. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  130. package/lib/programmers/json/JsonIsParseProgrammer.d.ts +9 -1
  131. package/lib/programmers/json/JsonIsParseProgrammer.js +58 -9
  132. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  133. package/lib/programmers/json/JsonIsStringifyProgrammer.d.ts +9 -1
  134. package/lib/programmers/json/JsonIsStringifyProgrammer.js +55 -10
  135. package/lib/programmers/json/JsonIsStringifyProgrammer.js.map +1 -1
  136. package/lib/programmers/json/JsonStringifyProgrammer.d.ts +10 -1
  137. package/lib/programmers/json/JsonStringifyProgrammer.js +33 -19
  138. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  139. package/lib/programmers/json/JsonValidateParseProgrammer.d.ts +10 -1
  140. package/lib/programmers/json/JsonValidateParseProgrammer.js +53 -7
  141. package/lib/programmers/json/JsonValidateParseProgrammer.js.map +1 -1
  142. package/lib/programmers/json/JsonValidateStringifyProgrammer.d.ts +10 -1
  143. package/lib/programmers/json/JsonValidateStringifyProgrammer.js +59 -9
  144. package/lib/programmers/json/JsonValidateStringifyProgrammer.js.map +1 -1
  145. package/lib/programmers/misc/MiscAssertCloneProgrammer.d.ts +10 -1
  146. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +60 -15
  147. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  148. package/lib/programmers/misc/MiscAssertPruneProgrammer.d.ts +10 -1
  149. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +60 -13
  150. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  151. package/lib/programmers/misc/MiscCloneProgrammer.d.ts +10 -1
  152. package/lib/programmers/misc/MiscCloneProgrammer.js +32 -29
  153. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  154. package/lib/programmers/misc/MiscIsCloneProgrammer.d.ts +9 -1
  155. package/lib/programmers/misc/MiscIsCloneProgrammer.js +58 -12
  156. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  157. package/lib/programmers/misc/MiscIsPruneProgrammer.d.ts +9 -1
  158. package/lib/programmers/misc/MiscIsPruneProgrammer.js +59 -7
  159. package/lib/programmers/misc/MiscIsPruneProgrammer.js.map +1 -1
  160. package/lib/programmers/misc/MiscPruneProgrammer.d.ts +10 -1
  161. package/lib/programmers/misc/MiscPruneProgrammer.js +43 -24
  162. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  163. package/lib/programmers/misc/MiscValidateCloneProgrammer.d.ts +10 -1
  164. package/lib/programmers/misc/MiscValidateCloneProgrammer.js +59 -7
  165. package/lib/programmers/misc/MiscValidateCloneProgrammer.js.map +1 -1
  166. package/lib/programmers/misc/MiscValidatePruneProgrammer.d.ts +10 -1
  167. package/lib/programmers/misc/MiscValidatePruneProgrammer.js +59 -7
  168. package/lib/programmers/misc/MiscValidatePruneProgrammer.js.map +1 -1
  169. package/lib/programmers/notations/NotationAssertGeneralProgrammer.d.ts +11 -1
  170. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +61 -13
  171. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  172. package/lib/programmers/notations/NotationGeneralProgrammer.d.ts +11 -1
  173. package/lib/programmers/notations/NotationGeneralProgrammer.js +29 -27
  174. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  175. package/lib/programmers/notations/NotationIsGeneralProgrammer.d.ts +10 -1
  176. package/lib/programmers/notations/NotationIsGeneralProgrammer.js +59 -10
  177. package/lib/programmers/notations/NotationIsGeneralProgrammer.js.map +1 -1
  178. package/lib/programmers/notations/NotationValidateGeneralProgrammer.d.ts +11 -1
  179. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js +60 -7
  180. package/lib/programmers/notations/NotationValidateGeneralProgrammer.js.map +1 -1
  181. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.d.ts +11 -1
  182. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +58 -16
  183. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  184. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.d.ts +11 -1
  185. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +61 -13
  186. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  187. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.d.ts +10 -1
  188. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +35 -18
  189. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  190. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.d.ts +10 -1
  191. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +38 -17
  192. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  193. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.d.ts +10 -1
  194. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +60 -15
  195. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  196. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.d.ts +10 -1
  197. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js +56 -10
  198. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.js.map +1 -1
  199. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.d.ts +10 -1
  200. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js +57 -9
  201. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.js.map +1 -1
  202. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.d.ts +10 -1
  203. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js +59 -9
  204. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.js.map +1 -1
  205. package/lib/protobuf.mjs +157 -0
  206. package/lib/protobuf.mjs.map +1 -0
  207. package/lib/reflect.mjs +19 -0
  208. package/lib/reflect.mjs.map +1 -0
  209. package/lib/tags/index.mjs +2 -0
  210. package/lib/tags/index.mjs.map +1 -0
  211. package/lib/transformers/features/CreateAssertTransformer.d.ts +1 -1
  212. package/lib/transformers/features/CreateIsTransformer.d.ts +1 -1
  213. package/lib/transformers/features/CreateValidateTransformer.d.ts +1 -1
  214. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.d.ts +1 -1
  215. package/lib/transformers/features/http/CreateHttpAssertHeadersTransformer.d.ts +1 -1
  216. package/lib/transformers/features/http/CreateHttpAssertQueryTransformer.d.ts +1 -1
  217. package/lib/transformers/features/http/CreateHttpFormDataTransformer.d.ts +1 -1
  218. package/lib/transformers/features/http/CreateHttpHeadersTransformer.d.ts +1 -1
  219. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.d.ts +1 -1
  220. package/lib/transformers/features/http/CreateHttpIsHeadersTransformer.d.ts +1 -1
  221. package/lib/transformers/features/http/CreateHttpIsQueryTransformer.d.ts +1 -1
  222. package/lib/transformers/features/http/CreateHttpParameterTransformer.d.ts +1 -1
  223. package/lib/transformers/features/http/CreateHttpQueryTransformer.d.ts +1 -1
  224. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.d.ts +1 -1
  225. package/lib/transformers/features/http/CreateHttpValidateHeadersTransformer.d.ts +1 -1
  226. package/lib/transformers/features/http/CreateHttpValidateQueryTransformer.d.ts +1 -1
  227. package/lib/transformers/features/json/JsonCreateAssertParseTransformer.d.ts +1 -1
  228. package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.d.ts +1 -1
  229. package/lib/transformers/features/json/JsonCreateIsParseTransformer.d.ts +1 -1
  230. package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.d.ts +1 -1
  231. package/lib/transformers/features/json/JsonCreateStringifyTransformer.d.ts +1 -1
  232. package/lib/transformers/features/json/JsonCreateValidateParseTransformer.d.ts +1 -1
  233. package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.d.ts +1 -1
  234. package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.d.ts +1 -1
  235. package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.d.ts +1 -1
  236. package/lib/transformers/features/misc/MiscCreateCloneTransformer.d.ts +1 -1
  237. package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.d.ts +1 -1
  238. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.d.ts +1 -1
  239. package/lib/transformers/features/misc/MiscCreatePruneTransformer.d.ts +1 -1
  240. package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.d.ts +1 -1
  241. package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.d.ts +1 -1
  242. package/lib/transformers/features/notations/NotationCreateAssertGeneralTransformer.d.ts +1 -1
  243. package/lib/transformers/features/notations/NotationCreateGeneralTransformer.d.ts +1 -1
  244. package/lib/transformers/features/notations/NotationCreateIsGeneralTransformer.d.ts +1 -1
  245. package/lib/transformers/features/notations/NotationCreateValidateGeneralTransformer.d.ts +1 -1
  246. package/lib/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.d.ts +1 -1
  247. package/lib/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.d.ts +1 -1
  248. package/lib/transformers/features/protobuf/ProtobufCreateDecodeTransformer.d.ts +1 -1
  249. package/lib/transformers/features/protobuf/ProtobufCreateEncodeTransformer.d.ts +1 -1
  250. package/lib/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.d.ts +1 -1
  251. package/lib/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.d.ts +1 -1
  252. package/lib/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.d.ts +1 -1
  253. package/lib/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.d.ts +1 -1
  254. package/lib/transformers/internal/GenericTransformer.d.ts +2 -2
  255. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  256. package/lib/utils/NamingConvention/NamingConvention.mjs +84 -0
  257. package/lib/utils/NamingConvention/NamingConvention.mjs.map +1 -0
  258. package/lib/utils/RandomGenerator/RandomGenerator.mjs +104 -0
  259. package/lib/utils/RandomGenerator/RandomGenerator.mjs.map +1 -0
  260. package/lib/utils/Singleton.mjs +17 -0
  261. package/lib/utils/Singleton.mjs.map +1 -0
  262. package/lib/utils/StringUtil/StringUtil.mjs +4 -0
  263. package/lib/utils/StringUtil/StringUtil.mjs.map +1 -0
  264. package/package.json +1 -1
  265. package/src/AssertionGuard.ts +1 -1
  266. package/src/CamelCase.ts +75 -75
  267. package/src/IRandomGenerator.ts +66 -66
  268. package/src/IValidation.ts +21 -21
  269. package/src/PascalCase.ts +71 -71
  270. package/src/Primitive.ts +92 -92
  271. package/src/Resolved.ts +74 -74
  272. package/src/SnakeCase.ts +126 -126
  273. package/src/TypeGuardError.ts +37 -37
  274. package/src/executable/TypiaGenerateWizard.ts +83 -83
  275. package/src/executable/TypiaPatchWizard.ts +42 -42
  276. package/src/executable/TypiaSetupWizard.ts +151 -151
  277. package/src/executable/setup/ArgumentParser.ts +43 -43
  278. package/src/executable/setup/CommandExecutor.ts +8 -8
  279. package/src/executable/setup/FileRetriever.ts +22 -22
  280. package/src/executable/setup/PackageManager.ts +86 -86
  281. package/src/executable/setup/PluginConfigurator.ts +69 -69
  282. package/src/executable/typia.ts +55 -55
  283. package/src/factories/CommentFactory.ts +79 -79
  284. package/src/factories/ExpressionFactory.ts +150 -150
  285. package/src/factories/IdentifierFactory.ts +70 -70
  286. package/src/factories/JsonMetadataFactory.ts +53 -53
  287. package/src/factories/LiteralFactory.ts +47 -47
  288. package/src/factories/MetadataCollection.ts +274 -274
  289. package/src/factories/MetadataCommentTagFactory.ts +534 -534
  290. package/src/factories/MetadataFactory.ts +272 -272
  291. package/src/factories/MetadataTypeTagFactory.ts +336 -336
  292. package/src/factories/MetadataTypeTagSchemaFactory.ts +59 -59
  293. package/src/factories/NumericRangeFactory.ts +72 -72
  294. package/src/factories/ProtobufFactory.ts +267 -267
  295. package/src/factories/StatementFactory.ts +72 -72
  296. package/src/factories/TemplateFactory.ts +56 -56
  297. package/src/factories/TypeFactory.ts +118 -118
  298. package/src/factories/ValueFactory.ts +12 -12
  299. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  300. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  301. package/src/factories/internal/metadata/emplace_metadata_alias.ts +41 -41
  302. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +42 -42
  303. package/src/factories/internal/metadata/emplace_metadata_object.ts +176 -176
  304. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  305. package/src/factories/internal/metadata/explore_metadata.ts +28 -28
  306. package/src/factories/internal/metadata/iterate_metadata.ts +94 -94
  307. package/src/factories/internal/metadata/iterate_metadata_alias.ts +34 -34
  308. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  309. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  310. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +33 -33
  311. package/src/factories/internal/metadata/iterate_metadata_collection.ts +131 -131
  312. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +26 -26
  313. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  314. package/src/factories/internal/metadata/iterate_metadata_escape.ts +52 -52
  315. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +213 -213
  316. package/src/factories/internal/metadata/iterate_metadata_map.ts +50 -50
  317. package/src/factories/internal/metadata/iterate_metadata_native.ts +220 -220
  318. package/src/factories/internal/metadata/iterate_metadata_object.ts +33 -33
  319. package/src/factories/internal/metadata/iterate_metadata_set.ts +41 -41
  320. package/src/factories/internal/metadata/iterate_metadata_sort.ts +74 -74
  321. package/src/factories/internal/metadata/iterate_metadata_template.ts +44 -44
  322. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +37 -37
  323. package/src/factories/internal/metadata/iterate_metadata_union.ts +27 -27
  324. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -83
  325. package/src/functional/$FormDataReader/index.ts +1 -1
  326. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -26
  327. package/src/functional/$HeadersReader/index.ts +1 -1
  328. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -29
  329. package/src/functional/$ParameterReader/index.ts +1 -1
  330. package/src/functional/$ProtobufReader.ts +194 -194
  331. package/src/functional/$ProtobufSizer.ts +144 -144
  332. package/src/functional/$ProtobufWriter.ts +145 -145
  333. package/src/functional/$QueryReader/$QueryReader.ts +46 -46
  334. package/src/functional/$QueryReader/index.ts +1 -1
  335. package/src/functional/$any.ts +3 -3
  336. package/src/functional/$clone.ts +48 -48
  337. package/src/functional/$convention.ts +37 -37
  338. package/src/functional/$dictionary.ts +22 -22
  339. package/src/functional/$every.ts +11 -11
  340. package/src/functional/$guard.ts +21 -21
  341. package/src/functional/$is_between.ts +2 -2
  342. package/src/functional/$join.ts +46 -46
  343. package/src/functional/$number.ts +12 -12
  344. package/src/functional/$report.ts +13 -13
  345. package/src/functional/$rest.ts +3 -3
  346. package/src/functional/$stoll.ts +8 -8
  347. package/src/functional/$string.ts +43 -43
  348. package/src/functional/$strlen.ts +7 -7
  349. package/src/functional/$tail.ts +5 -5
  350. package/src/functional/$throws.ts +10 -10
  351. package/src/functional/$varint.ts +130 -130
  352. package/src/functional/$zigzag.ts +39 -39
  353. package/src/functional/IProtobufWriter.ts +18 -18
  354. package/src/functional/Namespace/functional.ts +5 -5
  355. package/src/functional/Namespace/http.ts +9 -9
  356. package/src/functional/Namespace/index.ts +76 -76
  357. package/src/functional/Namespace/json.ts +15 -15
  358. package/src/functional/Namespace/misc.ts +14 -14
  359. package/src/functional/Namespace/notations.ts +23 -23
  360. package/src/functional/Namespace/protobuf.ts +20 -20
  361. package/src/functional/is.ts +10 -10
  362. package/src/functional.ts +872 -872
  363. package/src/http.ts +1266 -1266
  364. package/src/index.ts +4 -4
  365. package/src/json.ts +738 -738
  366. package/src/misc.ts +757 -757
  367. package/src/notations.ts +1020 -1020
  368. package/src/programmers/AssertProgrammer.ts +397 -337
  369. package/src/programmers/CheckerProgrammer.ts +1138 -1126
  370. package/src/programmers/FeatureProgrammer.ts +549 -460
  371. package/src/programmers/IsProgrammer.ts +65 -77
  372. package/src/programmers/RandomProgrammer.ts +916 -916
  373. package/src/programmers/TypiaProgrammer.ts +157 -157
  374. package/src/programmers/ValidateProgrammer.ts +368 -309
  375. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +130 -130
  376. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +81 -81
  377. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +77 -77
  378. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +61 -61
  379. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +73 -73
  380. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +84 -84
  381. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +113 -113
  382. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +203 -203
  383. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +107 -107
  384. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +32 -32
  385. package/src/programmers/helpers/AtomicPredicator.ts +24 -24
  386. package/src/programmers/helpers/CloneJoiner.ts +130 -130
  387. package/src/programmers/helpers/FunctionImporeter.ts +1 -1
  388. package/src/programmers/helpers/FunctionImporter.ts +97 -96
  389. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  390. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  391. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  392. package/src/programmers/helpers/NotationJoiner.ts +132 -132
  393. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  394. package/src/programmers/helpers/ProtobufUtil.ts +125 -125
  395. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  396. package/src/programmers/helpers/PruneJoiner.ts +139 -139
  397. package/src/programmers/helpers/RandomJoiner.ts +145 -145
  398. package/src/programmers/helpers/RandomRanger.ts +171 -171
  399. package/src/programmers/helpers/StringifyJoinder.ts +105 -105
  400. package/src/programmers/helpers/StringifyPredicator.ts +12 -12
  401. package/src/programmers/helpers/UnionExplorer.ts +269 -269
  402. package/src/programmers/helpers/UnionPredicator.ts +77 -77
  403. package/src/programmers/helpers/disable_function_importer_declare.ts +33 -33
  404. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +91 -87
  405. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +89 -89
  406. package/src/programmers/http/HttpAssertQueryProgrammer.ts +87 -87
  407. package/src/programmers/http/HttpFormDataProgrammer.ts +276 -256
  408. package/src/programmers/http/HttpHeadersProgrammer.ts +325 -325
  409. package/src/programmers/http/HttpIsFormDataProgrammer.ts +90 -90
  410. package/src/programmers/http/HttpIsHeadersProgrammer.ts +92 -92
  411. package/src/programmers/http/HttpIsQueryProgrammer.ts +90 -90
  412. package/src/programmers/http/HttpParameterProgrammer.ts +97 -97
  413. package/src/programmers/http/HttpQueryProgrammer.ts +274 -274
  414. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +75 -75
  415. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +77 -77
  416. package/src/programmers/http/HttpValidateQueryProgrammer.ts +75 -75
  417. package/src/programmers/internal/application_array.ts +61 -61
  418. package/src/programmers/internal/application_boolean.ts +25 -25
  419. package/src/programmers/internal/application_description.ts +12 -12
  420. package/src/programmers/internal/application_escaped.ts +76 -76
  421. package/src/programmers/internal/application_number.ts +25 -25
  422. package/src/programmers/internal/application_plugin.ts +19 -19
  423. package/src/programmers/internal/application_string.ts +25 -25
  424. package/src/programmers/internal/application_templates.ts +62 -62
  425. package/src/programmers/internal/application_title.ts +20 -20
  426. package/src/programmers/internal/application_union_discriminator.ts +35 -35
  427. package/src/programmers/internal/application_v30_alias.ts +52 -52
  428. package/src/programmers/internal/application_v30_constant.ts +18 -18
  429. package/src/programmers/internal/application_v30_native.ts +28 -28
  430. package/src/programmers/internal/application_v30_object.ts +149 -149
  431. package/src/programmers/internal/application_v30_schema.ts +159 -159
  432. package/src/programmers/internal/application_v30_tuple.ts +33 -33
  433. package/src/programmers/internal/application_v31_alias.ts +41 -41
  434. package/src/programmers/internal/application_v31_constant.ts +26 -26
  435. package/src/programmers/internal/application_v31_native.ts +24 -24
  436. package/src/programmers/internal/application_v31_object.ts +130 -130
  437. package/src/programmers/internal/application_v31_schema.ts +157 -157
  438. package/src/programmers/internal/application_v31_tuple.ts +21 -21
  439. package/src/programmers/internal/check_array_length.ts +45 -45
  440. package/src/programmers/internal/check_bigint.ts +49 -49
  441. package/src/programmers/internal/check_dynamic_key.ts +174 -174
  442. package/src/programmers/internal/check_dynamic_properties.ts +211 -211
  443. package/src/programmers/internal/check_everything.ts +23 -23
  444. package/src/programmers/internal/check_native.ts +21 -21
  445. package/src/programmers/internal/check_number.ts +107 -107
  446. package/src/programmers/internal/check_object.ts +61 -61
  447. package/src/programmers/internal/check_string.ts +48 -48
  448. package/src/programmers/internal/check_template.ts +46 -46
  449. package/src/programmers/internal/check_union_array_like.ts +307 -307
  450. package/src/programmers/internal/decode_union_object.ts +99 -99
  451. package/src/programmers/internal/feature_object_entries.ts +58 -58
  452. package/src/programmers/internal/metadata_to_pattern.ts +34 -34
  453. package/src/programmers/internal/postfix_of_tuple.ts +2 -2
  454. package/src/programmers/internal/prune_object_properties.ts +60 -60
  455. package/src/programmers/internal/random_custom.ts +37 -37
  456. package/src/programmers/internal/stringify_dynamic_properties.ts +157 -157
  457. package/src/programmers/internal/stringify_native.ts +7 -7
  458. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  459. package/src/programmers/internal/template_to_pattern.ts +15 -15
  460. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +20 -20
  461. package/src/programmers/json/JsonApplicationProgrammer.ts +82 -82
  462. package/src/programmers/json/JsonAssertParseProgrammer.ts +96 -81
  463. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +104 -67
  464. package/src/programmers/json/JsonIsParseProgrammer.ts +110 -81
  465. package/src/programmers/json/JsonIsStringifyProgrammer.ts +102 -75
  466. package/src/programmers/json/JsonStringifyProgrammer.ts +910 -901
  467. package/src/programmers/json/JsonValidateParseProgrammer.ts +87 -64
  468. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +111 -83
  469. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +87 -77
  470. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +87 -66
  471. package/src/programmers/misc/MiscCloneProgrammer.ts +759 -723
  472. package/src/programmers/misc/MiscIsCloneProgrammer.ts +93 -78
  473. package/src/programmers/misc/MiscIsPruneProgrammer.ts +94 -66
  474. package/src/programmers/misc/MiscLiteralsProgrammer.ts +70 -70
  475. package/src/programmers/misc/MiscPruneProgrammer.ts +560 -524
  476. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +104 -80
  477. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +98 -73
  478. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +91 -70
  479. package/src/programmers/notations/NotationGeneralProgrammer.ts +685 -648
  480. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +97 -71
  481. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +107 -81
  482. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +91 -87
  483. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +95 -67
  484. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +646 -621
  485. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +852 -819
  486. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +104 -90
  487. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +93 -75
  488. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +160 -160
  489. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +85 -75
  490. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +109 -83
  491. package/src/reflect.ts +63 -63
  492. package/src/schemas/json/IJsonApplication.ts +16 -16
  493. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  494. package/src/schemas/metadata/IMetadata.ts +35 -35
  495. package/src/schemas/metadata/IMetadataAlias.ts +12 -12
  496. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  497. package/src/schemas/metadata/IMetadataArray.ts +7 -7
  498. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  499. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  500. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  501. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  502. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  503. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  504. package/src/schemas/metadata/IMetadataEntry.ts +6 -6
  505. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  506. package/src/schemas/metadata/IMetadataObject.ts +13 -13
  507. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  508. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  509. package/src/schemas/metadata/IMetadataTuple.ts +7 -7
  510. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  511. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  512. package/src/schemas/metadata/Metadata.ts +615 -615
  513. package/src/schemas/metadata/MetadataAlias.ts +61 -61
  514. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  515. package/src/schemas/metadata/MetadataArray.ts +49 -49
  516. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  517. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  518. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  519. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  520. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  521. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  522. package/src/schemas/metadata/MetadataObject.ts +139 -139
  523. package/src/schemas/metadata/MetadataProperty.ts +56 -56
  524. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  525. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  526. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  527. package/src/tags/Constant.ts +15 -15
  528. package/src/tags/ContentMediaType.ts +10 -10
  529. package/src/tags/Default.ts +18 -18
  530. package/src/tags/ExclusiveMaximum.ts +19 -19
  531. package/src/tags/ExclusiveMinimum.ts +19 -19
  532. package/src/tags/Format.ts +16 -16
  533. package/src/tags/JsonSchemaPlugin.ts +8 -8
  534. package/src/tags/MaxItems.ts +12 -12
  535. package/src/tags/MaxLength.ts +12 -12
  536. package/src/tags/Maximum.ts +18 -18
  537. package/src/tags/MinItems.ts +12 -12
  538. package/src/tags/MinLength.ts +12 -12
  539. package/src/tags/Minimum.ts +18 -18
  540. package/src/tags/MultipleOf.ts +20 -20
  541. package/src/tags/Pattern.ts +12 -12
  542. package/src/tags/TagBase.ts +76 -76
  543. package/src/tags/Type.ts +32 -32
  544. package/src/tags/UniqueItems.ts +14 -14
  545. package/src/tags/index.ts +18 -18
  546. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  547. package/src/transform.ts +35 -35
  548. package/src/transformers/CallExpressionTransformer.ts +500 -500
  549. package/src/transformers/FileTransformer.ts +91 -91
  550. package/src/transformers/IProject.ts +15 -15
  551. package/src/transformers/ITransformOptions.ts +62 -62
  552. package/src/transformers/ImportTransformer.ts +66 -66
  553. package/src/transformers/NodeTransformer.ts +13 -13
  554. package/src/transformers/TransformerError.ts +55 -55
  555. package/src/transformers/features/AssertTransformer.ts +16 -16
  556. package/src/transformers/features/CreateAssertTransformer.ts +16 -16
  557. package/src/transformers/features/CreateIsTransformer.ts +10 -10
  558. package/src/transformers/features/CreateRandomTransformer.ts +40 -40
  559. package/src/transformers/features/CreateValidateTransformer.ts +13 -13
  560. package/src/transformers/features/IsTransformer.ts +10 -10
  561. package/src/transformers/features/RandomTransformer.ts +44 -44
  562. package/src/transformers/features/ValidateTransformer.ts +11 -11
  563. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  564. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -12
  565. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +11 -11
  566. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +9 -9
  567. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -9
  568. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +9 -9
  569. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -9
  570. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +9 -9
  571. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +9 -9
  572. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +9 -9
  573. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +9 -9
  574. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -12
  575. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +12 -12
  576. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +11 -11
  577. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -10
  578. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +9 -9
  579. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +9 -9
  580. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -9
  581. package/src/transformers/features/http/HttpHeadersTransformer.ts +9 -9
  582. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -9
  583. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +9 -9
  584. package/src/transformers/features/http/HttpIsQueryTransformer.ts +9 -9
  585. package/src/transformers/features/http/HttpParameterTransformer.ts +9 -9
  586. package/src/transformers/features/http/HttpQueryTransformer.ts +9 -9
  587. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -10
  588. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +10 -10
  589. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +9 -9
  590. package/src/transformers/features/json/JsonApplicationTransformer.ts +124 -124
  591. package/src/transformers/features/json/JsonAssertParseTransformer.ts +9 -9
  592. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +10 -10
  593. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +9 -9
  594. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +12 -12
  595. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +9 -9
  596. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +9 -9
  597. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +9 -9
  598. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +11 -11
  599. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +12 -12
  600. package/src/transformers/features/json/JsonIsParseTransformer.ts +9 -9
  601. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +9 -9
  602. package/src/transformers/features/json/JsonStringifyTransformer.ts +9 -9
  603. package/src/transformers/features/json/JsonValidateParseTransformer.ts +9 -9
  604. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +10 -10
  605. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +9 -9
  606. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +9 -9
  607. package/src/transformers/features/misc/MiscCloneTransformer.ts +9 -9
  608. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +9 -9
  609. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +9 -9
  610. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +9 -9
  611. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +9 -9
  612. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +9 -9
  613. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +9 -9
  614. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +11 -11
  615. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +11 -11
  616. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +9 -9
  617. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +9 -9
  618. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +32 -32
  619. package/src/transformers/features/misc/MiscPruneTransformer.ts +9 -9
  620. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +9 -9
  621. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +9 -9
  622. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +15 -15
  623. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +15 -15
  624. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +15 -15
  625. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +15 -15
  626. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +15 -15
  627. package/src/transformers/features/notations/NotationGeneralTransformer.ts +11 -11
  628. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +15 -15
  629. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +15 -15
  630. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +10 -10
  631. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +10 -10
  632. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +12 -12
  633. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +12 -12
  634. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +9 -9
  635. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +9 -9
  636. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +9 -9
  637. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +9 -9
  638. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +12 -12
  639. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +12 -12
  640. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +9 -9
  641. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +9 -9
  642. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +9 -9
  643. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +9 -9
  644. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +33 -33
  645. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +10 -10
  646. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +10 -10
  647. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +62 -62
  648. package/src/transformers/features/reflect/ReflectNameTransformer.ts +66 -66
  649. package/src/transformers/internal/GenericTransformer.ts +104 -104
  650. package/src/typings/Atomic.ts +13 -13
  651. package/src/typings/ClassProperties.ts +5 -5
  652. package/src/typings/Customizable.ts +5 -5
  653. package/src/typings/Equal.ts +18 -18
  654. package/src/typings/IsTuple.ts +9 -9
  655. package/src/typings/NativeClass.ts +23 -23
  656. package/src/typings/OmitNever.ts +3 -3
  657. package/src/typings/ProtobufAtomic.ts +19 -19
  658. package/src/typings/SpecialFields.ts +3 -3
  659. package/src/typings/ValidationPipe.ts +9 -9
  660. package/src/typings/ValueOf.ts +20 -20
  661. package/src/typings/Writable.ts +11 -11
  662. package/src/utils/ArrayUtil.ts +41 -41
  663. package/src/utils/Escaper.ts +46 -46
  664. package/src/utils/MapUtil.ts +12 -12
  665. package/src/utils/NameEncoder.ts +32 -32
  666. package/src/utils/NamingConvention/NamingConvention.ts +89 -89
  667. package/src/utils/NamingConvention/index.ts +1 -1
  668. package/src/utils/PatternUtil.ts +29 -29
  669. package/src/utils/RandomGenerator/RandomGenerator.ts +119 -119
  670. package/src/utils/RandomGenerator/index.ts +1 -1
  671. package/src/utils/Singleton.ts +16 -16
  672. package/src/utils/StringUtil/StringUtil.ts +7 -7
  673. package/src/utils/StringUtil/index.ts +1 -1
package/src/Resolved.ts CHANGED
@@ -1,74 +1,74 @@
1
- import { Equal } from "./typings/Equal";
2
- import { IsTuple } from "./typings/IsTuple";
3
- import { NativeClass } from "./typings/NativeClass";
4
- import { ValueOf } from "./typings/ValueOf";
5
-
6
- /**
7
- * Resolved type erased every methods.
8
- *
9
- * `Resolved` is a type of TMP (Type Meta Programming) type which converts
10
- * its argument as a resolved type that erased every method properties.
11
- *
12
- * If the target argument is a built-in class which returns its origin primitive type
13
- * through the `valueOf()` method like the `String` or `Number`, its return type would
14
- * be the `string` or `number`. Otherwise, the built-in class does not have the
15
- * `valueOf()` method, the return type would be same with the target argument.
16
- *
17
- * Otherwise, the target argument is a type of custom class, all of its custom methods
18
- * would be erased and its prototype would be changed to the primitive `object`.
19
- * Therefore, return type of the TMP type finally be the resolved object.
20
- *
21
- * Before | After
22
- * ------------------------|----------------------------------------
23
- * `Boolean` | `boolean`
24
- * `Number` | `number`
25
- * `BigInt` | `bigint`
26
- * `String` | `string`
27
- * `Class` | `interface`
28
- * Native Class or Others | No change
29
- *
30
- * @template T Target argument type.
31
- * @author Jeongho Nam - https://github.com/samchon
32
- * @author Kyungsu Kang - https://github.com/kakasoo
33
- */
34
- export type Resolved<T> =
35
- Equal<T, ResolvedMain<T>> extends true ? T : ResolvedMain<T>;
36
-
37
- type ResolvedMain<T> = T extends [never]
38
- ? never // (special trick for jsonable | null) type
39
- : ValueOf<T> extends boolean | number | bigint | string
40
- ? ValueOf<T>
41
- : T extends Function
42
- ? never
43
- : T extends object
44
- ? ResolvedObject<T>
45
- : ValueOf<T>;
46
-
47
- type ResolvedObject<T extends object> =
48
- T extends Array<infer U>
49
- ? IsTuple<T> extends true
50
- ? ResolvedTuple<T>
51
- : ResolvedMain<U>[]
52
- : T extends Set<infer U>
53
- ? Set<ResolvedMain<U>>
54
- : T extends Map<infer K, infer V>
55
- ? Map<ResolvedMain<K>, ResolvedMain<V>>
56
- : T extends WeakSet<any> | WeakMap<any, any>
57
- ? never
58
- : T extends NativeClass
59
- ? T
60
- : {
61
- [P in keyof T]: ResolvedMain<T[P]>;
62
- };
63
-
64
- type ResolvedTuple<T extends readonly any[]> = T extends []
65
- ? []
66
- : T extends [infer F]
67
- ? [ResolvedMain<F>]
68
- : T extends [infer F, ...infer Rest extends readonly any[]]
69
- ? [ResolvedMain<F>, ...ResolvedTuple<Rest>]
70
- : T extends [(infer F)?]
71
- ? [ResolvedMain<F>?]
72
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
73
- ? [ResolvedMain<F>?, ...ResolvedTuple<Rest>]
74
- : [];
1
+ import { Equal } from "./typings/Equal";
2
+ import { IsTuple } from "./typings/IsTuple";
3
+ import { NativeClass } from "./typings/NativeClass";
4
+ import { ValueOf } from "./typings/ValueOf";
5
+
6
+ /**
7
+ * Resolved type erased every methods.
8
+ *
9
+ * `Resolved` is a type of TMP (Type Meta Programming) type which converts
10
+ * its argument as a resolved type that erased every method properties.
11
+ *
12
+ * If the target argument is a built-in class which returns its origin primitive type
13
+ * through the `valueOf()` method like the `String` or `Number`, its return type would
14
+ * be the `string` or `number`. Otherwise, the built-in class does not have the
15
+ * `valueOf()` method, the return type would be same with the target argument.
16
+ *
17
+ * Otherwise, the target argument is a type of custom class, all of its custom methods
18
+ * would be erased and its prototype would be changed to the primitive `object`.
19
+ * Therefore, return type of the TMP type finally be the resolved object.
20
+ *
21
+ * Before | After
22
+ * ------------------------|----------------------------------------
23
+ * `Boolean` | `boolean`
24
+ * `Number` | `number`
25
+ * `BigInt` | `bigint`
26
+ * `String` | `string`
27
+ * `Class` | `interface`
28
+ * Native Class or Others | No change
29
+ *
30
+ * @template T Target argument type.
31
+ * @author Jeongho Nam - https://github.com/samchon
32
+ * @author Kyungsu Kang - https://github.com/kakasoo
33
+ */
34
+ export type Resolved<T> =
35
+ Equal<T, ResolvedMain<T>> extends true ? T : ResolvedMain<T>;
36
+
37
+ type ResolvedMain<T> = T extends [never]
38
+ ? never // (special trick for jsonable | null) type
39
+ : ValueOf<T> extends boolean | number | bigint | string
40
+ ? ValueOf<T>
41
+ : T extends Function
42
+ ? never
43
+ : T extends object
44
+ ? ResolvedObject<T>
45
+ : ValueOf<T>;
46
+
47
+ type ResolvedObject<T extends object> =
48
+ T extends Array<infer U>
49
+ ? IsTuple<T> extends true
50
+ ? ResolvedTuple<T>
51
+ : ResolvedMain<U>[]
52
+ : T extends Set<infer U>
53
+ ? Set<ResolvedMain<U>>
54
+ : T extends Map<infer K, infer V>
55
+ ? Map<ResolvedMain<K>, ResolvedMain<V>>
56
+ : T extends WeakSet<any> | WeakMap<any, any>
57
+ ? never
58
+ : T extends NativeClass
59
+ ? T
60
+ : {
61
+ [P in keyof T]: ResolvedMain<T[P]>;
62
+ };
63
+
64
+ type ResolvedTuple<T extends readonly any[]> = T extends []
65
+ ? []
66
+ : T extends [infer F]
67
+ ? [ResolvedMain<F>]
68
+ : T extends [infer F, ...infer Rest extends readonly any[]]
69
+ ? [ResolvedMain<F>, ...ResolvedTuple<Rest>]
70
+ : T extends [(infer F)?]
71
+ ? [ResolvedMain<F>?]
72
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
73
+ ? [ResolvedMain<F>?, ...ResolvedTuple<Rest>]
74
+ : [];
package/src/SnakeCase.ts CHANGED
@@ -1,126 +1,126 @@
1
- import { Equal } from "./typings/Equal";
2
- import { NativeClass } from "./typings/NativeClass";
3
- import { ValueOf } from "./typings/ValueOf";
4
-
5
- /**
6
- * Snake case type.
7
- *
8
- * `SnakeCase` type is a type that all keys of an object are converted to snake case.
9
- *
10
- * It also erase every method properties like {@link Resolved} type.
11
- *
12
- * @template T Target type to be snake cased
13
- * @author Jeongho Nam - https://github.com/samchon
14
- */
15
- export type SnakeCase<T> =
16
- Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
17
-
18
- /* -----------------------------------------------------------
19
- OBJECT CONVERSION
20
- ----------------------------------------------------------- */
21
-
22
- type SnakageMain<T> = T extends [never]
23
- ? never // special trick for (jsonable | null) type
24
- : T extends { valueOf(): boolean | bigint | number | string }
25
- ? ValueOf<T>
26
- : T extends Function
27
- ? never
28
- : T extends object
29
- ? SnakageObject<T>
30
- : T;
31
-
32
- type SnakageObject<T extends object> =
33
- T extends Array<infer U>
34
- ? IsTuple<T> extends true
35
- ? SnakageTuple<T>
36
- : SnakageMain<U>[]
37
- : T extends Set<infer U>
38
- ? Set<SnakageMain<U>>
39
- : T extends Map<infer K, infer V>
40
- ? Map<SnakageMain<K>, SnakageMain<V>>
41
- : T extends WeakSet<any> | WeakMap<any, any>
42
- ? never
43
- : T extends NativeClass
44
- ? T
45
- : {
46
- [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
47
- T[Key]
48
- >;
49
- };
50
-
51
- /* -----------------------------------------------------------
52
- SPECIAL CASES
53
- ----------------------------------------------------------- */
54
- type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
55
- never,
56
- ]
57
- ? false
58
- : T extends readonly any[]
59
- ? number extends T["length"]
60
- ? false
61
- : true
62
- : false;
63
- type SnakageTuple<T extends readonly any[]> = T extends []
64
- ? []
65
- : T extends [infer F]
66
- ? [SnakageMain<F>]
67
- : T extends [infer F, ...infer Rest extends readonly any[]]
68
- ? [SnakageMain<F>, ...SnakageTuple<Rest>]
69
- : T extends [(infer F)?]
70
- ? [SnakageMain<F>?]
71
- : T extends [(infer F)?, ...infer Rest extends readonly any[]]
72
- ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
73
- : [];
74
-
75
- /* -----------------------------------------------------------
76
- STRING CONVERTER
77
- ----------------------------------------------------------- */
78
- type SnakageString<Key extends string> = Key extends `${infer _}`
79
- ? SnakageStringRepeatedly<Key, "">
80
- : Key;
81
- type SnakageStringRepeatedly<
82
- S extends string,
83
- Previous extends string,
84
- > = S extends `${infer First}${infer Second}${infer Rest}`
85
- ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
86
- First,
87
- Second
88
- >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
89
- : S extends `${infer First}`
90
- ? `${Underscore<Previous, First>}${Lowercase<First>}`
91
- : "";
92
- type Underscore<First extends string, Second extends string> = First extends
93
- | UpperAlphabetic
94
- | ""
95
- | "_"
96
- ? ""
97
- : Second extends UpperAlphabetic
98
- ? "_"
99
- : "";
100
- type UpperAlphabetic =
101
- | "A"
102
- | "B"
103
- | "C"
104
- | "D"
105
- | "E"
106
- | "F"
107
- | "G"
108
- | "H"
109
- | "I"
110
- | "J"
111
- | "K"
112
- | "L"
113
- | "M"
114
- | "N"
115
- | "O"
116
- | "P"
117
- | "Q"
118
- | "R"
119
- | "S"
120
- | "T"
121
- | "U"
122
- | "V"
123
- | "W"
124
- | "X"
125
- | "Y"
126
- | "Z";
1
+ import { Equal } from "./typings/Equal";
2
+ import { NativeClass } from "./typings/NativeClass";
3
+ import { ValueOf } from "./typings/ValueOf";
4
+
5
+ /**
6
+ * Snake case type.
7
+ *
8
+ * `SnakeCase` type is a type that all keys of an object are converted to snake case.
9
+ *
10
+ * It also erase every method properties like {@link Resolved} type.
11
+ *
12
+ * @template T Target type to be snake cased
13
+ * @author Jeongho Nam - https://github.com/samchon
14
+ */
15
+ export type SnakeCase<T> =
16
+ Equal<T, SnakageMain<T>> extends true ? T : SnakageMain<T>;
17
+
18
+ /* -----------------------------------------------------------
19
+ OBJECT CONVERSION
20
+ ----------------------------------------------------------- */
21
+
22
+ type SnakageMain<T> = T extends [never]
23
+ ? never // special trick for (jsonable | null) type
24
+ : T extends { valueOf(): boolean | bigint | number | string }
25
+ ? ValueOf<T>
26
+ : T extends Function
27
+ ? never
28
+ : T extends object
29
+ ? SnakageObject<T>
30
+ : T;
31
+
32
+ type SnakageObject<T extends object> =
33
+ T extends Array<infer U>
34
+ ? IsTuple<T> extends true
35
+ ? SnakageTuple<T>
36
+ : SnakageMain<U>[]
37
+ : T extends Set<infer U>
38
+ ? Set<SnakageMain<U>>
39
+ : T extends Map<infer K, infer V>
40
+ ? Map<SnakageMain<K>, SnakageMain<V>>
41
+ : T extends WeakSet<any> | WeakMap<any, any>
42
+ ? never
43
+ : T extends NativeClass
44
+ ? T
45
+ : {
46
+ [Key in keyof T as SnakageString<Key & string>]: SnakageMain<
47
+ T[Key]
48
+ >;
49
+ };
50
+
51
+ /* -----------------------------------------------------------
52
+ SPECIAL CASES
53
+ ----------------------------------------------------------- */
54
+ type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
55
+ never,
56
+ ]
57
+ ? false
58
+ : T extends readonly any[]
59
+ ? number extends T["length"]
60
+ ? false
61
+ : true
62
+ : false;
63
+ type SnakageTuple<T extends readonly any[]> = T extends []
64
+ ? []
65
+ : T extends [infer F]
66
+ ? [SnakageMain<F>]
67
+ : T extends [infer F, ...infer Rest extends readonly any[]]
68
+ ? [SnakageMain<F>, ...SnakageTuple<Rest>]
69
+ : T extends [(infer F)?]
70
+ ? [SnakageMain<F>?]
71
+ : T extends [(infer F)?, ...infer Rest extends readonly any[]]
72
+ ? [SnakageMain<F>?, ...SnakageTuple<Rest>]
73
+ : [];
74
+
75
+ /* -----------------------------------------------------------
76
+ STRING CONVERTER
77
+ ----------------------------------------------------------- */
78
+ type SnakageString<Key extends string> = Key extends `${infer _}`
79
+ ? SnakageStringRepeatedly<Key, "">
80
+ : Key;
81
+ type SnakageStringRepeatedly<
82
+ S extends string,
83
+ Previous extends string,
84
+ > = S extends `${infer First}${infer Second}${infer Rest}`
85
+ ? `${Underscore<Previous, First>}${Lowercase<First>}${Underscore<
86
+ First,
87
+ Second
88
+ >}${Lowercase<Second>}${SnakageStringRepeatedly<Rest, Second>}`
89
+ : S extends `${infer First}`
90
+ ? `${Underscore<Previous, First>}${Lowercase<First>}`
91
+ : "";
92
+ type Underscore<First extends string, Second extends string> = First extends
93
+ | UpperAlphabetic
94
+ | ""
95
+ | "_"
96
+ ? ""
97
+ : Second extends UpperAlphabetic
98
+ ? "_"
99
+ : "";
100
+ type UpperAlphabetic =
101
+ | "A"
102
+ | "B"
103
+ | "C"
104
+ | "D"
105
+ | "E"
106
+ | "F"
107
+ | "G"
108
+ | "H"
109
+ | "I"
110
+ | "J"
111
+ | "K"
112
+ | "L"
113
+ | "M"
114
+ | "N"
115
+ | "O"
116
+ | "P"
117
+ | "Q"
118
+ | "R"
119
+ | "S"
120
+ | "T"
121
+ | "U"
122
+ | "V"
123
+ | "W"
124
+ | "X"
125
+ | "Y"
126
+ | "Z";
@@ -1,37 +1,37 @@
1
- export class TypeGuardError<T = any> extends Error {
2
- public readonly method: string;
3
- public readonly path: string | undefined;
4
- public readonly expected: string;
5
- public readonly value: any;
6
- protected readonly fake_expected_typed_value_?: T | undefined;
7
-
8
- public constructor(props: TypeGuardError.IProps) {
9
- // MESSAGE CONSTRUCTION
10
- super(
11
- props.message ||
12
- `Error on ${props.method}(): invalid type${
13
- props.path ? ` on ${props.path}` : ""
14
- }, expect to be ${props.expected}`,
15
- );
16
-
17
- // INHERITANCE POLYFILL
18
- const proto = new.target.prototype;
19
- if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
20
- else (this as any).__proto__ = proto;
21
-
22
- // ASSIGN MEMBERS
23
- this.method = props.method;
24
- this.path = props.path;
25
- this.expected = props.expected;
26
- this.value = props.value;
27
- }
28
- }
29
- export namespace TypeGuardError {
30
- export interface IProps {
31
- method: string;
32
- path?: undefined | string;
33
- expected: string;
34
- value: any;
35
- message?: undefined | string;
36
- }
37
- }
1
+ export class TypeGuardError<T = any> extends Error {
2
+ public readonly method: string;
3
+ public readonly path: string | undefined;
4
+ public readonly expected: string;
5
+ public readonly value: any;
6
+ protected readonly fake_expected_typed_value_?: T | undefined;
7
+
8
+ public constructor(props: TypeGuardError.IProps) {
9
+ // MESSAGE CONSTRUCTION
10
+ super(
11
+ props.message ||
12
+ `Error on ${props.method}(): invalid type${
13
+ props.path ? ` on ${props.path}` : ""
14
+ }, expect to be ${props.expected}`,
15
+ );
16
+
17
+ // INHERITANCE POLYFILL
18
+ const proto = new.target.prototype;
19
+ if (Object.setPrototypeOf) Object.setPrototypeOf(this, proto);
20
+ else (this as any).__proto__ = proto;
21
+
22
+ // ASSIGN MEMBERS
23
+ this.method = props.method;
24
+ this.path = props.path;
25
+ this.expected = props.expected;
26
+ this.value = props.value;
27
+ }
28
+ }
29
+ export namespace TypeGuardError {
30
+ export interface IProps {
31
+ method: string;
32
+ path?: undefined | string;
33
+ expected: string;
34
+ value: any;
35
+ message?: undefined | string;
36
+ }
37
+ }
@@ -1,83 +1,83 @@
1
- import fs from "fs";
2
-
3
- import { TypiaProgrammer } from "../programmers/TypiaProgrammer";
4
-
5
- import { ArgumentParser } from "./setup/ArgumentParser";
6
- import { PackageManager } from "./setup/PackageManager";
7
-
8
- export namespace TypiaGenerateWizard {
9
- export async function generate(): Promise<void> {
10
- console.log("----------------------------------------");
11
- console.log(" Typia Generate Wizard");
12
- console.log("----------------------------------------");
13
-
14
- // LOAD PACKAGE.JSON INFO
15
- const pack: PackageManager = await PackageManager.mount();
16
- const options: IArguments = await ArgumentParser.parse(pack)(inquiry);
17
- await TypiaProgrammer.build(options);
18
- }
19
-
20
- const inquiry: ArgumentParser.Inquiry<IArguments> = async (
21
- _pack,
22
- command,
23
- prompt,
24
- action,
25
- ) => {
26
- // PREPARE ASSETS
27
- command.option("--input [path]", "input directory");
28
- command.option("--output [directory]", "output directory");
29
- command.option("--project [project]", "tsconfig.json file location");
30
-
31
- const questioned = { value: false };
32
-
33
- const input = (name: string) => async (message: string) => {
34
- const result = await prompt()({
35
- type: "input",
36
- name,
37
- message,
38
- default: "",
39
- });
40
- return result[name] as string;
41
- };
42
- const select =
43
- (name: string) =>
44
- (message: string) =>
45
- async <Choice extends string>(choices: Choice[]): Promise<Choice> => {
46
- questioned.value = true;
47
- return (
48
- await prompt()({
49
- type: "list",
50
- name: name,
51
- message: message,
52
- choices: choices,
53
- })
54
- )[name];
55
- };
56
- const configure = async (): Promise<string> => {
57
- const files: string[] = await (
58
- await fs.promises.readdir(process.cwd())
59
- ).filter(
60
- (str) =>
61
- str.substring(0, 8) === "tsconfig" &&
62
- str.substring(str.length - 5) === ".json",
63
- );
64
- if (files.length === 0)
65
- throw new URIError(`Unable to find "tsconfig.json" file.`);
66
- else if (files.length === 1) return files[0]!;
67
- return select("tsconfig")("TS Config File")(files);
68
- };
69
-
70
- return action(async (options) => {
71
- options.input ??= await input("input")("input directory");
72
- options.output ??= await input("output")("output directory");
73
- options.project ??= await configure();
74
- return options as IArguments;
75
- });
76
- };
77
-
78
- export interface IArguments {
79
- input: string;
80
- output: string;
81
- project: string;
82
- }
83
- }
1
+ import fs from "fs";
2
+
3
+ import { TypiaProgrammer } from "../programmers/TypiaProgrammer";
4
+
5
+ import { ArgumentParser } from "./setup/ArgumentParser";
6
+ import { PackageManager } from "./setup/PackageManager";
7
+
8
+ export namespace TypiaGenerateWizard {
9
+ export async function generate(): Promise<void> {
10
+ console.log("----------------------------------------");
11
+ console.log(" Typia Generate Wizard");
12
+ console.log("----------------------------------------");
13
+
14
+ // LOAD PACKAGE.JSON INFO
15
+ const pack: PackageManager = await PackageManager.mount();
16
+ const options: IArguments = await ArgumentParser.parse(pack)(inquiry);
17
+ await TypiaProgrammer.build(options);
18
+ }
19
+
20
+ const inquiry: ArgumentParser.Inquiry<IArguments> = async (
21
+ _pack,
22
+ command,
23
+ prompt,
24
+ action,
25
+ ) => {
26
+ // PREPARE ASSETS
27
+ command.option("--input [path]", "input directory");
28
+ command.option("--output [directory]", "output directory");
29
+ command.option("--project [project]", "tsconfig.json file location");
30
+
31
+ const questioned = { value: false };
32
+
33
+ const input = (name: string) => async (message: string) => {
34
+ const result = await prompt()({
35
+ type: "input",
36
+ name,
37
+ message,
38
+ default: "",
39
+ });
40
+ return result[name] as string;
41
+ };
42
+ const select =
43
+ (name: string) =>
44
+ (message: string) =>
45
+ async <Choice extends string>(choices: Choice[]): Promise<Choice> => {
46
+ questioned.value = true;
47
+ return (
48
+ await prompt()({
49
+ type: "list",
50
+ name: name,
51
+ message: message,
52
+ choices: choices,
53
+ })
54
+ )[name];
55
+ };
56
+ const configure = async (): Promise<string> => {
57
+ const files: string[] = await (
58
+ await fs.promises.readdir(process.cwd())
59
+ ).filter(
60
+ (str) =>
61
+ str.substring(0, 8) === "tsconfig" &&
62
+ str.substring(str.length - 5) === ".json",
63
+ );
64
+ if (files.length === 0)
65
+ throw new URIError(`Unable to find "tsconfig.json" file.`);
66
+ else if (files.length === 1) return files[0]!;
67
+ return select("tsconfig")("TS Config File")(files);
68
+ };
69
+
70
+ return action(async (options) => {
71
+ options.input ??= await input("input")("input directory");
72
+ options.output ??= await input("output")("output directory");
73
+ options.project ??= await configure();
74
+ return options as IArguments;
75
+ });
76
+ };
77
+
78
+ export interface IArguments {
79
+ input: string;
80
+ output: string;
81
+ project: string;
82
+ }
83
+ }