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,287 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * TypeScript Generator - Generate TypeScript type definitions from schemas
5
+ *
6
+ * This module provides utilities to convert ReliantType definitions
7
+ * to TypeScript type definitions and interfaces.
8
+ */
9
+ /**
10
+ * TypeScript code generator for schema definitions
11
+ */
12
+ class TypeScriptGenerator {
13
+ /**
14
+ * Generate TypeScript interface from schema
15
+ */
16
+ static generateInterface(schema, options = {}) {
17
+ const { exportName = "Schema", namespace, exportType = "interface" } = options;
18
+ // Extract the actual field definitions from the schema
19
+ const fieldDefinitions = this.extractFieldDefinitions(schema);
20
+ let output = "";
21
+ // Add namespace if specified
22
+ if (namespace) {
23
+ output += `export namespace ${namespace} {\n`;
24
+ }
25
+ // Generate interface or type
26
+ if (exportType === "interface") {
27
+ output += this.generateInterfaceDefinition(fieldDefinitions, exportName, namespace ? 1 : 0);
28
+ }
29
+ else {
30
+ output += this.generateTypeDefinition(fieldDefinitions, exportName, namespace ? 1 : 0);
31
+ }
32
+ // Close namespace if specified
33
+ if (namespace) {
34
+ output += "}\n";
35
+ }
36
+ return output;
37
+ }
38
+ /**
39
+ * Extract field definitions from schema object
40
+ */
41
+ static extractFieldDefinitions(schema) {
42
+ // If schema has a definition property, use that
43
+ if (schema && typeof schema === 'object' && schema.definition) {
44
+ return schema.definition;
45
+ }
46
+ // Otherwise, assume the schema itself contains the field definitions
47
+ return schema;
48
+ }
49
+ /**
50
+ * Generate interface definition
51
+ */
52
+ static generateInterfaceDefinition(schema, name, indentLevel = 0) {
53
+ const indent = " ".repeat(indentLevel);
54
+ let output = `${indent}export interface ${name} {\n`;
55
+ Object.entries(schema).forEach(([fieldName, fieldType]) => {
56
+ const tsType = this.convertToTypeScript(fieldType);
57
+ const optional = this.isOptionalField(fieldType) ? "?" : "";
58
+ output += `${indent} ${fieldName}${optional}: ${tsType};\n`;
59
+ });
60
+ output += `${indent}}\n`;
61
+ return output;
62
+ }
63
+ /**
64
+ * Generate type alias definition
65
+ */
66
+ static generateTypeDefinition(schema, name, indentLevel = 0) {
67
+ const indent = " ".repeat(indentLevel);
68
+ const objectType = this.convertObjectToTypeScript(schema);
69
+ return `${indent}export type ${name} = ${objectType};\n`;
70
+ }
71
+ /**
72
+ * Convert schema field to TypeScript type
73
+ */
74
+ static convertToTypeScript(fieldType) {
75
+ if (typeof fieldType === "string") {
76
+ return this.convertStringToTypeScript(fieldType);
77
+ }
78
+ if (typeof fieldType === "object" && !Array.isArray(fieldType)) {
79
+ // Handle Make.union() objects
80
+ if (fieldType.union && Array.isArray(fieldType.union)) {
81
+ return fieldType.union.map((value) => `"${value}"`).join(" | ");
82
+ }
83
+ // Handle Make.const() objects
84
+ if (fieldType.const !== undefined) {
85
+ return `"${fieldType.const}"`;
86
+ }
87
+ return this.convertObjectToTypeScript(fieldType);
88
+ }
89
+ return "any";
90
+ }
91
+ /**
92
+ * Convert string-based field to TypeScript type
93
+ */
94
+ static convertStringToTypeScript(fieldType) {
95
+ const cleanType = fieldType.replace("?", "");
96
+ // Handle arrays FIRST - before other checks
97
+ if (cleanType.includes("[]")) {
98
+ const elementType = cleanType.replace("[]", "").replace(/\([^)]*\)/, ""); // Remove constraints
99
+ const tsElementType = this.convertStringToTypeScript(elementType);
100
+ return `${tsElementType}[]`;
101
+ }
102
+ // Handle number types with constraints
103
+ if (cleanType.startsWith("number(") || cleanType.includes("number(")) {
104
+ return "number";
105
+ }
106
+ // Basic type mappings
107
+ const typeMappings = {
108
+ email: "string",
109
+ url: "string",
110
+ uuid: "string",
111
+ phone: "string",
112
+ date: "Date",
113
+ number: "number",
114
+ positive: "number",
115
+ int: "number",
116
+ boolean: "boolean",
117
+ string: "string"
118
+ };
119
+ // Check for direct mapping
120
+ if (typeMappings[cleanType]) {
121
+ return typeMappings[cleanType];
122
+ }
123
+ // Handle string with constraints
124
+ if (cleanType.startsWith("string")) {
125
+ return "string";
126
+ }
127
+ // Handle union types (pipe-separated values)
128
+ if (cleanType.includes("|")) {
129
+ const unionTypes = cleanType.split("|").map(t => `"${t.trim()}"`);
130
+ return unionTypes.join(" | ");
131
+ }
132
+ return "string";
133
+ }
134
+ /**
135
+ * Convert object to TypeScript type
136
+ */
137
+ static convertObjectToTypeScript(obj) {
138
+ if (typeof obj !== "object" || obj === null) {
139
+ return "any";
140
+ }
141
+ const properties = [];
142
+ Object.entries(obj).forEach(([key, value]) => {
143
+ const tsType = this.convertToTypeScript(value);
144
+ const optional = this.isOptionalField(value) ? "?" : "";
145
+ properties.push(`${key}${optional}: ${tsType}`);
146
+ });
147
+ return `{\n ${properties.join(";\n ")};\n}`;
148
+ }
149
+ /**
150
+ * Check if field is optional
151
+ */
152
+ static isOptionalField(fieldType) {
153
+ if (typeof fieldType === "string") {
154
+ return fieldType.includes("?");
155
+ }
156
+ return false;
157
+ }
158
+ /**
159
+ * Generate utility types for schema
160
+ */
161
+ static generateUtilityTypes(schema, baseName) {
162
+ let output = "";
163
+ // Generate partial type
164
+ output += `export type Partial${baseName} = Partial<${baseName}>;\n\n`;
165
+ // Generate required type
166
+ output += `export type Required${baseName} = Required<${baseName}>;\n\n`;
167
+ // Generate pick types for common field combinations
168
+ const fields = Object.keys(schema);
169
+ if (fields.length > 1) {
170
+ output += `export type ${baseName}Keys = keyof ${baseName};\n\n`;
171
+ // Generate create type (without optional fields)
172
+ const requiredFields = fields.filter(field => !this.isOptionalField(schema[field]));
173
+ if (requiredFields.length > 0 && requiredFields.length < fields.length) {
174
+ output += `export type Create${baseName} = Pick<${baseName}, ${requiredFields.map(f => `"${f}"`).join(" | ")}>;\n\n`;
175
+ }
176
+ }
177
+ return output;
178
+ }
179
+ /**
180
+ * Generate validation function types
181
+ */
182
+ static generateValidationTypes(baseName) {
183
+ return `
184
+ export interface ${baseName}ValidationResult {
185
+ isValid: boolean;
186
+ data: ${baseName};
187
+ errors: Record<string, string[]>;
188
+ }
189
+
190
+ export type ${baseName}Validator = (data: any) => ${baseName}ValidationResult;
191
+
192
+ export interface ${baseName}ParseResult {
193
+ success: boolean;
194
+ data?: ${baseName};
195
+ error?: {
196
+ issues: Array<{
197
+ path: string[];
198
+ message: string;
199
+ }>;
200
+ };
201
+ }
202
+ `;
203
+ }
204
+ /**
205
+ * Generate complete TypeScript module
206
+ */
207
+ static generateModule(schema, options) {
208
+ const { moduleName, exportName = "Schema", includeUtilities = true, includeValidation = true, header } = options;
209
+ let output = "";
210
+ // Add header comment
211
+ if (header) {
212
+ output += `/**\n * ${header}\n */\n\n`;
213
+ }
214
+ // Generate main interface
215
+ output += this.generateInterface(schema, { exportName });
216
+ output += "\n";
217
+ // Generate utility types
218
+ if (includeUtilities) {
219
+ output += this.generateUtilityTypes(schema, exportName);
220
+ }
221
+ // Generate validation types
222
+ if (includeValidation) {
223
+ output += this.generateValidationTypes(exportName);
224
+ }
225
+ // Add module export
226
+ if (moduleName) {
227
+ output += `\nexport const ${moduleName} = {\n`;
228
+ output += ` name: "${exportName}",\n`;
229
+ output += ` fields: ${JSON.stringify(Object.keys(schema), null, 2)}\n`;
230
+ output += "};\n";
231
+ }
232
+ return output;
233
+ }
234
+ /**
235
+ * Generate JSDoc comments for schema fields
236
+ */
237
+ static generateJSDoc(schema) {
238
+ const docs = {};
239
+ Object.entries(schema).forEach(([fieldName, fieldType]) => {
240
+ docs[fieldName] = this.generateFieldJSDoc(fieldName, fieldType);
241
+ });
242
+ return docs;
243
+ }
244
+ /**
245
+ * Generate JSDoc for a single field
246
+ */
247
+ static generateFieldJSDoc(fieldName, fieldType) {
248
+ if (typeof fieldType === "string") {
249
+ const cleanType = fieldType.replace("?", "");
250
+ const isOptional = fieldType.includes("?");
251
+ let description = `${fieldName} field`;
252
+ // Add type-specific descriptions
253
+ if (cleanType === "email")
254
+ description = "Email address";
255
+ else if (cleanType === "url")
256
+ description = "URL address";
257
+ else if (cleanType === "uuid")
258
+ description = "Unique identifier";
259
+ else if (cleanType === "date")
260
+ description = "Date and time";
261
+ else if (cleanType === "positive")
262
+ description = "Positive number";
263
+ else if (cleanType.startsWith("string"))
264
+ description = "Text value";
265
+ else if (cleanType.includes("[]"))
266
+ description = "Array of values";
267
+ let jsdoc = `/**\n * ${description}`;
268
+ if (isOptional) {
269
+ jsdoc += "\n * @optional";
270
+ }
271
+ // Add constraints info
272
+ if (cleanType.includes("(")) {
273
+ const match = cleanType.match(/\(([^)]+)\)/);
274
+ if (match) {
275
+ jsdoc += `\n * @constraints ${match[1]}`;
276
+ }
277
+ }
278
+ jsdoc += "\n */";
279
+ return jsdoc;
280
+ }
281
+ return `/**\n * ${fieldName} field\n */`;
282
+ }
283
+ }
284
+
285
+ exports.TSGenerator = TypeScriptGenerator;
286
+ exports.TypeScriptGenerator = TypeScriptGenerator;
287
+ //# sourceMappingURL=typescript-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-generator.js","sources":["../../../../../../src/core/schema/extensions/mods/typescript-generator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ 'use strict';
2
+
3
+ var TypeValidators = require('../../mode/interfaces/validators/TypeValidators.js');
4
+ var ConstraintParser = require('../../mode/interfaces/validators/ConstraintParser.js');
5
+ var ValidationHelpers = require('../../mode/interfaces/validators/ValidationHelpers.js');
6
+ var ErrorHandler = require('../../mode/interfaces/errors/ErrorHandler.js');
7
+ var errors_type = require('../../mode/interfaces/errors/types/errors.type.js');
8
+
9
+ /**
10
+ * Validation Engine - Core validation logic for schema extensions
11
+ *
12
+ * This module provides the core validation engine that powers all schema extensions.
13
+ * It acts as a bridge between extensions and the main validation system, delegating
14
+ * actual validation to the TypeValidators module to avoid duplication.
15
+ */
16
+ /**
17
+ * Core validation engine for schema validation
18
+ */
19
+ class ValidationEngine {
20
+ /**
21
+ * Validate a value against a schema field definition
22
+ * Delegates to TypeValidators for actual validation logic
23
+ */
24
+ static validateField(fieldSchema, value) {
25
+ if (typeof fieldSchema === "string") {
26
+ return this.validateStringSchema(fieldSchema, value);
27
+ }
28
+ if (typeof fieldSchema === "object" && !Array.isArray(fieldSchema)) {
29
+ return this.validateObjectSchema(fieldSchema, value);
30
+ }
31
+ // Default: accept any value
32
+ return { isValid: true, errors: [] };
33
+ }
34
+ /**
35
+ * Validate against string-based schema definitions
36
+ * Uses TypeValidators for consistent validation logic
37
+ */
38
+ static validateStringSchema(fieldSchema, value) {
39
+ // Parse the field schema using ConstraintParser
40
+ const parsed = ConstraintParser.ConstraintParser.parseConstraints(fieldSchema);
41
+ const { type, constraints, optional } = parsed;
42
+ // Handle null/undefined for optional fields
43
+ if (optional && (value === null || value === undefined)) {
44
+ return { isValid: true, errors: [] };
45
+ }
46
+ // Required field cannot be null/undefined
47
+ if (!optional && (value === null || value === undefined)) {
48
+ return {
49
+ isValid: false,
50
+ errors: [`Field is required but received ${value}`],
51
+ };
52
+ }
53
+ // Use TypeValidators for actual validation
54
+ const options = { loose: false }; // Default options
55
+ let validationResult;
56
+ try {
57
+ // Delegate to appropriate TypeValidator method based on type
58
+ switch (type) {
59
+ case "string":
60
+ validationResult = TypeValidators.TypeValidators.validateString(value, options, constraints);
61
+ break;
62
+ case "number":
63
+ case "float":
64
+ case "double":
65
+ validationResult = TypeValidators.TypeValidators.validateNumber(value, options, constraints);
66
+ break;
67
+ case "int":
68
+ case "integer":
69
+ case "positive":
70
+ case "negative":
71
+ validationResult = TypeValidators.TypeValidators.validateInteger(value, options, constraints, type);
72
+ break;
73
+ case "boolean":
74
+ validationResult = TypeValidators.TypeValidators.validateBoolean(value, options, {});
75
+ break;
76
+ case "date":
77
+ validationResult = TypeValidators.TypeValidators.validateDate(value, options, {}, "date");
78
+ break;
79
+ case "email":
80
+ validationResult = TypeValidators.TypeValidators.validateEmail(value);
81
+ break;
82
+ case "url":
83
+ validationResult = TypeValidators.TypeValidators.validateUrl(value, "url.web");
84
+ break;
85
+ case "uuid":
86
+ case "guid":
87
+ validationResult = TypeValidators.TypeValidators.validateUuid(value, type);
88
+ break;
89
+ default:
90
+ // Handle arrays and other complex types
91
+ if (type.includes("[]")) {
92
+ // For arrays, use ValidationHelpers.validateArrayWithConstraints
93
+ const elementType = type.replace("[]", "");
94
+ validationResult = ValidationHelpers.ValidationHelpers.validateArrayWithConstraints(value, elementType, constraints, (elemType, elemValue) => {
95
+ // Recursively validate each element and convert result format
96
+ const fieldResult = this.validateStringSchema(elemType, elemValue);
97
+ // Convert string errors to ValidationError objects
98
+ const validationErrors = fieldResult.errors.map((errorMsg) => {
99
+ if (typeof errorMsg === "string") {
100
+ // console.log("converting string error to ValidationError");
101
+ return ErrorHandler.ErrorHandler.convertStringToError(errorMsg, errors_type.ErrorCode.VALIDATION_ERROR);
102
+ }
103
+ // If it's already a ValidationError object, return as is
104
+ if (errorMsg &&
105
+ typeof errorMsg === "object" &&
106
+ "message" in errorMsg) {
107
+ return errorMsg;
108
+ }
109
+ // Fallback: convert to string and then to ValidationError
110
+ // console.log(
111
+ // "converting unknown error format to ValidationError"
112
+ // );
113
+ return ErrorHandler.ErrorHandler.convertStringToError(String(errorMsg), errors_type.ErrorCode.VALIDATION_ERROR);
114
+ });
115
+ return {
116
+ success: fieldResult.isValid,
117
+ errors: validationErrors,
118
+ warnings: [],
119
+ data: elemValue,
120
+ };
121
+ });
122
+ }
123
+ else {
124
+ // // Unknown type - accept any value
125
+ validationResult = {
126
+ success: true,
127
+ errors: [],
128
+ warnings: [],
129
+ data: value,
130
+ };
131
+ }
132
+ }
133
+ // Convert TypeValidators result format to ValidationEngine format
134
+ return {
135
+ isValid: validationResult.success,
136
+ errors: (validationResult.errors || []).map((error) => {
137
+ if (typeof error === "string") {
138
+ return error;
139
+ }
140
+ if (error && typeof error === "object" && error.message) {
141
+ return error.message;
142
+ }
143
+ // Fallback: try to extract meaningful information
144
+ if (error && typeof error === "object") {
145
+ if (error.toString &&
146
+ error.toString !== Object.prototype.toString) {
147
+ return error.toString();
148
+ }
149
+ return JSON.stringify(error);
150
+ }
151
+ return String(error);
152
+ }),
153
+ };
154
+ }
155
+ catch (error) {
156
+ return {
157
+ isValid: false,
158
+ errors: [
159
+ `Validation error: ${error instanceof Error ? error.message : "Unknown error"}`,
160
+ ],
161
+ };
162
+ }
163
+ }
164
+ /**
165
+ * Validate against object schema definitions
166
+ */
167
+ static validateObjectSchema(fieldSchema, value) {
168
+ const errors = [];
169
+ if (typeof value !== "object" || value === null) {
170
+ errors.push("Expected object but received " + typeof value);
171
+ return { isValid: false, errors };
172
+ }
173
+ // Validate all nested fields
174
+ for (const [nestedField, nestedSchema] of Object.entries(fieldSchema)) {
175
+ const nestedResult = this.validateField(nestedSchema, value[nestedField]);
176
+ if (!nestedResult.isValid) {
177
+ const errRes = nestedResult.errors.map((err) => {
178
+ // Handle both string and ValidationError object cases
179
+ const errorMessage = typeof err === "string"
180
+ ? err
181
+ : err && typeof err === "object" && "message" in err
182
+ ? err.message
183
+ : JSON.stringify(err);
184
+ return `${nestedField}: ${errorMessage}`;
185
+ });
186
+ errors.push(...errRes);
187
+ }
188
+ }
189
+ return { isValid: errors.length === 0, errors };
190
+ }
191
+ // All individual validation methods removed - now delegated to TypeValidators
192
+ /**
193
+ * Validate entire object against schema
194
+ */
195
+ static validateObject(schema, data) {
196
+ const errors = {};
197
+ let isValid = true;
198
+ if (!data || typeof data !== "object") {
199
+ return {
200
+ isValid: false,
201
+ data,
202
+ errors: { _root: ["Expected object but received " + typeof data] },
203
+ timestamp: new Date(),
204
+ };
205
+ }
206
+ // Validate each field in the schema
207
+ for (const [fieldName, fieldSchema] of Object.entries(schema)) {
208
+ const fieldResult = this.validateField(fieldSchema, data[fieldName]);
209
+ if (!fieldResult.isValid) {
210
+ errors[fieldName] = fieldResult.errors;
211
+ isValid = false;
212
+ }
213
+ }
214
+ return {
215
+ isValid,
216
+ data,
217
+ errors,
218
+ timestamp: new Date(),
219
+ };
220
+ }
221
+ }
222
+
223
+ exports.ValidationEngine = ValidationEngine;
224
+ //# sourceMappingURL=validation-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-engine.js","sources":["../../../../../../src/core/schema/extensions/mods/validation-engine.ts"],"sourcesContent":[null],"names":["ConstraintParser","TypeValidators","ValidationHelpers","ErrorHandler","ErrorCode"],"mappings":"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"}