typia 8.0.0 → 8.0.2-dev.20250314

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 (1503) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +150 -150
  3. package/lib/AssertionGuard.mjs +2 -0
  4. package/lib/AssertionGuard.mjs.map +1 -0
  5. package/lib/CamelCase.mjs +2 -0
  6. package/lib/CamelCase.mjs.map +1 -0
  7. package/lib/IRandomGenerator.mjs +2 -0
  8. package/lib/IRandomGenerator.mjs.map +1 -0
  9. package/lib/IReadableURLSearchParams.mjs +2 -0
  10. package/lib/IReadableURLSearchParams.mjs.map +1 -0
  11. package/lib/IValidation.mjs +2 -0
  12. package/lib/IValidation.mjs.map +1 -0
  13. package/lib/PascalCase.mjs +2 -0
  14. package/lib/PascalCase.mjs.map +1 -0
  15. package/lib/Primitive.mjs +2 -0
  16. package/lib/Primitive.mjs.map +1 -0
  17. package/lib/Resolved.mjs +2 -0
  18. package/lib/Resolved.mjs.map +1 -0
  19. package/lib/SnakeCase.mjs +2 -0
  20. package/lib/SnakeCase.mjs.map +1 -0
  21. package/lib/TypeGuardError.mjs.map +1 -1
  22. package/lib/executable/TypiaGenerateWizard.mjs +59 -0
  23. package/lib/executable/TypiaGenerateWizard.mjs.map +1 -0
  24. package/lib/executable/TypiaPatchWizard.mjs +37 -0
  25. package/lib/executable/TypiaPatchWizard.mjs.map +1 -0
  26. package/lib/executable/TypiaSetupWizard.mjs +131 -0
  27. package/lib/executable/TypiaSetupWizard.mjs.map +1 -0
  28. package/lib/executable/setup/ArgumentParser.mjs +24 -0
  29. package/lib/executable/setup/ArgumentParser.mjs.map +1 -0
  30. package/lib/executable/setup/CommandExecutor.mjs +12 -0
  31. package/lib/executable/setup/CommandExecutor.mjs.map +1 -0
  32. package/lib/executable/setup/FileRetriever.mjs +21 -0
  33. package/lib/executable/setup/FileRetriever.mjs.map +1 -0
  34. package/lib/executable/setup/PackageManager.mjs +62 -0
  35. package/lib/executable/setup/PackageManager.mjs.map +1 -0
  36. package/lib/executable/setup/PluginConfigurator.js +3 -3
  37. package/lib/executable/setup/PluginConfigurator.mjs +45 -0
  38. package/lib/executable/setup/PluginConfigurator.mjs.map +1 -0
  39. package/lib/executable/typia.js +15 -15
  40. package/lib/executable/typia.mjs +57 -0
  41. package/lib/executable/typia.mjs.map +1 -0
  42. package/lib/factories/CommentFactory.mjs +68 -0
  43. package/lib/factories/CommentFactory.mjs.map +1 -0
  44. package/lib/factories/ExpressionFactory.mjs +101 -0
  45. package/lib/factories/ExpressionFactory.mjs.map +1 -0
  46. package/lib/factories/IdentifierFactory.mjs +47 -0
  47. package/lib/factories/IdentifierFactory.mjs.map +1 -0
  48. package/lib/factories/JsonMetadataFactory.mjs +59 -0
  49. package/lib/factories/JsonMetadataFactory.mjs.map +1 -0
  50. package/lib/factories/LiteralFactory.mjs +45 -0
  51. package/lib/factories/LiteralFactory.mjs.map +1 -0
  52. package/lib/factories/MetadataCollection.mjs +232 -0
  53. package/lib/factories/MetadataCollection.mjs.map +1 -0
  54. package/lib/factories/MetadataCommentTagFactory.mjs +579 -0
  55. package/lib/factories/MetadataCommentTagFactory.mjs.map +1 -0
  56. package/lib/factories/MetadataFactory.mjs +291 -0
  57. package/lib/factories/MetadataFactory.mjs.map +1 -0
  58. package/lib/factories/MetadataTypeTagFactory.mjs +316 -0
  59. package/lib/factories/MetadataTypeTagFactory.mjs.map +1 -0
  60. package/lib/factories/MetadataTypeTagSchemaFactory.mjs +68 -0
  61. package/lib/factories/MetadataTypeTagSchemaFactory.mjs.map +1 -0
  62. package/lib/factories/NumericRangeFactory.mjs +27 -0
  63. package/lib/factories/NumericRangeFactory.mjs.map +1 -0
  64. package/lib/factories/ProtobufFactory.mjs +688 -0
  65. package/lib/factories/ProtobufFactory.mjs.map +1 -0
  66. package/lib/factories/StatementFactory.mjs +31 -0
  67. package/lib/factories/StatementFactory.mjs.map +1 -0
  68. package/lib/factories/TemplateFactory.mjs +45 -0
  69. package/lib/factories/TemplateFactory.mjs.map +1 -0
  70. package/lib/factories/TypeFactory.mjs +102 -0
  71. package/lib/factories/TypeFactory.mjs.map +1 -0
  72. package/lib/factories/ValueFactory.mjs +13 -0
  73. package/lib/factories/ValueFactory.mjs.map +1 -0
  74. package/lib/factories/internal/metadata/IMetadataIteratorProps.mjs +2 -0
  75. package/lib/factories/internal/metadata/IMetadataIteratorProps.mjs.map +1 -0
  76. package/lib/factories/internal/metadata/MetadataHelper.mjs +23 -0
  77. package/lib/factories/internal/metadata/MetadataHelper.mjs.map +1 -0
  78. package/lib/factories/internal/metadata/emend_metadata_atomics.mjs +35 -0
  79. package/lib/factories/internal/metadata/emend_metadata_atomics.mjs.map +1 -0
  80. package/lib/factories/internal/metadata/emplace_metadata_alias.mjs +25 -0
  81. package/lib/factories/internal/metadata/emplace_metadata_alias.mjs.map +1 -0
  82. package/lib/factories/internal/metadata/emplace_metadata_array_type.mjs +26 -0
  83. package/lib/factories/internal/metadata/emplace_metadata_array_type.mjs.map +1 -0
  84. package/lib/factories/internal/metadata/emplace_metadata_object.js +7 -6
  85. package/lib/factories/internal/metadata/emplace_metadata_object.js.map +1 -1
  86. package/lib/factories/internal/metadata/emplace_metadata_object.mjs +152 -0
  87. package/lib/factories/internal/metadata/emplace_metadata_object.mjs.map +1 -0
  88. package/lib/factories/internal/metadata/emplace_metadata_tuple.mjs +47 -0
  89. package/lib/factories/internal/metadata/emplace_metadata_tuple.mjs.map +1 -0
  90. package/lib/factories/internal/metadata/explore_metadata.mjs +26 -0
  91. package/lib/factories/internal/metadata/explore_metadata.mjs.map +1 -0
  92. package/lib/factories/internal/metadata/iterate_metadata.mjs +51 -0
  93. package/lib/factories/internal/metadata/iterate_metadata.mjs.map +1 -0
  94. package/lib/factories/internal/metadata/iterate_metadata_alias.mjs +21 -0
  95. package/lib/factories/internal/metadata/iterate_metadata_alias.mjs.map +1 -0
  96. package/lib/factories/internal/metadata/iterate_metadata_array.mjs +51 -0
  97. package/lib/factories/internal/metadata/iterate_metadata_array.mjs.map +1 -0
  98. package/lib/factories/internal/metadata/iterate_metadata_atomic.mjs +47 -0
  99. package/lib/factories/internal/metadata/iterate_metadata_atomic.mjs.map +1 -0
  100. package/lib/factories/internal/metadata/iterate_metadata_coalesce.mjs +25 -0
  101. package/lib/factories/internal/metadata/iterate_metadata_coalesce.mjs.map +1 -0
  102. package/lib/factories/internal/metadata/iterate_metadata_collection.mjs +87 -0
  103. package/lib/factories/internal/metadata/iterate_metadata_collection.mjs.map +1 -0
  104. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.mjs +29 -0
  105. package/lib/factories/internal/metadata/iterate_metadata_comment_tags.mjs.map +1 -0
  106. package/lib/factories/internal/metadata/iterate_metadata_constant.mjs +54 -0
  107. package/lib/factories/internal/metadata/iterate_metadata_constant.mjs.map +1 -0
  108. package/lib/factories/internal/metadata/iterate_metadata_escape.mjs +44 -0
  109. package/lib/factories/internal/metadata/iterate_metadata_escape.mjs.map +1 -0
  110. package/lib/factories/internal/metadata/iterate_metadata_function.mjs +76 -0
  111. package/lib/factories/internal/metadata/iterate_metadata_function.mjs.map +1 -0
  112. package/lib/factories/internal/metadata/iterate_metadata_intersection.mjs +185 -0
  113. package/lib/factories/internal/metadata/iterate_metadata_intersection.mjs.map +1 -0
  114. package/lib/factories/internal/metadata/iterate_metadata_map.mjs +47 -0
  115. package/lib/factories/internal/metadata/iterate_metadata_map.mjs.map +1 -0
  116. package/lib/factories/internal/metadata/iterate_metadata_native.mjs +203 -0
  117. package/lib/factories/internal/metadata/iterate_metadata_native.mjs.map +1 -0
  118. package/lib/factories/internal/metadata/iterate_metadata_object.mjs +23 -0
  119. package/lib/factories/internal/metadata/iterate_metadata_object.mjs.map +1 -0
  120. package/lib/factories/internal/metadata/iterate_metadata_set.mjs +46 -0
  121. package/lib/factories/internal/metadata/iterate_metadata_set.mjs.map +1 -0
  122. package/lib/factories/internal/metadata/iterate_metadata_sort.mjs +75 -0
  123. package/lib/factories/internal/metadata/iterate_metadata_sort.mjs.map +1 -0
  124. package/lib/factories/internal/metadata/iterate_metadata_template.mjs +35 -0
  125. package/lib/factories/internal/metadata/iterate_metadata_template.mjs.map +1 -0
  126. package/lib/factories/internal/metadata/iterate_metadata_tuple.mjs +17 -0
  127. package/lib/factories/internal/metadata/iterate_metadata_tuple.mjs.map +1 -0
  128. package/lib/factories/internal/metadata/iterate_metadata_union.mjs +18 -0
  129. package/lib/factories/internal/metadata/iterate_metadata_union.mjs.map +1 -0
  130. package/lib/functional.mjs.map +1 -1
  131. package/lib/http.mjs.map +1 -1
  132. package/lib/index.mjs.map +1 -1
  133. package/lib/internal/_IProtobufWriter.mjs +2 -0
  134. package/lib/internal/_IProtobufWriter.mjs.map +1 -0
  135. package/lib/internal/_ProtobufReader.mjs +176 -0
  136. package/lib/internal/_ProtobufReader.mjs.map +1 -0
  137. package/lib/internal/_ProtobufSizer.mjs +130 -0
  138. package/lib/internal/_ProtobufSizer.mjs.map +1 -0
  139. package/lib/internal/_ProtobufWriter.mjs +122 -0
  140. package/lib/internal/_ProtobufWriter.mjs.map +1 -0
  141. package/lib/internal/_accessExpressionAsString.mjs +44 -0
  142. package/lib/internal/_accessExpressionAsString.mjs.map +1 -0
  143. package/lib/internal/_assertGuard.mjs +14 -0
  144. package/lib/internal/_assertGuard.mjs.map +1 -0
  145. package/lib/internal/_functionalTypeGuardErrorFactory.mjs +6 -0
  146. package/lib/internal/_functionalTypeGuardErrorFactory.mjs.map +1 -0
  147. package/lib/internal/_httpFormDataReadArray.mjs +4 -0
  148. package/lib/internal/_httpFormDataReadArray.mjs.map +1 -0
  149. package/lib/internal/_httpFormDataReadBigint.mjs +18 -0
  150. package/lib/internal/_httpFormDataReadBigint.mjs.map +1 -0
  151. package/lib/internal/_httpFormDataReadBlob.mjs +10 -0
  152. package/lib/internal/_httpFormDataReadBlob.mjs.map +1 -0
  153. package/lib/internal/_httpFormDataReadBoolean.mjs +16 -0
  154. package/lib/internal/_httpFormDataReadBoolean.mjs.map +1 -0
  155. package/lib/internal/_httpFormDataReadFile.mjs +10 -0
  156. package/lib/internal/_httpFormDataReadFile.mjs.map +1 -0
  157. package/lib/internal/_httpFormDataReadNumber.mjs +14 -0
  158. package/lib/internal/_httpFormDataReadNumber.mjs.map +1 -0
  159. package/lib/internal/_httpFormDataReadString.mjs +10 -0
  160. package/lib/internal/_httpFormDataReadString.mjs.map +1 -0
  161. package/lib/internal/_httpHeaderReadBigint.mjs +12 -0
  162. package/lib/internal/_httpHeaderReadBigint.mjs.map +1 -0
  163. package/lib/internal/_httpHeaderReadBoolean.mjs +10 -0
  164. package/lib/internal/_httpHeaderReadBoolean.mjs.map +1 -0
  165. package/lib/internal/_httpHeaderReadNumber.mjs +8 -0
  166. package/lib/internal/_httpHeaderReadNumber.mjs.map +1 -0
  167. package/lib/internal/_httpParameterReadBigint.mjs +12 -0
  168. package/lib/internal/_httpParameterReadBigint.mjs.map +1 -0
  169. package/lib/internal/_httpParameterReadBoolean.mjs +10 -0
  170. package/lib/internal/_httpParameterReadBoolean.mjs.map +1 -0
  171. package/lib/internal/_httpParameterReadNumber.mjs +8 -0
  172. package/lib/internal/_httpParameterReadNumber.mjs.map +1 -0
  173. package/lib/internal/_httpParameterReadString.mjs +4 -0
  174. package/lib/internal/_httpParameterReadString.mjs.map +1 -0
  175. package/lib/internal/_httpQueryParseURLSearchParams.mjs +11 -0
  176. package/lib/internal/_httpQueryParseURLSearchParams.mjs.map +1 -0
  177. package/lib/internal/_httpQueryReadArray.mjs +4 -0
  178. package/lib/internal/_httpQueryReadArray.mjs.map +1 -0
  179. package/lib/internal/_httpQueryReadBigint.mjs +12 -0
  180. package/lib/internal/_httpQueryReadBigint.mjs.map +1 -0
  181. package/lib/internal/_httpQueryReadBoolean.mjs +14 -0
  182. package/lib/internal/_httpQueryReadBoolean.mjs.map +1 -0
  183. package/lib/internal/_httpQueryReadNumber.mjs +8 -0
  184. package/lib/internal/_httpQueryReadNumber.mjs.map +1 -0
  185. package/lib/internal/_httpQueryReadString.mjs +4 -0
  186. package/lib/internal/_httpQueryReadString.mjs.map +1 -0
  187. package/lib/internal/_isBetween.mjs +4 -0
  188. package/lib/internal/_isBetween.mjs.map +1 -0
  189. package/lib/internal/_isBigintString.mjs +12 -0
  190. package/lib/internal/_isBigintString.mjs.map +1 -0
  191. package/lib/internal/_isFormatByte.mjs +8 -0
  192. package/lib/internal/_isFormatByte.mjs.map +1 -0
  193. package/lib/internal/_isFormatDate.mjs +5 -0
  194. package/lib/internal/_isFormatDate.mjs.map +1 -0
  195. package/lib/internal/_isFormatDateTime.mjs +5 -0
  196. package/lib/internal/_isFormatDateTime.mjs.map +1 -0
  197. package/lib/internal/_isFormatDuration.mjs +5 -0
  198. package/lib/internal/_isFormatDuration.mjs.map +1 -0
  199. package/lib/internal/_isFormatEmail.mjs +5 -0
  200. package/lib/internal/_isFormatEmail.mjs.map +1 -0
  201. package/lib/internal/_isFormatHostname.mjs +5 -0
  202. package/lib/internal/_isFormatHostname.mjs.map +1 -0
  203. package/lib/internal/_isFormatIdnEmail.mjs +5 -0
  204. package/lib/internal/_isFormatIdnEmail.mjs.map +1 -0
  205. package/lib/internal/_isFormatIdnHostname.mjs +5 -0
  206. package/lib/internal/_isFormatIdnHostname.mjs.map +1 -0
  207. package/lib/internal/_isFormatIpv4.mjs +5 -0
  208. package/lib/internal/_isFormatIpv4.mjs.map +1 -0
  209. package/lib/internal/_isFormatIpv6.mjs +5 -0
  210. package/lib/internal/_isFormatIpv6.mjs.map +1 -0
  211. package/lib/internal/_isFormatIri.mjs +5 -0
  212. package/lib/internal/_isFormatIri.mjs.map +1 -0
  213. package/lib/internal/_isFormatIriReference.mjs +5 -0
  214. package/lib/internal/_isFormatIriReference.mjs.map +1 -0
  215. package/lib/internal/_isFormatJsonPointer.mjs +5 -0
  216. package/lib/internal/_isFormatJsonPointer.mjs.map +1 -0
  217. package/lib/internal/_isFormatPassword.mjs +4 -0
  218. package/lib/internal/_isFormatPassword.mjs.map +1 -0
  219. package/lib/internal/_isFormatRegex.mjs +12 -0
  220. package/lib/internal/_isFormatRegex.mjs.map +1 -0
  221. package/lib/internal/_isFormatRelativeJsonPointer.mjs +5 -0
  222. package/lib/internal/_isFormatRelativeJsonPointer.mjs.map +1 -0
  223. package/lib/internal/_isFormatTime.mjs +5 -0
  224. package/lib/internal/_isFormatTime.mjs.map +1 -0
  225. package/lib/internal/_isFormatUri.mjs +6 -0
  226. package/lib/internal/_isFormatUri.mjs.map +1 -0
  227. package/lib/internal/_isFormatUriReference.mjs +5 -0
  228. package/lib/internal/_isFormatUriReference.mjs.map +1 -0
  229. package/lib/internal/_isFormatUriTemplate.mjs +5 -0
  230. package/lib/internal/_isFormatUriTemplate.mjs.map +1 -0
  231. package/lib/internal/_isFormatUrl.mjs +5 -0
  232. package/lib/internal/_isFormatUrl.mjs.map +1 -0
  233. package/lib/internal/_isFormatUuid.mjs +5 -0
  234. package/lib/internal/_isFormatUuid.mjs.map +1 -0
  235. package/lib/internal/_isTypeFloat.mjs +6 -0
  236. package/lib/internal/_isTypeFloat.mjs.map +1 -0
  237. package/lib/internal/_isTypeInt32.mjs +6 -0
  238. package/lib/internal/_isTypeInt32.mjs.map +1 -0
  239. package/lib/internal/_isTypeInt64.mjs +6 -0
  240. package/lib/internal/_isTypeInt64.mjs.map +1 -0
  241. package/lib/internal/_isTypeUint32.mjs +6 -0
  242. package/lib/internal/_isTypeUint32.mjs.map +1 -0
  243. package/lib/internal/_isTypeUint64.mjs +6 -0
  244. package/lib/internal/_isTypeUint64.mjs.map +1 -0
  245. package/lib/internal/_isUniqueItems.mjs +138 -0
  246. package/lib/internal/_isUniqueItems.mjs.map +1 -0
  247. package/lib/internal/_jsonStringifyNumber.mjs +15 -0
  248. package/lib/internal/_jsonStringifyNumber.mjs.map +1 -0
  249. package/lib/internal/_jsonStringifyRest.mjs +6 -0
  250. package/lib/internal/_jsonStringifyRest.mjs.map +1 -0
  251. package/lib/internal/_jsonStringifyString.mjs +40 -0
  252. package/lib/internal/_jsonStringifyString.mjs.map +1 -0
  253. package/lib/internal/_jsonStringifyTail.mjs +4 -0
  254. package/lib/internal/_jsonStringifyTail.mjs.map +1 -0
  255. package/lib/internal/_llmApplicationFinalize.mjs +19 -0
  256. package/lib/internal/_llmApplicationFinalize.mjs.map +1 -0
  257. package/lib/internal/_miscCloneAny.mjs +62 -0
  258. package/lib/internal/_miscCloneAny.mjs.map +1 -0
  259. package/lib/internal/_notationAny.mjs +37 -0
  260. package/lib/internal/_notationAny.mjs.map +1 -0
  261. package/lib/internal/_notationCamel.mjs +14 -0
  262. package/lib/internal/_notationCamel.mjs.map +1 -0
  263. package/lib/internal/_notationPascal.mjs +10 -0
  264. package/lib/internal/_notationPascal.mjs.map +1 -0
  265. package/lib/internal/_notationSnake.mjs +49 -0
  266. package/lib/internal/_notationSnake.mjs.map +1 -0
  267. package/lib/internal/_randomArray.mjs +17 -0
  268. package/lib/internal/_randomArray.mjs.map +1 -0
  269. package/lib/internal/_randomBigint.mjs +6 -0
  270. package/lib/internal/_randomBigint.mjs.map +1 -0
  271. package/lib/internal/_randomBoolean.mjs +4 -0
  272. package/lib/internal/_randomBoolean.mjs.map +1 -0
  273. package/lib/internal/_randomFormatByte.mjs +5 -0
  274. package/lib/internal/_randomFormatByte.mjs.map +1 -0
  275. package/lib/internal/_randomFormatDate.mjs +13 -0
  276. package/lib/internal/_randomFormatDate.mjs.map +1 -0
  277. package/lib/internal/_randomFormatDatetime.mjs +11 -0
  278. package/lib/internal/_randomFormatDatetime.mjs.map +1 -0
  279. package/lib/internal/_randomFormatDuration.mjs +28 -0
  280. package/lib/internal/_randomFormatDuration.mjs.map +1 -0
  281. package/lib/internal/_randomFormatEmail.mjs +10 -0
  282. package/lib/internal/_randomFormatEmail.mjs.map +1 -0
  283. package/lib/internal/_randomFormatHostname.mjs +7 -0
  284. package/lib/internal/_randomFormatHostname.mjs.map +1 -0
  285. package/lib/internal/_randomFormatIdnEmail.mjs +6 -0
  286. package/lib/internal/_randomFormatIdnEmail.mjs.map +1 -0
  287. package/lib/internal/_randomFormatIdnHostname.mjs +6 -0
  288. package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -0
  289. package/lib/internal/_randomFormatIpv4.mjs +10 -0
  290. package/lib/internal/_randomFormatIpv4.mjs.map +1 -0
  291. package/lib/internal/_randomFormatIpv6.mjs +10 -0
  292. package/lib/internal/_randomFormatIpv6.mjs.map +1 -0
  293. package/lib/internal/_randomFormatIri.mjs +6 -0
  294. package/lib/internal/_randomFormatIri.mjs.map +1 -0
  295. package/lib/internal/_randomFormatIriReference.mjs +6 -0
  296. package/lib/internal/_randomFormatIriReference.mjs.map +1 -0
  297. package/lib/internal/_randomFormatJsonPointer.mjs +7 -0
  298. package/lib/internal/_randomFormatJsonPointer.mjs.map +1 -0
  299. package/lib/internal/_randomFormatPassword.mjs +9 -0
  300. package/lib/internal/_randomFormatPassword.mjs.map +1 -0
  301. package/lib/internal/_randomFormatRegex.mjs +5 -0
  302. package/lib/internal/_randomFormatRegex.mjs.map +1 -0
  303. package/lib/internal/_randomFormatRelativeJsonPointer.mjs +9 -0
  304. package/lib/internal/_randomFormatRelativeJsonPointer.mjs.map +1 -0
  305. package/lib/internal/_randomFormatTime.mjs +12 -0
  306. package/lib/internal/_randomFormatTime.mjs.map +1 -0
  307. package/lib/internal/_randomFormatUri.mjs +6 -0
  308. package/lib/internal/_randomFormatUri.mjs.map +1 -0
  309. package/lib/internal/_randomFormatUriReference.mjs +6 -0
  310. package/lib/internal/_randomFormatUriReference.mjs.map +1 -0
  311. package/lib/internal/_randomFormatUriTemplate.mjs +6 -0
  312. package/lib/internal/_randomFormatUriTemplate.mjs.map +1 -0
  313. package/lib/internal/_randomFormatUrl.mjs +10 -0
  314. package/lib/internal/_randomFormatUrl.mjs.map +1 -0
  315. package/lib/internal/_randomFormatUuid.mjs +8 -0
  316. package/lib/internal/_randomFormatUuid.mjs.map +1 -0
  317. package/lib/internal/_randomInteger.mjs +39 -0
  318. package/lib/internal/_randomInteger.mjs.map +1 -0
  319. package/lib/internal/_randomNumber.mjs +58 -0
  320. package/lib/internal/_randomNumber.mjs.map +1 -0
  321. package/lib/internal/_randomPattern.mjs +14 -0
  322. package/lib/internal/_randomPattern.mjs.map +1 -0
  323. package/lib/internal/_randomPick.mjs +10 -0
  324. package/lib/internal/_randomPick.mjs.map +1 -0
  325. package/lib/internal/_randomString.mjs +20 -0
  326. package/lib/internal/_randomString.mjs.map +1 -0
  327. package/lib/internal/_throwTypeGuardError.mjs +8 -0
  328. package/lib/internal/_throwTypeGuardError.mjs.map +1 -0
  329. package/lib/internal/_validateReport.mjs +16 -0
  330. package/lib/internal/_validateReport.mjs.map +1 -0
  331. package/lib/internal/private/__notationCapitalize.mjs +4 -0
  332. package/lib/internal/private/__notationCapitalize.mjs.map +1 -0
  333. package/lib/internal/private/__notationUnsnake.mjs +24 -0
  334. package/lib/internal/private/__notationUnsnake.mjs.map +1 -0
  335. package/lib/json.mjs.map +1 -1
  336. package/lib/llm.mjs.map +1 -1
  337. package/lib/misc.mjs.map +1 -1
  338. package/lib/module.mjs.map +1 -1
  339. package/lib/notations.mjs.map +1 -1
  340. package/lib/programmers/AssertProgrammer.mjs +255 -0
  341. package/lib/programmers/AssertProgrammer.mjs.map +1 -0
  342. package/lib/programmers/CheckerProgrammer.mjs +1103 -0
  343. package/lib/programmers/CheckerProgrammer.mjs.map +1 -0
  344. package/lib/programmers/FeatureProgrammer.mjs +231 -0
  345. package/lib/programmers/FeatureProgrammer.mjs.map +1 -0
  346. package/lib/programmers/ImportProgrammer.mjs +95 -0
  347. package/lib/programmers/ImportProgrammer.mjs.map +1 -0
  348. package/lib/programmers/IsProgrammer.mjs +162 -0
  349. package/lib/programmers/IsProgrammer.mjs.map +1 -0
  350. package/lib/programmers/RandomProgrammer.mjs +709 -0
  351. package/lib/programmers/RandomProgrammer.mjs.map +1 -0
  352. package/lib/programmers/TypiaProgrammer.mjs +126 -0
  353. package/lib/programmers/TypiaProgrammer.mjs.map +1 -0
  354. package/lib/programmers/ValidateProgrammer.mjs +228 -0
  355. package/lib/programmers/ValidateProgrammer.mjs.map +1 -0
  356. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.mjs +67 -0
  357. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.mjs.map +1 -0
  358. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.mjs +64 -0
  359. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.mjs.map +1 -0
  360. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.mjs +65 -0
  361. package/lib/programmers/functional/FunctionalAssertReturnProgrammer.mjs.map +1 -0
  362. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.mjs +41 -0
  363. package/lib/programmers/functional/FunctionalIsFunctionProgrammer.mjs.map +1 -0
  364. package/lib/programmers/functional/FunctionalIsParametersProgrammer.mjs +51 -0
  365. package/lib/programmers/functional/FunctionalIsParametersProgrammer.mjs.map +1 -0
  366. package/lib/programmers/functional/FunctionalIsReturnProgrammer.mjs +58 -0
  367. package/lib/programmers/functional/FunctionalIsReturnProgrammer.mjs.map +1 -0
  368. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.mjs +53 -0
  369. package/lib/programmers/functional/FunctionalValidateFunctionProgrammer.mjs.map +1 -0
  370. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.mjs +92 -0
  371. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.mjs.map +1 -0
  372. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.mjs +63 -0
  373. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.mjs.map +1 -0
  374. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.mjs +23 -0
  375. package/lib/programmers/functional/internal/FunctionalGeneralProgrammer.mjs.map +1 -0
  376. package/lib/programmers/helpers/AtomicPredicator.mjs +13 -0
  377. package/lib/programmers/helpers/AtomicPredicator.mjs.map +1 -0
  378. package/lib/programmers/helpers/CloneJoiner.mjs +56 -0
  379. package/lib/programmers/helpers/CloneJoiner.mjs.map +1 -0
  380. package/lib/programmers/helpers/FunctionProgrammer.mjs +53 -0
  381. package/lib/programmers/helpers/FunctionProgrammer.mjs.map +1 -0
  382. package/lib/programmers/helpers/HttpMetadataUtil.mjs +18 -0
  383. package/lib/programmers/helpers/HttpMetadataUtil.mjs.map +1 -0
  384. package/lib/programmers/helpers/ICheckEntry.mjs +2 -0
  385. package/lib/programmers/helpers/ICheckEntry.mjs.map +1 -0
  386. package/lib/programmers/helpers/IExpressionEntry.mjs +2 -0
  387. package/lib/programmers/helpers/IExpressionEntry.mjs.map +1 -0
  388. package/lib/programmers/helpers/NotationJoiner.mjs +56 -0
  389. package/lib/programmers/helpers/NotationJoiner.mjs.map +1 -0
  390. package/lib/programmers/helpers/OptionPredicator.mjs +10 -0
  391. package/lib/programmers/helpers/OptionPredicator.mjs.map +1 -0
  392. package/lib/programmers/helpers/ProtobufUtil.mjs +170 -0
  393. package/lib/programmers/helpers/ProtobufUtil.mjs.map +1 -0
  394. package/lib/programmers/helpers/ProtobufWire.mjs +2 -0
  395. package/lib/programmers/helpers/ProtobufWire.mjs.map +1 -0
  396. package/lib/programmers/helpers/PruneJoiner.mjs +57 -0
  397. package/lib/programmers/helpers/PruneJoiner.mjs.map +1 -0
  398. package/lib/programmers/helpers/RandomJoiner.mjs +86 -0
  399. package/lib/programmers/helpers/RandomJoiner.mjs.map +1 -0
  400. package/lib/programmers/helpers/StringifyJoinder.mjs +72 -0
  401. package/lib/programmers/helpers/StringifyJoinder.mjs.map +1 -0
  402. package/lib/programmers/helpers/StringifyPredicator.mjs +11 -0
  403. package/lib/programmers/helpers/StringifyPredicator.mjs.map +1 -0
  404. package/lib/programmers/helpers/UnionExplorer.mjs +206 -0
  405. package/lib/programmers/helpers/UnionExplorer.mjs.map +1 -0
  406. package/lib/programmers/helpers/UnionPredicator.mjs +62 -0
  407. package/lib/programmers/helpers/UnionPredicator.mjs.map +1 -0
  408. package/lib/programmers/helpers/disable_function_programmer_declare.mjs +14 -0
  409. package/lib/programmers/helpers/disable_function_programmer_declare.mjs.map +1 -0
  410. package/lib/programmers/http/HttpAssertFormDataProgrammer.mjs +73 -0
  411. package/lib/programmers/http/HttpAssertFormDataProgrammer.mjs.map +1 -0
  412. package/lib/programmers/http/HttpAssertHeadersProgrammer.mjs +73 -0
  413. package/lib/programmers/http/HttpAssertHeadersProgrammer.mjs.map +1 -0
  414. package/lib/programmers/http/HttpAssertQueryProgrammer.mjs +74 -0
  415. package/lib/programmers/http/HttpAssertQueryProgrammer.mjs.map +1 -0
  416. package/lib/programmers/http/HttpFormDataProgrammer.mjs +201 -0
  417. package/lib/programmers/http/HttpFormDataProgrammer.mjs.map +1 -0
  418. package/lib/programmers/http/HttpHeadersProgrammer.mjs +257 -0
  419. package/lib/programmers/http/HttpHeadersProgrammer.mjs.map +1 -0
  420. package/lib/programmers/http/HttpIsFormDataProgrammer.mjs +72 -0
  421. package/lib/programmers/http/HttpIsFormDataProgrammer.mjs.map +1 -0
  422. package/lib/programmers/http/HttpIsHeadersProgrammer.mjs +72 -0
  423. package/lib/programmers/http/HttpIsHeadersProgrammer.mjs.map +1 -0
  424. package/lib/programmers/http/HttpIsQueryProgrammer.mjs +73 -0
  425. package/lib/programmers/http/HttpIsQueryProgrammer.mjs.map +1 -0
  426. package/lib/programmers/http/HttpParameterProgrammer.mjs +84 -0
  427. package/lib/programmers/http/HttpParameterProgrammer.mjs.map +1 -0
  428. package/lib/programmers/http/HttpQueryProgrammer.mjs +211 -0
  429. package/lib/programmers/http/HttpQueryProgrammer.mjs.map +1 -0
  430. package/lib/programmers/http/HttpValidateFormDataProgrammer.mjs +67 -0
  431. package/lib/programmers/http/HttpValidateFormDataProgrammer.mjs.map +1 -0
  432. package/lib/programmers/http/HttpValidateHeadersProgrammer.mjs +67 -0
  433. package/lib/programmers/http/HttpValidateHeadersProgrammer.mjs.map +1 -0
  434. package/lib/programmers/http/HttpValidateQueryProgrammer.mjs +68 -0
  435. package/lib/programmers/http/HttpValidateQueryProgrammer.mjs.map +1 -0
  436. package/lib/programmers/internal/check_array_length.mjs +30 -0
  437. package/lib/programmers/internal/check_array_length.mjs.map +1 -0
  438. package/lib/programmers/internal/check_bigint.mjs +31 -0
  439. package/lib/programmers/internal/check_bigint.mjs.map +1 -0
  440. package/lib/programmers/internal/check_dynamic_key.mjs +91 -0
  441. package/lib/programmers/internal/check_dynamic_key.mjs.map +1 -0
  442. package/lib/programmers/internal/check_dynamic_properties.mjs +101 -0
  443. package/lib/programmers/internal/check_dynamic_properties.mjs.map +1 -0
  444. package/lib/programmers/internal/check_everything.mjs +13 -0
  445. package/lib/programmers/internal/check_everything.mjs.map +1 -0
  446. package/lib/programmers/internal/check_native.mjs +19 -0
  447. package/lib/programmers/internal/check_native.mjs.map +1 -0
  448. package/lib/programmers/internal/check_number.mjs +69 -0
  449. package/lib/programmers/internal/check_number.mjs.map +1 -0
  450. package/lib/programmers/internal/check_object.mjs +42 -0
  451. package/lib/programmers/internal/check_object.mjs.map +1 -0
  452. package/lib/programmers/internal/check_string.mjs +31 -0
  453. package/lib/programmers/internal/check_string.mjs.map +1 -0
  454. package/lib/programmers/internal/check_template.mjs +29 -0
  455. package/lib/programmers/internal/check_template.mjs.map +1 -0
  456. package/lib/programmers/internal/check_union_array_like.mjs +106 -0
  457. package/lib/programmers/internal/check_union_array_like.mjs.map +1 -0
  458. package/lib/programmers/internal/decode_union_object.mjs +56 -0
  459. package/lib/programmers/internal/decode_union_object.mjs.map +1 -0
  460. package/lib/programmers/internal/feature_object_entries.mjs +41 -0
  461. package/lib/programmers/internal/feature_object_entries.mjs.map +1 -0
  462. package/lib/programmers/internal/json_schema_alias.mjs +37 -0
  463. package/lib/programmers/internal/json_schema_alias.mjs.map +1 -0
  464. package/lib/programmers/internal/json_schema_array.mjs +35 -0
  465. package/lib/programmers/internal/json_schema_array.mjs.map +1 -0
  466. package/lib/programmers/internal/json_schema_bigint.mjs +11 -0
  467. package/lib/programmers/internal/json_schema_bigint.mjs.map +1 -0
  468. package/lib/programmers/internal/json_schema_boolean.mjs +11 -0
  469. package/lib/programmers/internal/json_schema_boolean.mjs.map +1 -0
  470. package/lib/programmers/internal/json_schema_constant.mjs +19 -0
  471. package/lib/programmers/internal/json_schema_constant.mjs.map +1 -0
  472. package/lib/programmers/internal/json_schema_description.mjs +9 -0
  473. package/lib/programmers/internal/json_schema_description.mjs.map +1 -0
  474. package/lib/programmers/internal/json_schema_discriminator.mjs +24 -0
  475. package/lib/programmers/internal/json_schema_discriminator.mjs.map +1 -0
  476. package/lib/programmers/internal/json_schema_escaped.mjs +57 -0
  477. package/lib/programmers/internal/json_schema_escaped.mjs.map +1 -0
  478. package/lib/programmers/internal/json_schema_native.mjs +29 -0
  479. package/lib/programmers/internal/json_schema_native.mjs.map +1 -0
  480. package/lib/programmers/internal/json_schema_number.mjs +11 -0
  481. package/lib/programmers/internal/json_schema_number.mjs.map +1 -0
  482. package/lib/programmers/internal/json_schema_object.mjs +122 -0
  483. package/lib/programmers/internal/json_schema_object.mjs.map +1 -0
  484. package/lib/programmers/internal/json_schema_plugin.mjs +16 -0
  485. package/lib/programmers/internal/json_schema_plugin.mjs.map +1 -0
  486. package/lib/programmers/internal/json_schema_station.mjs +157 -0
  487. package/lib/programmers/internal/json_schema_station.mjs.map +1 -0
  488. package/lib/programmers/internal/json_schema_string.mjs +11 -0
  489. package/lib/programmers/internal/json_schema_string.mjs.map +1 -0
  490. package/lib/programmers/internal/json_schema_template.mjs +40 -0
  491. package/lib/programmers/internal/json_schema_template.mjs.map +1 -0
  492. package/lib/programmers/internal/json_schema_title.mjs +15 -0
  493. package/lib/programmers/internal/json_schema_title.mjs.map +1 -0
  494. package/lib/programmers/internal/json_schema_tuple.mjs +28 -0
  495. package/lib/programmers/internal/json_schema_tuple.mjs.map +1 -0
  496. package/lib/programmers/internal/metadata_to_pattern.mjs +34 -0
  497. package/lib/programmers/internal/metadata_to_pattern.mjs.map +1 -0
  498. package/lib/programmers/internal/postfix_of_tuple.mjs +7 -0
  499. package/lib/programmers/internal/postfix_of_tuple.mjs.map +1 -0
  500. package/lib/programmers/internal/prune_object_properties.mjs +31 -0
  501. package/lib/programmers/internal/prune_object_properties.mjs.map +1 -0
  502. package/lib/programmers/internal/stringify_dynamic_properties.mjs +63 -0
  503. package/lib/programmers/internal/stringify_dynamic_properties.mjs.map +1 -0
  504. package/lib/programmers/internal/stringify_native.mjs +9 -0
  505. package/lib/programmers/internal/stringify_native.mjs.map +1 -0
  506. package/lib/programmers/internal/stringify_regular_properties.mjs +52 -0
  507. package/lib/programmers/internal/stringify_regular_properties.mjs.map +1 -0
  508. package/lib/programmers/internal/template_to_pattern.mjs +18 -0
  509. package/lib/programmers/internal/template_to_pattern.mjs.map +1 -0
  510. package/lib/programmers/internal/wrap_metadata_rest_tuple.mjs +24 -0
  511. package/lib/programmers/internal/wrap_metadata_rest_tuple.mjs.map +1 -0
  512. package/lib/programmers/json/JsonApplicationProgrammer.js +3 -14
  513. package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
  514. package/lib/programmers/json/JsonApplicationProgrammer.mjs +171 -0
  515. package/lib/programmers/json/JsonApplicationProgrammer.mjs.map +1 -0
  516. package/lib/programmers/json/JsonAssertParseProgrammer.mjs +83 -0
  517. package/lib/programmers/json/JsonAssertParseProgrammer.mjs.map +1 -0
  518. package/lib/programmers/json/JsonAssertStringifyProgrammer.mjs +82 -0
  519. package/lib/programmers/json/JsonAssertStringifyProgrammer.mjs.map +1 -0
  520. package/lib/programmers/json/JsonIsParseProgrammer.mjs +71 -0
  521. package/lib/programmers/json/JsonIsParseProgrammer.mjs.map +1 -0
  522. package/lib/programmers/json/JsonIsStringifyProgrammer.mjs +77 -0
  523. package/lib/programmers/json/JsonIsStringifyProgrammer.mjs.map +1 -0
  524. package/lib/programmers/json/JsonSchemasProgrammer.mjs +68 -0
  525. package/lib/programmers/json/JsonSchemasProgrammer.mjs.map +1 -0
  526. package/lib/programmers/json/JsonStringifyProgrammer.mjs +697 -0
  527. package/lib/programmers/json/JsonStringifyProgrammer.mjs.map +1 -0
  528. package/lib/programmers/json/JsonValidateParseProgrammer.mjs +74 -0
  529. package/lib/programmers/json/JsonValidateParseProgrammer.mjs.map +1 -0
  530. package/lib/programmers/json/JsonValidateStringifyProgrammer.mjs +83 -0
  531. package/lib/programmers/json/JsonValidateStringifyProgrammer.mjs.map +1 -0
  532. package/lib/programmers/llm/LlmApplicationProgrammer.js +6 -16
  533. package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
  534. package/lib/programmers/llm/LlmApplicationProgrammer.mjs +260 -0
  535. package/lib/programmers/llm/LlmApplicationProgrammer.mjs.map +1 -0
  536. package/lib/programmers/llm/LlmModelPredicator.mjs +96 -0
  537. package/lib/programmers/llm/LlmModelPredicator.mjs.map +1 -0
  538. package/lib/programmers/llm/LlmParametersProgrammer.mjs +65 -0
  539. package/lib/programmers/llm/LlmParametersProgrammer.mjs.map +1 -0
  540. package/lib/programmers/llm/LlmSchemaProgrammer.mjs +118 -0
  541. package/lib/programmers/llm/LlmSchemaProgrammer.mjs.map +1 -0
  542. package/lib/programmers/misc/MiscAssertCloneProgrammer.mjs +70 -0
  543. package/lib/programmers/misc/MiscAssertCloneProgrammer.mjs.map +1 -0
  544. package/lib/programmers/misc/MiscAssertPruneProgrammer.mjs +76 -0
  545. package/lib/programmers/misc/MiscAssertPruneProgrammer.mjs.map +1 -0
  546. package/lib/programmers/misc/MiscCloneProgrammer.mjs +647 -0
  547. package/lib/programmers/misc/MiscCloneProgrammer.mjs.map +1 -0
  548. package/lib/programmers/misc/MiscIsCloneProgrammer.mjs +64 -0
  549. package/lib/programmers/misc/MiscIsCloneProgrammer.mjs.map +1 -0
  550. package/lib/programmers/misc/MiscIsPruneProgrammer.mjs +62 -0
  551. package/lib/programmers/misc/MiscIsPruneProgrammer.mjs.map +1 -0
  552. package/lib/programmers/misc/MiscLiteralsProgrammer.mjs +65 -0
  553. package/lib/programmers/misc/MiscLiteralsProgrammer.mjs.map +1 -0
  554. package/lib/programmers/misc/MiscPruneProgrammer.mjs +475 -0
  555. package/lib/programmers/misc/MiscPruneProgrammer.mjs.map +1 -0
  556. package/lib/programmers/misc/MiscValidateCloneProgrammer.mjs +69 -0
  557. package/lib/programmers/misc/MiscValidateCloneProgrammer.mjs.map +1 -0
  558. package/lib/programmers/misc/MiscValidatePruneProgrammer.mjs +75 -0
  559. package/lib/programmers/misc/MiscValidatePruneProgrammer.mjs.map +1 -0
  560. package/lib/programmers/notations/NotationAssertGeneralProgrammer.mjs +70 -0
  561. package/lib/programmers/notations/NotationAssertGeneralProgrammer.mjs.map +1 -0
  562. package/lib/programmers/notations/NotationGeneralProgrammer.mjs +632 -0
  563. package/lib/programmers/notations/NotationGeneralProgrammer.mjs.map +1 -0
  564. package/lib/programmers/notations/NotationIsGeneralProgrammer.mjs +64 -0
  565. package/lib/programmers/notations/NotationIsGeneralProgrammer.mjs.map +1 -0
  566. package/lib/programmers/notations/NotationValidateGeneralProgrammer.mjs +69 -0
  567. package/lib/programmers/notations/NotationValidateGeneralProgrammer.mjs.map +1 -0
  568. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.mjs +71 -0
  569. package/lib/programmers/protobuf/ProtobufAssertDecodeProgrammer.mjs.map +1 -0
  570. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.mjs +75 -0
  571. package/lib/programmers/protobuf/ProtobufAssertEncodeProgrammer.mjs.map +1 -0
  572. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.mjs +335 -0
  573. package/lib/programmers/protobuf/ProtobufDecodeProgrammer.mjs.map +1 -0
  574. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.mjs +533 -0
  575. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.mjs.map +1 -0
  576. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.mjs +72 -0
  577. package/lib/programmers/protobuf/ProtobufIsDecodeProgrammer.mjs.map +1 -0
  578. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.mjs +66 -0
  579. package/lib/programmers/protobuf/ProtobufIsEncodeProgrammer.mjs.map +1 -0
  580. package/lib/programmers/protobuf/ProtobufMessageProgrammer.mjs +131 -0
  581. package/lib/programmers/protobuf/ProtobufMessageProgrammer.mjs.map +1 -0
  582. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.mjs +67 -0
  583. package/lib/programmers/protobuf/ProtobufValidateDecodeProgrammer.mjs.map +1 -0
  584. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.mjs +77 -0
  585. package/lib/programmers/protobuf/ProtobufValidateEncodeProgrammer.mjs.map +1 -0
  586. package/lib/protobuf.mjs.map +1 -1
  587. package/lib/reflect.mjs.map +1 -1
  588. package/lib/schemas/json/IJsonApplication.mjs +2 -0
  589. package/lib/schemas/json/IJsonApplication.mjs.map +1 -0
  590. package/lib/schemas/json/IJsonSchemaCollection.mjs +2 -0
  591. package/lib/schemas/json/IJsonSchemaCollection.mjs.map +1 -0
  592. package/lib/schemas/json/__IJsonApplication.mjs +2 -0
  593. package/lib/schemas/json/__IJsonApplication.mjs.map +1 -0
  594. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs +2 -0
  595. package/lib/schemas/llm/ILlmApplicationOfValidate.mjs.map +1 -0
  596. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs +2 -0
  597. package/lib/schemas/llm/ILlmFunctionOfValidate.mjs.map +1 -0
  598. package/lib/schemas/metadata/IJsDocTagInfo.mjs +2 -0
  599. package/lib/schemas/metadata/IJsDocTagInfo.mjs.map +1 -0
  600. package/lib/schemas/metadata/IMetadata.mjs +2 -0
  601. package/lib/schemas/metadata/IMetadata.mjs.map +1 -0
  602. package/lib/schemas/metadata/IMetadataAlias.mjs +2 -0
  603. package/lib/schemas/metadata/IMetadataAlias.mjs.map +1 -0
  604. package/lib/schemas/metadata/IMetadataAliasType.mjs +2 -0
  605. package/lib/schemas/metadata/IMetadataAliasType.mjs.map +1 -0
  606. package/lib/schemas/metadata/IMetadataApplication.mjs +2 -0
  607. package/lib/schemas/metadata/IMetadataApplication.mjs.map +1 -0
  608. package/lib/schemas/metadata/IMetadataArray.mjs +2 -0
  609. package/lib/schemas/metadata/IMetadataArray.mjs.map +1 -0
  610. package/lib/schemas/metadata/IMetadataArrayType.mjs +2 -0
  611. package/lib/schemas/metadata/IMetadataArrayType.mjs.map +1 -0
  612. package/lib/schemas/metadata/IMetadataAtomic.mjs +2 -0
  613. package/lib/schemas/metadata/IMetadataAtomic.mjs.map +1 -0
  614. package/lib/schemas/metadata/IMetadataComponents.mjs +2 -0
  615. package/lib/schemas/metadata/IMetadataComponents.mjs.map +1 -0
  616. package/lib/schemas/metadata/IMetadataConstant.mjs +2 -0
  617. package/lib/schemas/metadata/IMetadataConstant.mjs.map +1 -0
  618. package/lib/schemas/metadata/IMetadataConstantValue.mjs +2 -0
  619. package/lib/schemas/metadata/IMetadataConstantValue.mjs.map +1 -0
  620. package/lib/schemas/metadata/IMetadataDictionary.mjs +2 -0
  621. package/lib/schemas/metadata/IMetadataDictionary.mjs.map +1 -0
  622. package/lib/schemas/metadata/IMetadataEscaped.mjs +2 -0
  623. package/lib/schemas/metadata/IMetadataEscaped.mjs.map +1 -0
  624. package/lib/schemas/metadata/IMetadataFunction.mjs +2 -0
  625. package/lib/schemas/metadata/IMetadataFunction.mjs.map +1 -0
  626. package/lib/schemas/metadata/IMetadataMap.mjs +2 -0
  627. package/lib/schemas/metadata/IMetadataMap.mjs.map +1 -0
  628. package/lib/schemas/metadata/IMetadataNative.mjs +2 -0
  629. package/lib/schemas/metadata/IMetadataNative.mjs.map +1 -0
  630. package/lib/schemas/metadata/IMetadataObject.mjs +2 -0
  631. package/lib/schemas/metadata/IMetadataObject.mjs.map +1 -0
  632. package/lib/schemas/metadata/IMetadataObjectType.mjs +2 -0
  633. package/lib/schemas/metadata/IMetadataObjectType.mjs.map +1 -0
  634. package/lib/schemas/metadata/IMetadataParameter.mjs +2 -0
  635. package/lib/schemas/metadata/IMetadataParameter.mjs.map +1 -0
  636. package/lib/schemas/metadata/IMetadataProperty.mjs +2 -0
  637. package/lib/schemas/metadata/IMetadataProperty.mjs.map +1 -0
  638. package/lib/schemas/metadata/IMetadataSet.mjs +2 -0
  639. package/lib/schemas/metadata/IMetadataSet.mjs.map +1 -0
  640. package/lib/schemas/metadata/IMetadataTemplate.mjs +2 -0
  641. package/lib/schemas/metadata/IMetadataTemplate.mjs.map +1 -0
  642. package/lib/schemas/metadata/IMetadataTuple.mjs +2 -0
  643. package/lib/schemas/metadata/IMetadataTuple.mjs.map +1 -0
  644. package/lib/schemas/metadata/IMetadataTupleType.mjs +2 -0
  645. package/lib/schemas/metadata/IMetadataTupleType.mjs.map +1 -0
  646. package/lib/schemas/metadata/IMetadataTypeTag.mjs +2 -0
  647. package/lib/schemas/metadata/IMetadataTypeTag.mjs.map +1 -0
  648. package/lib/schemas/metadata/Metadata.js +9 -0
  649. package/lib/schemas/metadata/Metadata.js.map +1 -1
  650. package/lib/schemas/metadata/Metadata.mjs +566 -0
  651. package/lib/schemas/metadata/Metadata.mjs.map +1 -0
  652. package/lib/schemas/metadata/MetadataAlias.mjs +40 -0
  653. package/lib/schemas/metadata/MetadataAlias.mjs.map +1 -0
  654. package/lib/schemas/metadata/MetadataAliasType.mjs +54 -0
  655. package/lib/schemas/metadata/MetadataAliasType.mjs.map +1 -0
  656. package/lib/schemas/metadata/MetadataApplication.mjs +34 -0
  657. package/lib/schemas/metadata/MetadataApplication.mjs.map +1 -0
  658. package/lib/schemas/metadata/MetadataArray.mjs +42 -0
  659. package/lib/schemas/metadata/MetadataArray.mjs.map +1 -0
  660. package/lib/schemas/metadata/MetadataArrayType.mjs +47 -0
  661. package/lib/schemas/metadata/MetadataArrayType.mjs.map +1 -0
  662. package/lib/schemas/metadata/MetadataAtomic.mjs +71 -0
  663. package/lib/schemas/metadata/MetadataAtomic.mjs.map +1 -0
  664. package/lib/schemas/metadata/MetadataComponents.mjs +74 -0
  665. package/lib/schemas/metadata/MetadataComponents.mjs.map +1 -0
  666. package/lib/schemas/metadata/MetadataConstant.mjs +28 -0
  667. package/lib/schemas/metadata/MetadataConstant.mjs.map +1 -0
  668. package/lib/schemas/metadata/MetadataConstantValue.mjs +50 -0
  669. package/lib/schemas/metadata/MetadataConstantValue.mjs.map +1 -0
  670. package/lib/schemas/metadata/MetadataEscaped.mjs +40 -0
  671. package/lib/schemas/metadata/MetadataEscaped.mjs.map +1 -0
  672. package/lib/schemas/metadata/MetadataFunction.mjs +39 -0
  673. package/lib/schemas/metadata/MetadataFunction.mjs.map +1 -0
  674. package/lib/schemas/metadata/MetadataMap.mjs +40 -0
  675. package/lib/schemas/metadata/MetadataMap.mjs.map +1 -0
  676. package/lib/schemas/metadata/MetadataNative.mjs +39 -0
  677. package/lib/schemas/metadata/MetadataNative.mjs.map +1 -0
  678. package/lib/schemas/metadata/MetadataObject.mjs +42 -0
  679. package/lib/schemas/metadata/MetadataObject.mjs.map +1 -0
  680. package/lib/schemas/metadata/MetadataObjectType.mjs +101 -0
  681. package/lib/schemas/metadata/MetadataObjectType.mjs.map +1 -0
  682. package/lib/schemas/metadata/MetadataParameter.mjs +41 -0
  683. package/lib/schemas/metadata/MetadataParameter.mjs.map +1 -0
  684. package/lib/schemas/metadata/MetadataProperty.mjs +49 -0
  685. package/lib/schemas/metadata/MetadataProperty.mjs.map +1 -0
  686. package/lib/schemas/metadata/MetadataSet.mjs +37 -0
  687. package/lib/schemas/metadata/MetadataSet.mjs.map +1 -0
  688. package/lib/schemas/metadata/MetadataTemplate.mjs +60 -0
  689. package/lib/schemas/metadata/MetadataTemplate.mjs.map +1 -0
  690. package/lib/schemas/metadata/MetadataTuple.mjs +26 -0
  691. package/lib/schemas/metadata/MetadataTuple.mjs.map +1 -0
  692. package/lib/schemas/metadata/MetadataTupleType.mjs +52 -0
  693. package/lib/schemas/metadata/MetadataTupleType.mjs.map +1 -0
  694. package/lib/schemas/protobuf/IProtobufProperty.mjs +2 -0
  695. package/lib/schemas/protobuf/IProtobufProperty.mjs.map +1 -0
  696. package/lib/schemas/protobuf/IProtobufPropertyType.mjs +2 -0
  697. package/lib/schemas/protobuf/IProtobufPropertyType.mjs.map +1 -0
  698. package/lib/schemas/protobuf/IProtobufSchema.mjs +2 -0
  699. package/lib/schemas/protobuf/IProtobufSchema.mjs.map +1 -0
  700. package/lib/tags/Constant.mjs +2 -0
  701. package/lib/tags/Constant.mjs.map +1 -0
  702. package/lib/tags/ContentMediaType.mjs +2 -0
  703. package/lib/tags/ContentMediaType.mjs.map +1 -0
  704. package/lib/tags/Default.mjs +2 -0
  705. package/lib/tags/Default.mjs.map +1 -0
  706. package/lib/tags/Example.mjs +2 -0
  707. package/lib/tags/Example.mjs.map +1 -0
  708. package/lib/tags/Examples.mjs +2 -0
  709. package/lib/tags/Examples.mjs.map +1 -0
  710. package/lib/tags/ExclusiveMaximum.mjs +2 -0
  711. package/lib/tags/ExclusiveMaximum.mjs.map +1 -0
  712. package/lib/tags/ExclusiveMinimum.mjs +2 -0
  713. package/lib/tags/ExclusiveMinimum.mjs.map +1 -0
  714. package/lib/tags/Format.mjs +2 -0
  715. package/lib/tags/Format.mjs.map +1 -0
  716. package/lib/tags/JsonSchemaPlugin.mjs +2 -0
  717. package/lib/tags/JsonSchemaPlugin.mjs.map +1 -0
  718. package/lib/tags/MaxItems.mjs +2 -0
  719. package/lib/tags/MaxItems.mjs.map +1 -0
  720. package/lib/tags/MaxLength.mjs +2 -0
  721. package/lib/tags/MaxLength.mjs.map +1 -0
  722. package/lib/tags/Maximum.mjs +2 -0
  723. package/lib/tags/Maximum.mjs.map +1 -0
  724. package/lib/tags/MinItems.mjs +2 -0
  725. package/lib/tags/MinItems.mjs.map +1 -0
  726. package/lib/tags/MinLength.mjs +2 -0
  727. package/lib/tags/MinLength.mjs.map +1 -0
  728. package/lib/tags/Minimum.mjs +2 -0
  729. package/lib/tags/Minimum.mjs.map +1 -0
  730. package/lib/tags/MultipleOf.mjs +2 -0
  731. package/lib/tags/MultipleOf.mjs.map +1 -0
  732. package/lib/tags/Pattern.mjs +2 -0
  733. package/lib/tags/Pattern.mjs.map +1 -0
  734. package/lib/tags/Sequence.mjs +2 -0
  735. package/lib/tags/Sequence.mjs.map +1 -0
  736. package/lib/tags/TagBase.mjs +2 -0
  737. package/lib/tags/TagBase.mjs.map +1 -0
  738. package/lib/tags/Type.mjs +2 -0
  739. package/lib/tags/Type.mjs.map +1 -0
  740. package/lib/tags/UniqueItems.mjs +2 -0
  741. package/lib/tags/UniqueItems.mjs.map +1 -0
  742. package/lib/tags/internal/FormatCheatSheet.mjs +35 -0
  743. package/lib/tags/internal/FormatCheatSheet.mjs.map +1 -0
  744. package/lib/transform.mjs +29 -0
  745. package/lib/transform.mjs.map +1 -0
  746. package/lib/transformers/CallExpressionTransformer.mjs +450 -0
  747. package/lib/transformers/CallExpressionTransformer.mjs.map +1 -0
  748. package/lib/transformers/FileTransformer.mjs +93 -0
  749. package/lib/transformers/FileTransformer.mjs.map +1 -0
  750. package/lib/transformers/IProgrammerProps.mjs +2 -0
  751. package/lib/transformers/IProgrammerProps.mjs.map +1 -0
  752. package/lib/transformers/ITransformOptions.mjs +2 -0
  753. package/lib/transformers/ITransformOptions.mjs.map +1 -0
  754. package/lib/transformers/ITransformProps.mjs +2 -0
  755. package/lib/transformers/ITransformProps.mjs.map +1 -0
  756. package/lib/transformers/ITypiaContext.mjs +2 -0
  757. package/lib/transformers/ITypiaContext.mjs.map +1 -0
  758. package/lib/transformers/ImportTransformer.mjs +51 -0
  759. package/lib/transformers/ImportTransformer.mjs.map +1 -0
  760. package/lib/transformers/NodeTransformer.mjs +15 -0
  761. package/lib/transformers/NodeTransformer.mjs.map +1 -0
  762. package/lib/transformers/TransformerError.mjs +51 -0
  763. package/lib/transformers/TransformerError.mjs.map +1 -0
  764. package/lib/transformers/features/AssertTransformer.mjs +23 -0
  765. package/lib/transformers/features/AssertTransformer.mjs.map +1 -0
  766. package/lib/transformers/features/CreateAssertTransformer.mjs +23 -0
  767. package/lib/transformers/features/CreateAssertTransformer.mjs.map +1 -0
  768. package/lib/transformers/features/CreateIsTransformer.mjs +17 -0
  769. package/lib/transformers/features/CreateIsTransformer.mjs.map +1 -0
  770. package/lib/transformers/features/CreateRandomTransformer.mjs +40 -0
  771. package/lib/transformers/features/CreateRandomTransformer.mjs.map +1 -0
  772. package/lib/transformers/features/CreateValidateTransformer.mjs +17 -0
  773. package/lib/transformers/features/CreateValidateTransformer.mjs.map +1 -0
  774. package/lib/transformers/features/IsTransformer.mjs +17 -0
  775. package/lib/transformers/features/IsTransformer.mjs.map +1 -0
  776. package/lib/transformers/features/RandomTransformer.mjs +35 -0
  777. package/lib/transformers/features/RandomTransformer.mjs.map +1 -0
  778. package/lib/transformers/features/ValidateTransformer.mjs +17 -0
  779. package/lib/transformers/features/ValidateTransformer.mjs.map +1 -0
  780. package/lib/transformers/features/functional/FunctionalGenericTransformer.mjs +33 -0
  781. package/lib/transformers/features/functional/FunctionalGenericTransformer.mjs.map +1 -0
  782. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.mjs +14 -0
  783. package/lib/transformers/features/http/CreateHttpAssertFormDataTransformer.mjs.map +1 -0
  784. package/lib/transformers/features/http/CreateHttpAssertHeadersTransformer.mjs +14 -0
  785. package/lib/transformers/features/http/CreateHttpAssertHeadersTransformer.mjs.map +1 -0
  786. package/lib/transformers/features/http/CreateHttpAssertQueryTransformer.mjs +14 -0
  787. package/lib/transformers/features/http/CreateHttpAssertQueryTransformer.mjs.map +1 -0
  788. package/lib/transformers/features/http/CreateHttpFormDataTransformer.mjs +14 -0
  789. package/lib/transformers/features/http/CreateHttpFormDataTransformer.mjs.map +1 -0
  790. package/lib/transformers/features/http/CreateHttpHeadersTransformer.mjs +14 -0
  791. package/lib/transformers/features/http/CreateHttpHeadersTransformer.mjs.map +1 -0
  792. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.mjs +14 -0
  793. package/lib/transformers/features/http/CreateHttpIsFormDataTransformer.mjs.map +1 -0
  794. package/lib/transformers/features/http/CreateHttpIsHeadersTransformer.mjs +14 -0
  795. package/lib/transformers/features/http/CreateHttpIsHeadersTransformer.mjs.map +1 -0
  796. package/lib/transformers/features/http/CreateHttpIsQueryTransformer.mjs +14 -0
  797. package/lib/transformers/features/http/CreateHttpIsQueryTransformer.mjs.map +1 -0
  798. package/lib/transformers/features/http/CreateHttpParameterTransformer.mjs +14 -0
  799. package/lib/transformers/features/http/CreateHttpParameterTransformer.mjs.map +1 -0
  800. package/lib/transformers/features/http/CreateHttpQueryTransformer.mjs +14 -0
  801. package/lib/transformers/features/http/CreateHttpQueryTransformer.mjs.map +1 -0
  802. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.mjs +14 -0
  803. package/lib/transformers/features/http/CreateHttpValidateFormDataTransformer.mjs.map +1 -0
  804. package/lib/transformers/features/http/CreateHttpValidateHeadersTransformer.mjs +14 -0
  805. package/lib/transformers/features/http/CreateHttpValidateHeadersTransformer.mjs.map +1 -0
  806. package/lib/transformers/features/http/CreateHttpValidateQueryTransformer.mjs +14 -0
  807. package/lib/transformers/features/http/CreateHttpValidateQueryTransformer.mjs.map +1 -0
  808. package/lib/transformers/features/http/HttpAssertFormDataTransformer.mjs +14 -0
  809. package/lib/transformers/features/http/HttpAssertFormDataTransformer.mjs.map +1 -0
  810. package/lib/transformers/features/http/HttpAssertHeadersTransformer.mjs +14 -0
  811. package/lib/transformers/features/http/HttpAssertHeadersTransformer.mjs.map +1 -0
  812. package/lib/transformers/features/http/HttpAssertQueryTransformer.mjs +14 -0
  813. package/lib/transformers/features/http/HttpAssertQueryTransformer.mjs.map +1 -0
  814. package/lib/transformers/features/http/HttpFormDataTransformer.mjs +14 -0
  815. package/lib/transformers/features/http/HttpFormDataTransformer.mjs.map +1 -0
  816. package/lib/transformers/features/http/HttpHeadersTransformer.mjs +14 -0
  817. package/lib/transformers/features/http/HttpHeadersTransformer.mjs.map +1 -0
  818. package/lib/transformers/features/http/HttpIsFormDataTransformer.mjs +14 -0
  819. package/lib/transformers/features/http/HttpIsFormDataTransformer.mjs.map +1 -0
  820. package/lib/transformers/features/http/HttpIsHeadersTransformer.mjs +14 -0
  821. package/lib/transformers/features/http/HttpIsHeadersTransformer.mjs.map +1 -0
  822. package/lib/transformers/features/http/HttpIsQueryTransformer.mjs +14 -0
  823. package/lib/transformers/features/http/HttpIsQueryTransformer.mjs.map +1 -0
  824. package/lib/transformers/features/http/HttpParameterTransformer.mjs +14 -0
  825. package/lib/transformers/features/http/HttpParameterTransformer.mjs.map +1 -0
  826. package/lib/transformers/features/http/HttpQueryTransformer.mjs +14 -0
  827. package/lib/transformers/features/http/HttpQueryTransformer.mjs.map +1 -0
  828. package/lib/transformers/features/http/HttpValidateFormDataTransformer.mjs +14 -0
  829. package/lib/transformers/features/http/HttpValidateFormDataTransformer.mjs.map +1 -0
  830. package/lib/transformers/features/http/HttpValidateHeadersTransformer.mjs +14 -0
  831. package/lib/transformers/features/http/HttpValidateHeadersTransformer.mjs.map +1 -0
  832. package/lib/transformers/features/http/HttpValidateQueryTransformer.mjs +14 -0
  833. package/lib/transformers/features/http/HttpValidateQueryTransformer.mjs.map +1 -0
  834. package/lib/transformers/features/json/JsonApplicationTransformer.mjs +2 -0
  835. package/lib/transformers/features/json/JsonApplicationTransformer.mjs.map +1 -0
  836. package/lib/transformers/features/json/JsonAssertParseTransformer.mjs +14 -0
  837. package/lib/transformers/features/json/JsonAssertParseTransformer.mjs.map +1 -0
  838. package/lib/transformers/features/json/JsonAssertStringifyTransformer.mjs +14 -0
  839. package/lib/transformers/features/json/JsonAssertStringifyTransformer.mjs.map +1 -0
  840. package/lib/transformers/features/json/JsonCreateAssertParseTransformer.mjs +14 -0
  841. package/lib/transformers/features/json/JsonCreateAssertParseTransformer.mjs.map +1 -0
  842. package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.mjs +14 -0
  843. package/lib/transformers/features/json/JsonCreateAssertStringifyTransformer.mjs.map +1 -0
  844. package/lib/transformers/features/json/JsonCreateIsParseTransformer.mjs +14 -0
  845. package/lib/transformers/features/json/JsonCreateIsParseTransformer.mjs.map +1 -0
  846. package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.mjs +14 -0
  847. package/lib/transformers/features/json/JsonCreateIsStringifyTransformer.mjs.map +1 -0
  848. package/lib/transformers/features/json/JsonCreateStringifyTransformer.mjs +14 -0
  849. package/lib/transformers/features/json/JsonCreateStringifyTransformer.mjs.map +1 -0
  850. package/lib/transformers/features/json/JsonCreateValidateParseTransformer.mjs +14 -0
  851. package/lib/transformers/features/json/JsonCreateValidateParseTransformer.mjs.map +1 -0
  852. package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.mjs +14 -0
  853. package/lib/transformers/features/json/JsonCreateValidateStringifyProgrammer.mjs.map +1 -0
  854. package/lib/transformers/features/json/JsonIsParseTransformer.mjs +14 -0
  855. package/lib/transformers/features/json/JsonIsParseTransformer.mjs.map +1 -0
  856. package/lib/transformers/features/json/JsonIsStringifyTransformer.mjs +14 -0
  857. package/lib/transformers/features/json/JsonIsStringifyTransformer.mjs.map +1 -0
  858. package/lib/transformers/features/json/JsonSchemasTransformer.mjs +113 -0
  859. package/lib/transformers/features/json/JsonSchemasTransformer.mjs.map +1 -0
  860. package/lib/transformers/features/json/JsonStringifyTransformer.mjs +14 -0
  861. package/lib/transformers/features/json/JsonStringifyTransformer.mjs.map +1 -0
  862. package/lib/transformers/features/json/JsonValidateParseTransformer.mjs +14 -0
  863. package/lib/transformers/features/json/JsonValidateParseTransformer.mjs.map +1 -0
  864. package/lib/transformers/features/json/JsonValidateStringifyTransformer.mjs +14 -0
  865. package/lib/transformers/features/json/JsonValidateStringifyTransformer.mjs.map +1 -0
  866. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs +101 -0
  867. package/lib/transformers/features/llm/LlmApplicationTransformer.mjs.map +1 -0
  868. package/lib/transformers/features/llm/LlmParametersTransformer.mjs +80 -0
  869. package/lib/transformers/features/llm/LlmParametersTransformer.mjs.map +1 -0
  870. package/lib/transformers/features/llm/LlmSchemaTransformer.mjs +99 -0
  871. package/lib/transformers/features/llm/LlmSchemaTransformer.mjs.map +1 -0
  872. package/lib/transformers/features/misc/MiscAssertCloneTransformer.mjs +14 -0
  873. package/lib/transformers/features/misc/MiscAssertCloneTransformer.mjs.map +1 -0
  874. package/lib/transformers/features/misc/MiscAssertPruneTransformer.mjs +14 -0
  875. package/lib/transformers/features/misc/MiscAssertPruneTransformer.mjs.map +1 -0
  876. package/lib/transformers/features/misc/MiscCloneTransformer.mjs +14 -0
  877. package/lib/transformers/features/misc/MiscCloneTransformer.mjs.map +1 -0
  878. package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.mjs +14 -0
  879. package/lib/transformers/features/misc/MiscCreateAssertCloneTransformer.mjs.map +1 -0
  880. package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.mjs +14 -0
  881. package/lib/transformers/features/misc/MiscCreateAssertPruneTransformer.mjs.map +1 -0
  882. package/lib/transformers/features/misc/MiscCreateCloneTransformer.mjs +14 -0
  883. package/lib/transformers/features/misc/MiscCreateCloneTransformer.mjs.map +1 -0
  884. package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.mjs +14 -0
  885. package/lib/transformers/features/misc/MiscCreateIsCloneTransformer.mjs.map +1 -0
  886. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.mjs +14 -0
  887. package/lib/transformers/features/misc/MiscCreateIsPruneTransformer.mjs.map +1 -0
  888. package/lib/transformers/features/misc/MiscCreatePruneTransformer.mjs +14 -0
  889. package/lib/transformers/features/misc/MiscCreatePruneTransformer.mjs.map +1 -0
  890. package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.mjs +14 -0
  891. package/lib/transformers/features/misc/MiscCreateValidateCloneTransformer.mjs.map +1 -0
  892. package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.mjs +14 -0
  893. package/lib/transformers/features/misc/MiscCreateValidatePruneTransformer.mjs.map +1 -0
  894. package/lib/transformers/features/misc/MiscIsCloneTransformer.mjs +14 -0
  895. package/lib/transformers/features/misc/MiscIsCloneTransformer.mjs.map +1 -0
  896. package/lib/transformers/features/misc/MiscIsPruneTransformer.mjs +14 -0
  897. package/lib/transformers/features/misc/MiscIsPruneTransformer.mjs.map +1 -0
  898. package/lib/transformers/features/misc/MiscLiteralsTransformer.mjs +30 -0
  899. package/lib/transformers/features/misc/MiscLiteralsTransformer.mjs.map +1 -0
  900. package/lib/transformers/features/misc/MiscPruneTransformer.mjs +14 -0
  901. package/lib/transformers/features/misc/MiscPruneTransformer.mjs.map +1 -0
  902. package/lib/transformers/features/misc/MiscValidateCloneTransformer.mjs +14 -0
  903. package/lib/transformers/features/misc/MiscValidateCloneTransformer.mjs.map +1 -0
  904. package/lib/transformers/features/misc/MiscValidatePruneTransformer.mjs +14 -0
  905. package/lib/transformers/features/misc/MiscValidatePruneTransformer.mjs.map +1 -0
  906. package/lib/transformers/features/notations/NotationAssertGeneralTransformer.mjs +18 -0
  907. package/lib/transformers/features/notations/NotationAssertGeneralTransformer.mjs.map +1 -0
  908. package/lib/transformers/features/notations/NotationCreateAssertGeneralTransformer.mjs +18 -0
  909. package/lib/transformers/features/notations/NotationCreateAssertGeneralTransformer.mjs.map +1 -0
  910. package/lib/transformers/features/notations/NotationCreateGeneralTransformer.mjs +18 -0
  911. package/lib/transformers/features/notations/NotationCreateGeneralTransformer.mjs.map +1 -0
  912. package/lib/transformers/features/notations/NotationCreateIsGeneralTransformer.mjs +18 -0
  913. package/lib/transformers/features/notations/NotationCreateIsGeneralTransformer.mjs.map +1 -0
  914. package/lib/transformers/features/notations/NotationCreateValidateGeneralTransformer.mjs +18 -0
  915. package/lib/transformers/features/notations/NotationCreateValidateGeneralTransformer.mjs.map +1 -0
  916. package/lib/transformers/features/notations/NotationGeneralTransformer.mjs +17 -0
  917. package/lib/transformers/features/notations/NotationGeneralTransformer.mjs.map +1 -0
  918. package/lib/transformers/features/notations/NotationIsGeneralTransformer.mjs +18 -0
  919. package/lib/transformers/features/notations/NotationIsGeneralTransformer.mjs.map +1 -0
  920. package/lib/transformers/features/notations/NotationValidateGeneralTransformer.mjs +18 -0
  921. package/lib/transformers/features/notations/NotationValidateGeneralTransformer.mjs.map +1 -0
  922. package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.mjs +14 -0
  923. package/lib/transformers/features/protobuf/ProtobufAssertDecodeTransformer.mjs.map +1 -0
  924. package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.mjs +14 -0
  925. package/lib/transformers/features/protobuf/ProtobufAssertEncodeTransformer.mjs.map +1 -0
  926. package/lib/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.mjs +14 -0
  927. package/lib/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.mjs.map +1 -0
  928. package/lib/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.mjs +14 -0
  929. package/lib/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.mjs.map +1 -0
  930. package/lib/transformers/features/protobuf/ProtobufCreateDecodeTransformer.mjs +14 -0
  931. package/lib/transformers/features/protobuf/ProtobufCreateDecodeTransformer.mjs.map +1 -0
  932. package/lib/transformers/features/protobuf/ProtobufCreateEncodeTransformer.mjs +14 -0
  933. package/lib/transformers/features/protobuf/ProtobufCreateEncodeTransformer.mjs.map +1 -0
  934. package/lib/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.mjs +14 -0
  935. package/lib/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.mjs.map +1 -0
  936. package/lib/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.mjs +14 -0
  937. package/lib/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.mjs.map +1 -0
  938. package/lib/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.mjs +14 -0
  939. package/lib/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.mjs.map +1 -0
  940. package/lib/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.mjs +14 -0
  941. package/lib/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.mjs.map +1 -0
  942. package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.mjs +14 -0
  943. package/lib/transformers/features/protobuf/ProtobufDecodeTransformer.mjs.map +1 -0
  944. package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.mjs +14 -0
  945. package/lib/transformers/features/protobuf/ProtobufEncodeTransformer.mjs.map +1 -0
  946. package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.mjs +14 -0
  947. package/lib/transformers/features/protobuf/ProtobufIsDecodeTransformer.mjs.map +1 -0
  948. package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.mjs +14 -0
  949. package/lib/transformers/features/protobuf/ProtobufIsEncodeTransformer.mjs.map +1 -0
  950. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.mjs +29 -0
  951. package/lib/transformers/features/protobuf/ProtobufMessageTransformer.mjs.map +1 -0
  952. package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.mjs +14 -0
  953. package/lib/transformers/features/protobuf/ProtobufValidateDecodeTransformer.mjs.map +1 -0
  954. package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.mjs +14 -0
  955. package/lib/transformers/features/protobuf/ProtobufValidateEncodeTransformer.mjs.map +1 -0
  956. package/lib/transformers/features/reflect/ReflectMetadataTransformer.mjs +60 -0
  957. package/lib/transformers/features/reflect/ReflectMetadataTransformer.mjs.map +1 -0
  958. package/lib/transformers/features/reflect/ReflectNameTransformer.mjs +66 -0
  959. package/lib/transformers/features/reflect/ReflectNameTransformer.mjs.map +1 -0
  960. package/lib/transformers/internal/GenericTransformer.mjs +72 -0
  961. package/lib/transformers/internal/GenericTransformer.mjs.map +1 -0
  962. package/lib/typings/Atomic.mjs +2 -0
  963. package/lib/typings/Atomic.mjs.map +1 -0
  964. package/lib/typings/ClassProperties.mjs +2 -0
  965. package/lib/typings/ClassProperties.mjs.map +1 -0
  966. package/lib/typings/Customizable.mjs +2 -0
  967. package/lib/typings/Customizable.mjs.map +1 -0
  968. package/lib/typings/Equal.mjs +2 -0
  969. package/lib/typings/Equal.mjs.map +1 -0
  970. package/lib/typings/IsTuple.mjs +2 -0
  971. package/lib/typings/IsTuple.mjs.map +1 -0
  972. package/lib/typings/NativeClass.mjs +2 -0
  973. package/lib/typings/NativeClass.mjs.map +1 -0
  974. package/lib/typings/OmitNever.mjs +2 -0
  975. package/lib/typings/OmitNever.mjs.map +1 -0
  976. package/lib/typings/ProtobufAtomic.mjs +2 -0
  977. package/lib/typings/ProtobufAtomic.mjs.map +1 -0
  978. package/lib/typings/SpecialFields.mjs +2 -0
  979. package/lib/typings/SpecialFields.mjs.map +1 -0
  980. package/lib/typings/ValidationPipe.mjs +2 -0
  981. package/lib/typings/ValidationPipe.mjs.map +1 -0
  982. package/lib/typings/ValueOf.mjs +2 -0
  983. package/lib/typings/ValueOf.mjs.map +1 -0
  984. package/lib/typings/Writable.mjs +6 -0
  985. package/lib/typings/Writable.mjs.map +1 -0
  986. package/lib/utils/ArrayUtil.mjs +27 -0
  987. package/lib/utils/ArrayUtil.mjs.map +1 -0
  988. package/lib/utils/Escaper.mjs +51 -0
  989. package/lib/utils/Escaper.mjs.map +1 -0
  990. package/lib/utils/MapUtil.mjs +14 -0
  991. package/lib/utils/MapUtil.mjs.map +1 -0
  992. package/lib/utils/NamingConvention.mjs +94 -0
  993. package/lib/utils/NamingConvention.mjs.map +1 -0
  994. package/lib/utils/PatternUtil.mjs +29 -0
  995. package/lib/utils/PatternUtil.mjs.map +1 -0
  996. package/lib/utils/ProtobufNameEncoder.mjs +35 -0
  997. package/lib/utils/ProtobufNameEncoder.mjs.map +1 -0
  998. package/lib/utils/Singleton.mjs +17 -0
  999. package/lib/utils/Singleton.mjs.map +1 -0
  1000. package/lib/utils/StringUtil.mjs +13 -0
  1001. package/lib/utils/StringUtil.mjs.map +1 -0
  1002. package/package.json +6 -2
  1003. package/src/AssertionGuard.ts +1 -1
  1004. package/src/CamelCase.ts +75 -75
  1005. package/src/IRandomGenerator.ts +49 -49
  1006. package/src/IReadableURLSearchParams.ts +9 -9
  1007. package/src/IValidation.ts +1 -1
  1008. package/src/PascalCase.ts +71 -71
  1009. package/src/Primitive.ts +92 -92
  1010. package/src/Resolved.ts +74 -74
  1011. package/src/SnakeCase.ts +126 -126
  1012. package/src/TypeGuardError.ts +37 -37
  1013. package/src/executable/TypiaGenerateWizard.ts +83 -83
  1014. package/src/executable/TypiaPatchWizard.ts +45 -45
  1015. package/src/executable/TypiaSetupWizard.ts +171 -171
  1016. package/src/executable/setup/ArgumentParser.ts +42 -42
  1017. package/src/executable/setup/CommandExecutor.ts +8 -8
  1018. package/src/executable/setup/FileRetriever.ts +19 -19
  1019. package/src/executable/setup/PackageManager.ts +87 -87
  1020. package/src/executable/setup/PluginConfigurator.ts +69 -69
  1021. package/src/executable/typia.ts +55 -55
  1022. package/src/factories/CommentFactory.ts +79 -79
  1023. package/src/factories/ExpressionFactory.ts +216 -216
  1024. package/src/factories/IdentifierFactory.ts +89 -89
  1025. package/src/factories/JsonMetadataFactory.ts +83 -83
  1026. package/src/factories/LiteralFactory.ts +52 -52
  1027. package/src/factories/MetadataCollection.ts +278 -278
  1028. package/src/factories/MetadataCommentTagFactory.ts +650 -650
  1029. package/src/factories/MetadataFactory.ts +404 -404
  1030. package/src/factories/MetadataTypeTagFactory.ts +413 -413
  1031. package/src/factories/MetadataTypeTagSchemaFactory.ts +82 -82
  1032. package/src/factories/NumericRangeFactory.ts +72 -72
  1033. package/src/factories/ProtobufFactory.ts +875 -875
  1034. package/src/factories/StatementFactory.ts +90 -90
  1035. package/src/factories/TemplateFactory.ts +64 -64
  1036. package/src/factories/TypeFactory.ts +140 -140
  1037. package/src/factories/ValueFactory.ts +12 -12
  1038. package/src/factories/internal/metadata/IMetadataIteratorProps.ts +17 -17
  1039. package/src/factories/internal/metadata/MetadataHelper.ts +21 -21
  1040. package/src/factories/internal/metadata/emend_metadata_atomics.ts +45 -45
  1041. package/src/factories/internal/metadata/emplace_metadata_alias.ts +33 -33
  1042. package/src/factories/internal/metadata/emplace_metadata_array_type.ts +39 -39
  1043. package/src/factories/internal/metadata/emplace_metadata_object.ts +212 -208
  1044. package/src/factories/internal/metadata/emplace_metadata_tuple.ts +57 -57
  1045. package/src/factories/internal/metadata/explore_metadata.ts +31 -31
  1046. package/src/factories/internal/metadata/iterate_metadata.ts +54 -54
  1047. package/src/factories/internal/metadata/iterate_metadata_alias.ts +33 -33
  1048. package/src/factories/internal/metadata/iterate_metadata_array.ts +63 -63
  1049. package/src/factories/internal/metadata/iterate_metadata_atomic.ts +62 -62
  1050. package/src/factories/internal/metadata/iterate_metadata_coalesce.ts +28 -28
  1051. package/src/factories/internal/metadata/iterate_metadata_collection.ts +146 -146
  1052. package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
  1053. package/src/factories/internal/metadata/iterate_metadata_constant.ts +76 -76
  1054. package/src/factories/internal/metadata/iterate_metadata_escape.ts +49 -49
  1055. package/src/factories/internal/metadata/iterate_metadata_function.ts +91 -91
  1056. package/src/factories/internal/metadata/iterate_metadata_intersection.ts +212 -212
  1057. package/src/factories/internal/metadata/iterate_metadata_map.ts +57 -57
  1058. package/src/factories/internal/metadata/iterate_metadata_native.ts +255 -255
  1059. package/src/factories/internal/metadata/iterate_metadata_object.ts +35 -35
  1060. package/src/factories/internal/metadata/iterate_metadata_set.ts +57 -57
  1061. package/src/factories/internal/metadata/iterate_metadata_sort.ts +87 -87
  1062. package/src/factories/internal/metadata/iterate_metadata_template.ts +41 -41
  1063. package/src/factories/internal/metadata/iterate_metadata_tuple.ts +26 -26
  1064. package/src/factories/internal/metadata/iterate_metadata_union.ts +19 -19
  1065. package/src/functional.ts +750 -750
  1066. package/src/http.ts +1047 -1047
  1067. package/src/index.ts +4 -4
  1068. package/src/internal/_IProtobufWriter.ts +18 -18
  1069. package/src/internal/_ProtobufReader.ts +194 -194
  1070. package/src/internal/_ProtobufSizer.ts +145 -145
  1071. package/src/internal/_ProtobufWriter.ts +145 -145
  1072. package/src/internal/_accessExpressionAsString.ts +46 -46
  1073. package/src/internal/_assertGuard.ts +13 -13
  1074. package/src/internal/_functionalTypeGuardErrorFactory.ts +4 -4
  1075. package/src/internal/_httpFormDataReadArray.ts +4 -4
  1076. package/src/internal/_httpFormDataReadBigint.ts +18 -18
  1077. package/src/internal/_httpFormDataReadBlob.ts +10 -10
  1078. package/src/internal/_httpFormDataReadBoolean.ts +16 -16
  1079. package/src/internal/_httpFormDataReadFile.ts +10 -10
  1080. package/src/internal/_httpFormDataReadNumber.ts +15 -15
  1081. package/src/internal/_httpFormDataReadString.ts +10 -10
  1082. package/src/internal/_httpHeaderReadBigint.ts +10 -10
  1083. package/src/internal/_httpHeaderReadBoolean.ts +8 -8
  1084. package/src/internal/_httpHeaderReadNumber.ts +7 -7
  1085. package/src/internal/_httpParameterReadBigint.ts +10 -10
  1086. package/src/internal/_httpParameterReadBoolean.ts +8 -8
  1087. package/src/internal/_httpParameterReadNumber.ts +7 -7
  1088. package/src/internal/_httpParameterReadString.ts +2 -2
  1089. package/src/internal/_httpQueryParseURLSearchParams.ts +12 -12
  1090. package/src/internal/_httpQueryReadArray.ts +4 -4
  1091. package/src/internal/_httpQueryReadBigint.ts +12 -12
  1092. package/src/internal/_httpQueryReadBoolean.ts +14 -14
  1093. package/src/internal/_httpQueryReadNumber.ts +9 -9
  1094. package/src/internal/_httpQueryReadString.ts +4 -4
  1095. package/src/internal/_isBetween.ts +2 -2
  1096. package/src/internal/_isBigintString.ts +8 -8
  1097. package/src/internal/_isFormatByte.ts +7 -7
  1098. package/src/internal/_isFormatDate.ts +3 -3
  1099. package/src/internal/_isFormatDateTime.ts +4 -4
  1100. package/src/internal/_isFormatDuration.ts +4 -4
  1101. package/src/internal/_isFormatEmail.ts +4 -4
  1102. package/src/internal/_isFormatHostname.ts +4 -4
  1103. package/src/internal/_isFormatIdnEmail.ts +4 -4
  1104. package/src/internal/_isFormatIdnHostname.ts +4 -4
  1105. package/src/internal/_isFormatIpv4.ts +4 -4
  1106. package/src/internal/_isFormatIpv6.ts +4 -4
  1107. package/src/internal/_isFormatIri.ts +3 -3
  1108. package/src/internal/_isFormatIriReference.ts +4 -4
  1109. package/src/internal/_isFormatJsonPointer.ts +3 -3
  1110. package/src/internal/_isFormatPassword.ts +1 -1
  1111. package/src/internal/_isFormatRegex.ts +8 -8
  1112. package/src/internal/_isFormatRelativeJsonPointer.ts +4 -4
  1113. package/src/internal/_isFormatTime.ts +4 -4
  1114. package/src/internal/_isFormatUri.ts +6 -6
  1115. package/src/internal/_isFormatUriReference.ts +5 -5
  1116. package/src/internal/_isFormatUriTemplate.ts +4 -4
  1117. package/src/internal/_isFormatUrl.ts +4 -4
  1118. package/src/internal/_isFormatUuid.ts +3 -3
  1119. package/src/internal/_isTypeFloat.ts +5 -5
  1120. package/src/internal/_isTypeInt32.ts +5 -5
  1121. package/src/internal/_isTypeInt64.ts +5 -5
  1122. package/src/internal/_isTypeUint32.ts +5 -5
  1123. package/src/internal/_isTypeUint64.ts +5 -5
  1124. package/src/internal/_isUniqueItems.ts +159 -159
  1125. package/src/internal/_jsonStringifyNumber.ts +12 -12
  1126. package/src/internal/_jsonStringifyRest.ts +3 -3
  1127. package/src/internal/_jsonStringifyString.ts +42 -42
  1128. package/src/internal/_jsonStringifyTail.ts +2 -2
  1129. package/src/internal/_llmApplicationFinalize.ts +20 -20
  1130. package/src/internal/_miscCloneAny.ts +46 -46
  1131. package/src/internal/_notationAny.ts +37 -37
  1132. package/src/internal/_notationCamel.ts +13 -13
  1133. package/src/internal/_notationPascal.ts +8 -8
  1134. package/src/internal/_notationSnake.ts +43 -43
  1135. package/src/internal/_randomArray.ts +21 -21
  1136. package/src/internal/_randomBigint.ts +6 -6
  1137. package/src/internal/_randomBoolean.ts +1 -1
  1138. package/src/internal/_randomFormatByte.ts +3 -3
  1139. package/src/internal/_randomFormatDate.ts +18 -18
  1140. package/src/internal/_randomFormatDatetime.ts +16 -16
  1141. package/src/internal/_randomFormatDuration.ts +27 -27
  1142. package/src/internal/_randomFormatEmail.ts +11 -11
  1143. package/src/internal/_randomFormatHostname.ts +6 -6
  1144. package/src/internal/_randomFormatIdnEmail.ts +3 -3
  1145. package/src/internal/_randomFormatIdnHostname.ts +3 -3
  1146. package/src/internal/_randomFormatIpv4.ts +11 -11
  1147. package/src/internal/_randomFormatIpv6.ts +11 -11
  1148. package/src/internal/_randomFormatIri.ts +3 -3
  1149. package/src/internal/_randomFormatIriReference.ts +3 -3
  1150. package/src/internal/_randomFormatJsonPointer.ts +7 -7
  1151. package/src/internal/_randomFormatPassword.ts +8 -8
  1152. package/src/internal/_randomFormatRegex.ts +4 -4
  1153. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -8
  1154. package/src/internal/_randomFormatTime.ts +14 -14
  1155. package/src/internal/_randomFormatUri.ts +3 -3
  1156. package/src/internal/_randomFormatUriReference.ts +3 -3
  1157. package/src/internal/_randomFormatUriTemplate.ts +3 -3
  1158. package/src/internal/_randomFormatUrl.ts +11 -11
  1159. package/src/internal/_randomFormatUuid.ts +6 -6
  1160. package/src/internal/_randomInteger.ts +47 -47
  1161. package/src/internal/_randomNumber.ts +74 -74
  1162. package/src/internal/_randomPattern.ts +10 -10
  1163. package/src/internal/_randomPick.ts +9 -9
  1164. package/src/internal/_randomString.ts +24 -24
  1165. package/src/internal/_throwTypeGuardError.ts +5 -5
  1166. package/src/internal/_validateReport.ts +13 -13
  1167. package/src/internal/private/__notationCapitalize.ts +2 -2
  1168. package/src/internal/private/__notationUnsnake.ts +24 -24
  1169. package/src/json.ts +752 -752
  1170. package/src/llm.ts +396 -396
  1171. package/src/misc.ts +658 -658
  1172. package/src/module.ts +937 -937
  1173. package/src/notations.ts +827 -827
  1174. package/src/programmers/AssertProgrammer.ts +454 -454
  1175. package/src/programmers/CheckerProgrammer.ts +1617 -1617
  1176. package/src/programmers/FeatureProgrammer.ts +622 -622
  1177. package/src/programmers/ImportProgrammer.ts +185 -185
  1178. package/src/programmers/IsProgrammer.ts +273 -273
  1179. package/src/programmers/RandomProgrammer.ts +1190 -1190
  1180. package/src/programmers/TypiaProgrammer.ts +174 -174
  1181. package/src/programmers/ValidateProgrammer.ts +439 -439
  1182. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +153 -153
  1183. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +125 -125
  1184. package/src/programmers/functional/FunctionalAssertReturnProgrammer.ts +115 -115
  1185. package/src/programmers/functional/FunctionalIsFunctionProgrammer.ts +72 -72
  1186. package/src/programmers/functional/FunctionalIsParametersProgrammer.ts +113 -113
  1187. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +116 -116
  1188. package/src/programmers/functional/FunctionalValidateFunctionProgrammer.ts +119 -119
  1189. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +274 -274
  1190. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +135 -135
  1191. package/src/programmers/functional/internal/FunctionalGeneralProgrammer.ts +34 -34
  1192. package/src/programmers/helpers/AtomicPredicator.ts +35 -35
  1193. package/src/programmers/helpers/CloneJoiner.ts +143 -143
  1194. package/src/programmers/helpers/FunctionProgrammer.ts +67 -67
  1195. package/src/programmers/helpers/HttpMetadataUtil.ts +21 -21
  1196. package/src/programmers/helpers/ICheckEntry.ts +13 -13
  1197. package/src/programmers/helpers/IExpressionEntry.ts +12 -12
  1198. package/src/programmers/helpers/NotationJoiner.ts +144 -144
  1199. package/src/programmers/helpers/OptionPredicator.ts +15 -15
  1200. package/src/programmers/helpers/ProtobufUtil.ts +228 -228
  1201. package/src/programmers/helpers/ProtobufWire.ts +34 -34
  1202. package/src/programmers/helpers/PruneJoiner.ts +148 -148
  1203. package/src/programmers/helpers/RandomJoiner.ts +168 -168
  1204. package/src/programmers/helpers/StringifyJoinder.ts +115 -115
  1205. package/src/programmers/helpers/StringifyPredicator.ts +13 -13
  1206. package/src/programmers/helpers/UnionExplorer.ts +372 -372
  1207. package/src/programmers/helpers/UnionPredicator.ts +79 -79
  1208. package/src/programmers/helpers/disable_function_programmer_declare.ts +32 -32
  1209. package/src/programmers/http/HttpAssertFormDataProgrammer.ts +99 -99
  1210. package/src/programmers/http/HttpAssertHeadersProgrammer.ts +99 -99
  1211. package/src/programmers/http/HttpAssertQueryProgrammer.ts +105 -105
  1212. package/src/programmers/http/HttpFormDataProgrammer.ts +308 -308
  1213. package/src/programmers/http/HttpHeadersProgrammer.ts +400 -400
  1214. package/src/programmers/http/HttpIsFormDataProgrammer.ts +108 -108
  1215. package/src/programmers/http/HttpIsHeadersProgrammer.ts +108 -108
  1216. package/src/programmers/http/HttpIsQueryProgrammer.ts +114 -114
  1217. package/src/programmers/http/HttpParameterProgrammer.ts +115 -115
  1218. package/src/programmers/http/HttpQueryProgrammer.ts +336 -336
  1219. package/src/programmers/http/HttpValidateFormDataProgrammer.ts +92 -92
  1220. package/src/programmers/http/HttpValidateHeadersProgrammer.ts +92 -92
  1221. package/src/programmers/http/HttpValidateQueryProgrammer.ts +98 -98
  1222. package/src/programmers/internal/check_array_length.ts +47 -47
  1223. package/src/programmers/internal/check_bigint.ts +50 -50
  1224. package/src/programmers/internal/check_dynamic_key.ts +201 -201
  1225. package/src/programmers/internal/check_dynamic_properties.ts +208 -208
  1226. package/src/programmers/internal/check_everything.ts +23 -23
  1227. package/src/programmers/internal/check_native.ts +27 -27
  1228. package/src/programmers/internal/check_number.ts +112 -112
  1229. package/src/programmers/internal/check_object.ts +75 -75
  1230. package/src/programmers/internal/check_string.ts +50 -50
  1231. package/src/programmers/internal/check_template.ts +48 -48
  1232. package/src/programmers/internal/check_union_array_like.ts +335 -335
  1233. package/src/programmers/internal/decode_union_object.ts +116 -116
  1234. package/src/programmers/internal/feature_object_entries.ts +61 -61
  1235. package/src/programmers/internal/json_schema_alias.ts +47 -47
  1236. package/src/programmers/internal/json_schema_array.ts +45 -45
  1237. package/src/programmers/internal/json_schema_bigint.ts +15 -15
  1238. package/src/programmers/internal/json_schema_boolean.ts +15 -15
  1239. package/src/programmers/internal/json_schema_constant.ts +26 -26
  1240. package/src/programmers/internal/json_schema_description.ts +12 -12
  1241. package/src/programmers/internal/json_schema_discriminator.ts +35 -35
  1242. package/src/programmers/internal/json_schema_escaped.ts +82 -82
  1243. package/src/programmers/internal/json_schema_native.ts +33 -33
  1244. package/src/programmers/internal/json_schema_number.ts +15 -15
  1245. package/src/programmers/internal/json_schema_object.ts +158 -158
  1246. package/src/programmers/internal/json_schema_plugin.ts +18 -18
  1247. package/src/programmers/internal/json_schema_station.ts +182 -182
  1248. package/src/programmers/internal/json_schema_string.ts +15 -15
  1249. package/src/programmers/internal/json_schema_template.ts +55 -55
  1250. package/src/programmers/internal/json_schema_title.ts +20 -20
  1251. package/src/programmers/internal/json_schema_tuple.ts +35 -35
  1252. package/src/programmers/internal/metadata_to_pattern.ts +42 -42
  1253. package/src/programmers/internal/postfix_of_tuple.ts +5 -5
  1254. package/src/programmers/internal/prune_object_properties.ts +71 -71
  1255. package/src/programmers/internal/stringify_dynamic_properties.ts +162 -162
  1256. package/src/programmers/internal/stringify_native.ts +7 -7
  1257. package/src/programmers/internal/stringify_regular_properties.ts +81 -81
  1258. package/src/programmers/internal/template_to_pattern.ts +23 -23
  1259. package/src/programmers/internal/wrap_metadata_rest_tuple.ts +23 -23
  1260. package/src/programmers/json/JsonApplicationProgrammer.ts +266 -279
  1261. package/src/programmers/json/JsonAssertParseProgrammer.ts +113 -113
  1262. package/src/programmers/json/JsonAssertStringifyProgrammer.ts +115 -115
  1263. package/src/programmers/json/JsonIsParseProgrammer.ts +114 -114
  1264. package/src/programmers/json/JsonIsStringifyProgrammer.ts +108 -108
  1265. package/src/programmers/json/JsonSchemasProgrammer.ts +91 -91
  1266. package/src/programmers/json/JsonStringifyProgrammer.ts +1124 -1124
  1267. package/src/programmers/json/JsonValidateParseProgrammer.ts +105 -105
  1268. package/src/programmers/json/JsonValidateStringifyProgrammer.ts +124 -124
  1269. package/src/programmers/llm/LlmApplicationProgrammer.ts +401 -413
  1270. package/src/programmers/llm/LlmModelPredicator.ts +127 -127
  1271. package/src/programmers/llm/LlmParametersProgrammer.ts +93 -93
  1272. package/src/programmers/llm/LlmSchemaProgrammer.ts +192 -192
  1273. package/src/programmers/misc/MiscAssertCloneProgrammer.ts +95 -95
  1274. package/src/programmers/misc/MiscAssertPruneProgrammer.ts +116 -116
  1275. package/src/programmers/misc/MiscCloneProgrammer.ts +1032 -1032
  1276. package/src/programmers/misc/MiscIsCloneProgrammer.ts +99 -99
  1277. package/src/programmers/misc/MiscIsPruneProgrammer.ts +97 -97
  1278. package/src/programmers/misc/MiscLiteralsProgrammer.ts +80 -80
  1279. package/src/programmers/misc/MiscPruneProgrammer.ts +728 -728
  1280. package/src/programmers/misc/MiscValidateCloneProgrammer.ts +111 -111
  1281. package/src/programmers/misc/MiscValidatePruneProgrammer.ts +113 -113
  1282. package/src/programmers/notations/NotationAssertGeneralProgrammer.ts +101 -101
  1283. package/src/programmers/notations/NotationGeneralProgrammer.ts +984 -984
  1284. package/src/programmers/notations/NotationIsGeneralProgrammer.ts +105 -105
  1285. package/src/programmers/notations/NotationValidateGeneralProgrammer.ts +119 -119
  1286. package/src/programmers/protobuf/ProtobufAssertDecodeProgrammer.ts +98 -98
  1287. package/src/programmers/protobuf/ProtobufAssertEncodeProgrammer.ts +102 -102
  1288. package/src/programmers/protobuf/ProtobufDecodeProgrammer.ts +654 -654
  1289. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +945 -945
  1290. package/src/programmers/protobuf/ProtobufIsDecodeProgrammer.ts +109 -109
  1291. package/src/programmers/protobuf/ProtobufIsEncodeProgrammer.ts +98 -98
  1292. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +179 -179
  1293. package/src/programmers/protobuf/ProtobufValidateDecodeProgrammer.ts +92 -92
  1294. package/src/programmers/protobuf/ProtobufValidateEncodeProgrammer.ts +119 -119
  1295. package/src/protobuf.ts +868 -868
  1296. package/src/reflect.ts +57 -57
  1297. package/src/schemas/json/IJsonApplication.ts +73 -73
  1298. package/src/schemas/json/IJsonSchemaCollection.ts +29 -29
  1299. package/src/schemas/json/__IJsonApplication.ts +63 -63
  1300. package/src/schemas/llm/ILlmApplicationOfValidate.ts +6 -6
  1301. package/src/schemas/llm/ILlmFunctionOfValidate.ts +6 -6
  1302. package/src/schemas/metadata/IJsDocTagInfo.ts +10 -10
  1303. package/src/schemas/metadata/IMetadata.ts +35 -35
  1304. package/src/schemas/metadata/IMetadataAlias.ts +6 -6
  1305. package/src/schemas/metadata/IMetadataAliasType.ts +12 -12
  1306. package/src/schemas/metadata/IMetadataApplication.ts +7 -7
  1307. package/src/schemas/metadata/IMetadataArray.ts +6 -6
  1308. package/src/schemas/metadata/IMetadataArrayType.ts +10 -10
  1309. package/src/schemas/metadata/IMetadataAtomic.ts +6 -6
  1310. package/src/schemas/metadata/IMetadataComponents.ts +11 -11
  1311. package/src/schemas/metadata/IMetadataConstant.ts +18 -18
  1312. package/src/schemas/metadata/IMetadataConstantValue.ts +11 -11
  1313. package/src/schemas/metadata/IMetadataDictionary.ts +11 -11
  1314. package/src/schemas/metadata/IMetadataEscaped.ts +6 -6
  1315. package/src/schemas/metadata/IMetadataFunction.ts +8 -8
  1316. package/src/schemas/metadata/IMetadataMap.ts +8 -8
  1317. package/src/schemas/metadata/IMetadataNative.ts +6 -6
  1318. package/src/schemas/metadata/IMetadataObject.ts +6 -6
  1319. package/src/schemas/metadata/IMetadataObjectType.ts +13 -13
  1320. package/src/schemas/metadata/IMetadataParameter.ts +9 -9
  1321. package/src/schemas/metadata/IMetadataProperty.ts +9 -9
  1322. package/src/schemas/metadata/IMetadataSet.ts +7 -7
  1323. package/src/schemas/metadata/IMetadataTemplate.ts +7 -7
  1324. package/src/schemas/metadata/IMetadataTuple.ts +6 -6
  1325. package/src/schemas/metadata/IMetadataTupleType.ts +10 -10
  1326. package/src/schemas/metadata/IMetadataTypeTag.ts +16 -16
  1327. package/src/schemas/metadata/Metadata.ts +680 -669
  1328. package/src/schemas/metadata/MetadataAlias.ts +46 -46
  1329. package/src/schemas/metadata/MetadataAliasType.ts +63 -63
  1330. package/src/schemas/metadata/MetadataApplication.ts +44 -44
  1331. package/src/schemas/metadata/MetadataArray.ts +49 -49
  1332. package/src/schemas/metadata/MetadataArrayType.ts +57 -57
  1333. package/src/schemas/metadata/MetadataAtomic.ts +87 -87
  1334. package/src/schemas/metadata/MetadataComponents.ts +98 -98
  1335. package/src/schemas/metadata/MetadataConstant.ts +34 -34
  1336. package/src/schemas/metadata/MetadataConstantValue.ts +62 -62
  1337. package/src/schemas/metadata/MetadataEscaped.ts +51 -51
  1338. package/src/schemas/metadata/MetadataFunction.ts +49 -49
  1339. package/src/schemas/metadata/MetadataMap.ts +48 -48
  1340. package/src/schemas/metadata/MetadataNative.ts +44 -44
  1341. package/src/schemas/metadata/MetadataObject.ts +48 -48
  1342. package/src/schemas/metadata/MetadataObjectType.ts +149 -149
  1343. package/src/schemas/metadata/MetadataParameter.ts +54 -54
  1344. package/src/schemas/metadata/MetadataProperty.ts +59 -59
  1345. package/src/schemas/metadata/MetadataSet.ts +45 -45
  1346. package/src/schemas/metadata/MetadataTemplate.ts +80 -80
  1347. package/src/schemas/metadata/MetadataTuple.ts +32 -32
  1348. package/src/schemas/metadata/MetadataTupleType.ts +67 -67
  1349. package/src/schemas/protobuf/IProtobufProperty.ts +6 -6
  1350. package/src/schemas/protobuf/IProtobufPropertyType.ts +37 -37
  1351. package/src/schemas/protobuf/IProtobufSchema.ts +50 -50
  1352. package/src/tags/Constant.ts +15 -15
  1353. package/src/tags/ContentMediaType.ts +10 -10
  1354. package/src/tags/Default.ts +22 -22
  1355. package/src/tags/Example.ts +24 -24
  1356. package/src/tags/Examples.ts +16 -16
  1357. package/src/tags/ExclusiveMaximum.ts +25 -25
  1358. package/src/tags/ExclusiveMinimum.ts +25 -25
  1359. package/src/tags/Format.ts +50 -50
  1360. package/src/tags/JsonSchemaPlugin.ts +8 -8
  1361. package/src/tags/MaxItems.ts +12 -12
  1362. package/src/tags/MaxLength.ts +12 -12
  1363. package/src/tags/Maximum.ts +19 -19
  1364. package/src/tags/MinItems.ts +12 -12
  1365. package/src/tags/MinLength.ts +12 -12
  1366. package/src/tags/Minimum.ts +19 -19
  1367. package/src/tags/MultipleOf.ts +21 -21
  1368. package/src/tags/Pattern.ts +31 -31
  1369. package/src/tags/Sequence.ts +10 -10
  1370. package/src/tags/TagBase.ts +82 -82
  1371. package/src/tags/Type.ts +32 -32
  1372. package/src/tags/UniqueItems.ts +14 -14
  1373. package/src/tags/index.ts +21 -21
  1374. package/src/tags/internal/FormatCheatSheet.ts +73 -73
  1375. package/src/transform.ts +35 -35
  1376. package/src/transformers/CallExpressionTransformer.ts +546 -546
  1377. package/src/transformers/FileTransformer.ts +136 -136
  1378. package/src/transformers/IProgrammerProps.ts +11 -11
  1379. package/src/transformers/ITransformOptions.ts +62 -62
  1380. package/src/transformers/ITransformProps.ts +9 -9
  1381. package/src/transformers/ITypiaContext.ts +18 -18
  1382. package/src/transformers/ImportTransformer.ts +81 -81
  1383. package/src/transformers/NodeTransformer.ts +17 -17
  1384. package/src/transformers/TransformerError.ts +60 -60
  1385. package/src/transformers/features/AssertTransformer.ts +24 -24
  1386. package/src/transformers/features/CreateAssertTransformer.ts +24 -24
  1387. package/src/transformers/features/CreateIsTransformer.ts +18 -18
  1388. package/src/transformers/features/CreateRandomTransformer.ts +43 -43
  1389. package/src/transformers/features/CreateValidateTransformer.ts +18 -18
  1390. package/src/transformers/features/IsTransformer.ts +18 -18
  1391. package/src/transformers/features/RandomTransformer.ts +41 -41
  1392. package/src/transformers/features/ValidateTransformer.ts +18 -18
  1393. package/src/transformers/features/functional/FunctionalGenericTransformer.ts +57 -57
  1394. package/src/transformers/features/http/CreateHttpAssertFormDataTransformer.ts +13 -13
  1395. package/src/transformers/features/http/CreateHttpAssertHeadersTransformer.ts +13 -13
  1396. package/src/transformers/features/http/CreateHttpAssertQueryTransformer.ts +13 -13
  1397. package/src/transformers/features/http/CreateHttpFormDataTransformer.ts +13 -13
  1398. package/src/transformers/features/http/CreateHttpHeadersTransformer.ts +13 -13
  1399. package/src/transformers/features/http/CreateHttpIsFormDataTransformer.ts +13 -13
  1400. package/src/transformers/features/http/CreateHttpIsHeadersTransformer.ts +13 -13
  1401. package/src/transformers/features/http/CreateHttpIsQueryTransformer.ts +13 -13
  1402. package/src/transformers/features/http/CreateHttpParameterTransformer.ts +13 -13
  1403. package/src/transformers/features/http/CreateHttpQueryTransformer.ts +13 -13
  1404. package/src/transformers/features/http/CreateHttpValidateFormDataTransformer.ts +13 -13
  1405. package/src/transformers/features/http/CreateHttpValidateHeadersTransformer.ts +13 -13
  1406. package/src/transformers/features/http/CreateHttpValidateQueryTransformer.ts +13 -13
  1407. package/src/transformers/features/http/HttpAssertFormDataTransformer.ts +13 -13
  1408. package/src/transformers/features/http/HttpAssertHeadersTransformer.ts +13 -13
  1409. package/src/transformers/features/http/HttpAssertQueryTransformer.ts +13 -13
  1410. package/src/transformers/features/http/HttpFormDataTransformer.ts +13 -13
  1411. package/src/transformers/features/http/HttpHeadersTransformer.ts +13 -13
  1412. package/src/transformers/features/http/HttpIsFormDataTransformer.ts +13 -13
  1413. package/src/transformers/features/http/HttpIsHeadersTransformer.ts +13 -13
  1414. package/src/transformers/features/http/HttpIsQueryTransformer.ts +13 -13
  1415. package/src/transformers/features/http/HttpParameterTransformer.ts +13 -13
  1416. package/src/transformers/features/http/HttpQueryTransformer.ts +13 -13
  1417. package/src/transformers/features/http/HttpValidateFormDataTransformer.ts +13 -13
  1418. package/src/transformers/features/http/HttpValidateHeadersTransformer.ts +13 -13
  1419. package/src/transformers/features/http/HttpValidateQueryTransformer.ts +13 -13
  1420. package/src/transformers/features/json/JsonApplicationTransformer.ts +105 -105
  1421. package/src/transformers/features/json/JsonAssertParseTransformer.ts +13 -13
  1422. package/src/transformers/features/json/JsonAssertStringifyTransformer.ts +13 -13
  1423. package/src/transformers/features/json/JsonCreateAssertParseTransformer.ts +13 -13
  1424. package/src/transformers/features/json/JsonCreateAssertStringifyTransformer.ts +13 -13
  1425. package/src/transformers/features/json/JsonCreateIsParseTransformer.ts +13 -13
  1426. package/src/transformers/features/json/JsonCreateIsStringifyTransformer.ts +13 -13
  1427. package/src/transformers/features/json/JsonCreateStringifyTransformer.ts +13 -13
  1428. package/src/transformers/features/json/JsonCreateValidateParseTransformer.ts +13 -13
  1429. package/src/transformers/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -13
  1430. package/src/transformers/features/json/JsonIsParseTransformer.ts +13 -13
  1431. package/src/transformers/features/json/JsonIsStringifyTransformer.ts +13 -13
  1432. package/src/transformers/features/json/JsonSchemasTransformer.ts +145 -145
  1433. package/src/transformers/features/json/JsonStringifyTransformer.ts +13 -13
  1434. package/src/transformers/features/json/JsonValidateParseTransformer.ts +13 -13
  1435. package/src/transformers/features/json/JsonValidateStringifyTransformer.ts +13 -13
  1436. package/src/transformers/features/llm/LlmApplicationTransformer.ts +128 -128
  1437. package/src/transformers/features/llm/LlmParametersTransformer.ts +102 -102
  1438. package/src/transformers/features/llm/LlmSchemaTransformer.ts +143 -143
  1439. package/src/transformers/features/misc/MiscAssertCloneTransformer.ts +13 -13
  1440. package/src/transformers/features/misc/MiscAssertPruneTransformer.ts +13 -13
  1441. package/src/transformers/features/misc/MiscCloneTransformer.ts +13 -13
  1442. package/src/transformers/features/misc/MiscCreateAssertCloneTransformer.ts +13 -13
  1443. package/src/transformers/features/misc/MiscCreateAssertPruneTransformer.ts +13 -13
  1444. package/src/transformers/features/misc/MiscCreateCloneTransformer.ts +13 -13
  1445. package/src/transformers/features/misc/MiscCreateIsCloneTransformer.ts +13 -13
  1446. package/src/transformers/features/misc/MiscCreateIsPruneTransformer.ts +13 -13
  1447. package/src/transformers/features/misc/MiscCreatePruneTransformer.ts +13 -13
  1448. package/src/transformers/features/misc/MiscCreateValidateCloneTransformer.ts +13 -13
  1449. package/src/transformers/features/misc/MiscCreateValidatePruneTransformer.ts +13 -13
  1450. package/src/transformers/features/misc/MiscIsCloneTransformer.ts +13 -13
  1451. package/src/transformers/features/misc/MiscIsPruneTransformer.ts +13 -13
  1452. package/src/transformers/features/misc/MiscLiteralsTransformer.ts +35 -35
  1453. package/src/transformers/features/misc/MiscPruneTransformer.ts +13 -13
  1454. package/src/transformers/features/misc/MiscValidateCloneTransformer.ts +13 -13
  1455. package/src/transformers/features/misc/MiscValidatePruneTransformer.ts +13 -13
  1456. package/src/transformers/features/notations/NotationAssertGeneralTransformer.ts +20 -20
  1457. package/src/transformers/features/notations/NotationCreateAssertGeneralTransformer.ts +20 -20
  1458. package/src/transformers/features/notations/NotationCreateGeneralTransformer.ts +20 -20
  1459. package/src/transformers/features/notations/NotationCreateIsGeneralTransformer.ts +20 -20
  1460. package/src/transformers/features/notations/NotationCreateValidateGeneralTransformer.ts +20 -20
  1461. package/src/transformers/features/notations/NotationGeneralTransformer.ts +18 -18
  1462. package/src/transformers/features/notations/NotationIsGeneralTransformer.ts +20 -20
  1463. package/src/transformers/features/notations/NotationValidateGeneralTransformer.ts +20 -20
  1464. package/src/transformers/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -13
  1465. package/src/transformers/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -13
  1466. package/src/transformers/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -13
  1467. package/src/transformers/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -13
  1468. package/src/transformers/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -13
  1469. package/src/transformers/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -13
  1470. package/src/transformers/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -13
  1471. package/src/transformers/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -13
  1472. package/src/transformers/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -13
  1473. package/src/transformers/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -13
  1474. package/src/transformers/features/protobuf/ProtobufDecodeTransformer.ts +13 -13
  1475. package/src/transformers/features/protobuf/ProtobufEncodeTransformer.ts +13 -13
  1476. package/src/transformers/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -13
  1477. package/src/transformers/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -13
  1478. package/src/transformers/features/protobuf/ProtobufMessageTransformer.ts +35 -35
  1479. package/src/transformers/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -13
  1480. package/src/transformers/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -13
  1481. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +69 -69
  1482. package/src/transformers/features/reflect/ReflectNameTransformer.ts +82 -82
  1483. package/src/transformers/internal/GenericTransformer.ts +101 -101
  1484. package/src/typings/Atomic.ts +13 -13
  1485. package/src/typings/ClassProperties.ts +5 -5
  1486. package/src/typings/Customizable.ts +5 -5
  1487. package/src/typings/Equal.ts +18 -18
  1488. package/src/typings/IsTuple.ts +9 -9
  1489. package/src/typings/NativeClass.ts +23 -23
  1490. package/src/typings/OmitNever.ts +3 -3
  1491. package/src/typings/ProtobufAtomic.ts +19 -19
  1492. package/src/typings/SpecialFields.ts +3 -3
  1493. package/src/typings/ValidationPipe.ts +9 -9
  1494. package/src/typings/ValueOf.ts +20 -20
  1495. package/src/typings/Writable.ts +11 -11
  1496. package/src/utils/ArrayUtil.ts +41 -41
  1497. package/src/utils/Escaper.ts +50 -50
  1498. package/src/utils/MapUtil.ts +14 -14
  1499. package/src/utils/NamingConvention.ts +94 -94
  1500. package/src/utils/PatternUtil.ts +29 -29
  1501. package/src/utils/ProtobufNameEncoder.ts +32 -32
  1502. package/src/utils/Singleton.ts +16 -16
  1503. package/src/utils/StringUtil.ts +16 -16
