typia 6.0.0-dev.20240122 → 6.0.0

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 (853) hide show
  1. package/README.md +2 -1
  2. package/lib/CamelCase.d.ts +2 -2
  3. package/lib/IRandomGenerator.d.ts +19 -5
  4. package/lib/PascalCase.d.ts +2 -2
  5. package/lib/Resolved.d.ts +1 -1
  6. package/lib/SnakeCase.d.ts +1 -1
  7. package/lib/TypeGuardError.js +4 -1
  8. package/lib/TypeGuardError.js.map +1 -1
  9. package/lib/executable/TypiaGenerateWizard.js +24 -23
  10. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  11. package/lib/executable/TypiaPatchWizard.js +9 -9
  12. package/lib/executable/TypiaPatchWizard.js.map +1 -1
  13. package/lib/executable/TypiaSetupWizard.js +31 -22
  14. package/lib/executable/TypiaSetupWizard.js.map +1 -1
  15. package/lib/executable/setup/ArgumentParser.js +5 -5
  16. package/lib/executable/setup/ArgumentParser.js.map +1 -1
  17. package/lib/executable/setup/PackageManager.js +8 -8
  18. package/lib/executable/setup/PackageManager.js.map +1 -1
  19. package/lib/executable/setup/PluginConfigurator.js +5 -4
  20. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  21. package/lib/executable/typia.js +21 -21
  22. package/lib/executable/typia.js.map +1 -1
  23. package/lib/factories/CommentFactory.js +2 -0
  24. package/lib/factories/CommentFactory.js.map +1 -1
  25. package/lib/factories/IdentifierFactory.d.ts +1 -1
  26. package/lib/factories/IdentifierFactory.js +2 -0
  27. package/lib/factories/IdentifierFactory.js.map +1 -1
  28. package/lib/factories/LiteralFactory.js +1 -0
  29. package/lib/factories/LiteralFactory.js.map +1 -1
  30. package/lib/factories/MetadataCollection.js +19 -1
  31. package/lib/factories/MetadataCollection.js.map +1 -1
  32. package/lib/factories/MetadataCommentTagFactory.js +79 -39
  33. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  34. package/lib/factories/MetadataFactory.js +9 -1
  35. package/lib/factories/MetadataFactory.js.map +1 -1
  36. package/lib/factories/MetadataTypeTagFactory.js +61 -17
  37. package/lib/factories/MetadataTypeTagFactory.js.map +1 -1
  38. package/lib/factories/MetadataTypeTagSchemaFactory.d.ts +4 -0
  39. package/lib/factories/MetadataTypeTagSchemaFactory.js +84 -0
  40. package/lib/factories/MetadataTypeTagSchemaFactory.js.map +1 -0
  41. package/lib/factories/ProtobufFactory.js +46 -1
  42. package/lib/factories/ProtobufFactory.js.map +1 -1
  43. package/lib/factories/TypeFactory.js +9 -0
  44. package/lib/factories/TypeFactory.js.map +1 -1
  45. package/lib/factories/internal/metadata/MetadataHelper.js +7 -1
  46. package/lib/factories/internal/metadata/MetadataHelper.js.map +1 -1
  47. package/lib/factories/internal/metadata/emend_metadata_atomics.js +15 -5
  48. package/lib/factories/internal/metadata/emend_metadata_atomics.js.map +1 -1
  49. package/lib/factories/internal/metadata/emplace_metadata_alias.js +2 -0
  50. package/lib/factories/internal/metadata/emplace_metadata_alias.js.map +1 -1
  51. package/lib/factories/internal/metadata/emplace_metadata_array_type.js +2 -0
  52. package/lib/factories/internal/metadata/emplace_metadata_array_type.js.map +1 -1
  53. package/lib/factories/internal/metadata/emplace_metadata_object.js +18 -2
  54. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  55. package/lib/factories/internal/metadata/emplace_metadata_tuple.js +4 -0
  56. package/lib/factories/internal/metadata/emplace_metadata_tuple.js.map +1 -1
  57. package/lib/factories/internal/metadata/explore_metadata.js +2 -0
  58. package/lib/factories/internal/metadata/explore_metadata.js.map +1 -1
  59. package/lib/factories/internal/metadata/iterate_metadata.js +4 -2
  60. package/lib/factories/internal/metadata/iterate_metadata.js.map +1 -1
  61. package/lib/factories/internal/metadata/iterate_metadata_alias.js +1 -0
  62. package/lib/factories/internal/metadata/iterate_metadata_alias.js.map +1 -1
  63. package/lib/factories/internal/metadata/iterate_metadata_array.js +54 -1
  64. package/lib/factories/internal/metadata/iterate_metadata_array.js.map +1 -1
  65. package/lib/factories/internal/metadata/iterate_metadata_atomic.js +2 -0
  66. package/lib/factories/internal/metadata/iterate_metadata_atomic.js.map +1 -1
  67. package/lib/factories/internal/metadata/iterate_metadata_constant.js +9 -2
  68. package/lib/factories/internal/metadata/iterate_metadata_constant.js.map +1 -1
  69. package/lib/factories/internal/metadata/{iterate_metadata_resolve.d.ts → iterate_metadata_escape.d.ts} +1 -1
  70. package/lib/factories/internal/metadata/{iterate_metadata_resolve.js → iterate_metadata_escape.js} +4 -4
  71. package/lib/factories/internal/metadata/iterate_metadata_escape.js.map +1 -0
  72. package/lib/factories/internal/metadata/iterate_metadata_intersection.js +49 -138
  73. package/lib/factories/internal/metadata/iterate_metadata_intersection.js.map +1 -1
  74. package/lib/factories/internal/metadata/iterate_metadata_native.js +20 -21
  75. package/lib/factories/internal/metadata/iterate_metadata_native.js.map +1 -1
  76. package/lib/factories/internal/metadata/iterate_metadata_object.js.map +1 -1
  77. package/lib/factories/internal/metadata/iterate_metadata_sort.js +49 -23
  78. package/lib/factories/internal/metadata/iterate_metadata_sort.js.map +1 -1
  79. package/lib/factories/internal/metadata/iterate_metadata_template.js +2 -0
  80. package/lib/factories/internal/metadata/iterate_metadata_template.js.map +1 -1
  81. package/lib/functional/$FormDataReader/$FormDataReader.d.ts +7 -0
  82. package/lib/functional/$FormDataReader/$FormDataReader.js +86 -0
  83. package/lib/functional/$FormDataReader/$FormDataReader.js.map +1 -0
  84. package/lib/functional/$FormDataReader/index.d.ts +1 -0
  85. package/lib/functional/$FormDataReader/index.js +28 -0
  86. package/lib/functional/$FormDataReader/index.js.map +1 -0
  87. package/lib/functional/$HeadersReader/$HeadersReader.d.ts +4 -0
  88. package/lib/functional/$HeadersReader/$HeadersReader.js +36 -0
  89. package/lib/functional/$HeadersReader/$HeadersReader.js.map +1 -0
  90. package/lib/functional/$HeadersReader/index.d.ts +1 -0
  91. package/lib/functional/$HeadersReader/index.js +28 -0
  92. package/lib/functional/$HeadersReader/index.js.map +1 -0
  93. package/lib/functional/$ParameterReader/$ParameterReader.d.ts +4 -0
  94. package/lib/functional/$ParameterReader/$ParameterReader.js +36 -0
  95. package/lib/functional/$ParameterReader/$ParameterReader.js.map +1 -0
  96. package/lib/functional/$ParameterReader/index.d.ts +1 -0
  97. package/lib/functional/$ParameterReader/index.js +28 -0
  98. package/lib/functional/$ParameterReader/index.js.map +1 -0
  99. package/lib/functional/$ProtobufReader.d.ts +35 -1
  100. package/lib/functional/$ProtobufReader.js +13 -11
  101. package/lib/functional/$ProtobufReader.js.map +1 -1
  102. package/lib/functional/$ProtobufSizer.d.ts +36 -1
  103. package/lib/functional/$ProtobufSizer.js +28 -13
  104. package/lib/functional/$ProtobufSizer.js.map +1 -1
  105. package/lib/functional/$ProtobufWriter.d.ts +45 -1
  106. package/lib/functional/$ProtobufWriter.js +11 -9
  107. package/lib/functional/$ProtobufWriter.js.map +1 -1
  108. package/lib/functional/$QueryReader/$QueryReader.d.ts +6 -0
  109. package/lib/functional/$QueryReader/$QueryReader.js +55 -0
  110. package/lib/functional/$QueryReader/$QueryReader.js.map +1 -0
  111. package/lib/functional/$QueryReader/index.d.ts +1 -0
  112. package/lib/functional/$QueryReader/index.js +28 -0
  113. package/lib/functional/$QueryReader/index.js.map +1 -0
  114. package/lib/functional/$any.d.ts +1 -0
  115. package/lib/functional/$any.js +9 -0
  116. package/lib/functional/$any.js.map +1 -0
  117. package/lib/functional/$clone.d.ts +2 -1
  118. package/lib/functional/$clone.js +1 -1
  119. package/lib/functional/$clone.js.map +1 -1
  120. package/lib/functional/$convention.d.ts +1 -1
  121. package/lib/functional/$convention.js.map +1 -1
  122. package/lib/functional/$dictionary.d.ts +2 -0
  123. package/lib/functional/$dictionary.js +18 -0
  124. package/lib/functional/$dictionary.js.map +1 -0
  125. package/lib/functional/$every.d.ts +2 -0
  126. package/lib/functional/$every.js +12 -0
  127. package/lib/functional/$every.js.map +1 -0
  128. package/lib/functional/$guard.js +5 -2
  129. package/lib/functional/$guard.js.map +1 -1
  130. package/lib/functional/$is_between.d.ts +1 -1
  131. package/lib/functional/$is_between.js.map +1 -1
  132. package/lib/functional/$join.d.ts +1 -1
  133. package/lib/functional/$join.js.map +1 -1
  134. package/lib/functional/$number.d.ts +1 -1
  135. package/lib/functional/$number.js.map +1 -1
  136. package/lib/functional/$report.d.ts +2 -1
  137. package/lib/functional/$report.js.map +1 -1
  138. package/lib/functional/$rest.d.ts +1 -1
  139. package/lib/functional/$rest.js.map +1 -1
  140. package/lib/functional/$stoll.d.ts +1 -1
  141. package/lib/functional/$stoll.js.map +1 -1
  142. package/lib/functional/$string.js +20 -9
  143. package/lib/functional/$string.js.map +1 -1
  144. package/lib/functional/$strlen.d.ts +1 -1
  145. package/lib/functional/$strlen.js.map +1 -1
  146. package/lib/functional/$tail.js +3 -0
  147. package/lib/functional/$tail.js.map +1 -1
  148. package/lib/functional/$throws.d.ts +2 -1
  149. package/lib/functional/$throws.js.map +1 -1
  150. package/lib/functional/$varint.d.ts +6 -0
  151. package/lib/functional/$varint.js +100 -0
  152. package/lib/functional/$varint.js.map +1 -0
  153. package/lib/functional/$zigzag.d.ts +4 -0
  154. package/lib/functional/$zigzag.js +36 -0
  155. package/lib/functional/$zigzag.js.map +1 -0
  156. package/lib/functional/IProtobufWriter.d.ts +15 -1
  157. package/lib/functional/Namespace/functional.d.ts +4 -0
  158. package/lib/functional/Namespace/functional.js +9 -0
  159. package/lib/functional/Namespace/functional.js.map +1 -0
  160. package/lib/functional/Namespace/http.d.ts +8 -0
  161. package/lib/functional/Namespace/http.js +16 -0
  162. package/lib/functional/Namespace/http.js.map +1 -0
  163. package/lib/functional/Namespace/index.d.ts +30 -0
  164. package/lib/functional/Namespace/index.js +85 -0
  165. package/lib/functional/Namespace/index.js.map +1 -0
  166. package/lib/functional/Namespace/json.d.ts +9 -0
  167. package/lib/functional/Namespace/json.js +23 -0
  168. package/lib/functional/Namespace/json.js.map +1 -0
  169. package/lib/functional/Namespace/misc.d.ts +11 -0
  170. package/lib/functional/Namespace/misc.js +22 -0
  171. package/lib/functional/Namespace/misc.js.map +1 -0
  172. package/lib/functional/Namespace/notations.d.ts +18 -0
  173. package/lib/functional/Namespace/notations.js +26 -0
  174. package/lib/functional/Namespace/notations.js.map +1 -0
  175. package/lib/functional/Namespace/protobuf.d.ts +17 -0
  176. package/lib/functional/Namespace/protobuf.js +25 -0
  177. package/lib/functional/Namespace/protobuf.js.map +1 -0
  178. package/lib/functional/is.js +14 -0
  179. package/lib/functional/is.js.map +1 -0
  180. package/lib/functional.d.ts +526 -0
  181. package/lib/functional.js +195 -0
  182. package/lib/functional.js.map +1 -0
  183. package/lib/http.d.ts +265 -369
  184. package/lib/http.js +226 -19
  185. package/lib/http.js.map +1 -1
  186. package/lib/json.d.ts +81 -58
  187. package/lib/json.js +109 -14
  188. package/lib/json.js.map +1 -1
  189. package/lib/misc.d.ts +81 -38
  190. package/lib/misc.js +133 -16
  191. package/lib/misc.js.map +1 -1
  192. package/lib/module.d.ts +91 -38
  193. package/lib/module.js +102 -21
  194. package/lib/module.js.map +1 -1
  195. package/lib/notations.d.ts +106 -45
  196. package/lib/notations.js +188 -24
  197. package/lib/notations.js.map +1 -1
  198. package/lib/programmers/AssertProgrammer.d.ts +6 -1
  199. package/lib/programmers/AssertProgrammer.js +48 -5
  200. package/lib/programmers/AssertProgrammer.js.map +1 -1
  201. package/lib/programmers/CheckerProgrammer.js +57 -2
  202. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  203. package/lib/programmers/FeatureProgrammer.js +11 -0
  204. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  205. package/lib/programmers/IsProgrammer.js +10 -1
  206. package/lib/programmers/IsProgrammer.js.map +1 -1
  207. package/lib/programmers/RandomProgrammer.js +49 -4
  208. package/lib/programmers/RandomProgrammer.js.map +1 -1
  209. package/lib/programmers/TypiaProgrammer.js +41 -44
  210. package/lib/programmers/TypiaProgrammer.js.map +1 -1
  211. package/lib/programmers/ValidateProgrammer.js +5 -5
  212. package/lib/programmers/ValidateProgrammer.js.map +1 -1
  213. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.d.ts +14 -0
  214. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +81 -0
  215. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -0
  216. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.d.ts +7 -0
  217. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +75 -0
  218. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -0
  219. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.d.ts +10 -0
  220. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js +46 -0
  221. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.js.map +1 -0
  222. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.d.ts +7 -0
  223. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js +68 -0
  224. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.js.map +1 -0
  225. package/lib/programmers/functional/FunctionalIsParametersProgrammer.d.ts +7 -0
  226. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js +72 -0
  227. package/lib/programmers/functional/FunctionalIsParametersProgrammer.js.map +1 -0
  228. package/lib/programmers/functional/FunctionalIsReturnProgrammer.d.ts +10 -0
  229. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +46 -0
  230. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -0
  231. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.d.ts +11 -0
  232. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js +74 -0
  233. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.js.map +1 -0
  234. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.d.ts +7 -0
  235. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +98 -0
  236. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -0
  237. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.d.ts +10 -0
  238. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +53 -0
  239. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -0
  240. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.d.ts +9 -0
  241. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.js +25 -0
  242. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.js.map +1 -0
  243. package/lib/programmers/helpers/AtomicPredicator.js +2 -3
  244. package/lib/programmers/helpers/AtomicPredicator.js.map +1 -1
  245. package/lib/programmers/helpers/FunctionImporeter.d.ts +1 -0
  246. package/lib/programmers/helpers/FunctionImporeter.js +18 -0
  247. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -0
  248. package/lib/programmers/helpers/FunctionImporter.d.ts +2 -2
  249. package/lib/programmers/helpers/FunctionImporter.js +8 -24
  250. package/lib/programmers/helpers/FunctionImporter.js.map +1 -1
  251. package/lib/programmers/helpers/ProtobufUtil.js +2 -2
  252. package/lib/programmers/helpers/ProtobufUtil.js.map +1 -1
  253. package/lib/programmers/helpers/PruneJoiner.js +9 -5
  254. package/lib/programmers/helpers/PruneJoiner.js.map +1 -1
  255. package/lib/programmers/helpers/RandomJoiner.js +2 -0
  256. package/lib/programmers/helpers/RandomJoiner.js.map +1 -1
  257. package/lib/programmers/helpers/RandomRanger.js +8 -0
  258. package/lib/programmers/helpers/RandomRanger.js.map +1 -1
  259. package/lib/programmers/helpers/StringifyJoinder.js +5 -1
  260. package/lib/programmers/helpers/StringifyJoinder.js.map +1 -1
  261. package/lib/programmers/helpers/UnionExplorer.js +10 -0
  262. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  263. package/lib/programmers/helpers/UnionPredicator.js +5 -0
  264. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  265. package/lib/programmers/helpers/disable_function_importer_declare.js +2 -4
  266. package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
  267. package/lib/programmers/http/HttpAssertFormDataProgrammer.d.ts +6 -0
  268. package/lib/programmers/http/HttpAssertFormDataProgrammer.js +47 -0
  269. package/lib/programmers/http/HttpAssertFormDataProgrammer.js.map +1 -0
  270. package/lib/programmers/http/HttpAssertHeadersProgrammer.d.ts +1 -1
  271. package/lib/programmers/http/HttpAssertHeadersProgrammer.js +9 -3
  272. package/lib/programmers/http/HttpAssertHeadersProgrammer.js.map +1 -1
  273. package/lib/programmers/http/HttpAssertQueryProgrammer.d.ts +1 -1
  274. package/lib/programmers/http/HttpAssertQueryProgrammer.js +9 -3
  275. package/lib/programmers/http/HttpAssertQueryProgrammer.js.map +1 -1
  276. package/lib/programmers/http/HttpFormDataProgrammer.d.ts +9 -0
  277. package/lib/programmers/http/HttpFormDataProgrammer.js +193 -0
  278. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -0
  279. package/lib/programmers/http/HttpHeadersProgrammer.js +27 -9
  280. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  281. package/lib/programmers/http/HttpIsFormDataProgrammer.d.ts +6 -0
  282. package/lib/programmers/http/HttpIsFormDataProgrammer.js +47 -0
  283. package/lib/programmers/http/HttpIsFormDataProgrammer.js.map +1 -0
  284. package/lib/programmers/http/HttpIsHeadersProgrammer.js +5 -3
  285. package/lib/programmers/http/HttpIsHeadersProgrammer.js.map +1 -1
  286. package/lib/programmers/http/HttpIsQueryProgrammer.js +5 -3
  287. package/lib/programmers/http/HttpIsQueryProgrammer.js.map +1 -1
  288. package/lib/programmers/http/HttpParameterProgrammer.js +4 -2
  289. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  290. package/lib/programmers/http/HttpQueryProgrammer.js +20 -5
  291. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  292. package/lib/programmers/http/HttpValidateFormDataProgrammer.d.ts +6 -0
  293. package/lib/programmers/http/HttpValidateFormDataProgrammer.js +41 -0
  294. package/lib/programmers/http/HttpValidateFormDataProgrammer.js.map +1 -0
  295. package/lib/programmers/http/HttpValidateHeadersProgrammer.js +2 -2
  296. package/lib/programmers/http/HttpValidateHeadersProgrammer.js.map +1 -1
  297. package/lib/programmers/http/HttpValidateQueryProgrammer.js +2 -2
  298. package/lib/programmers/http/HttpValidateQueryProgrammer.js.map +1 -1
  299. package/lib/programmers/internal/application_array.js +10 -99
  300. package/lib/programmers/internal/application_array.js.map +1 -1
  301. package/lib/programmers/internal/application_boolean.js +8 -32
  302. package/lib/programmers/internal/application_boolean.js.map +1 -1
  303. package/lib/programmers/internal/application_escaped.d.ts +1 -4
  304. package/lib/programmers/internal/application_escaped.js +29 -22
  305. package/lib/programmers/internal/application_escaped.js.map +1 -1
  306. package/lib/programmers/internal/application_number.js +8 -137
  307. package/lib/programmers/internal/application_number.js.map +1 -1
  308. package/lib/programmers/internal/application_plugin.js +55 -0
  309. package/lib/programmers/internal/application_plugin.js.map +1 -0
  310. package/lib/programmers/internal/application_string.js +8 -107
  311. package/lib/programmers/internal/application_string.js.map +1 -1
  312. package/lib/programmers/internal/application_templates.js +7 -8
  313. package/lib/programmers/internal/application_templates.js.map +1 -1
  314. package/lib/programmers/internal/application_v30_alias.js +44 -0
  315. package/lib/programmers/internal/application_v30_alias.js.map +1 -0
  316. package/lib/programmers/internal/application_v30_constant.js +13 -0
  317. package/lib/programmers/internal/application_v30_constant.js.map +1 -0
  318. package/lib/programmers/internal/application_v30_native.js +34 -0
  319. package/lib/programmers/internal/application_v30_native.js.map +1 -0
  320. package/lib/programmers/internal/application_v30_object.js +154 -0
  321. package/lib/programmers/internal/application_v30_object.js.map +1 -0
  322. package/lib/programmers/internal/application_v30_schema.js +228 -0
  323. package/lib/programmers/internal/application_v30_schema.js.map +1 -0
  324. package/lib/programmers/internal/application_v30_tuple.js +33 -0
  325. package/lib/programmers/internal/application_v30_tuple.js.map +1 -0
  326. package/lib/programmers/internal/application_v31_alias.js +38 -0
  327. package/lib/programmers/internal/application_v31_alias.js.map +1 -0
  328. package/lib/programmers/internal/application_v31_constant.js +19 -0
  329. package/lib/programmers/internal/application_v31_constant.js.map +1 -0
  330. package/lib/programmers/internal/application_v31_native.js +29 -0
  331. package/lib/programmers/internal/application_v31_native.js.map +1 -0
  332. package/lib/programmers/internal/application_v31_object.js +146 -0
  333. package/lib/programmers/internal/application_v31_object.js.map +1 -0
  334. package/lib/programmers/internal/application_v31_schema.js +224 -0
  335. package/lib/programmers/internal/application_v31_schema.js.map +1 -0
  336. package/lib/programmers/internal/application_v31_tuple.js +22 -0
  337. package/lib/programmers/internal/application_v31_tuple.js.map +1 -0
  338. package/lib/programmers/internal/check_array_length.js +3 -0
  339. package/lib/programmers/internal/check_array_length.js.map +1 -1
  340. package/lib/programmers/internal/check_bigint.js +6 -0
  341. package/lib/programmers/internal/check_bigint.js.map +1 -1
  342. package/lib/programmers/internal/check_dynamic_key.js +7 -1
  343. package/lib/programmers/internal/check_dynamic_key.js.map +1 -1
  344. package/lib/programmers/internal/check_dynamic_properties.js +29 -4
  345. package/lib/programmers/internal/check_dynamic_properties.js.map +1 -1
  346. package/lib/programmers/internal/check_everything.js +3 -0
  347. package/lib/programmers/internal/check_everything.js.map +1 -1
  348. package/lib/programmers/internal/check_native.js +3 -0
  349. package/lib/programmers/internal/check_native.js.map +1 -1
  350. package/lib/programmers/internal/check_number.js +8 -1
  351. package/lib/programmers/internal/check_number.js.map +1 -1
  352. package/lib/programmers/internal/check_object.js +9 -0
  353. package/lib/programmers/internal/check_object.js.map +1 -1
  354. package/lib/programmers/internal/check_string.js +6 -0
  355. package/lib/programmers/internal/check_string.js.map +1 -1
  356. package/lib/programmers/internal/check_template.js +7 -1
  357. package/lib/programmers/internal/check_template.js.map +1 -1
  358. package/lib/programmers/internal/check_union_array_like.js +4 -0
  359. package/lib/programmers/internal/check_union_array_like.js.map +1 -1
  360. package/lib/programmers/internal/decode_union_object.js +52 -10
  361. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  362. package/lib/programmers/internal/feature_object_entries.js +3 -0
  363. package/lib/programmers/internal/feature_object_entries.js.map +1 -1
  364. package/lib/programmers/internal/metadata_to_pattern.js +10 -4
  365. package/lib/programmers/internal/metadata_to_pattern.js.map +1 -1
  366. package/lib/programmers/internal/prune_object_properties.js +3 -0
  367. package/lib/programmers/internal/prune_object_properties.js.map +1 -1
  368. package/lib/programmers/internal/random_custom.js +3 -0
  369. package/lib/programmers/internal/random_custom.js.map +1 -1
  370. package/lib/programmers/internal/stringify_dynamic_properties.js +11 -0
  371. package/lib/programmers/internal/stringify_dynamic_properties.js.map +1 -1
  372. package/lib/programmers/internal/stringify_native.js +3 -0
  373. package/lib/programmers/internal/stringify_native.js.map +1 -1
  374. package/lib/programmers/internal/stringify_regular_properties.js +7 -0
  375. package/lib/programmers/internal/stringify_regular_properties.js.map +1 -1
  376. package/lib/programmers/internal/template_to_pattern.js +3 -0
  377. package/lib/programmers/internal/template_to_pattern.js.map +1 -1
  378. package/lib/programmers/json/JsonApplicationProgrammer.d.ts +2 -5
  379. package/lib/programmers/json/JsonApplicationProgrammer.js +85 -34
  380. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  381. package/lib/programmers/json/JsonAssertParseProgrammer.d.ts +1 -1
  382. package/lib/programmers/json/JsonAssertParseProgrammer.js +11 -3
  383. package/lib/programmers/json/JsonAssertParseProgrammer.js.map +1 -1
  384. package/lib/programmers/json/JsonAssertStringifyProgrammer.d.ts +1 -1
  385. package/lib/programmers/json/JsonAssertStringifyProgrammer.js +9 -3
  386. package/lib/programmers/json/JsonAssertStringifyProgrammer.js.map +1 -1
  387. package/lib/programmers/json/JsonIsParseProgrammer.js +3 -1
  388. package/lib/programmers/json/JsonIsParseProgrammer.js.map +1 -1
  389. package/lib/programmers/json/JsonStringifyProgrammer.js +43 -4
  390. package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
  391. package/lib/programmers/misc/MiscAssertCloneProgrammer.d.ts +1 -1
  392. package/lib/programmers/misc/MiscAssertCloneProgrammer.js +11 -3
  393. package/lib/programmers/misc/MiscAssertCloneProgrammer.js.map +1 -1
  394. package/lib/programmers/misc/MiscAssertPruneProgrammer.d.ts +1 -1
  395. package/lib/programmers/misc/MiscAssertPruneProgrammer.js +9 -3
  396. package/lib/programmers/misc/MiscAssertPruneProgrammer.js.map +1 -1
  397. package/lib/programmers/misc/MiscCloneProgrammer.js +30 -4
  398. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  399. package/lib/programmers/misc/MiscIsCloneProgrammer.js +3 -1
  400. package/lib/programmers/misc/MiscIsCloneProgrammer.js.map +1 -1
  401. package/lib/programmers/misc/MiscLiteralsProgrammer.js +1 -2
  402. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  403. package/lib/programmers/misc/MiscPruneProgrammer.js +21 -1
  404. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  405. package/lib/programmers/notations/NotationAssertGeneralProgrammer.d.ts +1 -1
  406. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js +9 -3
  407. package/lib/programmers/notations/NotationAssertGeneralProgrammer.js.map +1 -1
  408. package/lib/programmers/notations/NotationGeneralProgrammer.js +189 -175
  409. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  410. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.d.ts +1 -1
  411. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js +9 -3
  412. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.js.map +1 -1
  413. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.d.ts +1 -1
  414. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js +9 -3
  415. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.js.map +1 -1
  416. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js +16 -4
  417. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.js.map +1 -1
  418. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +39 -19
  419. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  420. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js +3 -1
  421. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.js.map +1 -1
  422. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +7 -1
  423. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  424. package/lib/protobuf.d.ts +72 -31
  425. package/lib/protobuf.js +136 -16
  426. package/lib/protobuf.js.map +1 -1
  427. package/lib/reflect.d.ts +4 -2
  428. package/lib/reflect.js +8 -1
  429. package/lib/reflect.js.map +1 -1
  430. package/lib/schemas/json/IJsonApplication.d.ts +13 -7
  431. package/lib/schemas/metadata/IMetadataConstant.d.ts +2 -1
  432. package/lib/schemas/metadata/IMetadataConstantValue.d.ts +6 -0
  433. package/lib/schemas/metadata/IMetadataConstantValue.js +3 -0
  434. package/lib/schemas/metadata/IMetadataConstantValue.js.map +1 -0
  435. package/lib/schemas/metadata/IMetadataTypeTag.d.ts +1 -0
  436. package/lib/schemas/metadata/Metadata.d.ts +1 -1
  437. package/lib/schemas/metadata/Metadata.js +84 -8
  438. package/lib/schemas/metadata/Metadata.js.map +1 -1
  439. package/lib/schemas/metadata/MetadataAlias.js +13 -1
  440. package/lib/schemas/metadata/MetadataAlias.js.map +1 -1
  441. package/lib/schemas/metadata/MetadataApplication.js +7 -1
  442. package/lib/schemas/metadata/MetadataApplication.js.map +1 -1
  443. package/lib/schemas/metadata/MetadataArray.js +4 -1
  444. package/lib/schemas/metadata/MetadataArray.js.map +1 -1
  445. package/lib/schemas/metadata/MetadataArrayType.js +10 -1
  446. package/lib/schemas/metadata/MetadataArrayType.js.map +1 -1
  447. package/lib/schemas/metadata/MetadataAtomic.js +20 -17
  448. package/lib/schemas/metadata/MetadataAtomic.js.map +1 -1
  449. package/lib/schemas/metadata/MetadataComponents.js +4 -1
  450. package/lib/schemas/metadata/MetadataComponents.js.map +1 -1
  451. package/lib/schemas/metadata/MetadataConstant.d.ts +2 -1
  452. package/lib/schemas/metadata/MetadataConstant.js +5 -9
  453. package/lib/schemas/metadata/MetadataConstant.js.map +1 -1
  454. package/lib/schemas/metadata/MetadataConstantValue.d.ts +13 -0
  455. package/lib/schemas/metadata/MetadataConstantValue.js +44 -0
  456. package/lib/schemas/metadata/MetadataConstantValue.js.map +1 -0
  457. package/lib/schemas/metadata/MetadataEscaped.js +10 -1
  458. package/lib/schemas/metadata/MetadataEscaped.js.map +1 -1
  459. package/lib/schemas/metadata/MetadataObject.js +28 -1
  460. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  461. package/lib/schemas/metadata/MetadataProperty.js +13 -1
  462. package/lib/schemas/metadata/MetadataProperty.js.map +1 -1
  463. package/lib/schemas/metadata/MetadataTuple.js +7 -1
  464. package/lib/schemas/metadata/MetadataTuple.js.map +1 -1
  465. package/lib/schemas/metadata/MetadataTupleType.js +7 -1
  466. package/lib/schemas/metadata/MetadataTupleType.js.map +1 -1
  467. package/lib/tags/Constant.d.ts +10 -0
  468. package/lib/{schemas/json/IJsonSchema.js → tags/Constant.js} +1 -1
  469. package/lib/tags/Constant.js.map +1 -0
  470. package/lib/tags/ContentMediaType.d.ts +9 -0
  471. package/lib/{schemas/json/IJsonComponents.js → tags/ContentMediaType.js} +1 -1
  472. package/lib/tags/ContentMediaType.js.map +1 -0
  473. package/lib/tags/Default.d.ts +3 -0
  474. package/lib/tags/ExclusiveMaximum.d.ts +4 -0
  475. package/lib/tags/ExclusiveMinimum.d.ts +4 -0
  476. package/lib/tags/Format.d.ts +10 -3
  477. package/lib/tags/JsonSchemaPlugin.d.ts +7 -0
  478. package/lib/tags/JsonSchemaPlugin.js +3 -0
  479. package/lib/tags/JsonSchemaPlugin.js.map +1 -0
  480. package/lib/tags/MaxItems.d.ts +3 -0
  481. package/lib/tags/MaxLength.d.ts +3 -0
  482. package/lib/tags/Maximum.d.ts +3 -0
  483. package/lib/tags/MinItems.d.ts +3 -0
  484. package/lib/tags/MinLength.d.ts +3 -0
  485. package/lib/tags/Minimum.d.ts +3 -0
  486. package/lib/tags/MultipleOf.d.ts +3 -0
  487. package/lib/tags/Pattern.d.ts +3 -0
  488. package/lib/tags/TagBase.d.ts +6 -2
  489. package/lib/tags/Type.d.ts +3 -0
  490. package/lib/tags/index.d.ts +3 -0
  491. package/lib/tags/index.js +3 -0
  492. package/lib/tags/index.js.map +1 -1
  493. package/lib/tags/internal/FormatCheatSheet.d.ts +27 -0
  494. package/lib/tags/internal/FormatCheatSheet.js +38 -0
  495. package/lib/tags/internal/FormatCheatSheet.js.map +1 -0
  496. package/lib/transformers/CallExpressionTransformer.js +195 -1
  497. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  498. package/lib/transformers/FileTransformer.js +2 -0
  499. package/lib/transformers/FileTransformer.js.map +1 -1
  500. package/lib/transformers/TransformerError.js +2 -1
  501. package/lib/transformers/TransformerError.js.map +1 -1
  502. package/lib/transformers/features/AssertTransformer.js.map +1 -1
  503. package/lib/transformers/features/CreateAssertTransformer.js.map +1 -1
  504. package/lib/transformers/features/CreateRandomTransformer.js +3 -0
  505. package/lib/transformers/features/CreateRandomTransformer.js.map +1 -1
  506. package/lib/transformers/features/RandomTransformer.js +3 -0
  507. package/lib/transformers/features/RandomTransformer.js.map +1 -1
  508. package/lib/transformers/features/functional/FunctionalGenericTransformer.d.ts +10 -0
  509. package/lib/transformers/features/functional/FunctionalGenericTransformer.js +39 -0
  510. package/lib/transformers/features/functional/FunctionalGenericTransformer.js.map +1 -0
  511. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.d.ts +4 -0
  512. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.js +12 -0
  513. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.js.map +1 -0
  514. package/lib/transformers/features/http/CreateHttpFormDataTransformer.d.ts +4 -0
  515. package/lib/transformers/features/http/CreateHttpFormDataTransformer.js +10 -0
  516. package/lib/transformers/features/http/CreateHttpFormDataTransformer.js.map +1 -0
  517. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.d.ts +4 -0
  518. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.js +10 -0
  519. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.js.map +1 -0
  520. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.d.ts +4 -0
  521. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.js +12 -0
  522. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.js.map +1 -0
  523. package/lib/transformers/features/http/HttpAssertFormDataTransformer.d.ts +4 -0
  524. package/lib/transformers/features/http/HttpAssertFormDataTransformer.js +12 -0
  525. package/lib/transformers/features/http/HttpAssertFormDataTransformer.js.map +1 -0
  526. package/lib/transformers/features/http/HttpFormDataTransformer.d.ts +4 -0
  527. package/lib/transformers/features/http/HttpFormDataTransformer.js +10 -0
  528. package/lib/transformers/features/http/HttpFormDataTransformer.js.map +1 -0
  529. package/lib/transformers/features/http/HttpIsFormDataTransformer.d.ts +4 -0
  530. package/lib/transformers/features/http/HttpIsFormDataTransformer.js +10 -0
  531. package/lib/transformers/features/http/HttpIsFormDataTransformer.js.map +1 -0
  532. package/lib/transformers/features/http/HttpValidateFormDataTransformer.d.ts +4 -0
  533. package/lib/transformers/features/http/HttpValidateFormDataTransformer.js +12 -0
  534. package/lib/transformers/features/http/HttpValidateFormDataTransformer.js.map +1 -0
  535. package/lib/transformers/features/json/JsonApplicationTransformer.js +20 -17
  536. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  537. package/lib/transformers/features/misc/MiscLiteralsTransformer.js +3 -0
  538. package/lib/transformers/features/misc/MiscLiteralsTransformer.js.map +1 -1
  539. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js +3 -0
  540. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.js.map +1 -1
  541. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js +4 -0
  542. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js.map +1 -1
  543. package/lib/transformers/internal/GenericTransformer.d.ts +1 -1
  544. package/lib/transformers/internal/GenericTransformer.js +9 -3
  545. package/lib/transformers/internal/GenericTransformer.js.map +1 -1
  546. package/lib/utils/ArrayUtil.d.ts +0 -1
  547. package/lib/utils/ArrayUtil.js +0 -29
  548. package/lib/utils/ArrayUtil.js.map +1 -1
  549. package/lib/utils/NamingConvention/NamingConvention.d.ts +3 -0
  550. package/lib/utils/{NamingConvention.js → NamingConvention/NamingConvention.js} +55 -51
  551. package/lib/utils/NamingConvention/NamingConvention.js.map +1 -0
  552. package/lib/utils/NamingConvention/index.d.ts +1 -0
  553. package/lib/utils/NamingConvention/index.js +28 -0
  554. package/lib/utils/NamingConvention/index.js.map +1 -0
  555. package/lib/utils/PatternUtil.js +3 -3
  556. package/lib/utils/PatternUtil.js.map +1 -1
  557. package/lib/utils/RandomGenerator/RandomGenerator.d.ts +31 -0
  558. package/lib/utils/RandomGenerator/RandomGenerator.js +167 -0
  559. package/lib/utils/RandomGenerator/RandomGenerator.js.map +1 -0
  560. package/lib/utils/RandomGenerator/index.d.ts +1 -0
  561. package/lib/utils/RandomGenerator/index.js +28 -0
  562. package/lib/utils/RandomGenerator/index.js.map +1 -0
  563. package/lib/utils/Singleton.js +1 -1
  564. package/lib/utils/StringUtil/StringUtil.d.ts +2 -0
  565. package/lib/utils/StringUtil/StringUtil.js +14 -0
  566. package/lib/utils/StringUtil/StringUtil.js.map +1 -0
  567. package/lib/utils/StringUtil/index.d.ts +1 -0
  568. package/lib/utils/StringUtil/index.js +28 -0
  569. package/lib/utils/StringUtil/index.js.map +1 -0
  570. package/package.json +14 -10
  571. package/src/CamelCase.ts +68 -61
  572. package/src/IRandomGenerator.ts +30 -5
  573. package/src/PascalCase.ts +68 -61
  574. package/src/Primitive.ts +48 -47
  575. package/src/Resolved.ts +61 -58
  576. package/src/SnakeCase.ts +67 -62
  577. package/src/executable/TypiaSetupWizard.ts +5 -5
  578. package/src/factories/IdentifierFactory.ts +1 -1
  579. package/src/factories/MetadataCommentTagFactory.ts +72 -157
  580. package/src/factories/MetadataFactory.ts +6 -1
  581. package/src/factories/MetadataTypeTagFactory.ts +38 -15
  582. package/src/factories/MetadataTypeTagSchemaFactory.ts +59 -0
  583. package/src/factories/ProtobufFactory.ts +9 -1
  584. package/src/factories/TypeFactory.ts +14 -14
  585. package/src/factories/internal/metadata/MetadataHelper.ts +7 -1
  586. package/src/factories/internal/metadata/emend_metadata_atomics.ts +15 -7
  587. package/src/factories/internal/metadata/emplace_metadata_object.ts +2 -1
  588. package/src/factories/internal/metadata/iterate_metadata.ts +2 -2
  589. package/src/factories/internal/metadata/iterate_metadata_array.ts +34 -1
  590. package/src/factories/internal/metadata/iterate_metadata_constant.ts +17 -2
  591. package/src/factories/internal/metadata/{iterate_metadata_resolve.ts → iterate_metadata_escape.ts} +1 -1
  592. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +51 -97
  593. package/src/factories/internal/metadata/iterate_metadata_native.ts +21 -20
  594. package/src/factories/internal/metadata/iterate_metadata_object.ts +0 -10
  595. package/src/factories/internal/metadata/iterate_metadata_sort.ts +15 -2
  596. package/src/functional/$FormDataReader/$FormDataReader.ts +83 -0
  597. package/src/functional/$FormDataReader/index.ts +1 -0
  598. package/src/functional/$HeadersReader/$HeadersReader.ts +26 -0
  599. package/src/functional/$HeadersReader/index.ts +1 -0
  600. package/src/functional/$ParameterReader/$ParameterReader.ts +29 -0
  601. package/src/functional/$ParameterReader/index.ts +1 -0
  602. package/src/functional/$ProtobufReader.ts +5 -19
  603. package/src/functional/$ProtobufSizer.ts +11 -21
  604. package/src/functional/$ProtobufWriter.ts +8 -33
  605. package/src/functional/$QueryReader/$QueryReader.ts +46 -0
  606. package/src/functional/$QueryReader/index.ts +1 -0
  607. package/src/functional/$any.ts +4 -0
  608. package/src/functional/$clone.ts +1 -4
  609. package/src/functional/$convention.ts +0 -3
  610. package/src/functional/$dictionary.ts +22 -0
  611. package/src/functional/$every.ts +11 -0
  612. package/src/functional/$guard.ts +6 -20
  613. package/src/functional/$is_between.ts +0 -3
  614. package/src/functional/$join.ts +0 -12
  615. package/src/functional/$number.ts +0 -3
  616. package/src/functional/$report.ts +0 -3
  617. package/src/functional/$rest.ts +0 -3
  618. package/src/functional/$stoll.ts +0 -3
  619. package/src/functional/$string.ts +3 -10
  620. package/src/functional/$strlen.ts +0 -3
  621. package/src/functional/$throws.ts +0 -3
  622. package/src/functional/$varint.ts +130 -0
  623. package/src/functional/$zigzag.ts +39 -0
  624. package/src/functional/IProtobufWriter.ts +0 -3
  625. package/src/functional/Namespace/functional.ts +5 -0
  626. package/src/functional/Namespace/http.ts +9 -0
  627. package/src/functional/Namespace/index.ts +76 -0
  628. package/src/functional/Namespace/json.ts +15 -0
  629. package/src/functional/Namespace/misc.ts +14 -0
  630. package/src/functional/Namespace/notations.ts +23 -0
  631. package/src/functional/Namespace/protobuf.ts +20 -0
  632. package/src/functional/is.ts +10 -0
  633. package/src/functional.ts +872 -0
  634. package/src/http.ts +566 -412
  635. package/src/json.ts +181 -80
  636. package/src/misc.ts +190 -60
  637. package/src/module.ts +205 -60
  638. package/src/notations.ts +312 -76
  639. package/src/programmers/AssertProgrammer.ts +90 -46
  640. package/src/programmers/CheckerProgrammer.ts +57 -3
  641. package/src/programmers/FeatureProgrammer.ts +27 -27
  642. package/src/programmers/IsProgrammer.ts +1 -1
  643. package/src/programmers/RandomProgrammer.ts +85 -22
  644. package/src/programmers/TypiaProgrammer.ts +10 -18
  645. package/src/programmers/ValidateProgrammer.ts +47 -48
  646. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +130 -0
  647. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +81 -0
  648. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +77 -0
  649. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +61 -0
  650. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +73 -0
  651. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +84 -0
  652. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +113 -0
  653. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +203 -0
  654. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +107 -0
  655. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +32 -0
  656. package/src/programmers/helpers/AtomicPredicator.ts +1 -2
  657. package/src/programmers/helpers/FunctionImporeter.ts +1 -0
  658. package/src/programmers/helpers/FunctionImporter.ts +17 -58
  659. package/src/programmers/helpers/ProtobufUtil.ts +2 -2
  660. package/src/programmers/helpers/PruneJoiner.ts +8 -10
  661. package/src/programmers/helpers/StringifyJoinder.ts +3 -2
  662. package/src/programmers/helpers/disable_function_importer_declare.ts +4 -5
  663. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +87 -0
  664. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +18 -6
  665. package/src/programmers/http/HttpAssertQueryProgrammer.ts +18 -6
  666. package/src/programmers/http/HttpFormDataProgrammer.ts +256 -0
  667. package/src/programmers/http/HttpHeadersProgrammer.ts +36 -25
  668. package/src/programmers/http/HttpIsFormDataProgrammer.ts +90 -0
  669. package/src/programmers/http/HttpIsHeadersProgrammer.ts +14 -6
  670. package/src/programmers/http/HttpIsQueryProgrammer.ts +14 -6
  671. package/src/programmers/http/HttpParameterProgrammer.ts +4 -6
  672. package/src/programmers/http/HttpQueryProgrammer.ts +38 -30
  673. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +75 -0
  674. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +2 -2
  675. package/src/programmers/http/HttpValidateQueryProgrammer.ts +2 -2
  676. package/src/programmers/internal/application_array.ts +27 -50
  677. package/src/programmers/internal/application_boolean.ts +18 -28
  678. package/src/programmers/internal/application_escaped.ts +40 -18
  679. package/src/programmers/internal/application_number.ts +17 -89
  680. package/src/programmers/internal/application_plugin.ts +19 -0
  681. package/src/programmers/internal/application_string.ts +17 -53
  682. package/src/programmers/internal/application_templates.ts +17 -16
  683. package/src/programmers/internal/application_v30_alias.ts +51 -0
  684. package/src/programmers/internal/application_v30_constant.ts +18 -0
  685. package/src/programmers/internal/application_v30_native.ts +28 -0
  686. package/src/programmers/internal/application_v30_object.ts +148 -0
  687. package/src/programmers/internal/application_v30_schema.ts +155 -0
  688. package/src/programmers/internal/application_v30_tuple.ts +33 -0
  689. package/src/programmers/internal/application_v31_alias.ts +43 -0
  690. package/src/programmers/internal/application_v31_constant.ts +22 -0
  691. package/src/programmers/internal/application_v31_native.ts +24 -0
  692. package/src/programmers/internal/application_v31_object.ts +141 -0
  693. package/src/programmers/internal/application_v31_schema.ts +150 -0
  694. package/src/programmers/internal/application_v31_tuple.ts +22 -0
  695. package/src/programmers/internal/check_dynamic_key.ts +5 -6
  696. package/src/programmers/internal/check_dynamic_properties.ts +20 -7
  697. package/src/programmers/internal/check_number.ts +35 -34
  698. package/src/programmers/internal/check_object.ts +5 -4
  699. package/src/programmers/internal/check_template.ts +1 -1
  700. package/src/programmers/internal/decode_union_object.ts +37 -16
  701. package/src/programmers/internal/feature_object_entries.ts +8 -8
  702. package/src/programmers/internal/metadata_to_pattern.ts +7 -6
  703. package/src/programmers/json/JsonApplicationProgrammer.ts +70 -37
  704. package/src/programmers/json/JsonAssertParseProgrammer.ts +21 -7
  705. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +9 -3
  706. package/src/programmers/json/JsonIsParseProgrammer.ts +12 -4
  707. package/src/programmers/json/JsonStringifyProgrammer.ts +33 -26
  708. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +21 -7
  709. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +9 -3
  710. package/src/programmers/misc/MiscCloneProgrammer.ts +25 -19
  711. package/src/programmers/misc/MiscIsCloneProgrammer.ts +12 -4
  712. package/src/programmers/misc/MiscLiteralsProgrammer.ts +9 -11
  713. package/src/programmers/misc/MiscPruneProgrammer.ts +1 -1
  714. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +9 -3
  715. package/src/programmers/notations/NotationGeneralProgrammer.ts +12 -23
  716. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +18 -6
  717. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +9 -3
  718. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +52 -41
  719. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +55 -58
  720. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +12 -4
  721. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +3 -3
  722. package/src/protobuf.ts +211 -51
  723. package/src/reflect.ts +9 -3
  724. package/src/schemas/json/IJsonApplication.ts +14 -7
  725. package/src/schemas/metadata/IMetadataConstant.ts +3 -1
  726. package/src/schemas/metadata/IMetadataConstantValue.ts +8 -0
  727. package/src/schemas/metadata/IMetadataTypeTag.ts +1 -0
  728. package/src/schemas/metadata/Metadata.ts +30 -13
  729. package/src/schemas/metadata/MetadataAtomic.ts +17 -15
  730. package/src/schemas/metadata/MetadataConstant.ts +5 -17
  731. package/src/schemas/metadata/MetadataConstantValue.ts +53 -0
  732. package/src/tags/Constant.ts +15 -0
  733. package/src/tags/ContentMediaType.ts +10 -0
  734. package/src/tags/Default.ts +7 -4
  735. package/src/tags/ExclusiveMaximum.ts +6 -0
  736. package/src/tags/ExclusiveMinimum.ts +6 -0
  737. package/src/tags/Format.ts +10 -24
  738. package/src/tags/JsonSchemaPlugin.ts +8 -0
  739. package/src/tags/MaxItems.ts +3 -0
  740. package/src/tags/MaxLength.ts +3 -0
  741. package/src/tags/Maximum.ts +5 -0
  742. package/src/tags/MinItems.ts +3 -0
  743. package/src/tags/MinLength.ts +3 -0
  744. package/src/tags/Minimum.ts +5 -0
  745. package/src/tags/MultipleOf.ts +5 -0
  746. package/src/tags/Pattern.ts +3 -0
  747. package/src/tags/TagBase.ts +9 -1
  748. package/src/tags/Type.ts +19 -14
  749. package/src/tags/index.ts +3 -0
  750. package/src/tags/internal/FormatCheatSheet.ts +71 -0
  751. package/src/transformers/CallExpressionTransformer.ts +146 -1
  752. package/src/transformers/features/AssertTransformer.ts +2 -2
  753. package/src/transformers/features/CreateAssertTransformer.ts +2 -2
  754. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -0
  755. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +12 -0
  756. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +9 -0
  757. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +9 -0
  758. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +12 -0
  759. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +10 -0
  760. package/src/transformers/features/http/HttpFormDataTransformer.ts +9 -0
  761. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +9 -0
  762. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +10 -0
  763. package/src/transformers/features/json/JsonApplicationTransformer.ts +8 -18
  764. package/src/transformers/internal/GenericTransformer.ts +12 -4
  765. package/src/utils/ArrayUtil.ts +0 -2
  766. package/src/utils/NamingConvention/NamingConvention.ts +86 -0
  767. package/src/utils/NamingConvention/index.ts +1 -0
  768. package/src/utils/RandomGenerator/RandomGenerator.ts +105 -0
  769. package/src/utils/RandomGenerator/index.ts +1 -0
  770. package/src/utils/StringUtil/StringUtil.ts +7 -0
  771. package/src/utils/StringUtil/index.ts +1 -0
  772. package/lib/factories/internal/metadata/iterate_metadata_resolve.js.map +0 -1
  773. package/lib/functional/$HeadersReader.js +0 -35
  774. package/lib/functional/$HeadersReader.js.map +0 -1
  775. package/lib/functional/$ParameterReader.js +0 -35
  776. package/lib/functional/$ParameterReader.js.map +0 -1
  777. package/lib/functional/$QueryReader.js +0 -60
  778. package/lib/functional/$QueryReader.js.map +0 -1
  779. package/lib/functional/$camel.js +0 -7
  780. package/lib/functional/$camel.js.map +0 -1
  781. package/lib/functional/$generator.js +0 -6
  782. package/lib/functional/$generator.js.map +0 -1
  783. package/lib/functional/$pascal.js +0 -7
  784. package/lib/functional/$pascal.js.map +0 -1
  785. package/lib/functional/$snake.js +0 -7
  786. package/lib/functional/$snake.js.map +0 -1
  787. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.d.ts +0 -1
  788. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js +0 -5
  789. package/lib/programmers/internal/JSON_SCHEMA_PREFIX.js.map +0 -1
  790. package/lib/programmers/internal/application_alias.d.ts +0 -5
  791. package/lib/programmers/internal/application_alias.js +0 -67
  792. package/lib/programmers/internal/application_alias.js.map +0 -1
  793. package/lib/programmers/internal/application_constant.js +0 -21
  794. package/lib/programmers/internal/application_constant.js.map +0 -1
  795. package/lib/programmers/internal/application_default.js +0 -40
  796. package/lib/programmers/internal/application_default.js.map +0 -1
  797. package/lib/programmers/internal/application_default_string.js +0 -63
  798. package/lib/programmers/internal/application_default_string.js.map +0 -1
  799. package/lib/programmers/internal/application_native.js +0 -33
  800. package/lib/programmers/internal/application_native.js.map +0 -1
  801. package/lib/programmers/internal/application_object.js +0 -202
  802. package/lib/programmers/internal/application_object.js.map +0 -1
  803. package/lib/programmers/internal/application_schema.js +0 -236
  804. package/lib/programmers/internal/application_schema.js.map +0 -1
  805. package/lib/programmers/internal/application_tuple.js +0 -46
  806. package/lib/programmers/internal/application_tuple.js.map +0 -1
  807. package/lib/schemas/json/IJsonComponents.d.ts +0 -18
  808. package/lib/schemas/json/IJsonComponents.js.map +0 -1
  809. package/lib/schemas/json/IJsonSchema.d.ts +0 -88
  810. package/lib/schemas/json/IJsonSchema.js.map +0 -1
  811. package/lib/utils/NamingConvention.d.ts +0 -5
  812. package/lib/utils/NamingConvention.js.map +0 -1
  813. package/lib/utils/RandomGenerator.d.ts +0 -1
  814. package/lib/utils/RandomGenerator.js +0 -66
  815. package/lib/utils/RandomGenerator.js.map +0 -1
  816. package/lib/utils/StringUtil.d.ts +0 -3
  817. package/lib/utils/StringUtil.js +0 -10
  818. package/lib/utils/StringUtil.js.map +0 -1
  819. package/src/functional/$HeadersReader.ts +0 -37
  820. package/src/functional/$ParameterReader.ts +0 -40
  821. package/src/functional/$QueryReader.ts +0 -65
  822. package/src/functional/$camel.ts +0 -8
  823. package/src/functional/$generator.ts +0 -6
  824. package/src/functional/$pascal.ts +0 -8
  825. package/src/functional/$snake.ts +0 -8
  826. package/src/programmers/internal/JSON_SCHEMA_PREFIX.ts +0 -1
  827. package/src/programmers/internal/application_alias.ts +0 -74
  828. package/src/programmers/internal/application_constant.ts +0 -25
  829. package/src/programmers/internal/application_default.ts +0 -17
  830. package/src/programmers/internal/application_default_string.ts +0 -33
  831. package/src/programmers/internal/application_native.ts +0 -34
  832. package/src/programmers/internal/application_object.ts +0 -183
  833. package/src/programmers/internal/application_schema.ts +0 -165
  834. package/src/programmers/internal/application_tuple.ts +0 -54
  835. package/src/schemas/json/IJsonComponents.ts +0 -19
  836. package/src/schemas/json/IJsonSchema.ts +0 -122
  837. package/src/utils/NamingConvention.ts +0 -87
  838. package/src/utils/RandomGenerator.ts +0 -83
  839. package/src/utils/StringUtil.ts +0 -4
  840. /package/lib/functional/{$HeadersReader.d.ts → is.d.ts} +0 -0
  841. /package/lib/{functional/$ParameterReader.d.ts → programmers/internal/application_plugin.d.ts} +0 -0
  842. /package/lib/{functional/$QueryReader.d.ts → programmers/internal/application_v30_alias.d.ts} +0 -0
  843. /package/lib/{functional/$camel.d.ts → programmers/internal/application_v30_constant.d.ts} +0 -0
  844. /package/lib/{functional/$generator.d.ts → programmers/internal/application_v30_native.d.ts} +0 -0
  845. /package/lib/{functional/$pascal.d.ts → programmers/internal/application_v30_object.d.ts} +0 -0
  846. /package/lib/{functional/$snake.d.ts → programmers/internal/application_v30_schema.d.ts} +0 -0
  847. /package/lib/programmers/internal/{application_constant.d.ts → application_v30_tuple.d.ts} +0 -0
  848. /package/lib/programmers/internal/{application_default.d.ts → application_v31_alias.d.ts} +0 -0
  849. /package/lib/programmers/internal/{application_default_string.d.ts → application_v31_constant.d.ts} +0 -0
  850. /package/lib/programmers/internal/{application_native.d.ts → application_v31_native.d.ts} +0 -0
  851. /package/lib/programmers/internal/{application_object.d.ts → application_v31_object.d.ts} +0 -0
  852. /package/lib/programmers/internal/{application_schema.d.ts → application_v31_schema.d.ts} +0 -0
  853. /package/lib/programmers/internal/{application_tuple.d.ts → application_v31_tuple.d.ts} +0 -0
