reliant-type 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1305 -0
  3. package/dist/cjs/constants/SECURITY_CONSTANTS.js +49 -0
  4. package/dist/cjs/constants/SECURITY_CONSTANTS.js.map +1 -0
  5. package/dist/cjs/constants/VALIDATION_CONSTANTS.js +103 -0
  6. package/dist/cjs/constants/VALIDATION_CONSTANTS.js.map +1 -0
  7. package/dist/cjs/core/schema/extensions/SmartInference.js +200 -0
  8. package/dist/cjs/core/schema/extensions/SmartInference.js.map +1 -0
  9. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/Docs.js +100 -0
  10. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/Docs.js.map +1 -0
  11. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js +192 -0
  12. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js.map +1 -0
  13. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js +174 -0
  14. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js.map +1 -0
  15. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js +54 -0
  16. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js.map +1 -0
  17. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js +50 -0
  18. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js.map +1 -0
  19. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/index.js +15 -0
  20. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/index.js.map +1 -0
  21. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js +70 -0
  22. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js.map +1 -0
  23. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js +40 -0
  24. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js.map +1 -0
  25. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js +19 -0
  26. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js.map +1 -0
  27. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js +20 -0
  28. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js.map +1 -0
  29. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js +49 -0
  30. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js.map +1 -0
  31. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/index.js +98 -0
  32. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/index.js.map +1 -0
  33. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/FormValidator.js +85 -0
  34. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/FormValidator.js.map +1 -0
  35. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/LiveValidator.js +133 -0
  36. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/LiveValidator.js.map +1 -0
  37. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/StreamValidator.js +351 -0
  38. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/StreamValidator.js.map +1 -0
  39. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/index.js +109 -0
  40. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/index.js.map +1 -0
  41. package/dist/cjs/core/schema/extensions/index.js +61 -0
  42. package/dist/cjs/core/schema/extensions/index.js.map +1 -0
  43. package/dist/cjs/core/schema/extensions/mods/index.js +51 -0
  44. package/dist/cjs/core/schema/extensions/mods/index.js.map +1 -0
  45. package/dist/cjs/core/schema/extensions/mods/openapi-converter.js +227 -0
  46. package/dist/cjs/core/schema/extensions/mods/openapi-converter.js.map +1 -0
  47. package/dist/cjs/core/schema/extensions/mods/typescript-generator.js +287 -0
  48. package/dist/cjs/core/schema/extensions/mods/typescript-generator.js.map +1 -0
  49. package/dist/cjs/core/schema/extensions/mods/validation-engine.js +224 -0
  50. package/dist/cjs/core/schema/extensions/mods/validation-engine.js.map +1 -0
  51. package/dist/cjs/core/schema/mode/interfaces/Interface.js +277 -0
  52. package/dist/cjs/core/schema/mode/interfaces/Interface.js.map +1 -0
  53. package/dist/cjs/core/schema/mode/interfaces/InterfaceSchema.js +1431 -0
  54. package/dist/cjs/core/schema/mode/interfaces/InterfaceSchema.js.map +1 -0
  55. package/dist/cjs/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js +520 -0
  56. package/dist/cjs/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js.map +1 -0
  57. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js +624 -0
  58. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js.map +1 -0
  59. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js +811 -0
  60. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js.map +1 -0
  61. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js +599 -0
  62. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js.map +1 -0
  63. package/dist/cjs/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js +89 -0
  64. package/dist/cjs/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js.map +1 -0
  65. package/dist/cjs/core/schema/mode/interfaces/errors/ErrorHandler.js +356 -0
  66. package/dist/cjs/core/schema/mode/interfaces/errors/ErrorHandler.js.map +1 -0
  67. package/dist/cjs/core/schema/mode/interfaces/errors/types/errors.type.js +80 -0
  68. package/dist/cjs/core/schema/mode/interfaces/errors/types/errors.type.js.map +1 -0
  69. package/dist/cjs/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js +778 -0
  70. package/dist/cjs/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js.map +1 -0
  71. package/dist/cjs/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js +523 -0
  72. package/dist/cjs/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js.map +1 -0
  73. package/dist/cjs/core/schema/mode/interfaces/typescript/ConditionalTypes.js +681 -0
  74. package/dist/cjs/core/schema/mode/interfaces/typescript/ConditionalTypes.js.map +1 -0
  75. package/dist/cjs/core/schema/mode/interfaces/typescript/IDESupport.js +430 -0
  76. package/dist/cjs/core/schema/mode/interfaces/typescript/IDESupport.js.map +1 -0
  77. package/dist/cjs/core/schema/mode/interfaces/typescript/TypeInference.js +225 -0
  78. package/dist/cjs/core/schema/mode/interfaces/typescript/TypeInference.js.map +1 -0
  79. package/dist/cjs/core/schema/mode/interfaces/typescript/index.js +44 -0
  80. package/dist/cjs/core/schema/mode/interfaces/typescript/index.js.map +1 -0
  81. package/dist/cjs/core/schema/mode/interfaces/validators/ConstraintParser.js +1134 -0
  82. package/dist/cjs/core/schema/mode/interfaces/validators/ConstraintParser.js.map +1 -0
  83. package/dist/cjs/core/schema/mode/interfaces/validators/TypeGuards.js +256 -0
  84. package/dist/cjs/core/schema/mode/interfaces/validators/TypeGuards.js.map +1 -0
  85. package/dist/cjs/core/schema/mode/interfaces/validators/TypeValidators.js +429 -0
  86. package/dist/cjs/core/schema/mode/interfaces/validators/TypeValidators.js.map +1 -0
  87. package/dist/cjs/core/schema/mode/interfaces/validators/UnionCache.js +404 -0
  88. package/dist/cjs/core/schema/mode/interfaces/validators/UnionCache.js.map +1 -0
  89. package/dist/cjs/core/schema/mode/interfaces/validators/ValidationHelpers.js +851 -0
  90. package/dist/cjs/core/schema/mode/interfaces/validators/ValidationHelpers.js.map +1 -0
  91. package/dist/cjs/core/schema/mode/interfaces/validators/mods/passValidator.js +262 -0
  92. package/dist/cjs/core/schema/mode/interfaces/validators/mods/passValidator.js.map +1 -0
  93. package/dist/cjs/core/schema/mode/interfaces/validators/mods/securityValidator.js +887 -0
  94. package/dist/cjs/core/schema/mode/interfaces/validators/mods/securityValidator.js.map +1 -0
  95. package/dist/cjs/core/schema/mode/interfaces/validators/mods/urlValidation.js +191 -0
  96. package/dist/cjs/core/schema/mode/interfaces/validators/mods/urlValidation.js.map +1 -0
  97. package/dist/cjs/core/schema/optimization/ObjectValidationCache.js +462 -0
  98. package/dist/cjs/core/schema/optimization/ObjectValidationCache.js.map +1 -0
  99. package/dist/cjs/core/schema/optimization/PerformanceMonitor.js +773 -0
  100. package/dist/cjs/core/schema/optimization/PerformanceMonitor.js.map +1 -0
  101. package/dist/cjs/core/schema/optimization/SchemaCompiler.js +600 -0
  102. package/dist/cjs/core/schema/optimization/SchemaCompiler.js.map +1 -0
  103. package/dist/cjs/core/types/ValidatorTypes.js +70 -0
  104. package/dist/cjs/core/types/ValidatorTypes.js.map +1 -0
  105. package/dist/cjs/core/types/parser.type.js +12 -0
  106. package/dist/cjs/core/types/parser.type.js.map +1 -0
  107. package/dist/cjs/core/utils/Make.js +61 -0
  108. package/dist/cjs/core/utils/Make.js.map +1 -0
  109. package/dist/cjs/core/utils/Mod.js +1033 -0
  110. package/dist/cjs/core/utils/Mod.js.map +1 -0
  111. package/dist/cjs/core/utils/UrlArgs.js +102 -0
  112. package/dist/cjs/core/utils/UrlArgs.js.map +1 -0
  113. package/dist/cjs/core/utils/arrayToEnum.js +18 -0
  114. package/dist/cjs/core/utils/arrayToEnum.js.map +1 -0
  115. package/dist/cjs/core/utils/createUrlArgsEnumFArray.js +13 -0
  116. package/dist/cjs/core/utils/createUrlArgsEnumFArray.js.map +1 -0
  117. package/dist/cjs/core/utils/securityHelpers.js +215 -0
  118. package/dist/cjs/core/utils/securityHelpers.js.map +1 -0
  119. package/dist/cjs/core/utils/securityValidatorHelpers.js +65 -0
  120. package/dist/cjs/core/utils/securityValidatorHelpers.js.map +1 -0
  121. package/dist/cjs/index.js +31 -0
  122. package/dist/cjs/index.js.map +1 -0
  123. package/dist/cjs/package.json +3 -0
  124. package/dist/esm/constants/SECURITY_CONSTANTS.js +47 -0
  125. package/dist/esm/constants/SECURITY_CONSTANTS.js.map +1 -0
  126. package/dist/esm/constants/VALIDATION_CONSTANTS.js +98 -0
  127. package/dist/esm/constants/VALIDATION_CONSTANTS.js.map +1 -0
  128. package/dist/esm/core/schema/extensions/SmartInference.js +197 -0
  129. package/dist/esm/core/schema/extensions/SmartInference.js.map +1 -0
  130. package/dist/esm/core/schema/extensions/components/AutoDocumentation/Docs.js +98 -0
  131. package/dist/esm/core/schema/extensions/components/AutoDocumentation/Docs.js.map +1 -0
  132. package/dist/esm/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js +190 -0
  133. package/dist/esm/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js.map +1 -0
  134. package/dist/esm/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js +172 -0
  135. package/dist/esm/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js.map +1 -0
  136. package/dist/esm/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js +52 -0
  137. package/dist/esm/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js.map +1 -0
  138. package/dist/esm/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js +48 -0
  139. package/dist/esm/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js.map +1 -0
  140. package/dist/esm/core/schema/extensions/components/AutoDocumentation/index.js +12 -0
  141. package/dist/esm/core/schema/extensions/components/AutoDocumentation/index.js.map +1 -0
  142. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js +68 -0
  143. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js.map +1 -0
  144. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js +38 -0
  145. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js.map +1 -0
  146. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js +17 -0
  147. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js.map +1 -0
  148. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js +18 -0
  149. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js.map +1 -0
  150. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js +45 -0
  151. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js.map +1 -0
  152. package/dist/esm/core/schema/extensions/components/ConditionalValidation/index.js +92 -0
  153. package/dist/esm/core/schema/extensions/components/ConditionalValidation/index.js.map +1 -0
  154. package/dist/esm/core/schema/extensions/components/RealtimeValidation/FormValidator.js +83 -0
  155. package/dist/esm/core/schema/extensions/components/RealtimeValidation/FormValidator.js.map +1 -0
  156. package/dist/esm/core/schema/extensions/components/RealtimeValidation/LiveValidator.js +131 -0
  157. package/dist/esm/core/schema/extensions/components/RealtimeValidation/LiveValidator.js.map +1 -0
  158. package/dist/esm/core/schema/extensions/components/RealtimeValidation/StreamValidator.js +349 -0
  159. package/dist/esm/core/schema/extensions/components/RealtimeValidation/StreamValidator.js.map +1 -0
  160. package/dist/esm/core/schema/extensions/components/RealtimeValidation/index.js +103 -0
  161. package/dist/esm/core/schema/extensions/components/RealtimeValidation/index.js.map +1 -0
  162. package/dist/esm/core/schema/extensions/index.js +53 -0
  163. package/dist/esm/core/schema/extensions/index.js.map +1 -0
  164. package/dist/esm/core/schema/extensions/mods/index.js +47 -0
  165. package/dist/esm/core/schema/extensions/mods/index.js.map +1 -0
  166. package/dist/esm/core/schema/extensions/mods/openapi-converter.js +225 -0
  167. package/dist/esm/core/schema/extensions/mods/openapi-converter.js.map +1 -0
  168. package/dist/esm/core/schema/extensions/mods/typescript-generator.js +284 -0
  169. package/dist/esm/core/schema/extensions/mods/typescript-generator.js.map +1 -0
  170. package/dist/esm/core/schema/extensions/mods/validation-engine.js +222 -0
  171. package/dist/esm/core/schema/extensions/mods/validation-engine.js.map +1 -0
  172. package/dist/esm/core/schema/mode/interfaces/Interface.js +269 -0
  173. package/dist/esm/core/schema/mode/interfaces/Interface.js.map +1 -0
  174. package/dist/esm/core/schema/mode/interfaces/InterfaceSchema.js +1429 -0
  175. package/dist/esm/core/schema/mode/interfaces/InterfaceSchema.js.map +1 -0
  176. package/dist/esm/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js +518 -0
  177. package/dist/esm/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js.map +1 -0
  178. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js +620 -0
  179. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js.map +1 -0
  180. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js +809 -0
  181. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js.map +1 -0
  182. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js +597 -0
  183. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js.map +1 -0
  184. package/dist/esm/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js +89 -0
  185. package/dist/esm/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js.map +1 -0
  186. package/dist/esm/core/schema/mode/interfaces/errors/ErrorHandler.js +354 -0
  187. package/dist/esm/core/schema/mode/interfaces/errors/ErrorHandler.js.map +1 -0
  188. package/dist/esm/core/schema/mode/interfaces/errors/types/errors.type.js +80 -0
  189. package/dist/esm/core/schema/mode/interfaces/errors/types/errors.type.js.map +1 -0
  190. package/dist/esm/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js +776 -0
  191. package/dist/esm/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js.map +1 -0
  192. package/dist/esm/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js +521 -0
  193. package/dist/esm/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js.map +1 -0
  194. package/dist/esm/core/schema/mode/interfaces/typescript/ConditionalTypes.js +681 -0
  195. package/dist/esm/core/schema/mode/interfaces/typescript/ConditionalTypes.js.map +1 -0
  196. package/dist/esm/core/schema/mode/interfaces/typescript/IDESupport.js +428 -0
  197. package/dist/esm/core/schema/mode/interfaces/typescript/IDESupport.js.map +1 -0
  198. package/dist/esm/core/schema/mode/interfaces/typescript/TypeInference.js +223 -0
  199. package/dist/esm/core/schema/mode/interfaces/typescript/TypeInference.js.map +1 -0
  200. package/dist/esm/core/schema/mode/interfaces/typescript/index.js +35 -0
  201. package/dist/esm/core/schema/mode/interfaces/typescript/index.js.map +1 -0
  202. package/dist/esm/core/schema/mode/interfaces/validators/ConstraintParser.js +1132 -0
  203. package/dist/esm/core/schema/mode/interfaces/validators/ConstraintParser.js.map +1 -0
  204. package/dist/esm/core/schema/mode/interfaces/validators/TypeGuards.js +254 -0
  205. package/dist/esm/core/schema/mode/interfaces/validators/TypeGuards.js.map +1 -0
  206. package/dist/esm/core/schema/mode/interfaces/validators/TypeValidators.js +427 -0
  207. package/dist/esm/core/schema/mode/interfaces/validators/TypeValidators.js.map +1 -0
  208. package/dist/esm/core/schema/mode/interfaces/validators/UnionCache.js +400 -0
  209. package/dist/esm/core/schema/mode/interfaces/validators/UnionCache.js.map +1 -0
  210. package/dist/esm/core/schema/mode/interfaces/validators/ValidationHelpers.js +849 -0
  211. package/dist/esm/core/schema/mode/interfaces/validators/ValidationHelpers.js.map +1 -0
  212. package/dist/esm/core/schema/mode/interfaces/validators/mods/passValidator.js +260 -0
  213. package/dist/esm/core/schema/mode/interfaces/validators/mods/passValidator.js.map +1 -0
  214. package/dist/esm/core/schema/mode/interfaces/validators/mods/securityValidator.js +881 -0
  215. package/dist/esm/core/schema/mode/interfaces/validators/mods/securityValidator.js.map +1 -0
  216. package/dist/esm/core/schema/mode/interfaces/validators/mods/urlValidation.js +189 -0
  217. package/dist/esm/core/schema/mode/interfaces/validators/mods/urlValidation.js.map +1 -0
  218. package/dist/esm/core/schema/optimization/ObjectValidationCache.js +460 -0
  219. package/dist/esm/core/schema/optimization/ObjectValidationCache.js.map +1 -0
  220. package/dist/esm/core/schema/optimization/PerformanceMonitor.js +771 -0
  221. package/dist/esm/core/schema/optimization/PerformanceMonitor.js.map +1 -0
  222. package/dist/esm/core/schema/optimization/SchemaCompiler.js +598 -0
  223. package/dist/esm/core/schema/optimization/SchemaCompiler.js.map +1 -0
  224. package/dist/esm/core/types/ValidatorTypes.js +65 -0
  225. package/dist/esm/core/types/ValidatorTypes.js.map +1 -0
  226. package/dist/esm/core/types/parser.type.js +12 -0
  227. package/dist/esm/core/types/parser.type.js.map +1 -0
  228. package/dist/esm/core/utils/Make.js +59 -0
  229. package/dist/esm/core/utils/Make.js.map +1 -0
  230. package/dist/esm/core/utils/Mod.js +1031 -0
  231. package/dist/esm/core/utils/Mod.js.map +1 -0
  232. package/dist/esm/core/utils/UrlArgs.js +98 -0
  233. package/dist/esm/core/utils/UrlArgs.js.map +1 -0
  234. package/dist/esm/core/utils/arrayToEnum.js +16 -0
  235. package/dist/esm/core/utils/arrayToEnum.js.map +1 -0
  236. package/dist/esm/core/utils/createUrlArgsEnumFArray.js +11 -0
  237. package/dist/esm/core/utils/createUrlArgsEnumFArray.js.map +1 -0
  238. package/dist/esm/core/utils/securityHelpers.js +207 -0
  239. package/dist/esm/core/utils/securityHelpers.js.map +1 -0
  240. package/dist/esm/core/utils/securityValidatorHelpers.js +62 -0
  241. package/dist/esm/core/utils/securityValidatorHelpers.js.map +1 -0
  242. package/dist/esm/index.js +12 -0
  243. package/dist/esm/index.js.map +1 -0
  244. package/dist/esm/package.json +3 -0
  245. package/dist/schema.d.ts +2595 -0
  246. package/docs/ALL_TYPES.md +120 -0
  247. package/docs/API-STABILITY.md +336 -0
  248. package/docs/CONDITIONAL-VALIDATION.md +637 -0
  249. package/docs/EXAMPLES.md +876 -0
  250. package/docs/FIELD-TYPES.md +829 -0
  251. package/docs/GETTING-STARTED.md +394 -0
  252. package/docs/LIVE-UTILITY.md +1137 -0
  253. package/docs/QUICK-REFERENCE.md +346 -0
  254. package/docs/README.md +205 -0
  255. package/docs/VSCODE-EXTENSION.md +458 -0
  256. package/package.json +219 -0
  257. package/src/bench/BENCHMARK-RESULTS.md +211 -0
  258. package/src/bench/benchmark-results.json +148 -0
  259. package/src/bench/performance-comparison.ts +218 -0
  260. package/src/bench/precompilation-benchmark.ts +218 -0
  261. package/src/constants/SECURITY_CONSTANTS.ts +44 -0
  262. package/src/constants/VALIDATION_CONSTANTS.ts +176 -0
  263. package/src/core/README.md +395 -0
  264. package/src/core/compiler/SchemaTransformer.ts +279 -0
  265. package/src/core/compiler/TypeAnalyzer.ts +378 -0
  266. package/src/core/compiler/TypeScriptCompilerIntegration.ts +220 -0
  267. package/src/core/compiler/TypeToSchemaConverter.ts +288 -0
  268. package/src/core/index.ts +70 -0
  269. package/src/core/schema/extensions/AutoDocumentation.ts +572 -0
  270. package/src/core/schema/extensions/ConditionalValidation.ts +330 -0
  271. package/src/core/schema/extensions/README.md +171 -0
  272. package/src/core/schema/extensions/RealtimeValidation.ts +656 -0
  273. package/src/core/schema/extensions/SmartInference.ts +224 -0
  274. package/src/core/schema/extensions/components/AutoDocumentation/Docs.ts +98 -0
  275. package/src/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.ts +201 -0
  276. package/src/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.ts +176 -0
  277. package/src/core/schema/extensions/components/AutoDocumentation/OpenAPIGenerator.ts +175 -0
  278. package/src/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.ts +49 -0
  279. package/src/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.ts +54 -0
  280. package/src/core/schema/extensions/components/AutoDocumentation/index.ts +17 -0
  281. package/src/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.ts +101 -0
  282. package/src/core/schema/extensions/components/ConditionalValidation/ConditionalElse.ts +65 -0
  283. package/src/core/schema/extensions/components/ConditionalValidation/ConditionalThen.ts +33 -0
  284. package/src/core/schema/extensions/components/ConditionalValidation/Extend.ts +75 -0
  285. package/src/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.ts +16 -0
  286. package/src/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.ts +50 -0
  287. package/src/core/schema/extensions/components/ConditionalValidation/index.ts +104 -0
  288. package/src/core/schema/extensions/components/RealtimeValidation/FormValidator.ts +88 -0
  289. package/src/core/schema/extensions/components/RealtimeValidation/LiveValidator.ts +171 -0
  290. package/src/core/schema/extensions/components/RealtimeValidation/StreamValidator.ts +397 -0
  291. package/src/core/schema/extensions/components/RealtimeValidation/index.ts +114 -0
  292. package/src/core/schema/extensions/index.ts +76 -0
  293. package/src/core/schema/extensions/mods/index.ts +131 -0
  294. package/src/core/schema/extensions/mods/openapi-converter.ts +338 -0
  295. package/src/core/schema/extensions/mods/typescript-generator.ts +379 -0
  296. package/src/core/schema/extensions/mods/validation-engine.ts +295 -0
  297. package/src/core/schema/mode/interfaces/Interface.ts +364 -0
  298. package/src/core/schema/mode/interfaces/InterfaceSchema.ts +1838 -0
  299. package/src/core/schema/mode/interfaces/README.md +278 -0
  300. package/src/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.ts +657 -0
  301. package/src/core/schema/mode/interfaces/conditional/parser/ConditionalAST.ts +826 -0
  302. package/src/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.ts +992 -0
  303. package/src/core/schema/mode/interfaces/conditional/parser/ConditionalParser.ts +803 -0
  304. package/src/core/schema/mode/interfaces/conditional/parser/readme.md +406 -0
  305. package/src/core/schema/mode/interfaces/conditional/types/ConditionalTypes.ts +273 -0
  306. package/src/core/schema/mode/interfaces/errors/ErrorHandler.ts +624 -0
  307. package/src/core/schema/mode/interfaces/errors/types/errors.type.ts +102 -0
  308. package/src/core/schema/mode/interfaces/precompilation/FieldPrecompilers.ts +962 -0
  309. package/src/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.ts +667 -0
  310. package/src/core/schema/mode/interfaces/typescript/ConditionalTypes.ts +1534 -0
  311. package/src/core/schema/mode/interfaces/typescript/IDESupport.ts +534 -0
  312. package/src/core/schema/mode/interfaces/typescript/TypeInference.ts +737 -0
  313. package/src/core/schema/mode/interfaces/typescript/index.ts +92 -0
  314. package/src/core/schema/mode/interfaces/validators/ConstraintParser.ts +1438 -0
  315. package/src/core/schema/mode/interfaces/validators/EnhancedErrorReporting.ts +227 -0
  316. package/src/core/schema/mode/interfaces/validators/TypeGuards.ts +288 -0
  317. package/src/core/schema/mode/interfaces/validators/TypeValidators.ts +660 -0
  318. package/src/core/schema/mode/interfaces/validators/UnionCache.ts +508 -0
  319. package/src/core/schema/mode/interfaces/validators/ValidationHelpers.ts +1257 -0
  320. package/src/core/schema/mode/interfaces/validators/index.ts +21 -0
  321. package/src/core/schema/mode/interfaces/validators/mods/passValidator.ts +424 -0
  322. package/src/core/schema/mode/interfaces/validators/mods/securityValidator.ts +1634 -0
  323. package/src/core/schema/mode/interfaces/validators/mods/urlValidation.ts +333 -0
  324. package/src/core/schema/optimization/ObjectValidationCache.ts +560 -0
  325. package/src/core/schema/optimization/PerformanceInitializer.ts +188 -0
  326. package/src/core/schema/optimization/PerformanceMonitor.ts +898 -0
  327. package/src/core/schema/optimization/SchemaCompiler.ts +730 -0
  328. package/src/core/testing/TestDataGenerator.ts +590 -0
  329. package/src/core/types/SchemaValidator.type.ts +210 -0
  330. package/src/core/types/ValidatorTypes.ts +93 -0
  331. package/src/core/types/extension.type.ts +109 -0
  332. package/src/core/types/objValidationCache.ts +17 -0
  333. package/src/core/types/parser.type.ts +15 -0
  334. package/src/core/types/perfoMonitor.ts +37 -0
  335. package/src/core/types/scompiler.ts +22 -0
  336. package/src/core/types/securityValidator.type.ts +10 -0
  337. package/src/core/types/types.ts +154 -0
  338. package/src/core/utils/Make.ts +97 -0
  339. package/src/core/utils/Mod.ts +1168 -0
  340. package/src/core/utils/UrlArgs.ts +124 -0
  341. package/src/core/utils/arrayToEnum.ts +89 -0
  342. package/src/core/utils/createUrlArgsEnumFArray.ts +11 -0
  343. package/src/core/utils/securityHelpers.ts +341 -0
  344. package/src/core/utils/securityValidatorHelpers.ts +76 -0
  345. package/src/index.ts +124 -0
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Enhanced Error Reporting System
3
+ *
4
+ * This enhancement provides more detailed error messages for complex conditional validations
5
+ */
6
+
7
+ export interface ConditionalValidationError {
8
+ field: string;
9
+ expected: string;
10
+ received: any;
11
+ receivedType: string;
12
+ condition: string;
13
+ conditionMet: boolean;
14
+ runtimePropertyExists: boolean;
15
+ runtimePropertyPath: string;
16
+ suggestion: string;
17
+ }
18
+
19
+ export class EnhancedSchemaValidator {
20
+
21
+ static generateDetailedError(
22
+ field: string,
23
+ conditionalRule: string,
24
+ input: any,
25
+ runtimeData: any
26
+ ): ConditionalValidationError {
27
+
28
+ // Parse the conditional rule
29
+ const ruleMatch = conditionalRule.match(/when\s+(.+?)\.\$exists\(\)\s+\*\?\s+(\w+(?:\[\])?)\s+:\s+=(.+)/);
30
+
31
+ if (!ruleMatch) {
32
+ throw new Error(`Invalid conditional rule format: ${conditionalRule}`);
33
+ }
34
+
35
+ const [, runtimePath, expectedType, defaultValue] = ruleMatch;
36
+ const receivedValue = input[field];
37
+ const runtimeExists = this.checkRuntimePath(runtimeData, runtimePath);
38
+
39
+ return {
40
+ field,
41
+ expected: expectedType,
42
+ received: receivedValue,
43
+ receivedType: typeof receivedValue,
44
+ condition: `${runtimePath}.$exists()`,
45
+ conditionMet: runtimeExists,
46
+ runtimePropertyExists: runtimeExists,
47
+ runtimePropertyPath: runtimePath,
48
+ suggestion: this.generateSuggestion(field, expectedType, receivedValue, runtimeExists, defaultValue)
49
+ };
50
+ }
51
+
52
+ private static checkRuntimePath(obj: any, path: string): boolean {
53
+ const parts = path.split('.');
54
+ let current = obj;
55
+
56
+ for (const part of parts) {
57
+ if (current == null || typeof current !== 'object' || !(part in current)) {
58
+ return false;
59
+ }
60
+ current = current[part];
61
+ }
62
+
63
+ return current !== undefined && current !== null;
64
+ }
65
+
66
+ private static generateSuggestion(
67
+ field: string,
68
+ expectedType: string,
69
+ receivedValue: any,
70
+ runtimeExists: boolean,
71
+ defaultValue: string
72
+ ): string {
73
+ if (!runtimeExists) {
74
+ return `Since the runtime condition is not met, this field will use the default value: ${defaultValue}. You can omit this field from your input.`;
75
+ }
76
+
77
+ if (typeof receivedValue !== expectedType.replace('[]', '')) {
78
+ return `Convert '${receivedValue}' to ${expectedType}. Expected: ${this.getTypeExample(expectedType)}`;
79
+ }
80
+
81
+ return "Value is valid";
82
+ }
83
+
84
+ private static getTypeExample(type: string): string {
85
+ const examples: Record<string, string> = {
86
+ 'boolean': 'true or false',
87
+ 'string': '"example string"',
88
+ 'number': '42 or 3.14',
89
+ 'int': '42',
90
+ 'object': '{ key: "value" }',
91
+ 'array': '["item1", "item2"]',
92
+ 'string[]': '["item1", "item2"]',
93
+ 'number[]': '[1, 2, 3]',
94
+ 'boolean[]': '[true, false]'
95
+ };
96
+
97
+ return examples[type] || `a ${type}`;
98
+ }
99
+
100
+ static formatDetailedError(error: ConditionalValidationError): string {
101
+ const { field, expected, received, receivedType, condition, conditionMet, suggestion } = error;
102
+
103
+ return [
104
+ `❌ Validation Error for field '${field}':`,
105
+ ` Expected: ${expected}`,
106
+ ` Received: ${JSON.stringify(received)} (${receivedType})`,
107
+ ` Conditional Rule: when ${condition} → validate as ${expected}`,
108
+ ` Runtime Condition Met: ${conditionMet ? '✅' : '❌'}`,
109
+ ` 💡 Suggestion: ${suggestion}`,
110
+ ``
111
+ ].join('\n');
112
+ }
113
+ }
114
+
115
+ // Example usage in your test framework
116
+ export class TestResultAnalyzer {
117
+
118
+ static analyzeConditionalValidation(
119
+ testCase: any,
120
+ validationResult: any,
121
+ schema: any
122
+ ): void {
123
+ console.log(`\n🔍 DETAILED CONDITIONAL ANALYSIS for ${testCase.name}:`);
124
+
125
+ // Extract conditional fields from schema definition
126
+ const conditionalFields = this.extractConditionalFieldsFromSchema(schema);
127
+
128
+ conditionalFields.forEach(fieldInfo => {
129
+ const { fieldName, rule } = fieldInfo;
130
+ const inputValue = testCase.input[fieldName];
131
+ const outputValue = validationResult.data?.[fieldName];
132
+ const runtimeExists = this.checkRuntimeCondition(fieldInfo.runtimePath, testCase.input);
133
+
134
+ console.log(`\n 📊 Field: ${fieldName}`);
135
+ console.log(` Rule: ${rule}`);
136
+ console.log(` Runtime Condition (${fieldInfo.runtimePath}): ${runtimeExists ? '✅ EXISTS' : '❌ MISSING'}`);
137
+
138
+ if (runtimeExists) {
139
+ // Should validate user input
140
+ const typeValid = typeof inputValue === fieldInfo.expectedType;
141
+ console.log(` Input Validation: ${typeValid ? '✅' : '❌'} (${typeof inputValue} vs ${fieldInfo.expectedType})`);
142
+ console.log(` Value: ${JSON.stringify(inputValue)} → ${JSON.stringify(outputValue)}`);
143
+ console.log(` Preserved: ${inputValue === outputValue ? '✅' : '❌'}`);
144
+ } else {
145
+ // Should use default
146
+ const usedDefault = outputValue === fieldInfo.defaultValue;
147
+ console.log(` Default Applied: ${usedDefault ? '✅' : '❌'}`);
148
+ console.log(` Expected Default: ${JSON.stringify(fieldInfo.defaultValue)}`);
149
+ console.log(` Actual Output: ${JSON.stringify(outputValue)}`);
150
+ console.log(` User Input Ignored: ${inputValue !== outputValue ? '✅' : '❌'}`);
151
+ }
152
+ });
153
+ }
154
+
155
+ private static extractConditionalFieldsFromSchema(schema: any): Array<{
156
+ fieldName: string;
157
+ rule: string;
158
+ runtimePath: string;
159
+ expectedType: string;
160
+ defaultValue: any;
161
+ }> {
162
+ // This would parse your schema definition to extract conditional field info
163
+ // Implementation depends on your schema structure
164
+ return [];
165
+ }
166
+
167
+ private static checkRuntimeCondition(path: string, input: any): boolean {
168
+ const parts = path.split('.');
169
+ let current = input;
170
+
171
+ for (const part of parts) {
172
+ if (current == null || typeof current !== 'object' || !(part in current)) {
173
+ return false;
174
+ }
175
+ current = current[part];
176
+ }
177
+
178
+ return current !== undefined && current !== null;
179
+ }
180
+ }
181
+
182
+ // Performance monitoring enhancement
183
+ export class PerformanceProfiler {
184
+
185
+ static profileConditionalValidation(testCase: any, schema: any): {
186
+ totalTime: number;
187
+ conditionCheckTime: number;
188
+ validationTime: number;
189
+ breakdown: Array<{ field: string; time: number; }>;
190
+ } {
191
+ const start = performance.now();
192
+
193
+ // Simulate detailed timing
194
+ const conditionStart = performance.now();
195
+ // ... condition checking logic
196
+ const conditionEnd = performance.now();
197
+
198
+ const validationStart = performance.now();
199
+ const result = schema.safeParse(testCase.input);
200
+ const validationEnd = performance.now();
201
+
202
+ const end = performance.now();
203
+
204
+ return {
205
+ totalTime: end - start,
206
+ conditionCheckTime: conditionEnd - conditionStart,
207
+ validationTime: validationEnd - validationStart,
208
+ breakdown: [] // Field-by-field timing
209
+ };
210
+ }
211
+
212
+ static reportPerformanceBottlenecks(profiles: any[]): void {
213
+ console.log('\n⚡ PERFORMANCE ANALYSIS:');
214
+
215
+ const avgTime = profiles.reduce((sum, p) => sum + p.totalTime, 0) / profiles.length;
216
+ const slowest = profiles.reduce((max, p) => p.totalTime > max.totalTime ? p : max);
217
+
218
+ console.log(` Average Execution Time: ${avgTime.toFixed(2)}ms`);
219
+ console.log(` Slowest Test: ${slowest.totalTime.toFixed(2)}ms`);
220
+
221
+ if (avgTime > 5) {
222
+ console.log(' ⚠️ Consider optimizing for better performance');
223
+ } else if (avgTime < 1) {
224
+ console.log(' 🚀 Excellent performance!');
225
+ }
226
+ }
227
+ }
@@ -0,0 +1,288 @@
1
+ /**
2
+ * Type Guards Module
3
+ *
4
+ * Contains all type guard functions extracted from InterfaceSchema
5
+ * to improve maintainability and reduce file size.
6
+ */
7
+
8
+ import {
9
+ ConstantValue,
10
+ OptionalConstantValue,
11
+ SchemaInterface,
12
+ OptionalSchemaInterface,
13
+ UnionValue,
14
+ } from "../../../../types/SchemaValidator.type";
15
+
16
+ /**
17
+ * Type guard functions for schema validation
18
+ */
19
+ export class TypeGuards {
20
+ /**
21
+ * Check if value is a union value
22
+ */
23
+ static isUnionValue(value: any): value is UnionValue {
24
+ return (
25
+ typeof value === "object" &&
26
+ value !== null &&
27
+ !Array.isArray(value) &&
28
+ "union" in value &&
29
+ Array.isArray(value.union)
30
+ );
31
+ }
32
+
33
+ /**
34
+ * Check if value is a constant value
35
+ */
36
+ static isConstantValue(value: any): value is ConstantValue | OptionalConstantValue {
37
+ return (
38
+ typeof value === "object" &&
39
+ value !== null &&
40
+ !Array.isArray(value) &&
41
+ "const" in value
42
+ );
43
+ }
44
+
45
+ /**
46
+ * Check if value is an optional schema interface
47
+ */
48
+ static isOptionalSchemaInterface(value: any): value is OptionalSchemaInterface {
49
+ return (
50
+ typeof value === "object" &&
51
+ value !== null &&
52
+ !Array.isArray(value) &&
53
+ "optional" in value &&
54
+ value.optional === true &&
55
+ "schema" in value
56
+ );
57
+ }
58
+
59
+ /**
60
+ * Check if value is a conditional validation object
61
+ */
62
+ static isConditionalValidation(value: any): boolean {
63
+ return (
64
+ typeof value === "object" &&
65
+ value !== null &&
66
+ !Array.isArray(value) &&
67
+ value.__conditional === true &&
68
+ "fieldName" in value &&
69
+ "conditions" in value
70
+ );
71
+ }
72
+
73
+ /**
74
+ * Check if value is a schema interface
75
+ */
76
+ static isSchemaInterface(value: any): value is SchemaInterface {
77
+ return (
78
+ typeof value === "object" &&
79
+ value !== null &&
80
+ !Array.isArray(value) &&
81
+ !TypeGuards.isConstantValue(value) &&
82
+ !TypeGuards.isOptionalSchemaInterface(value) &&
83
+ !TypeGuards.isConditionalValidation(value)
84
+ );
85
+ }
86
+
87
+ /**
88
+ * Check if value is an array schema (single element array)
89
+ */
90
+ static isArraySchema(value: any): boolean {
91
+ return Array.isArray(value) && value.length === 1;
92
+ }
93
+
94
+ /**
95
+ * Check if field type is a string-based type
96
+ */
97
+ static isStringFieldType(fieldType: any): fieldType is string {
98
+ return typeof fieldType === "string";
99
+ }
100
+
101
+ /**
102
+ * Check if string contains union syntax
103
+ */
104
+ static isUnionType(fieldType: string): boolean {
105
+ return fieldType.includes("|");
106
+ }
107
+
108
+ /**
109
+ * Check if string is a constant type (starts with =)
110
+ */
111
+ static isConstantType(fieldType: string): boolean {
112
+ return fieldType.startsWith("=");
113
+ }
114
+
115
+ /**
116
+ * Check if string is an array type (ends with [])
117
+ */
118
+ static isArrayType(fieldType: string): boolean {
119
+ // Remove optional marker first
120
+ const type = fieldType.endsWith("?") ? fieldType.slice(0, -1) : fieldType;
121
+ // Remove constraints if present
122
+ const baseType = type.match(/^([a-zA-Z\[\]]+)/)?.[1] || type;
123
+ return baseType.endsWith("[]");
124
+ }
125
+
126
+ /**
127
+ * Check if string is an optional type (ends with ?)
128
+ */
129
+ static isOptionalType(fieldType: string): boolean {
130
+ return fieldType.endsWith("?");
131
+ }
132
+
133
+ /**
134
+ * Check if string is a record type
135
+ */
136
+ static isRecordType(fieldType: string): boolean {
137
+ return fieldType.startsWith("record<") && fieldType.endsWith(">");
138
+ }
139
+
140
+ /**
141
+ * Check if string has constraints (contains parentheses)
142
+ */
143
+ static hasConstraints(fieldType: string): boolean {
144
+ // Remove optional marker
145
+ const type = fieldType.endsWith("?") ? fieldType.slice(0, -1) : fieldType;
146
+ return /^[a-zA-Z\[\]]+\([^)]*\)$/.test(type);
147
+ }
148
+
149
+ /**
150
+ * Check if value is a primitive type
151
+ */
152
+ static isPrimitive(value: any): boolean {
153
+ return (
154
+ value === null ||
155
+ value === undefined ||
156
+ typeof value === "string" ||
157
+ typeof value === "number" ||
158
+ typeof value === "boolean" ||
159
+ typeof value === "symbol" ||
160
+ typeof value === "bigint"
161
+ );
162
+ }
163
+
164
+ /**
165
+ * Check if value is a valid email format
166
+ */
167
+ static isValidEmail(value: string): boolean {
168
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
169
+ }
170
+
171
+ /**
172
+ * Check if value is a valid URL format
173
+ */
174
+ static isValidUrl(value: string): boolean {
175
+ try {
176
+ new URL(value);
177
+ return true;
178
+ } catch {
179
+ return false;
180
+ }
181
+ }
182
+
183
+ /**
184
+ * Check if value is a valid UUID format
185
+ */
186
+ static isValidUuid(value: string): boolean {
187
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value);
188
+ }
189
+
190
+ /**
191
+ * Check if value is a valid phone format
192
+ */
193
+ static isValidPhone(value: string): boolean {
194
+ const cleanPhone = value.replace(/[\s\-\(\)\.+]/g, "");
195
+ return /^[1-9]\d{6,14}$/.test(cleanPhone);
196
+ }
197
+
198
+ /**
199
+ * Check if value is a valid slug format
200
+ */
201
+ static isValidSlug(value: string): boolean {
202
+ return /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(value);
203
+ }
204
+
205
+ /**
206
+ * Check if value is a valid username format
207
+ */
208
+ static isValidUsername(value: string): boolean {
209
+ return /^[a-zA-Z0-9_-]{3,20}$/.test(value);
210
+ }
211
+
212
+ /**
213
+ * Check if value is empty (for empty/!empty operators)
214
+ */
215
+ static isEmpty(value: any): boolean {
216
+ if (value === null || value === undefined) return true;
217
+ if (typeof value === "string") return value.length === 0;
218
+ if (Array.isArray(value)) return value.length === 0;
219
+ if (typeof value === "object") return Object.keys(value).length === 0;
220
+ return false;
221
+ }
222
+
223
+ /**
224
+ * Check if value is a valid JSON string
225
+ */
226
+ static isValidJson(value: string): boolean {
227
+ try {
228
+ JSON.parse(value);
229
+ return true;
230
+ } catch {
231
+ return false;
232
+ }
233
+ }
234
+
235
+ /**
236
+ * Check if value is a valid date
237
+ */
238
+ static isValidDate(value: any): boolean {
239
+ if (value instanceof Date) {
240
+ return !isNaN(value.getTime());
241
+ }
242
+ if (typeof value === "string" || typeof value === "number") {
243
+ const date = new Date(value);
244
+ return !isNaN(date.getTime());
245
+ }
246
+ return false;
247
+ }
248
+
249
+ /**
250
+ * Check if value is a finite number
251
+ */
252
+ static isFiniteNumber(value: any): boolean {
253
+ return typeof value === "number" && isFinite(value);
254
+ }
255
+
256
+ /**
257
+ * Check if value is an integer
258
+ */
259
+ static isInteger(value: any): boolean {
260
+ return typeof value === "number" && isFinite(value) && value % 1 === 0;
261
+ }
262
+
263
+ /**
264
+ * Check if value is a positive number
265
+ */
266
+ static isPositive(value: any): boolean {
267
+ return typeof value === "number" && isFinite(value) && value > 0;
268
+ }
269
+
270
+ /**
271
+ * Check if value is a negative number
272
+ */
273
+ static isNegative(value: any): boolean {
274
+ return typeof value === "number" && isFinite(value) && value < 0;
275
+ }
276
+
277
+ /**
278
+ * Get the type name of a value for error messages
279
+ */
280
+ static getTypeName(value: any): string {
281
+ if (value === null) return "null";
282
+ if (value === undefined) return "undefined";
283
+ if (Array.isArray(value)) return "array";
284
+ if (value instanceof Date) return "Date";
285
+ if (value instanceof RegExp) return "RegExp";
286
+ return typeof value;
287
+ }
288
+ }