package/src/functional.ts CHANGED
@@ -1,750 +1,750 @@
1
- import { IValidation } from "./IValidation";
2
- import { TypeGuardError } from "./TypeGuardError";
3
-
4
- /* ===========================================================
5
- FUNCTIONAL
6
- - ASSERT
7
- - IS
8
- - VALIDATE
9
- ==============================================================
10
- ASSERT
11
- ----------------------------------------------------------- */
12
- /**
13
- * Asserts a function.
14
- *
15
- * Asserts a function, by wrapping the function and checking its parameters and
16
- * return value through {@link assert} function. If some parameter or return value
17
- * does not match the expected type, it throws an {@link TypeGuardError} or a custom
18
- * error generated by the *errorFactory* parameter.
19
- *
20
- * For reference, {@link TypeGuardError.path} would be a little bit different with
21
- * individual {@link assert} function. If the {@link TypeGuardError} occurs from
22
- * some parameter, the path would start from `$input.parameters[number]`. Otherwise
23
- * the path would start from `$input.return`.
24
- *
25
- * - `$input.parameters[0].~`
26
- * - `$input.return.~`
27
- *
28
- * By the way, if what you want is not just finding the 1st type error through
29
- * assertion, but also finding every type errors, then use {@link validateFunction}
30
- * instead. Otherwise, what you want is just asserting parameters or return value
31
- * only, you can use {@link assertParameters} or {@link assertReturn} instead.
32
- *
33
- * On the other hand, if don't want to allow any superfluous properties, utilize
34
- * {@link assertEqualsFunction} or {@link validateEqualsFunction} instead.
35
- *
36
- * @template T Target function type
37
- * @param func Target function to assert
38
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
39
- * @returns The wrapper function with type assertions
40
- * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
41
- *
42
- * @author Jeongho Nam - https://github.com/samchon
43
- */
44
- export function assertFunction<T extends (...args: any[]) => any>(
45
- func: T,
46
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
47
- ): T;
48
-
49
- /**
50
- * @internal
51
- */
52
- export function assertFunction(): never {
53
- halt("assertFunction");
54
- }
55
-
56
- /**
57
- * Asserts parameters.
58
- *
59
- * Asserts a function, by wrapping the function and checking its parameters through
60
- * {@link assert} function. If some parameter does not match the expected type, it
61
- * throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
62
- * parameter.
63
- *
64
- * For reference, {@link TypeGuardError.path} would be a little bit different with
65
- * individual {@link assert} function. If the {@link TypeGuardError} occurs from
66
- * some parameter, the path would start from `$input.parameters[number]`.
67
- *
68
- * By the way, if what you want is not just finding the 1st type error through
69
- * assertion, but also finding every type errors, then use {@link validateParameters}
70
- * instead. Otherwise, what you want is not only asserting parameters, but also
71
- * asserting return value, you can use {@link assertFunction} instead.
72
- *
73
- * On the other hand, if don't want to allow any superfluous properties, utilize
74
- * {@link assertEqualsParameters} or {@link validateEqualsParameters} instead.
75
- *
76
- * @template T Target function type
77
- * @param func Target function to assert
78
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
79
- * @returns The wrapper function with type assertions
80
- * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
81
- *
82
- * @author Jeongho Nam - https://github.com/samchon
83
- */
84
- export function assertParameters<T extends (...args: any[]) => any>(
85
- func: T,
86
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
87
- ): T;
88
-
89
- /**
90
- * @internal
91
- */
92
- export function assertParameters(): never {
93
- halt("assertParameters");
94
- }
95
-
96
- /**
97
- * Asserts return value.
98
- *
99
- * Asserts a function, by wrapping the function and checking its return value through
100
- * {@link assert} function. If the return value does not match the expected type, it
101
- * throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
102
- * parameter.
103
- *
104
- * For reference, {@link TypeGuardError.path} would be a little bit different with
105
- * individual {@link assert} function. If the {@link TypeGuardError} occurs from
106
- * the return value, the path would start from `$input.return`.
107
- *
108
- * By the way, if what you want is not just finding the 1st type error through
109
- * assertion, but also finding every type errors, then use {@link validateReturn}
110
- * instead. Otherwise, what you want is not only asserting return value, but also
111
- * asserting parameters, you can use {@link assertFunction} instead.
112
- *
113
- * On the other hand, if don't want to allow any superfluous properties, utilize
114
- * {@link assertEqualsReturn} or {@link validateEqualsReturn} instead.
115
- *
116
- * @template T Target function type
117
- * @param func Target function to assert
118
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
119
- * @returns The wrapper function with type assertions
120
- * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
121
- *
122
- * @author Jeongho Nam - https://github.com/samchon
123
- */
124
- export function assertReturn<T extends (...args: any[]) => any>(
125
- func: T,
126
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
127
- ): T;
128
-
129
- /**
130
- * @internal
131
- */
132
- export function assertReturn(): never {
133
- halt("assertReturn");
134
- }
135
-
136
- /**
137
- * Asserts a function with strict equality.
138
- *
139
- * Asserts a function with strict equality, by wrapping the function and checking
140
- * its parameters and return value through {@link assertEquals} function. If some
141
- * parameter or return value does not match the expected type, it throws an
142
- * {@link TypeGuardError} or a custom error generated by the *errorFactory* parameter.
143
- *
144
- * For reference, {@link TypeGuardError.path} would be a little bit different with
145
- * individual {@link assertEquals} function. If the {@link TypeGuardError} occurs from
146
- * some parameter, the path would start from `$input.parameters[number]`. Otherwise
147
- * the path would start from `$input.return`.
148
- *
149
- * - `$input.parameters[0].~`
150
- * - `$input.return.~`
151
- *
152
- * By the way, if what you want is not just finding the 1st type error through
153
- * assertion, but also finding every type errors, then use
154
- * {@link validateEqualsFunction} instead. Otherwise, what you want is just asserting
155
- * parameters or return value only, you can use {@link assertEqualsParameters} or
156
- * {@link assertEqualsReturn} instead.
157
- *
158
- * On the other hand, if you want to allow any superfluous properties, utilize
159
- * {@link assertFunction} or {@link validateFunction} instead.
160
- *
161
- * @template T Target function type
162
- * @param func Target function to assert
163
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
164
- * @returns The wrapper function with type assertions
165
- * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
166
- *
167
- * @author Jeongho Nam - https://github.com/samchon
168
- */
169
- export function assertEqualsFunction<T extends (...args: any[]) => any>(
170
- func: T,
171
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
172
- ): T;
173
-
174
- /**
175
- * @internal
176
- */
177
- export function assertEqualsFunction(): never {
178
- halt("assertEqualsFunction");
179
- }
180
-
181
- /**
182
- * Asserts parameters with strict equality.
183
- *
184
- * Asserts a function, by wrapping the function and checking its parameters through
185
- * {@link assertEquals} function. If some parameter does not match the expected type,
186
- * it throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
187
- * parameter.
188
- *
189
- * For reference, {@link TypeGuardError.path} would be a little bit different with
190
- * individual {@link assertEquals} function. If the {@link TypeGuardError} occurs from
191
- * some parameter, the path would start from `$input.parameters[number]`.
192
- *
193
- * By the way, if what you want is not just finding the 1st type error through
194
- * assertion, but also finding every type errors, then use
195
- * {@link validateEqualsParameters} instead. Otherwise, what you want is not only
196
- * asserting parameters, but also asserting return value, you can use
197
- * {@link assertEqualsFunction} instead.
198
- *
199
- * On the other hand, if you want to allow any superfluous properties, utilize
200
- * {@link assertParameters} or {@link validateParameters} instead.
201
- *
202
- * @template T Target function type
203
- * @param func Target function to assert
204
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
205
- * @returns The wrapper function with type assertions
206
- * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
207
- *
208
- * @author Jeongho Nam - https://github.com/samchon
209
- */
210
- export function assertEqualsParameters<T extends (...args: any[]) => any>(
211
- func: T,
212
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
213
- ): T;
214
-
215
- /**
216
- * @internal
217
- */
218
- export function assertEqualsParameters(): never {
219
- halt("assertEqualsParameters");
220
- }
221
-
222
- /**
223
- * Asserts return value with strict equality.
224
- *
225
- * Asserts a function, by wrapping the function and checking its return value through
226
- * {@link assertEquals} function. If the return value does not match the expected type,
227
- * it throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
228
- * parameter.
229
- *
230
- * For reference, {@link TypeGuardError.path} would be a little bit different with
231
- * individual {@link assertEquals} function. If the {@link TypeGuardError} occurs from
232
- * the return value, the path would start from `$input.return`.
233
- *
234
- * By the way, if what you want is not just finding the 1st type error through
235
- * assertion, but also finding every type errors, then use {@link validateEqualsReturn}
236
- * instead. Otherwise, what you want is not only asserting return value, but also
237
- * asserting parameters, you can use {@link assertEqualsFunction} instead.
238
- *
239
- * On the other hand, if you want to allow any superfluous properties, utilize
240
- * {@link assertReturn} or {@link validateReturn} instead.
241
- *
242
- * @template T Target function type
243
- * @param func Target function to assert
244
- * @param errorFactory Custom error factory. Default is `TypeGuardError`
245
- * @returns The wrapper function with type assertions
246
- * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
247
- *
248
- * @author Jeongho Nam - https://github.com/samchon
249
- */
250
- export function assertEqualsReturn<T extends (...args: any[]) => any>(
251
- func: T,
252
- errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
253
- ): T;
254
-
255
- /**
256
- * @internal
257
- */
258
- export function assertEqualsReturn(): never {
259
- halt("assertEqualsReturn");
260
- }
261
-
262
- /* -----------------------------------------------------------
263
- IS
264
- ----------------------------------------------------------- */
265
- /**
266
- * Tests a function.
267
- *
268
- * Tests a function, by wrapping the function and checking its parameters and
269
- * return value through {@link is} function. If some parameter or return value
270
- * does not match the expected type, it returns `null`. Otherwise there's no
271
- * type error, it returns the result of the function.
272
- *
273
- * By the way, if you want is not just testing type checking, but also finding
274
- * detailed type error reason(s), then use {@link assertFunction} or
275
- * {@link validateFunction} instead.
276
- *
277
- * On the other hand, if you don't want to allow any superfluous properties,
278
- * utilize {@link equalsFunction}, {@link assertEqualsFunction} or
279
- * {@link validateEqualsFunction} instead.
280
- *
281
- * @template T Target function type
282
- * @param func Target function to test
283
- * @returns The wrapper function with type tests
284
- *
285
- * @author Jeongho Nam - https://github.com/samchon
286
- */
287
- export function isFunction<T extends (...args: any[]) => any>(
288
- func: T,
289
- ): T extends (...args: infer Arguments) => infer Output
290
- ? Output extends Promise<infer R>
291
- ? (...args: Arguments) => Promise<R | null>
292
- : (...args: Arguments) => Output | null
293
- : never;
294
-
295
- /**
296
- * @internal
297
- */
298
- export function isFunction(): never {
299
- halt("isFunction");
300
- }
301
-
302
- /**
303
- * Tests parameters.
304
- *
305
- * Tests a function, by wrapping the function and checking its parameters through
306
- * {@link is} function. If some parameter does not match the expected type, it
307
- * returns `null`. Otherwise there's no type error, it returns the result of the
308
- * function.
309
- *
310
- * By the way, if you want is not just testing type checking, but also finding
311
- * detailed type error reason(s), then use {@link assertParameters} or
312
- * {@link validateParameters} instead.
313
- *
314
- * On the other hand, if you don't want to allow any superfluous properties,
315
- * utilize {@link equalsParameters}, {@link assertEqualsParameters} or
316
- * {@link validateEqualsParameters} instead.
317
- *
318
- * @template T Target function type
319
- * @param func Target function to test
320
- * @returns The wrapper function with type tests
321
- *
322
- * @author Jeongho Nam - https://github.com/samchon
323
- */
324
- export function isParameters<T extends (...args: any[]) => any>(
325
- func: T,
326
- ): T extends (...args: infer Arguments) => infer Output
327
- ? Output extends Promise<infer R>
328
- ? (...args: Arguments) => Promise<R | null>
329
- : (...args: Arguments) => Output | null
330
- : never;
331
-
332
- /**
333
- * @internal
334
- */
335
- export function isParameters(): never {
336
- halt("isParameters");
337
- }
338
-
339
- /**
340
- * Tests return value.
341
- *
342
- * Tests a function, by wrapping the function and checking its return value through
343
- * {@link is} function. If the return value does not match the expected type, it
344
- * returns `null`. Otherwise there's no type error, it returns the result of the
345
- * function.
346
- *
347
- * By the way, if you want is not just testing type checking, but also finding
348
- * detailed type error reason(s), then use {@link assertReturn} or
349
- * {@link validateReturn} instead.
350
- *
351
- * On the other hand, if you don't want to allow any superfluous properties,
352
- * utilize {@link equalsReturn}, {@link assertEqualsReturn} or
353
- * {@link validateEqualsReturn} instead.
354
- *
355
- * @template T Target function type
356
- * @param func Target function to test
357
- * @returns The wrapper function with type tests
358
- *
359
- * @author Jeongho Nam - https://github.com/samchon
360
- */
361
- export function isReturn<T extends (...args: any[]) => any>(
362
- func: T,
363
- ): T extends (...args: infer Arguments) => infer Output
364
- ? Output extends Promise<infer R>
365
- ? (...args: Arguments) => Promise<R | null>
366
- : (...args: Arguments) => Output | null
367
- : never;
368
-
369
- /**
370
- * @internal
371
- */
372
- export function isReturn(): never {
373
- halt("isReturn");
374
- }
375
-
376
- /**
377
- * Tests a function with strict equality.
378
- *
379
- * Tests a function with strict equality, by wrapping the function and checking its
380
- * parameters and return value through {@link isEquals} function. If some parameter
381
- * or return value does not match the expected type, it returns `null`. Otherwise
382
- * there's no type error, it returns the result of the function.
383
- *
384
- * By the way, if you want is not just testing type checking, but also finding
385
- * detailed type error reason(s), then use {@link assertEqualsFunction} or
386
- * {@link validateEqualsFunction} instead.
387
- *
388
- * On the other hand, if you want to allow any superfluous properties, utilize
389
- * {@link isFunction}, {@link assertFunction} or {@link validateFunction} instead.
390
- *
391
- * @template T Target function type
392
- * @param func Target function to test
393
- * @returns The wrapper function with type tests
394
- *
395
- * @author Jeongho Nam - https://github.com/samchon
396
- */
397
- export function equalsFunction<T extends (...args: any[]) => any>(
398
- func: T,
399
- ): T extends (...args: infer Arguments) => infer Output
400
- ? Output extends Promise<infer R>
401
- ? (...args: Arguments) => Promise<R | null>
402
- : (...args: Arguments) => Output | null
403
- : never;
404
-
405
- /**
406
- * @internal
407
- */
408
- export function equalsFunction(): never {
409
- halt("equalsFunction");
410
- }
411
-
412
- /**
413
- * Tests parameters with strict equality.
414
- *
415
- * Tests a function, by wrapping the function and checking its parameters through
416
- * {@link isEquals} function. If some parameter does not match the expected type,
417
- * it returns `null`. Otherwise there's no type error, it returns the result of the
418
- * function.
419
- *
420
- * By the way, if you want is not just testing type checking, but also finding
421
- * detailed type error reason(s), then use {@link assertEqualsParameters} or
422
- * {@link validateEqualsParameters} instead.
423
- *
424
- * @template T Target function type
425
- * @param func Target function to test
426
- * @returns The wrapper function with type tests
427
- *
428
- * @author Jeongho Nam - https://github.com/samchon
429
- */
430
- export function equalsParameters<T extends (...args: any[]) => any>(
431
- func: T,
432
- ): T extends (...args: infer Arguments) => infer Output
433
- ? Output extends Promise<infer R>
434
- ? (...args: Arguments) => Promise<R | null>
435
- : (...args: Arguments) => Output | null
436
- : never;
437
-
438
- /**
439
- * @internal
440
- */
441
- export function equalsParameters(): never {
442
- halt("equalsParameters");
443
- }
444
-
445
- /**
446
- * Tests return value with strict equality.
447
- *
448
- * Tests a function, by wrapping the function and checking its return value through
449
- * {@link isEquals} function. If the return value does not match the expected type,
450
- * it returns `null`. Otherwise there's no type error, it returns the result of the
451
- * function.
452
- *
453
- * By the way, if you want is not just testing type checking, but also finding
454
- * detailed type error reason(s), then use {@link assertEqualsReturn} or
455
- * {@link validateEqualsReturn} instead.
456
- *
457
- * On the other hand, if you want to allow any superfluous properties, utilize
458
- * {@link isReturn}, {@link assertReturn} or {@link validateReturn} instead.
459
- *
460
- * @template T Target function type
461
- * @param func Target function to test
462
- * @returns The wrapper function with type tests
463
- *
464
- * @author Jeongho Nam - https://github.com/samchon
465
- */
466
- export function equalsReturn<T extends (...args: any[]) => any>(
467
- func: T,
468
- ): T extends (...args: infer Arguments) => infer Output
469
- ? Output extends Promise<infer R>
470
- ? (...args: Arguments) => Promise<R | null>
471
- : (...args: Arguments) => Output | null
472
- : never;
473
-
474
- /**
475
- * @internal
476
- */
477
- export function equalsReturn(): never {
478
- halt("equalsReturn");
479
- }
480
-
481
- /* -----------------------------------------------------------
482
- VALIDATE
483
- ----------------------------------------------------------- */
484
- /**
485
- * Validates a function.
486
- *
487
- * Validates a function, by wrapping the function and checking its parameters and
488
- * return value through {@link validate} function. If some parameter or return value
489
- * does not match the expected type, it returns {@link IValidation.IError} typed
490
- * object. Otherwise there's no type error, it returns {@link IValidation.ISuccess}
491
- * typed object instead.
492
- *
493
- * For reference, {@link IValidation.IError.path} would be a little bit different with
494
- * individual {@link validate} function. If the {@link IValidation.IError} occurs from
495
- * some parameter, the path would start from `$input.parameters[number]`. Otherwise
496
- * the path would start from `$input.return`.
497
- *
498
- * - `$input.parameters[0].~`
499
- * - `$input.return.~`
500
- *
501
- * By the way, if what you want is not finding every type errors, but just finding
502
- * the 1st type error, then use {@link assertFunction} instead. Otherwise, what you
503
- * want is just validating parameters or return value only, you can use
504
- * {@link validateParameters} or {@link validateReturn} instead.
505
- *
506
- * On the other hand, if you don't want to allow any superfluous properties, utilize
507
- * {@link validateEqualsFunction} or {@link assertEqualsFunction} instead.
508
- *
509
- * @template T Target function type
510
- * @param func Target function to validate
511
- * @returns The wrapper function with type validations
512
- *
513
- * @author Jeongho Nam - https://github.com/samchon
514
- */
515
- export function validateFunction<T extends (...args: any[]) => any>(
516
- func: T,
517
- ): T extends (...args: infer Arguments) => infer Output
518
- ? Output extends Promise<infer R>
519
- ? (...args: Arguments) => Promise<IValidation<R>>
520
- : (...args: Arguments) => IValidation<Output>
521
- : never;
522
-
523
- /**
524
- * @internal
525
- */
526
- export function validateFunction(): never {
527
- halt("validateFunction");
528
- }
529
-
530
- /**
531
- * Validates parameters.
532
- *
533
- * Validates a function, by wrapping the function and checking its parameters through
534
- * {@link validate} function. If some parameter does not match the expected type, it
535
- * returns {@link IValidation.IError} typed object. Otherwise there's no type error,
536
- * it returns {@link IValidation.ISuccess} typed object instead.
537
- *
538
- * For reference, {@link IValidation.IError.path} would be a little bit different with
539
- * individual {@link validate} function. If the {@link IValidation.IError} occurs from
540
- * some parameter, the path would start from `$input.parameters[number]`.
541
- *
542
- * By the way, if what you want is not finding every type errors, but just finding
543
- * the 1st type error, then use {@link assertParameters} instead. Otherwise, what you
544
- * want is not only validating parameters, but also validating return value, you can
545
- * use {@link validateFunction} instead.
546
- *
547
- * On the other hand, if you don't want to allow any superfluous properties, utilize
548
- * {@link validateEqualsParameters} or {@link assertEqualsParameters} instead.
549
- *
550
- * @template T Target function type
551
- * @param func Target function to validate
552
- * @returns The wrapper function with type validations
553
- *
554
- * @author Jeongho Nam - https://github.com/samchon
555
- */
556
- export function validateParameters<T extends (...args: any[]) => any>(
557
- func: T,
558
- ): T extends (...args: infer Arguments) => infer Output
559
- ? Output extends Promise<infer R>
560
- ? (...args: Arguments) => Promise<IValidation<R>>
561
- : (...args: Arguments) => IValidation<Output>
562
- : never;
563
-
564
- /**
565
- * @internal
566
- */
567
- export function validateParameters(): never {
568
- halt("validateReturn");
569
- }
570
-
571
- /**
572
- * Validates return value.
573
- *
574
- * Validates a function, by wrapping the function and checking its return value through
575
- * {@link validate} function. If the return value does not match the expected type, it
576
- * returns {@link IValidation.IError} typed object. Otherwise there's no type error,
577
- * it returns {@link IValidation.ISuccess} typed object instead.
578
- *
579
- * For reference, {@link IValidation.IError.path} would be a little bit different with
580
- * individual {@link validate} function. If the {@link IValidation.IError} occurs from
581
- * the return value, the path would start from `$input.return`.
582
- *
583
- * By the way, if what you want is not finding every type errors, but just finding
584
- * the 1st type error, then use {@link assertReturn} instead. Otherwise, what you want
585
- * is not only validating return value, but also validating parameters, you can use
586
- * {@link validateFunction} instead.
587
- *
588
- * On the other hand, if you don't want to allow any superfluous properties, utilize
589
- * {@link validateEqualsReturn} or {@link assertEqualsReturn} instead.
590
- *
591
- * @template T Target function type
592
- * @param func Target function to validate
593
- * @returns The wrapper function with type validations
594
- *
595
- * @author Jeongho Nam - https://github.com/samchon
596
- */
597
- export function validateReturn<T extends (...args: any[]) => any>(
598
- func: T,
599
- ): T extends (...args: infer Arguments) => infer Output
600
- ? Output extends Promise<infer R>
601
- ? (...args: Arguments) => Promise<IValidation<R>>
602
- : (...args: Arguments) => IValidation<Output>
603
- : never;
604
-
605
- /**
606
- * @internal
607
- */
608
- export function validateReturn(): never {
609
- halt("validateReturn");
610
- }
611
-
612
- /**
613
- * Validates a function with strict equality.
614
- *
615
- * Validates a function with strict equality, by wrapping the function and checking
616
- * its parameters and return value through {@link validateEquals} function. If some
617
- * parameter or return value does not match the expected type, it returns
618
- * {@link IValidation.IError} typed object. Otherwise there's no type error, it
619
- * returns {@link IValidation.ISuccess} typed object instead.
620
- *
621
- * For reference, {@link IValidation.IError.path} would be a little bit different with
622
- * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
623
- * from some parameter, the path would start from `$input.parameters[number]`. Otherwise
624
- * the path would start from `$input.return`.
625
- *
626
- * - `$input.parameters[0].~`
627
- * - `$input.return.~`
628
- *
629
- * By the way, if what you want is not finding every type errors, but just finding
630
- * the 1st type error, then use {@link assertEqualsFunction} instead. Otherwise, what
631
- * you want is just validating parameters or return value only, you can use
632
- * {@link validateEqualsParameters} or {@link validateEqualsReturn} instead.
633
- *
634
- * On the other hand, if you want to allow any superfluous properties, utilize
635
- * {@link validateFunction} or {@link assertFunction} instead.
636
- *
637
- * @template T Target function type
638
- * @param func Target function to validate
639
- * @returns The wrapper function with type validations
640
- *
641
- * @author Jeongho Nam - https://github.com/samchon
642
- */
643
- export function validateEqualsFunction<T extends (...args: any[]) => any>(
644
- func: T,
645
- ): T extends (...args: infer Arguments) => infer Output
646
- ? Output extends Promise<infer R>
647
- ? (...args: Arguments) => Promise<IValidation<R>>
648
- : (...args: Arguments) => IValidation<Output>
649
- : never;
650
-
651
- /**
652
- * @internal
653
- */
654
- export function validateEqualsFunction(): never {
655
- halt("validateEqualsFunction");
656
- }
657
-
658
- /**
659
- * Validates parameters with strict equality.
660
- *
661
- * Validates a function, by wrapping the function and checking its parameters through
662
- * {@link validateEquals} function. If some parameter does not match the expected type,
663
- * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
664
- * it returns {@link IValidation.ISuccess} typed object instead.
665
- *
666
- * For reference, {@link IValidation.IError.path} would be a little bit different with
667
- * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
668
- * from some parameter, the path would start from `$input.parameters[number]`.
669
- *
670
- * By the way, if what you want is not finding every type errors, but just finding
671
- * the 1st type error, then use {@link assertEqualsParameters} instead. Otherwise,
672
- * what you want is not only validating parameters, but also validating return value,
673
- * you can use {@link validateEqualsFunction} instead.
674
- *
675
- * On the other hand, if you want to allow any superfluous properties, utilize
676
- * {@link validateParameters} or {@link assertParameters} instead.
677
- *
678
- * @template T Target function type
679
- * @param func Target function to validate
680
- * @returns The wrapper function with type validations
681
- *
682
- * @author Jeongho Nam - https://github.com/samchon
683
- */
684
- export function validateEqualsParameters<T extends (...args: any[]) => any>(
685
- func: T,
686
- ): T extends (...args: infer Arguments) => infer Output
687
- ? Output extends Promise<infer R>
688
- ? (...args: Arguments) => Promise<IValidation<R>>
689
- : (...args: Arguments) => IValidation<Output>
690
- : never;
691
-
692
- /**
693
- * @internal
694
- */
695
- export function validateEqualsParameters(): never {
696
- halt("validateEqualsParameters");
697
- }
698
-
699
- /**
700
- * Validates return value with strict equality.
701
- *
702
- * Validates a function, by wrapping the function and checking its return value through
703
- * {@link validateEquals} function. If the return value does not match the expected type,
704
- * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
705
- * it returns {@link IValidation.ISuccess} typed object instead.
706
- *
707
- * For reference, {@link IValidation.IError.path} would be a little bit different with
708
- * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
709
- * from the return value, the path would start from `$input.return`.
710
- *
711
- * By the way, if what you want is not finding every type errors, but just finding
712
- * the 1st type error, then use {@link assertEqualsReturn} instead. Otherwise, what you
713
- * want is not only validating return value, but also validating parameters, you can use
714
- * {@link validateEqualsFunction} instead.
715
- *
716
- * On the other hand, if you want to allow any superfluous properties, utilize
717
- * {@link validateReturn} or {@link assertReturn} instead.
718
- *
719
- * @template T Target function type
720
- * @param func Target function to validate
721
- * @returns The wrapper function with type validations
722
- *
723
- * @author Jeongho Nam - https://github.com/samchon
724
- */
725
- export function validateEqualsReturn<T extends (...args: any[]) => any>(
726
- func: T,
727
- ): T extends (...args: infer Arguments) => infer Output
728
- ? Output extends Promise<infer R>
729
- ? (...args: Arguments) => Promise<IValidation<R>>
730
- : (...args: Arguments) => IValidation<Output>
731
- : never;
732
-
733
- /**
734
- * @internal
735
- */
736
- export function validateEqualsReturn(): never {
737
- halt("validateEqualsReturn");
738
- }
739
-
740
- /* -----------------------------------------------------------
741
- HALTER
742
- ----------------------------------------------------------- */
743
- /**
744
- * @internal
745
- */
746
- function halt(name: string): never {
747
- throw new Error(
748
- `Error on typia.functional.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
749
- );
750
- }
1
+ import { IValidation } from "./IValidation";
2
+ import { TypeGuardError } from "./TypeGuardError";
3
+
4
+ /* ===========================================================
5
+ FUNCTIONAL
6
+ - ASSERT
7
+ - IS
8
+ - VALIDATE
9
+ ==============================================================
10
+ ASSERT
11
+ ----------------------------------------------------------- */
12
+ /**
13
+ * Asserts a function.
14
+ *
15
+ * Asserts a function, by wrapping the function and checking its parameters and
16
+ * return value through {@link assert} function. If some parameter or return value
17
+ * does not match the expected type, it throws an {@link TypeGuardError} or a custom
18
+ * error generated by the *errorFactory* parameter.
19
+ *
20
+ * For reference, {@link TypeGuardError.path} would be a little bit different with
21
+ * individual {@link assert} function. If the {@link TypeGuardError} occurs from
22
+ * some parameter, the path would start from `$input.parameters[number]`. Otherwise
23
+ * the path would start from `$input.return`.
24
+ *
25
+ * - `$input.parameters[0].~`
26
+ * - `$input.return.~`
27
+ *
28
+ * By the way, if what you want is not just finding the 1st type error through
29
+ * assertion, but also finding every type errors, then use {@link validateFunction}
30
+ * instead. Otherwise, what you want is just asserting parameters or return value
31
+ * only, you can use {@link assertParameters} or {@link assertReturn} instead.
32
+ *
33
+ * On the other hand, if don't want to allow any superfluous properties, utilize
34
+ * {@link assertEqualsFunction} or {@link validateEqualsFunction} instead.
35
+ *
36
+ * @template T Target function type
37
+ * @param func Target function to assert
38
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
39
+ * @returns The wrapper function with type assertions
40
+ * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
41
+ *
42
+ * @author Jeongho Nam - https://github.com/samchon
43
+ */
44
+ export function assertFunction<T extends (...args: any[]) => any>(
45
+ func: T,
46
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
47
+ ): T;
48
+
49
+ /**
50
+ * @internal
51
+ */
52
+ export function assertFunction(): never {
53
+ halt("assertFunction");
54
+ }
55
+
56
+ /**
57
+ * Asserts parameters.
58
+ *
59
+ * Asserts a function, by wrapping the function and checking its parameters through
60
+ * {@link assert} function. If some parameter does not match the expected type, it
61
+ * throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
62
+ * parameter.
63
+ *
64
+ * For reference, {@link TypeGuardError.path} would be a little bit different with
65
+ * individual {@link assert} function. If the {@link TypeGuardError} occurs from
66
+ * some parameter, the path would start from `$input.parameters[number]`.
67
+ *
68
+ * By the way, if what you want is not just finding the 1st type error through
69
+ * assertion, but also finding every type errors, then use {@link validateParameters}
70
+ * instead. Otherwise, what you want is not only asserting parameters, but also
71
+ * asserting return value, you can use {@link assertFunction} instead.
72
+ *
73
+ * On the other hand, if don't want to allow any superfluous properties, utilize
74
+ * {@link assertEqualsParameters} or {@link validateEqualsParameters} instead.
75
+ *
76
+ * @template T Target function type
77
+ * @param func Target function to assert
78
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
79
+ * @returns The wrapper function with type assertions
80
+ * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
81
+ *
82
+ * @author Jeongho Nam - https://github.com/samchon
83
+ */
84
+ export function assertParameters<T extends (...args: any[]) => any>(
85
+ func: T,
86
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
87
+ ): T;
88
+
89
+ /**
90
+ * @internal
91
+ */
92
+ export function assertParameters(): never {
93
+ halt("assertParameters");
94
+ }
95
+
96
+ /**
97
+ * Asserts return value.
98
+ *
99
+ * Asserts a function, by wrapping the function and checking its return value through
100
+ * {@link assert} function. If the return value does not match the expected type, it
101
+ * throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
102
+ * parameter.
103
+ *
104
+ * For reference, {@link TypeGuardError.path} would be a little bit different with
105
+ * individual {@link assert} function. If the {@link TypeGuardError} occurs from
106
+ * the return value, the path would start from `$input.return`.
107
+ *
108
+ * By the way, if what you want is not just finding the 1st type error through
109
+ * assertion, but also finding every type errors, then use {@link validateReturn}
110
+ * instead. Otherwise, what you want is not only asserting return value, but also
111
+ * asserting parameters, you can use {@link assertFunction} instead.
112
+ *
113
+ * On the other hand, if don't want to allow any superfluous properties, utilize
114
+ * {@link assertEqualsReturn} or {@link validateEqualsReturn} instead.
115
+ *
116
+ * @template T Target function type
117
+ * @param func Target function to assert
118
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
119
+ * @returns The wrapper function with type assertions
120
+ * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
121
+ *
122
+ * @author Jeongho Nam - https://github.com/samchon
123
+ */
124
+ export function assertReturn<T extends (...args: any[]) => any>(
125
+ func: T,
126
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
127
+ ): T;
128
+
129
+ /**
130
+ * @internal
131
+ */
132
+ export function assertReturn(): never {
133
+ halt("assertReturn");
134
+ }
135
+
136
+ /**
137
+ * Asserts a function with strict equality.
138
+ *
139
+ * Asserts a function with strict equality, by wrapping the function and checking
140
+ * its parameters and return value through {@link assertEquals} function. If some
141
+ * parameter or return value does not match the expected type, it throws an
142
+ * {@link TypeGuardError} or a custom error generated by the *errorFactory* parameter.
143
+ *
144
+ * For reference, {@link TypeGuardError.path} would be a little bit different with
145
+ * individual {@link assertEquals} function. If the {@link TypeGuardError} occurs from
146
+ * some parameter, the path would start from `$input.parameters[number]`. Otherwise
147
+ * the path would start from `$input.return`.
148
+ *
149
+ * - `$input.parameters[0].~`
150
+ * - `$input.return.~`
151
+ *
152
+ * By the way, if what you want is not just finding the 1st type error through
153
+ * assertion, but also finding every type errors, then use
154
+ * {@link validateEqualsFunction} instead. Otherwise, what you want is just asserting
155
+ * parameters or return value only, you can use {@link assertEqualsParameters} or
156
+ * {@link assertEqualsReturn} instead.
157
+ *
158
+ * On the other hand, if you want to allow any superfluous properties, utilize
159
+ * {@link assertFunction} or {@link validateFunction} instead.
160
+ *
161
+ * @template T Target function type
162
+ * @param func Target function to assert
163
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
164
+ * @returns The wrapper function with type assertions
165
+ * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
166
+ *
167
+ * @author Jeongho Nam - https://github.com/samchon
168
+ */
169
+ export function assertEqualsFunction<T extends (...args: any[]) => any>(
170
+ func: T,
171
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
172
+ ): T;
173
+
174
+ /**
175
+ * @internal
176
+ */
177
+ export function assertEqualsFunction(): never {
178
+ halt("assertEqualsFunction");
179
+ }
180
+
181
+ /**
182
+ * Asserts parameters with strict equality.
183
+ *
184
+ * Asserts a function, by wrapping the function and checking its parameters through
185
+ * {@link assertEquals} function. If some parameter does not match the expected type,
186
+ * it throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
187
+ * parameter.
188
+ *
189
+ * For reference, {@link TypeGuardError.path} would be a little bit different with
190
+ * individual {@link assertEquals} function. If the {@link TypeGuardError} occurs from
191
+ * some parameter, the path would start from `$input.parameters[number]`.
192
+ *
193
+ * By the way, if what you want is not just finding the 1st type error through
194
+ * assertion, but also finding every type errors, then use
195
+ * {@link validateEqualsParameters} instead. Otherwise, what you want is not only
196
+ * asserting parameters, but also asserting return value, you can use
197
+ * {@link assertEqualsFunction} instead.
198
+ *
199
+ * On the other hand, if you want to allow any superfluous properties, utilize
200
+ * {@link assertParameters} or {@link validateParameters} instead.
201
+ *
202
+ * @template T Target function type
203
+ * @param func Target function to assert
204
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
205
+ * @returns The wrapper function with type assertions
206
+ * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
207
+ *
208
+ * @author Jeongho Nam - https://github.com/samchon
209
+ */
210
+ export function assertEqualsParameters<T extends (...args: any[]) => any>(
211
+ func: T,
212
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
213
+ ): T;
214
+
215
+ /**
216
+ * @internal
217
+ */
218
+ export function assertEqualsParameters(): never {
219
+ halt("assertEqualsParameters");
220
+ }
221
+
222
+ /**
223
+ * Asserts return value with strict equality.
224
+ *
225
+ * Asserts a function, by wrapping the function and checking its return value through
226
+ * {@link assertEquals} function. If the return value does not match the expected type,
227
+ * it throws an {@link TypeGuardError} or a custom error generated by the *errorFactory*
228
+ * parameter.
229
+ *
230
+ * For reference, {@link TypeGuardError.path} would be a little bit different with
231
+ * individual {@link assertEquals} function. If the {@link TypeGuardError} occurs from
232
+ * the return value, the path would start from `$input.return`.
233
+ *
234
+ * By the way, if what you want is not just finding the 1st type error through
235
+ * assertion, but also finding every type errors, then use {@link validateEqualsReturn}
236
+ * instead. Otherwise, what you want is not only asserting return value, but also
237
+ * asserting parameters, you can use {@link assertEqualsFunction} instead.
238
+ *
239
+ * On the other hand, if you want to allow any superfluous properties, utilize
240
+ * {@link assertReturn} or {@link validateReturn} instead.
241
+ *
242
+ * @template T Target function type
243
+ * @param func Target function to assert
244
+ * @param errorFactory Custom error factory. Default is `TypeGuardError`
245
+ * @returns The wrapper function with type assertions
246
+ * @throws A {@link TypeGuardError} or a custom error generated by *errorFactory*
247
+ *
248
+ * @author Jeongho Nam - https://github.com/samchon
249
+ */
250
+ export function assertEqualsReturn<T extends (...args: any[]) => any>(
251
+ func: T,
252
+ errorFactory?: undefined | ((props: TypeGuardError.IProps) => Error),
253
+ ): T;
254
+
255
+ /**
256
+ * @internal
257
+ */
258
+ export function assertEqualsReturn(): never {
259
+ halt("assertEqualsReturn");
260
+ }
261
+
262
+ /* -----------------------------------------------------------
263
+ IS
264
+ ----------------------------------------------------------- */
265
+ /**
266
+ * Tests a function.
267
+ *
268
+ * Tests a function, by wrapping the function and checking its parameters and
269
+ * return value through {@link is} function. If some parameter or return value
270
+ * does not match the expected type, it returns `null`. Otherwise there's no
271
+ * type error, it returns the result of the function.
272
+ *
273
+ * By the way, if you want is not just testing type checking, but also finding
274
+ * detailed type error reason(s), then use {@link assertFunction} or
275
+ * {@link validateFunction} instead.
276
+ *
277
+ * On the other hand, if you don't want to allow any superfluous properties,
278
+ * utilize {@link equalsFunction}, {@link assertEqualsFunction} or
279
+ * {@link validateEqualsFunction} instead.
280
+ *
281
+ * @template T Target function type
282
+ * @param func Target function to test
283
+ * @returns The wrapper function with type tests
284
+ *
285
+ * @author Jeongho Nam - https://github.com/samchon
286
+ */
287
+ export function isFunction<T extends (...args: any[]) => any>(
288
+ func: T,
289
+ ): T extends (...args: infer Arguments) => infer Output
290
+ ? Output extends Promise<infer R>
291
+ ? (...args: Arguments) => Promise<R | null>
292
+ : (...args: Arguments) => Output | null
293
+ : never;
294
+
295
+ /**
296
+ * @internal
297
+ */
298
+ export function isFunction(): never {
299
+ halt("isFunction");
300
+ }
301
+
302
+ /**
303
+ * Tests parameters.
304
+ *
305
+ * Tests a function, by wrapping the function and checking its parameters through
306
+ * {@link is} function. If some parameter does not match the expected type, it
307
+ * returns `null`. Otherwise there's no type error, it returns the result of the
308
+ * function.
309
+ *
310
+ * By the way, if you want is not just testing type checking, but also finding
311
+ * detailed type error reason(s), then use {@link assertParameters} or
312
+ * {@link validateParameters} instead.
313
+ *
314
+ * On the other hand, if you don't want to allow any superfluous properties,
315
+ * utilize {@link equalsParameters}, {@link assertEqualsParameters} or
316
+ * {@link validateEqualsParameters} instead.
317
+ *
318
+ * @template T Target function type
319
+ * @param func Target function to test
320
+ * @returns The wrapper function with type tests
321
+ *
322
+ * @author Jeongho Nam - https://github.com/samchon
323
+ */
324
+ export function isParameters<T extends (...args: any[]) => any>(
325
+ func: T,
326
+ ): T extends (...args: infer Arguments) => infer Output
327
+ ? Output extends Promise<infer R>
328
+ ? (...args: Arguments) => Promise<R | null>
329
+ : (...args: Arguments) => Output | null
330
+ : never;
331
+
332
+ /**
333
+ * @internal
334
+ */
335
+ export function isParameters(): never {
336
+ halt("isParameters");
337
+ }
338
+
339
+ /**
340
+ * Tests return value.
341
+ *
342
+ * Tests a function, by wrapping the function and checking its return value through
343
+ * {@link is} function. If the return value does not match the expected type, it
344
+ * returns `null`. Otherwise there's no type error, it returns the result of the
345
+ * function.
346
+ *
347
+ * By the way, if you want is not just testing type checking, but also finding
348
+ * detailed type error reason(s), then use {@link assertReturn} or
349
+ * {@link validateReturn} instead.
350
+ *
351
+ * On the other hand, if you don't want to allow any superfluous properties,
352
+ * utilize {@link equalsReturn}, {@link assertEqualsReturn} or
353
+ * {@link validateEqualsReturn} instead.
354
+ *
355
+ * @template T Target function type
356
+ * @param func Target function to test
357
+ * @returns The wrapper function with type tests
358
+ *
359
+ * @author Jeongho Nam - https://github.com/samchon
360
+ */
361
+ export function isReturn<T extends (...args: any[]) => any>(
362
+ func: T,
363
+ ): T extends (...args: infer Arguments) => infer Output
364
+ ? Output extends Promise<infer R>
365
+ ? (...args: Arguments) => Promise<R | null>
366
+ : (...args: Arguments) => Output | null
367
+ : never;
368
+
369
+ /**
370
+ * @internal
371
+ */
372
+ export function isReturn(): never {
373
+ halt("isReturn");
374
+ }
375
+
376
+ /**
377
+ * Tests a function with strict equality.
378
+ *
379
+ * Tests a function with strict equality, by wrapping the function and checking its
380
+ * parameters and return value through {@link isEquals} function. If some parameter
381
+ * or return value does not match the expected type, it returns `null`. Otherwise
382
+ * there's no type error, it returns the result of the function.
383
+ *
384
+ * By the way, if you want is not just testing type checking, but also finding
385
+ * detailed type error reason(s), then use {@link assertEqualsFunction} or
386
+ * {@link validateEqualsFunction} instead.
387
+ *
388
+ * On the other hand, if you want to allow any superfluous properties, utilize
389
+ * {@link isFunction}, {@link assertFunction} or {@link validateFunction} instead.
390
+ *
391
+ * @template T Target function type
392
+ * @param func Target function to test
393
+ * @returns The wrapper function with type tests
394
+ *
395
+ * @author Jeongho Nam - https://github.com/samchon
396
+ */
397
+ export function equalsFunction<T extends (...args: any[]) => any>(
398
+ func: T,
399
+ ): T extends (...args: infer Arguments) => infer Output
400
+ ? Output extends Promise<infer R>
401
+ ? (...args: Arguments) => Promise<R | null>
402
+ : (...args: Arguments) => Output | null
403
+ : never;
404
+
405
+ /**
406
+ * @internal
407
+ */
408
+ export function equalsFunction(): never {
409
+ halt("equalsFunction");
410
+ }
411
+
412
+ /**
413
+ * Tests parameters with strict equality.
414
+ *
415
+ * Tests a function, by wrapping the function and checking its parameters through
416
+ * {@link isEquals} function. If some parameter does not match the expected type,
417
+ * it returns `null`. Otherwise there's no type error, it returns the result of the
418
+ * function.
419
+ *
420
+ * By the way, if you want is not just testing type checking, but also finding
421
+ * detailed type error reason(s), then use {@link assertEqualsParameters} or
422
+ * {@link validateEqualsParameters} instead.
423
+ *
424
+ * @template T Target function type
425
+ * @param func Target function to test
426
+ * @returns The wrapper function with type tests
427
+ *
428
+ * @author Jeongho Nam - https://github.com/samchon
429
+ */
430
+ export function equalsParameters<T extends (...args: any[]) => any>(
431
+ func: T,
432
+ ): T extends (...args: infer Arguments) => infer Output
433
+ ? Output extends Promise<infer R>
434
+ ? (...args: Arguments) => Promise<R | null>
435
+ : (...args: Arguments) => Output | null
436
+ : never;
437
+
438
+ /**
439
+ * @internal
440
+ */
441
+ export function equalsParameters(): never {
442
+ halt("equalsParameters");
443
+ }
444
+
445
+ /**
446
+ * Tests return value with strict equality.
447
+ *
448
+ * Tests a function, by wrapping the function and checking its return value through
449
+ * {@link isEquals} function. If the return value does not match the expected type,
450
+ * it returns `null`. Otherwise there's no type error, it returns the result of the
451
+ * function.
452
+ *
453
+ * By the way, if you want is not just testing type checking, but also finding
454
+ * detailed type error reason(s), then use {@link assertEqualsReturn} or
455
+ * {@link validateEqualsReturn} instead.
456
+ *
457
+ * On the other hand, if you want to allow any superfluous properties, utilize
458
+ * {@link isReturn}, {@link assertReturn} or {@link validateReturn} instead.
459
+ *
460
+ * @template T Target function type
461
+ * @param func Target function to test
462
+ * @returns The wrapper function with type tests
463
+ *
464
+ * @author Jeongho Nam - https://github.com/samchon
465
+ */
466
+ export function equalsReturn<T extends (...args: any[]) => any>(
467
+ func: T,
468
+ ): T extends (...args: infer Arguments) => infer Output
469
+ ? Output extends Promise<infer R>
470
+ ? (...args: Arguments) => Promise<R | null>
471
+ : (...args: Arguments) => Output | null
472
+ : never;
473
+
474
+ /**
475
+ * @internal
476
+ */
477
+ export function equalsReturn(): never {
478
+ halt("equalsReturn");
479
+ }
480
+
481
+ /* -----------------------------------------------------------
482
+ VALIDATE
483
+ ----------------------------------------------------------- */
484
+ /**
485
+ * Validates a function.
486
+ *
487
+ * Validates a function, by wrapping the function and checking its parameters and
488
+ * return value through {@link validate} function. If some parameter or return value
489
+ * does not match the expected type, it returns {@link IValidation.IError} typed
490
+ * object. Otherwise there's no type error, it returns {@link IValidation.ISuccess}
491
+ * typed object instead.
492
+ *
493
+ * For reference, {@link IValidation.IError.path} would be a little bit different with
494
+ * individual {@link validate} function. If the {@link IValidation.IError} occurs from
495
+ * some parameter, the path would start from `$input.parameters[number]`. Otherwise
496
+ * the path would start from `$input.return`.
497
+ *
498
+ * - `$input.parameters[0].~`
499
+ * - `$input.return.~`
500
+ *
501
+ * By the way, if what you want is not finding every type errors, but just finding
502
+ * the 1st type error, then use {@link assertFunction} instead. Otherwise, what you
503
+ * want is just validating parameters or return value only, you can use
504
+ * {@link validateParameters} or {@link validateReturn} instead.
505
+ *
506
+ * On the other hand, if you don't want to allow any superfluous properties, utilize
507
+ * {@link validateEqualsFunction} or {@link assertEqualsFunction} instead.
508
+ *
509
+ * @template T Target function type
510
+ * @param func Target function to validate
511
+ * @returns The wrapper function with type validations
512
+ *
513
+ * @author Jeongho Nam - https://github.com/samchon
514
+ */
515
+ export function validateFunction<T extends (...args: any[]) => any>(
516
+ func: T,
517
+ ): T extends (...args: infer Arguments) => infer Output
518
+ ? Output extends Promise<infer R>
519
+ ? (...args: Arguments) => Promise<IValidation<R>>
520
+ : (...args: Arguments) => IValidation<Output>
521
+ : never;
522
+
523
+ /**
524
+ * @internal
525
+ */
526
+ export function validateFunction(): never {
527
+ halt("validateFunction");
528
+ }
529
+
530
+ /**
531
+ * Validates parameters.
532
+ *
533
+ * Validates a function, by wrapping the function and checking its parameters through
534
+ * {@link validate} function. If some parameter does not match the expected type, it
535
+ * returns {@link IValidation.IError} typed object. Otherwise there's no type error,
536
+ * it returns {@link IValidation.ISuccess} typed object instead.
537
+ *
538
+ * For reference, {@link IValidation.IError.path} would be a little bit different with
539
+ * individual {@link validate} function. If the {@link IValidation.IError} occurs from
540
+ * some parameter, the path would start from `$input.parameters[number]`.
541
+ *
542
+ * By the way, if what you want is not finding every type errors, but just finding
543
+ * the 1st type error, then use {@link assertParameters} instead. Otherwise, what you
544
+ * want is not only validating parameters, but also validating return value, you can
545
+ * use {@link validateFunction} instead.
546
+ *
547
+ * On the other hand, if you don't want to allow any superfluous properties, utilize
548
+ * {@link validateEqualsParameters} or {@link assertEqualsParameters} instead.
549
+ *
550
+ * @template T Target function type
551
+ * @param func Target function to validate
552
+ * @returns The wrapper function with type validations
553
+ *
554
+ * @author Jeongho Nam - https://github.com/samchon
555
+ */
556
+ export function validateParameters<T extends (...args: any[]) => any>(
557
+ func: T,
558
+ ): T extends (...args: infer Arguments) => infer Output
559
+ ? Output extends Promise<infer R>
560
+ ? (...args: Arguments) => Promise<IValidation<R>>
561
+ : (...args: Arguments) => IValidation<Output>
562
+ : never;
563
+
564
+ /**
565
+ * @internal
566
+ */
567
+ export function validateParameters(): never {
568
+ halt("validateReturn");
569
+ }
570
+
571
+ /**
572
+ * Validates return value.
573
+ *
574
+ * Validates a function, by wrapping the function and checking its return value through
575
+ * {@link validate} function. If the return value does not match the expected type, it
576
+ * returns {@link IValidation.IError} typed object. Otherwise there's no type error,
577
+ * it returns {@link IValidation.ISuccess} typed object instead.
578
+ *
579
+ * For reference, {@link IValidation.IError.path} would be a little bit different with
580
+ * individual {@link validate} function. If the {@link IValidation.IError} occurs from
581
+ * the return value, the path would start from `$input.return`.
582
+ *
583
+ * By the way, if what you want is not finding every type errors, but just finding
584
+ * the 1st type error, then use {@link assertReturn} instead. Otherwise, what you want
585
+ * is not only validating return value, but also validating parameters, you can use
586
+ * {@link validateFunction} instead.
587
+ *
588
+ * On the other hand, if you don't want to allow any superfluous properties, utilize
589
+ * {@link validateEqualsReturn} or {@link assertEqualsReturn} instead.
590
+ *
591
+ * @template T Target function type
592
+ * @param func Target function to validate
593
+ * @returns The wrapper function with type validations
594
+ *
595
+ * @author Jeongho Nam - https://github.com/samchon
596
+ */
597
+ export function validateReturn<T extends (...args: any[]) => any>(
598
+ func: T,
599
+ ): T extends (...args: infer Arguments) => infer Output
600
+ ? Output extends Promise<infer R>
601
+ ? (...args: Arguments) => Promise<IValidation<R>>
602
+ : (...args: Arguments) => IValidation<Output>
603
+ : never;
604
+
605
+ /**
606
+ * @internal
607
+ */
608
+ export function validateReturn(): never {
609
+ halt("validateReturn");
610
+ }
611
+
612
+ /**
613
+ * Validates a function with strict equality.
614
+ *
615
+ * Validates a function with strict equality, by wrapping the function and checking
616
+ * its parameters and return value through {@link validateEquals} function. If some
617
+ * parameter or return value does not match the expected type, it returns
618
+ * {@link IValidation.IError} typed object. Otherwise there's no type error, it
619
+ * returns {@link IValidation.ISuccess} typed object instead.
620
+ *
621
+ * For reference, {@link IValidation.IError.path} would be a little bit different with
622
+ * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
623
+ * from some parameter, the path would start from `$input.parameters[number]`. Otherwise
624
+ * the path would start from `$input.return`.
625
+ *
626
+ * - `$input.parameters[0].~`
627
+ * - `$input.return.~`
628
+ *
629
+ * By the way, if what you want is not finding every type errors, but just finding
630
+ * the 1st type error, then use {@link assertEqualsFunction} instead. Otherwise, what
631
+ * you want is just validating parameters or return value only, you can use
632
+ * {@link validateEqualsParameters} or {@link validateEqualsReturn} instead.
633
+ *
634
+ * On the other hand, if you want to allow any superfluous properties, utilize
635
+ * {@link validateFunction} or {@link assertFunction} instead.
636
+ *
637
+ * @template T Target function type
638
+ * @param func Target function to validate
639
+ * @returns The wrapper function with type validations
640
+ *
641
+ * @author Jeongho Nam - https://github.com/samchon
642
+ */
643
+ export function validateEqualsFunction<T extends (...args: any[]) => any>(
644
+ func: T,
645
+ ): T extends (...args: infer Arguments) => infer Output
646
+ ? Output extends Promise<infer R>
647
+ ? (...args: Arguments) => Promise<IValidation<R>>
648
+ : (...args: Arguments) => IValidation<Output>
649
+ : never;
650
+
651
+ /**
652
+ * @internal
653
+ */
654
+ export function validateEqualsFunction(): never {
655
+ halt("validateEqualsFunction");
656
+ }
657
+
658
+ /**
659
+ * Validates parameters with strict equality.
660
+ *
661
+ * Validates a function, by wrapping the function and checking its parameters through
662
+ * {@link validateEquals} function. If some parameter does not match the expected type,
663
+ * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
664
+ * it returns {@link IValidation.ISuccess} typed object instead.
665
+ *
666
+ * For reference, {@link IValidation.IError.path} would be a little bit different with
667
+ * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
668
+ * from some parameter, the path would start from `$input.parameters[number]`.
669
+ *
670
+ * By the way, if what you want is not finding every type errors, but just finding
671
+ * the 1st type error, then use {@link assertEqualsParameters} instead. Otherwise,
672
+ * what you want is not only validating parameters, but also validating return value,
673
+ * you can use {@link validateEqualsFunction} instead.
674
+ *
675
+ * On the other hand, if you want to allow any superfluous properties, utilize
676
+ * {@link validateParameters} or {@link assertParameters} instead.
677
+ *
678
+ * @template T Target function type
679
+ * @param func Target function to validate
680
+ * @returns The wrapper function with type validations
681
+ *
682
+ * @author Jeongho Nam - https://github.com/samchon
683
+ */
684
+ export function validateEqualsParameters<T extends (...args: any[]) => any>(
685
+ func: T,
686
+ ): T extends (...args: infer Arguments) => infer Output
687
+ ? Output extends Promise<infer R>
688
+ ? (...args: Arguments) => Promise<IValidation<R>>
689
+ : (...args: Arguments) => IValidation<Output>
690
+ : never;
691
+
692
+ /**
693
+ * @internal
694
+ */
695
+ export function validateEqualsParameters(): never {
696
+ halt("validateEqualsParameters");
697
+ }
698
+
699
+ /**
700
+ * Validates return value with strict equality.
701
+ *
702
+ * Validates a function, by wrapping the function and checking its return value through
703
+ * {@link validateEquals} function. If the return value does not match the expected type,
704
+ * it returns {@link IValidation.IError} typed object. Otherwise there's no type error,
705
+ * it returns {@link IValidation.ISuccess} typed object instead.
706
+ *
707
+ * For reference, {@link IValidation.IError.path} would be a little bit different with
708
+ * individual {@link validateEquals} function. If the {@link IValidation.IError} occurs
709
+ * from the return value, the path would start from `$input.return`.
710
+ *
711
+ * By the way, if what you want is not finding every type errors, but just finding
712
+ * the 1st type error, then use {@link assertEqualsReturn} instead. Otherwise, what you
713
+ * want is not only validating return value, but also validating parameters, you can use
714
+ * {@link validateEqualsFunction} instead.
715
+ *
716
+ * On the other hand, if you want to allow any superfluous properties, utilize
717
+ * {@link validateReturn} or {@link assertReturn} instead.
718
+ *
719
+ * @template T Target function type
720
+ * @param func Target function to validate
721
+ * @returns The wrapper function with type validations
722
+ *
723
+ * @author Jeongho Nam - https://github.com/samchon
724
+ */
725
+ export function validateEqualsReturn<T extends (...args: any[]) => any>(
726
+ func: T,
727
+ ): T extends (...args: infer Arguments) => infer Output
728
+ ? Output extends Promise<infer R>
729
+ ? (...args: Arguments) => Promise<IValidation<R>>
730
+ : (...args: Arguments) => IValidation<Output>
731
+ : never;
732
+
733
+ /**
734
+ * @internal
735
+ */
736
+ export function validateEqualsReturn(): never {
737
+ halt("validateEqualsReturn");
738
+ }
739
+
740
+ /* -----------------------------------------------------------
741
+ HALTER
742
+ ----------------------------------------------------------- */
743
+ /**
744
+ * @internal
745
+ */
746
+ function halt(name: string): never {
747
+ throw new Error(
748
+ `Error on typia.functional.${name}(): no transform has been configured. Read and follow https://typia.io/docs/setup please.`,
749
+ );
750
+ }