package/src/module.ts CHANGED
@@ -1,8 +1,12 @@
1
+ import * as Namespace from "./functional/Namespace";
2
+
1
3
  import { AssertionGuard } from "./AssertionGuard";
2
4
  import { IRandomGenerator } from "./IRandomGenerator";
3
5
  import { IValidation } from "./IValidation";
4
6
  import { Resolved } from "./Resolved";
7
+ import { TypeGuardError } from "./TypeGuardError";
5
8
 
9
+ export * as functional from "./functional";
6
10
  export * as http from "./http";
7
11
  export * as json from "./json";
8
12
  export * as misc from "./misc";
@@ -13,8 +17,6 @@ export * as tags from "./tags";
13
17
 
14
18
  export * from "./schemas/metadata/IJsDocTagInfo";
15
19
  export * from "./schemas/json/IJsonApplication";
16
- export * from "./schemas/json/IJsonComponents";
17
- export * from "./schemas/json/IJsonSchema";
18
20
  export * from "./AssertionGuard";
19
21
  export * from "./IRandomGenerator";
20
22
  export * from "./IValidation";
@@ -47,12 +49,16 @@ export * from "./SnakeCase";
47
49
  *
48
50
  * @template T Type of the input value
49
51
  * @param input A value to be asserted
52
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
50
53
  * @returns Parametric input value
