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,330 @@
1
+ /**
2
+ * Conditional Validation - dependent field validation
3
+ *
4
+ * This module provides powerful conditional validation where fields can depend
5
+ * on other fields' values, making complex business logic validation simple.
6
+ */
7
+
8
+ import { SchemaInterface } from "../mode/interfaces/Interface";
9
+
10
+ /**
11
+ * Conditional validation utilities
12
+ */
13
+ export const When = {
14
+ /**
15
+ * Create conditional validation based on another field's value
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const UserSchema = Interface({
20
+ * accountType: Make.union("free", "premium", "enterprise"),
21
+ * maxProjects: When.field("accountType").is("free").then("int(1,3)")
22
+ * .is("premium").then("int(1,50)")
23
+ * .is("enterprise").then("int(1,)")
24
+ * .default("int(1,1)"),
25
+ *
26
+ * paymentMethod: When.field("accountType").isNot("free").then("string").else("string?"),
27
+ * billingAddress: When.field("paymentMethod").exists().then({
28
+ * street: "string",
29
+ * city: "string",
30
+ * country: "string(2,2)"
31
+ * }).else("any?")
32
+ * });
33
+ * ```
34
+ */
35
+ field(fieldName: string): ConditionalBuilder {
36
+ return new ConditionalBuilder(fieldName);
37
+ },
38
+
39
+ /**
40
+ * Create validation that depends on multiple fields
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const OrderSchema = Interface({
45
+ * orderType: Make.union("pickup", "delivery"),
46
+ * address: "string?",
47
+ * deliveryFee: "number?",
48
+ *
49
+ * // Complex conditional validation
50
+ * ...When.fields(["orderType", "address"]).match({
51
+ * orderType: "delivery",
52
+ * address: (val) => val && val.length > 0
53
+ * }).then({
54
+ * deliveryFee: "number(0,)" // Required for delivery with address
55
+ * }).else({
56
+ * deliveryFee: "number?" // Optional otherwise
57
+ * })
58
+ * });
59
+ * ```
60
+ */
61
+ fields(fieldNames: string[]): MultiConditionalBuilder {
62
+ return new MultiConditionalBuilder(fieldNames);
63
+ },
64
+
65
+ /**
66
+ * Create custom validation logic
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const EventSchema = Interface({
71
+ * startDate: "date",
72
+ * endDate: "date",
73
+ *
74
+ * // Custom validation: endDate must be after startDate
75
+ * ...When.custom((data) => {
76
+ * if (data.endDate <= data.startDate) {
77
+ * return { error: "End date must be after start date" };
78
+ * }
79
+ * return { valid: true };
80
+ * })
81
+ * });
82
+ * ```
83
+ */
84
+ custom(
85
+ validator: (data: any) => { valid: true } | { error: string }
86
+ ): CustomValidator {
87
+ return new CustomValidator(validator);
88
+ },
89
+ };
90
+
91
+ /**
92
+ * Builder for single field conditional validation
93
+ */
94
+ class ConditionalBuilder {
95
+ private conditions: Array<{
96
+ condition: (value: any) => boolean;
97
+ schema: any;
98
+ }> = [];
99
+ private defaultSchema: any = null;
100
+
101
+ constructor(private fieldName: string) {}
102
+
103
+ /**
104
+ * Check if field equals specific value
105
+ */
106
+ is(value: any): ConditionalThen {
107
+ return new ConditionalThen(this, (fieldValue) => fieldValue === value);
108
+ }
109
+
110
+ /**
111
+ * Check if field does not equal specific value
112
+ */
113
+ isNot(value: any): ConditionalThen {
114
+ return new ConditionalThen(this, (fieldValue) => fieldValue !== value);
115
+ }
116
+
117
+ /**
118
+ * Check if field exists (not null/undefined)
119
+ */
120
+ exists(): ConditionalThen {
121
+ return new ConditionalThen(this, (fieldValue) => fieldValue != null);
122
+ }
123
+
124
+ /**
125
+ * Check if field matches pattern
126
+ */
127
+ matches(pattern: RegExp): ConditionalThen {
128
+ return new ConditionalThen(
129
+ this,
130
+ (fieldValue) => typeof fieldValue === "string" && pattern.test(fieldValue)
131
+ );
132
+ }
133
+
134
+ /**
135
+ * Check if field is in array of values
136
+ */
137
+ in(values: any[]): ConditionalThen {
138
+ return new ConditionalThen(this, (fieldValue) =>
139
+ values.includes(fieldValue)
140
+ );
141
+ }
142
+
143
+ /**
144
+ * Custom condition function
145
+ */
146
+ when(condition: (value: any) => boolean): ConditionalThen {
147
+ return new ConditionalThen(this, condition);
148
+ }
149
+
150
+ addCondition(condition: (value: any) => boolean, schema: any): this {
151
+ this.conditions.push({ condition, schema });
152
+ return this;
153
+ }
154
+
155
+ default(schema: any): any {
156
+ this.defaultSchema = schema;
157
+ return this.build();
158
+ }
159
+
160
+ build(): any {
161
+ // Return a special object that the validation engine can recognize
162
+ return {
163
+ __conditional: true,
164
+ fieldName: this.fieldName,
165
+ conditions: this.conditions,
166
+ default: this.defaultSchema,
167
+ };
168
+ }
169
+ }
170
+
171
+ /**
172
+ * Builder for the "then" part of conditional validation
173
+ */
174
+ class ConditionalThen {
175
+ constructor(
176
+ private builder: ConditionalBuilder,
177
+ private condition: (value: any) => boolean
178
+ ) {}
179
+
180
+ then(schema: any): ConditionalBuilder {
181
+ return this.builder.addCondition(this.condition, schema);
182
+ }
183
+ }
184
+
185
+ /**
186
+ * Builder for multi-field conditional validation
187
+ */
188
+ class MultiConditionalBuilder {
189
+ private matchConditions: any = {};
190
+
191
+ constructor(private fieldNames: string[]) {}
192
+
193
+ match(conditions: Record<string, any>): MultiConditionalThen {
194
+ this.matchConditions = conditions;
195
+ return new MultiConditionalThen(this, conditions);
196
+ }
197
+ }
198
+
199
+ /**
200
+ * Builder for multi-field "then" part
201
+ */
202
+ class MultiConditionalThen {
203
+ constructor(
204
+ private builder: MultiConditionalBuilder,
205
+ private conditions: Record<string, any>
206
+ ) {}
207
+
208
+ then(schema: any): MultiConditionalElse {
209
+ return new MultiConditionalElse(schema, null);
210
+ }
211
+ }
212
+
213
+ /**
214
+ * Builder for multi-field "else" part
215
+ */
216
+ class MultiConditionalElse {
217
+ constructor(
218
+ private thenSchema: any,
219
+ private elseSchema: any
220
+ ) {}
221
+
222
+ else(schema: any): any {
223
+ return {
224
+ __multiConditional: true,
225
+ then: this.thenSchema,
226
+ else: schema,
227
+ };
228
+ }
229
+ }
230
+
231
+ /**
232
+ * Custom validator builder
233
+ */
234
+ class CustomValidator {
235
+ constructor(
236
+ private validator: (data: any) => { valid: true } | { error: string }
237
+ ) {}
238
+
239
+ build(): any {
240
+ return {
241
+ __customValidator: true,
242
+ validator: this.validator,
243
+ };
244
+ }
245
+ }
246
+
247
+ /**
248
+ * schema composition with inheritance
249
+ */
250
+ export const Extend = {
251
+ /**
252
+ * Create schema inheritance with method-like syntax
253
+ *
254
+ * @example
255
+ * ```typescript
256
+ * const BaseEntitySchema = Interface({
257
+ * id: "uuid",
258
+ * createdAt: "date",
259
+ * updatedAt: "date"
260
+ * });
261
+ *
262
+ * const UserSchema = Extend.from(BaseEntitySchema).with({
263
+ * email: "email",
264
+ * username: "string(3,20)",
265
+ * profile: {
266
+ * firstName: "string",
267
+ * lastName: "string"
268
+ * }
269
+ * });
270
+ *
271
+ * const AdminSchema = Extend.from(UserSchema).with({
272
+ * permissions: "string[]",
273
+ * role: Make.const("admin")
274
+ * }).override({
275
+ * email: "email(,254)" // Override with more specific validation
276
+ * });
277
+ * ```
278
+ */
279
+ from(baseSchema: SchemaInterface): ExtendBuilder {
280
+ return new ExtendBuilder(baseSchema);
281
+ },
282
+ };
283
+
284
+ /**
285
+ * Builder for schema extension
286
+ */
287
+ class ExtendBuilder {
288
+ constructor(private baseSchema: SchemaInterface) {}
289
+
290
+ with(additionalFields: any): ExtendWithBuilder {
291
+ return new ExtendWithBuilder(this.baseSchema, additionalFields);
292
+ }
293
+ }
294
+
295
+ /**
296
+ * Builder for extended schema with additional methods
297
+ */
298
+ class ExtendWithBuilder {
299
+ constructor(
300
+ private baseSchema: SchemaInterface,
301
+ private additionalFields: any
302
+ ) {}
303
+
304
+ override(overrides: any): SchemaInterface {
305
+ // Merge base schema, additional fields, and overrides
306
+ return {
307
+ ...this.baseSchema,
308
+ ...this.additionalFields,
309
+ ...overrides,
310
+ } as SchemaInterface;
311
+ }
312
+
313
+ build(): SchemaInterface {
314
+ return {
315
+ ...this.baseSchema,
316
+ ...this.additionalFields,
317
+ } as SchemaInterface;
318
+ }
319
+ }
320
+
321
+ /**
322
+ * Export all utilities
323
+ */
324
+ export {
325
+ ConditionalBuilder,
326
+ MultiConditionalBuilder,
327
+ CustomValidator,
328
+ ExtendBuilder,
329
+ };
330
+ export default When;
@@ -0,0 +1,171 @@
1
+ # ReliantType Extensions
2
+
3
+ Advanced extensions for the ReliantType validation library, providing powerful features for schema validation, documentation generation, and real-time validation.
4
+
5
+ ## Architecture
6
+
7
+ The extensions are built with a clean, maintainable architecture:
8
+
9
+ - **Core Extensions**: High-level APIs for common use cases
10
+ - **Specialized Modules**: Focused utilities in the `mods/` directory
11
+
12
+ ## Available Extensions
13
+
14
+ ### Smart Inference (`Smart`)
15
+
16
+ Automatically infer schema definitions from sample data or TypeScript types.
17
+
18
+ ```typescript
19
+ import { Smart } from 'reliant-type';
20
+
21
+ // Infer from sample data
22
+ const sampleUser = {
23
+ id: 1,
24
+ email: "user@example.com",
25
+ name: "John Doe",
26
+ tags: ["developer", "typescript"]
27
+ };
28
+
29
+ const UserSchema = Smart.fromSample(sampleUser);
30
+ // Generates: { id: "positive", email: "email", name: "string", tags: "string[]" }
31
+
32
+ // Infer from TypeScript interface with sample
33
+ interface User {
34
+ id: number;
35
+ email: string;
36
+ name?: string;
37
+ }
38
+
39
+ const schema = Smart.fromType<User>({
40
+ id: 1,
41
+ email: "user@example.com",
42
+ name: "John"
43
+ });
44
+ ```
45
+
46
+ ### Conditional Validation (`When`)
47
+
48
+ Create complex validation rules based on field dependencies.
49
+
50
+ ```typescript
51
+ import { When } from 'reliant-type';
52
+
53
+ const OrderSchema = Interface({
54
+ orderType: Make.union("pickup", "delivery"),
55
+ address: "string?",
56
+
57
+ // Conditional validation
58
+ deliveryFee: When.field("orderType")
59
+ .is("delivery")
60
+ .then("number(0,)")
61
+ .default("number?")
62
+ });
63
+ ```
64
+
65
+ ### Real-time Validation (`Live`)
66
+
67
+ Reactive validation for forms and streaming data.
68
+
69
+ ```typescript
70
+ import { Live } from 'reliant-type';
71
+
72
+ // Form validation
73
+ const formValidator = Live.form(UserSchema);
74
+ formValidator.bindField('email', emailInput);
75
+ formValidator.enableAutoValidation();
76
+
77
+ // Stream validation
78
+ const streamValidator = Live.stream(DataSchema);
79
+ streamValidator.onValid(data => processData(data));
80
+ streamValidator.onInvalid((data, errors) => logErrors(errors));
81
+ ```
82
+
83
+ ### Auto Documentation (`Docs`)
84
+
85
+ Generate comprehensive documentation from schemas.
86
+
87
+ ```typescript
88
+ import { Docs } from 'reliant-type';
89
+
90
+ // Generate OpenAPI specification
91
+ const openApiSpec = Docs.openapi(UserSchema, {
92
+ title: "User API",
93
+ version: "1.0.0",
94
+ servers: ["https://api.example.com"]
95
+ });
96
+
97
+ // Generate TypeScript definitions
98
+ const typeDefinitions = Docs.typescript(UserSchema, {
99
+ exportName: "User",
100
+ namespace: "API"
101
+ });
102
+
103
+ // Generate interactive documentation
104
+ const interactiveDocs = Docs.interactive(UserSchema, {
105
+ title: "User Schema Playground",
106
+ allowTesting: true
107
+ });
108
+ ```
109
+
110
+ ## Specialized Modules
111
+
112
+
113
+ ### OpenAPICo nverter
114
+
115
+ Convert schemas to OpenAPI 3.0 specifications.
116
+
117
+ ```typescript
118
+ import { OpenAPIConverter } from 'reliant-type';
119
+
120
+ const openApiSchema = OpenAPIConverter.convertSchema(schema);
121
+ const fullSpec = OpenAPIConverter.generateOpenAPISpec(schema, options);
122
+ ```
123
+
124
+ ### TypeScriptGenerator
125
+
126
+ Generate TypeScript code from schemas.
127
+
128
+ ```typescript
129
+ import { TypeScriptGenerator } from 'reliant-type';
130
+
131
+ const interface = TypeScriptGenerator.generateInterface(schema, options);
132
+ const utilityTypes = TypeScriptGenerator.generateUtilityTypes(schema, "User");
133
+ const module = TypeScriptGenerator.generateModule(schema, options);
134
+ ```
135
+
136
+ ## Quick Access
137
+
138
+ Use the `Quick` object for common operations:
139
+
140
+ ```typescript
141
+ import { Quick } from 'reliant-type';
142
+
143
+ // Quick schema inference
144
+ const schema = Quick.fromSample(sampleData);
145
+
146
+ // Quick conditional validation
147
+ const conditionalField = Quick.when("status").is("active").then("string");
148
+
149
+ // Quick documentation
150
+ const docs = Quick.docs(schema);
151
+ const typescript = Quick.typescript(schema);
152
+ ```
153
+
154
+
155
+ ## Features
156
+
157
+ - **Type Safety**: Full TypeScript support with proper type inference
158
+ - **Performance**: Optimized validation engine with early termination
159
+ - **Extensibility**: Clean architecture for adding new features
160
+ - **Browser & Node.js**: Works in both environments
161
+ - **Zero Dependencies**: Built on existing Fortify utilities
162
+
163
+ ## Best Practices
164
+
165
+ 1. **Use Smart Inference**: Start with `Smart.fromSample()` for rapid prototyping
166
+ 2. **Leverage Conditional Validation**: Use `When` for complex business rules
167
+ 3. **Real-time Feedback**: Implement `Live` validation for better UX
168
+ 4. **Document Everything**: Generate docs with `Docs` for API documentation
169
+ 5. **Type Generation**: Use TypeScript generation for type-safe APIs
170
+
171
+ The extensions provide a powerful, flexible foundation for advanced schema validation while maintaining simplicity and performance.