51
54
  * @throws A {@link TypeGuardError} instance with detailed reason
52
55
  *
53
56
  * @author Jeongho Nam - https://github.com/samchon
54
57
  */
55
- export function assert<T>(input: T): T;
58
+ function assert<T>(
59
+ input: T,
60
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
61
+ ): T;
56
62
 
57
63
  /**
58
64
  * Asserts a value type.
@@ -70,19 +76,28 @@ export function assert<T>(input: T): T;
70
76
  *
71
77
  * @template T Type of the input value
72
78
  * @param input A value to be asserted
79
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
73
80
  * @returns Parametric input value casted as `T`
74
81
  * @throws A {@link TypeGuardError} instance with detailed reason
75
82
  *
76
83
  * @author Jeongho Nam - https://github.com/samchon
77
84
  */
78
- export function assert<T>(input: unknown): T;
85
+ function assert<T>(
86
+ input: unknown,
87
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
88
+ ): T;
79
89
 
80
90
  /**
81
91
  * @internal
82
92
  */
83
- export function assert(): never {
93
+ function assert(): never {
84
94
  halt("assert");
85
95
  }
96
+ const assertPure = /** @__PURE__ */ Object.assign<typeof assert, {}>(
97
+ assert,
98
+ /** @__PURE__ */ Namespace.assert("assert"),
99
+ );
100
+ export { assertPure as assert };
86
101
 
87
102
  /**
88
103
  * Assertion guard of a value type.
@@ -104,11 +119,15 @@ export function assert(): never {
104
119
  *
105
120
  * @template T Type of the input value
106
121
  * @param input A value to be asserted
122
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
107
123
  * @throws A {@link TypeGuardError} instance with detailed reason
108
124
  *
109
125
  * @author Jeongho Nam - https://github.com/samchon
110
126
  */
111
- export function assertGuard<T>(input: T): asserts input is T;
127
+ function assertGuard<T>(
128
+ input: T,
129
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
130
+ ): asserts input is T;
112
131
 
113
132
  /**
114
133
  * Assertion guard of a value type.
@@ -130,18 +149,27 @@ export function assertGuard<T>(input: T): asserts input is T;
130
149
  *
131
150
  * @template T Type of the input value
132
151
  * @param input A value to be asserted
152
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
133
153
  * @throws A {@link TypeGuardError} instance with detailed reason
134
154
  *
135
155
  * @author Jeongho Nam - https://github.com/samchon
136
156
  */
137
- export function assertGuard<T>(input: unknown): asserts input is T;
157
+ function assertGuard<T>(
158
+ input: unknown,
159
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
160
+ ): asserts input is T;
138
161
 
139
162
  /**
140
163
  * @internal
141
164
  */
142
- export function assertGuard(): never {
165
+ function assertGuard(): never {
143
166
  halt("assertGuard");
144
167
  }
168
+ const assertGuardPure = /** @__PURE__ */ Object.assign<typeof assertGuard, {}>(
169
+ assertGuard,
170
+ /** @__PURE__ */ Namespace.assert("assertGuard"),
171
+ );
172
+ export { assertGuardPure as assertGuard };
145
173
 
146
174
  /**
147
175
  * Tests a value type.
@@ -161,11 +189,12 @@ export function assertGuard(): never {
161
189
  *
162
190
  * @template T Type of the input value
163
191
  * @param input A value to be tested
192
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
164
193
  * @returns Whether the parametric value is following the type `T` or not
165
194
  *
166
195
  * @author Jeongho Nam - https://github.com/samchon
167
196
  */
168
- export function is<T>(input: T): input is T;
197
+ function is<T>(input: T): input is T;
169
198
 
170
199
  /**
171
200
  * Tests a value type.
@@ -189,14 +218,19 @@ export function is<T>(input: T): input is T;
189
218
  *
190
219
  * @author Jeongho Nam - https://github.com/samchon
191
220
  */
192
- export function is<T>(input: unknown): input is T;
221
+ function is<T>(input: unknown): input is T;
193
222
 
194
223
  /**
195
224
  * @internal
196
225
  */
197
- export function is(): never {
226
+ function is(): never {
198
227
  halt("is");
199
228
  }
229
+ const isPure = /** @__PURE__ */ Object.assign<typeof is, {}>(
230
+ is,
231
+ /** @__PURE__ */ Namespace.assert("is"),
232
+ );
233
+ export { isPure as is };
200
234
 
201
235
  /**
202
236
  * Validates a value type.
@@ -221,7 +255,7 @@ export function is(): never {
221
255
  *
222
256
  * @author Jeongho Nam - https://github.com/samchon
223
257
  */
224
- export function validate<T>(input: T): IValidation<T>;
258
+ function validate<T>(input: T): IValidation<T>;
225
259
 
226
260
  /**
227
261
  * Validates a value type.
@@ -246,14 +280,19 @@ export function validate<T>(input: T): IValidation<T>;
246
280
  *
247
281
  * @author Jeongho Nam - https://github.com/samchon
248
282
  */
249
- export function validate<T>(input: unknown): IValidation<T>;
283
+ function validate<T>(input: unknown): IValidation<T>;
250
284
 
251
285
  /**
252
286
  * @internal
253
287
  */
254
- export function validate(): never {
288
+ function validate(): never {
255
289
  halt("validate");
256
290
  }
291
+ const validatePure = /** @__PURE__ */ Object.assign<typeof validate, {}>(
292
+ validate,
293
+ /** @__PURE__ */ Namespace.validate(),
294
+ );
295
+ export { validatePure as validate };
257
296
 
258
297
  /* -----------------------------------------------------------
259
298
  STRICT VALIDATORS
@@ -276,12 +315,16 @@ export function validate(): never {
276
315
  *
277
316
  * @template T Type of the input value
278
317
  * @param input A value to be asserted
318
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
279
319
  * @returns Parametric input value
280
320
  * @throws A {@link TypeGuardError} instance with detailed reason
281
321
  *
282
322
  * @author Jeongho Nam - https://github.com/samchon
283
323
  */
284
- export function assertEquals<T>(input: T): T;
324
+ function assertEquals<T>(
325
+ input: T,
326
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
327
+ ): T;
285
328
 
286
329
  /**
287
330
  * Asserts equality between a value and its type.
@@ -301,19 +344,28 @@ export function assertEquals<T>(input: T): T;
301
344
  *
302
345
  * @template T Type of the input value
303
346
  * @param input A value to be asserted
347
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
304
348
  * @returns Parametric input value casted as `T`
305
349
  * @throws A {@link TypeGuardError} instance with detailed reason
306
350
  *
307
351
  * @author Jeongho Nam - https://github.com/samchon
308
352
  */
309
- export function assertEquals<T>(input: unknown): T;
353
+ function assertEquals<T>(
354
+ input: unknown,
355
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
356
+ ): T;
310
357
 
311
358
  /**
312
359
  * @internal
313
360
  */
314
- export function assertEquals(): never {
361
+ function assertEquals(): never {
315
362
  halt("assertEquals");
316
363
  }
364
+ const assertEqualsPure = /** @__PURE__ */ Object.assign<
365
+ typeof assertEquals,
366
+ {}
367
+ >(assertEquals, /** @__PURE__ */ Namespace.assert("assertEquals"));
368
+ export { assertEqualsPure as assertEquals };
317
369
 
318
370
  /**
319
371
  * Assertion guard of a type with equality.
@@ -337,12 +389,16 @@ export function assertEquals(): never {
337
389
  *
338
390
  * @template T Type of the input value
339
391
  * @param input A value to be asserted
392
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
340
393
  * @returns Parametric input value casted as `T`
341
394
  * @throws A {@link TypeGuardError} instance with detailed reason
342
395
  *
343
396
  * @author Jeongho Nam - https://github.com/samchon
344
397
  */
345
- export function assertGuardEquals<T>(input: T): asserts input is T;
398
+ function assertGuardEquals<T>(
399
+ input: T,
400
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
401
+ ): asserts input is T;
346
402
 
347
403
  /**
348
404
  * Assertion guard of a type with equality.
@@ -366,19 +422,28 @@ export function assertGuardEquals<T>(input: T): asserts input is T;
366
422
  *
367
423
  * @template T Type of the input value
368
424
  * @param input A value to be asserted
425
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
369
426
  * @returns Parametric input value casted as `T`
370
427
  * @throws A {@link TypeGuardError} instance with detailed reason
371
428
  *
372
429
  * @author Jeongho Nam - https://github.com/samchon
373
430
  */
374
- export function assertGuardEquals<T>(input: unknown): asserts input is T;
431
+ function assertGuardEquals<T>(
432
+ input: unknown,
433
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
434
+ ): asserts input is T;
375
435
 
376
436
  /**
377
437
  * @internal
378
438
  */
379
- export function assertGuardEquals(): never {
439
+ function assertGuardEquals(): never {
380
440
  halt("assertGuardEquals");
381
441
  }
442
+ const assertGuardEqualsPure = /** @__PURE__ */ Object.assign<
443
+ typeof assertGuardEquals,
444
+ {}
445
+ >(assertGuardEquals, /** @__PURE__ */ Namespace.assert("assertGuardEquals"));
446
+ export { assertGuardEqualsPure as assertGuardEquals };
382
447
 
383
448
  /**
384
449
  * Tests equality between a value and its type.
@@ -403,7 +468,7 @@ export function assertGuardEquals(): never {
403
468
  *
404
469
  * @author Jeongho Nam - https://github.com/samchon
405
470
  */
406
- export function equals<T>(input: T): input is T;
471
+ function equals<T>(input: T): input is T;
407
472
 
408
473
  /**
409
474
  * Tests equality between a value and its type.
@@ -428,14 +493,19 @@ export function equals<T>(input: T): input is T;
428
493
  *
429
494
  * @author Jeongho Nam - https://github.com/samchon
430
495
  */
431
- export function equals<T>(input: unknown): input is T;
496
+ function equals<T>(input: unknown): input is T;
432
497
 
433
498
  /**
434
499
  * @internal
435
500
  */
436
- export function equals(): never {
501
+ function equals(): never {
437
502
  halt("equals");
438
503
  }
504
+ const equalsPure = /** @__PURE__ */ Object.assign<typeof equals, {}>(
505
+ equals,
506
+ /** @__PURE__ */ Namespace.is(),
507
+ );
508
+ export { equalsPure as equals };
439
509
 
440
510
  /**
441
511
  * Validates equality between a value and its type.
@@ -461,7 +531,7 @@ export function equals(): never {
461
531
  *
462
532
  * @author Jeongho Nam - https://github.com/samchon
463
533
  */
464
- export function validateEquals<T>(input: T): IValidation<T>;
534
+ function validateEquals<T>(input: T): IValidation<T>;
465
535
 
466
536
  /**
467
537
  * Validates equality between a value and its type.
@@ -487,14 +557,19 @@ export function validateEquals<T>(input: T): IValidation<T>;
487
557
  *
488
558
  * @author Jeongho Nam - https://github.com/samchon
489
559
  */
490
- export function validateEquals<T>(input: unknown): IValidation<T>;
560
+ function validateEquals<T>(input: unknown): IValidation<T>;
491
561
 
492
562
  /**
493
563
  * @internal
494
564
  */
495
- export function validateEquals(): never {
565
+ function validateEquals(): never {
496
566
  halt("validateEquals");
497
567
  }
568
+ const validateEqualsPure = /** @__PURE__ */ Object.assign<
569
+ typeof validateEquals,
570
+ {}
571
+ >(validateEquals, /** @__PURE__ */ Namespace.validate());
572
+ export { validateEqualsPure as validateEquals };
498
573
 
499
574
  /* -----------------------------------------------------------
500
575
  RANDOM
@@ -517,7 +592,7 @@ export function validateEquals(): never {
517
592
  *
518
593
  * @author Jeongho Nam - https://github.com/samchon
519
594
  */
520
- export function random(generator?: Partial<IRandomGenerator>): never;
595
+ function random(generator?: Partial<IRandomGenerator>): never;
521
596
 
522
597
  /**
523
598
  * Generate random data.
@@ -535,14 +610,19 @@ export function random(generator?: Partial<IRandomGenerator>): never;
535
610
  *
536
611
  * @author Jeongho Nam - https://github.com/samchon
537
612
  */
538
- export function random<T>(generator?: Partial<IRandomGenerator>): Resolved<T>;
613
+ function random<T>(generator?: Partial<IRandomGenerator>): Resolved<T>;
539
614
 
540
615
  /**
541
616
  * @internal
542
617
  */
543
- export function random(): never {
618
+ function random(): never {
544
619
  halt("random");
545
620
  }
621
+ const randomPure = /** @__PURE__ */ Object.assign<typeof random, {}>(
622
+ random,
623
+ /** @__PURE__ */ Namespace.random(),
624
+ );
625
+ export { randomPure as random };
546
626
 
547
627
  /* -----------------------------------------------------------
548
628
  FACTORY FUNCTIONS
@@ -551,29 +631,40 @@ export function random(): never {
551
631
  * Creates a reusable {@link assert} function.
552
632
  *
553
633
  * @danger You must configure the generic argument `T`
634
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
554
635
  * @returns Nothing until you configure the generic argument `T`
555
636
  * @throws compile error
556
637
  *
557
638
  * @author Jeongho Nam - https://github.com/samchon
558
639
  */
559
- export function createAssert(): never;
640
+ function createAssert(
641
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
642
+ ): never;
560
643
 
561
644
  /**
562
645
  * Creates a reusable {@link assert} function.
563
646
  *
564
647
  * @template T Type of the input value
648
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
565
649
  * @returns A reusable `assert` function
566
650
  *
567
651
  * @author Jeongho Nam - https://github.com/samchon
568
652
  */
569
- export function createAssert<T>(): (input: unknown) => T;
653
+ function createAssert<T>(
654
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
655
+ ): (input: unknown) => T;
570
656
 
571
657
  /**
572
658
  * @internal
573
659
  */
574
- export function createAssert<T>(): (input: unknown) => T {
660
+ function createAssert<T>(): (input: unknown) => T {
575
661
  halt("createAssert");
576
662
  }
663
+ const createAssertPure = /** @__PURE__ */ Object.assign<
664
+ typeof createAssert,
665
+ {}
666
+ >(createAssert, assertPure);
667
+ export { createAssertPure as createAssert };
577
668
 
578
669
  /**
579
670
  * Creates a reusable {@link assertGuard} function.
@@ -594,12 +685,15 @@ export function createAssert<T>(): (input: unknown) => T {
594
685
  * > *explicit type annotation.*
595
686
  *
596
687
  * @danger You must configure the generic argument `T`
688
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
597
689
  * @returns Nothing until you configure the generic argument `T`
598
690
  * @throws compile error
599
691
  *
600
692
  * @author Jeongho Nam - https://github.com/samchon
601
693
  */
602
- export function createAssertGuard(): never;
694
+ function createAssertGuard(
695
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
696
+ ): never;
603
697
 
604
698
  /**
605
699
  * Creates a reusable {@link assertGuard} function.
@@ -620,18 +714,26 @@ export function createAssertGuard(): never;
620
714
  * > *explicit type annotation.*
621
715
  *
622
716
  * @returns Nothing until you configure the generic argument `T`
717
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
623
718
  * @throws compile error
624
719
  *
625
720
  * @author Jeongho Nam - https://github.com/samchon
626
721
  */
627
- export function createAssertGuard<T>(): (input: unknown) => AssertionGuard<T>;
722
+ function createAssertGuard<T>(
723
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
724
+ ): (input: unknown) => AssertionGuard<T>;
628
725
 
629
726
  /**
630
727
  * @internal
631
728
  */
632
- export function createAssertGuard<T>(): (input: unknown) => AssertionGuard<T> {
729
+ function createAssertGuard<T>(): (input: unknown) => AssertionGuard<T> {
633
730
  halt("createAssertGuard");
634
731
  }
732
+ const createAssertGuardPure = /** @__PURE__ */ Object.assign<
733
+ typeof createAssertGuard,
734
+ {}
735
+ >(createAssertGuard, assertGuardPure);
736
+ export { createAssertGuardPure as createAssertGuard };
635
737
 
636
738
  /**
637
739
  * Creates a reusable {@link is} function.
@@ -642,7 +744,7 @@ export function createAssertGuard<T>(): (input: unknown) => AssertionGuard<T> {
642
744
  *
643
745
  * @author Jeongho Nam - https://github.com/samchon
644
746
  */
645
- export function createIs(): never;
747
+ function createIs(): never;
646
748
 
647
749
  /**
648
750
  * Creates a reusable {@link is} function.
@@ -652,14 +754,19 @@ export function createIs(): never;
652
754
  *
653
755
  * @author Jeongho Nam - https://github.com/samchon
654
756
  */
655
- export function createIs<T>(): (input: unknown) => input is T;
757
+ function createIs<T>(): (input: unknown) => input is T;
656
758
 
657
759
  /**
658
760
  * @internal
659
761
  */
660
- export function createIs<T>(): (input: unknown) => input is T {
762
+ function createIs<T>(): (input: unknown) => input is T {
661
763
  halt("createIs");
662
764
  }
765
+ const createIsPure = /** @__PURE__ */ Object.assign<typeof createIs, {}>(
766
+ createIs,
767
+ isPure,
768
+ );
769
+ export { createIsPure as createIs };
663
770
 
664
771
  /**
665
772
  * Creates a reusable {@link validate} function.
@@ -670,7 +777,7 @@ export function createIs<T>(): (input: unknown) => input is T {
670
777
  *
671
778
  * @author Jeongho Nam - https://github.com/samchon
672
779
  */
673
- export function createValidate(): never;
780
+ function createValidate(): never;
674
781
 
675
782
  /**
676
783
  * Creates a reusable {@link validate} function.
@@ -680,42 +787,58 @@ export function createValidate(): never;
680
787
  *
681
788
  * @author Jeongho Nam - https://github.com/samchon
682
789
  */
683
- export function createValidate<T>(): (input: unknown) => IValidation<T>;
790
+ function createValidate<T>(): (input: unknown) => IValidation<T>;
684
791
 
685
792
  /**
686
793
  * @internal
687
794
  */
688
- export function createValidate(): (input: unknown) => IValidation {
795
+ function createValidate(): (input: unknown) => IValidation {
689
796
  halt("createValidate");
690
797
  }
798
+ const createValidatePure = /** @__PURE__ */ Object.assign<
799
+ typeof createValidate,
800
+ {}
801
+ >(createValidate, validatePure);
802
+ export { createValidatePure as createValidate };
691
803
 
692
804
  /**
693
805
  * Creates a reusable {@link assertEquals} function.
694
806
  *
695
807
  * @danger You must configure the generic argument `T`
808
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
696
809
  * @returns Nothing until you configure the generic argument `T`
697
810
  * @throws compile error
698
811
  *
699
812
  * @author Jeongho Nam - https://github.com/samchon
700
813
  */
701
- export function createAssertEquals(): never;
814
+ function createAssertEquals(
815
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
816
+ ): never;
702
817
 
703
818
  /**
704
819
  * Creates a reusable {@link assertEquals} function.
705
820
  *
706
821
  * @template T Type of the input value
822
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
707
823
  * @returns A reusable `assertEquals` function
708
824
  *
709
825
  * @author Jeongho Nam - https://github.com/samchon
710
826
  */
711
- export function createAssertEquals<T>(): (input: unknown) => T;
827
+ function createAssertEquals<T>(
828
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
829
+ ): (input: unknown) => T;
712
830
 
713
831
  /**
714
832
  * @internal
715
833
  */
716
- export function createAssertEquals<T>(): (input: unknown) => T {
834
+ function createAssertEquals<T>(): (input: unknown) => T {
717
835
  halt("createAssertEquals");
718
836
  }
837
+ const createAssertEqualsPure = /** @__PURE__ */ Object.assign<
838
+ typeof createAssertEquals,
839
+ {}
840
+ >(createAssertEquals, assertEqualsPure);
841
+ export { createAssertEqualsPure as createAssertEquals };
719
842
 
720
843
  /**
721
844
  * Creates a reusable {@link assertGuardEquals} function.
@@ -736,12 +859,15 @@ export function createAssertEquals<T>(): (input: unknown) => T {
736
859
  * > *explicit type annotation.*
737
860
  *
738
861
  * @danger You must configure the generic argument `T`
862
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
739
863
  * @returns Nothing until you configure the generic argument `T`
740
864
  * @throws compile error
741
865
  *
742
866
  * @author Jeongho Nam - https://github.com/samchon
743
867
  */
744
- export function createAssertGuardEquals(): never;
868
+ function createAssertGuardEquals(
869
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
870
+ ): never;
745
871
 
746
872
  /**
747
873
  * Creates a reusable {@link assertGuardEquals} function.
@@ -761,23 +887,27 @@ export function createAssertGuardEquals(): never;
761
887
  * > *Assertions require every name in the call target to be declared with an*
762
888
  * > *explicit type annotation.*
763
889
  *
890
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
764
891
  * @returns Nothing until you configure the generic argument `T`
765
892
  * @throws compile error
766
893
  *
767
894
  * @author Jeongho Nam - https://github.com/samchon
768
895
  */
769
- export function createAssertGuardEquals<T>(): (
770
- input: unknown,
771
- ) => AssertionGuard<T>;
896
+ function createAssertGuardEquals<T>(
897
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
898
+ ): (input: unknown) => AssertionGuard<T>;
772
899
 
773
900
  /**
774
901
  * @internal
775
902
  */
776
- export function createAssertGuardEquals<T>(): (
777
- input: unknown,
778
- ) => AssertionGuard<T> {
903
+ function createAssertGuardEquals<T>(): (input: unknown) => AssertionGuard<T> {
779
904
  halt("createAssertGuardEquals");
780
905
  }
906
+ const createAssertGuardEqualsPure = /** @__PURE__ */ Object.assign<
907
+ typeof createAssertGuardEquals,
908
+ {}
909
+ >(createAssertGuardEquals, assertGuardEqualsPure);
910
+ export { createAssertGuardEqualsPure as createAssertGuardEquals };
781
911
 
782
912
  /**
783
913
  * Creates a reusable {@link equals} function.
@@ -788,7 +918,7 @@ export function createAssertGuardEquals<T>(): (
788
918
  *
789
919
  * @author Jeongho Nam - https://github.com/samchon
790
920
  */
791
- export function createEquals(): never;
921
+ function createEquals(): never;
792
922
 
793
923
  /**
794
924
  * Creates a reusable {@link equals} function.
@@ -798,14 +928,19 @@ export function createEquals(): never;
798
928
  *
799
929
  * @author Jeongho Nam - https://github.com/samchon
800
930
  */
801
- export function createEquals<T>(): (input: unknown) => input is T;
931
+ function createEquals<T>(): (input: unknown) => input is T;
802
932
 
803
933
  /**
804
934
  * @internal
805
935
  */
806
- export function createEquals<T>(): (input: unknown) => input is T {
936
+ function createEquals<T>(): (input: unknown) => input is T {
807
937
  halt("createEquals");
808
938
  }
939
+ const createEqualsPure = /** @__PURE__ */ Object.assign<
940
+ typeof createEquals,
941
+ {}
942
+ >(createEquals, equalsPure);
943
+ export { createEqualsPure as createEquals };
809
944
 
810
945
  /**
811
946
  * Creates a reusable {@link validateEquals} function.
@@ -816,7 +951,7 @@ export function createEquals<T>(): (input: unknown) => input is T {
816
951
  *
817
952
  * @author Jeongho Nam - https://github.com/samchon
818
953
  */
819
- export function createValidateEquals(): never;
954
+ function createValidateEquals(): never;
820
955
 
821
956
  /**
822
957
  * Creates a reusable {@link validateEquals} function.
@@ -826,14 +961,19 @@ export function createValidateEquals(): never;
826
961
  *
827
962
  * @author Jeongho Nam - https://github.com/samchon
828
963
  */
829
- export function createValidateEquals<T>(): (input: unknown) => IValidation<T>;
964
+ function createValidateEquals<T>(): (input: unknown) => IValidation<T>;
830
965
 
831
966
  /**
832
967
  * @internal
833
968
  */
834
- export function createValidateEquals(): (input: unknown) => IValidation {
969
+ function createValidateEquals(): (input: unknown) => IValidation {
835
970
  halt("createValidateEquals");
836
971
  }
972
+ const createValidateEqualsPure = /** @__PURE__ */ Object.assign<
973
+ typeof createValidateEquals,
974
+ {}
975
+ >(createValidateEquals, validateEqualsPure);
976
+ export { createValidateEqualsPure as createValidateEquals };
837
977
 
838
978
  /**
839
979
  * Creates a reusable {@link random} function.
@@ -845,7 +985,7 @@ export function createValidateEquals(): (input: unknown) => IValidation {
845
985
  *
846
986
  * @author Jeongho Nam - https://github.com/samchon
847
987
  */
848
- export function createRandom(generator?: Partial<IRandomGenerator>): never;
988
+ function createRandom(generator?: Partial<IRandomGenerator>): never;
849
989
 
850
990
  /**
851
991
  * Creates a resuable {@link random} function.
@@ -856,16 +996,21 @@ export function createRandom(generator?: Partial<IRandomGenerator>): never;
856
996
  *
857
997
  * @author Jeongho Nam - https://github.com/samchon
858
998
  */
859
- export function createRandom<T>(
999
+ function createRandom<T>(
860
1000
  generator?: Partial<IRandomGenerator>,
861
1001
  ): () => Resolved<T>;
862
1002
 
863
1003
  /**
864
1004
  * @internal
865
1005
  */
866
- export function createRandom(): never {
1006
+ function createRandom(): never {
867
1007
  halt("createRandom");
868
1008
  }
1009
+ const createRandomPure = /** @__PURE__ */ Object.assign<
1010
+ typeof createRandom,
1011
+ {}
1012
+ >(createRandom, randomPure);
1013
+ export { createRandomPure as createRandom };
869
1014
 
870
1015
  /**
871
1016
  * @internal