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,624 @@
1
+ 'use strict';
2
+
3
+ var VALIDATION_CONSTANTS = require('../../../../../../constants/VALIDATION_CONSTANTS.js');
4
+ var ConditionalTypes = require('../types/ConditionalTypes.js');
5
+
6
+ /**
7
+ * Abstract Syntax Tree definitions for conditional expressions
8
+ *
9
+ * Provides a structured representation of parsed conditional syntax
10
+ * that can be efficiently evaluated and analyzed.
11
+ */
12
+ /**
13
+ * AST Builder - Factory for creating AST nodes
14
+ */
15
+ class ASTBuilder {
16
+ static _validatePosition(position) {
17
+ if (position < 0 || !Number.isInteger(position)) {
18
+ throw new Error(`Invalid position: ${position}. Position must be a non-negative integer.`);
19
+ }
20
+ }
21
+ static _validatePath(path) {
22
+ if (!Array.isArray(path) || path.length === 0) {
23
+ throw new Error("Field access path must be a non-empty array of strings.");
24
+ }
25
+ for (const segment of path) {
26
+ if (typeof segment !== "string" || segment.trim() === "") {
27
+ throw new Error(`Invalid path segment: ${segment}. All segments must be non-empty strings.`);
28
+ }
29
+ }
30
+ }
31
+ static _validateDataType(dataType) {
32
+ if (!this.VALID_DATA_TYPES.includes(dataType)) {
33
+ throw new Error(`Invalid data type: ${dataType}. Must be one of: ${this.VALID_DATA_TYPES.join(", ")}`);
34
+ }
35
+ }
36
+ static _validateLogicalOperator(operator) {
37
+ if (!this.VALID_LOGICAL_OPERATORS.includes(operator)) {
38
+ throw new Error(`Invalid logical operator: ${operator}. Must be one of: ${this.VALID_LOGICAL_OPERATORS.join(", ")}`);
39
+ }
40
+ }
41
+ static _validateArraySize(elements) {
42
+ if (elements.length > this.MAX_ARRAY_SIZE) {
43
+ throw new Error(`Array too large: ${elements.length} elements. Maximum allowed: ${this.MAX_ARRAY_SIZE}`);
44
+ }
45
+ }
46
+ static _deepFreeze(obj) {
47
+ Object.freeze(obj);
48
+ Object.getOwnPropertyNames(obj).forEach((prop) => {
49
+ const value = obj[prop];
50
+ if (value && typeof value === "object") {
51
+ this._deepFreeze(value);
52
+ }
53
+ });
54
+ return obj;
55
+ }
56
+ /**
57
+ * Create a conditional node
58
+ */
59
+ static createConditional(condition, thenValue, elseValue, position = 0) {
60
+ // Validate inputs
61
+ this._validatePosition(position);
62
+ if (!condition) {
63
+ throw new Error("Conditional node requires a condition.");
64
+ }
65
+ if (!thenValue) {
66
+ throw new Error("Conditional node requires a then value.");
67
+ }
68
+ const node = {
69
+ type: ConditionalTypes.ASTNodeType.CONDITIONAL,
70
+ condition,
71
+ thenValue,
72
+ elseValue,
73
+ position,
74
+ };
75
+ return this._deepFreeze(node);
76
+ }
77
+ /**
78
+ * Create a logical expression node (AND/OR)
79
+ */
80
+ static createLogicalExpression(operator, left, right, position = 0) {
81
+ // Validate inputs
82
+ this._validatePosition(position);
83
+ this._validateLogicalOperator(operator);
84
+ if (!left) {
85
+ throw new Error("Logical expression requires a left operand.");
86
+ }
87
+ if (!right) {
88
+ throw new Error("Logical expression requires a right operand.");
89
+ }
90
+ const node = {
91
+ type: ConditionalTypes.ASTNodeType.LOGICAL_EXPRESSION,
92
+ operator,
93
+ left,
94
+ right,
95
+ position,
96
+ };
97
+ return this._deepFreeze(node);
98
+ }
99
+ /**
100
+ * Create a comparison node
101
+ */
102
+ static createComparison(operator, left, right, position = 0) {
103
+ // Validate inputs
104
+ this._validatePosition(position);
105
+ if (!operator) {
106
+ throw new Error("Comparison node requires an operator.");
107
+ }
108
+ if (!left) {
109
+ throw new Error("Comparison node requires a left operand (field access).");
110
+ }
111
+ if (!right) {
112
+ throw new Error("Comparison node requires a right operand (literal).");
113
+ }
114
+ const node = {
115
+ type: ConditionalTypes.ASTNodeType.COMPARISON,
116
+ operator,
117
+ left,
118
+ right,
119
+ position,
120
+ };
121
+ return this._deepFreeze(node);
122
+ }
123
+ /**
124
+ * Create a method call node
125
+ */
126
+ static createMethodCall(method, field, args, position = 0, isRuntimeMethod = false) {
127
+ // Validate inputs
128
+ this._validatePosition(position);
129
+ if (!method) {
130
+ throw new Error("Method call node requires a method.");
131
+ }
132
+ if (!field) {
133
+ throw new Error("Method call node requires a field.");
134
+ }
135
+ if (args) {
136
+ this._validateArraySize(args);
137
+ // Validate each argument
138
+ for (let i = 0; i < args.length; i++) {
139
+ if (!args[i] || args[i].type !== ConditionalTypes.ASTNodeType.LITERAL) {
140
+ throw new Error(`Invalid argument at index ${i}: Method call arguments must be literal nodes.`);
141
+ }
142
+ }
143
+ }
144
+ const node = {
145
+ type: ConditionalTypes.ASTNodeType.METHOD_CALL,
146
+ method,
147
+ field,
148
+ arguments: args ? [...args] : undefined, // Shallow copy for safety
149
+ position,
150
+ isRuntimeMethod,
151
+ };
152
+ return this._deepFreeze(node);
153
+ }
154
+ /**
155
+ * Create a field access node
156
+ */
157
+ static createFieldAccess(path, position = 0) {
158
+ // Validate inputs
159
+ this._validatePosition(position);
160
+ this._validatePath(path);
161
+ const node = {
162
+ type: ConditionalTypes.ASTNodeType.FIELD_ACCESS,
163
+ path: [...path], // Create defensive copy
164
+ position,
165
+ };
166
+ return this._deepFreeze(node);
167
+ }
168
+ /**
169
+ * Create a literal node
170
+ */
171
+ static createLiteral(value, dataType, position = 0) {
172
+ // Validate inputs
173
+ this._validatePosition(position);
174
+ this._validateDataType(dataType);
175
+ if (value === null || value === undefined) {
176
+ throw new Error("Literal node requires a non-null, non-undefined value.");
177
+ }
178
+ // Type consistency validation
179
+ const actualType = typeof value;
180
+ if (actualType !== dataType) {
181
+ throw new Error(`Type mismatch: value type '${actualType}' does not match declared type '${dataType}'.`);
182
+ }
183
+ // Additional validations based on type
184
+ if (dataType === "number" && !Number.isFinite(value)) {
185
+ throw new Error("Number literal must be finite.");
186
+ }
187
+ if (dataType === "string" &&
188
+ typeof value === "string" &&
189
+ value.length > 10000) {
190
+ throw new Error("String literal too long. Maximum length: 10000 characters.");
191
+ }
192
+ const node = {
193
+ type: ConditionalTypes.ASTNodeType.LITERAL,
194
+ value,
195
+ dataType,
196
+ position,
197
+ };
198
+ return this._deepFreeze(node);
199
+ }
200
+ /**
201
+ * Create a constant node
202
+ */
203
+ static createConstant(value, position = 0) {
204
+ // Validate inputs
205
+ this._validatePosition(position);
206
+ if (typeof value !== "string" || value.trim() === "") {
207
+ throw new Error("Constant node requires a non-empty string value.");
208
+ }
209
+ if (value.length > 1000) {
210
+ throw new Error("Constant value too long. Maximum length: 1000 characters.");
211
+ }
212
+ const node = {
213
+ type: ConditionalTypes.ASTNodeType.CONSTANT,
214
+ value: value.trim(),
215
+ position,
216
+ };
217
+ return this._deepFreeze(node);
218
+ }
219
+ /**
220
+ * Create an array node
221
+ */
222
+ static createArray(elements, position = 0) {
223
+ // Validate inputs
224
+ this._validatePosition(position);
225
+ if (!Array.isArray(elements)) {
226
+ throw new Error("Array node requires an array of elements.");
227
+ }
228
+ this._validateArraySize(elements);
229
+ // Validate each element
230
+ for (let i = 0; i < elements.length; i++) {
231
+ if (!elements[i] || elements[i].type !== ConditionalTypes.ASTNodeType.LITERAL) {
232
+ throw new Error(`Invalid element at index ${i}: Array elements must be literal nodes.`);
233
+ }
234
+ }
235
+ const node = {
236
+ type: ConditionalTypes.ASTNodeType.ARRAY,
237
+ elements: [...elements], // Create defensive copy
238
+ position,
239
+ };
240
+ return this._deepFreeze(node);
241
+ }
242
+ }
243
+ // Private validation helpers
244
+ ASTBuilder.VALID_LOGICAL_OPERATORS = ["AND", "OR"];
245
+ ASTBuilder.VALID_DATA_TYPES = [
246
+ "string",
247
+ "number",
248
+ "boolean",
249
+ ];
250
+ ASTBuilder.MAX_NESTING_DEPTH = 50;
251
+ ASTBuilder.MAX_ARRAY_SIZE = 1000;
252
+ /**
253
+ * AST Walker - Traverses AST nodes using visitor pattern
254
+ */
255
+ class ASTWalker {
256
+ static _checkDepth() {
257
+ if (this._currentDepth >= this.MAX_DEPTH) {
258
+ throw new Error(`Maximum traversal depth exceeded: ${this.MAX_DEPTH}. Possible circular reference or deeply nested structure.`);
259
+ }
260
+ }
261
+ static _validateNode(node) {
262
+ if (!node || typeof node !== "object") {
263
+ throw new Error("Invalid AST node: node must be a non-null object.");
264
+ }
265
+ if (!node.type || !Object.values(ConditionalTypes.ASTNodeType).includes(node.type)) {
266
+ throw new Error(`Invalid AST node type: ${node.type}`);
267
+ }
268
+ }
269
+ static _validateVisitor(visitor) {
270
+ if (!visitor || typeof visitor !== "object") {
271
+ throw new Error("Visitor must be a non-null object.");
272
+ }
273
+ const requiredMethods = [
274
+ "visitConditional",
275
+ "visitLogicalExpression",
276
+ "visitComparison",
277
+ "visitMethodCall",
278
+ "visitFieldAccess",
279
+ "visitLiteral",
280
+ "visitConstant",
281
+ "visitArray",
282
+ ];
283
+ for (const method of requiredMethods) {
284
+ if (typeof visitor[method] !== "function") {
285
+ throw new Error(`Visitor missing required method: ${method}`);
286
+ }
287
+ }
288
+ }
289
+ static walk(node, visitor) {
290
+ this._validateNode(node);
291
+ this._validateVisitor(visitor);
292
+ this._checkDepth();
293
+ this._currentDepth++;
294
+ try {
295
+ switch (node.type) {
296
+ case ConditionalTypes.ASTNodeType.CONDITIONAL:
297
+ return visitor.visitConditional(node);
298
+ case ConditionalTypes.ASTNodeType.LOGICAL_EXPRESSION:
299
+ return visitor.visitLogicalExpression(node);
300
+ case ConditionalTypes.ASTNodeType.COMPARISON:
301
+ return visitor.visitComparison(node);
302
+ case ConditionalTypes.ASTNodeType.METHOD_CALL:
303
+ return visitor.visitMethodCall(node);
304
+ case ConditionalTypes.ASTNodeType.FIELD_ACCESS:
305
+ return visitor.visitFieldAccess(node);
306
+ case ConditionalTypes.ASTNodeType.LITERAL:
307
+ return visitor.visitLiteral(node);
308
+ case ConditionalTypes.ASTNodeType.CONSTANT:
309
+ return visitor.visitConstant(node);
310
+ case ConditionalTypes.ASTNodeType.ARRAY:
311
+ return visitor.visitArray(node);
312
+ default:
313
+ throw new Error(`Unknown AST node type: ${node.type}`);
314
+ }
315
+ }
316
+ catch (error) {
317
+ // Add context to errors
318
+ const contextError = new Error(`Error walking AST at position ${node.position}: ${error.message}`);
319
+ contextError.message = error;
320
+ throw contextError;
321
+ }
322
+ finally {
323
+ this._currentDepth--;
324
+ }
325
+ }
326
+ }
327
+ ASTWalker.MAX_DEPTH = VALIDATION_CONSTANTS.MAX_AST_TRAVERSAL_DEPTH;
328
+ ASTWalker._currentDepth = 0;
329
+ /**
330
+ * AST Analyzer - Provides analysis utilities for AST
331
+ */
332
+ class ASTAnalyzer {
333
+ static _clearCaches() {
334
+ this.FIELD_CACHE.clear();
335
+ this.COMPLEXITY_CACHE.clear();
336
+ }
337
+ static _safeWalk(node, visitor) {
338
+ try {
339
+ return ASTWalker.walk(node, visitor);
340
+ }
341
+ catch (error) {
342
+ throw new Error(`AST analysis failed: ${error.message}`);
343
+ }
344
+ }
345
+ /**
346
+ * Get all field references in the AST
347
+ */
348
+ static getFieldReferences(node) {
349
+ // Check cache first
350
+ if (this.FIELD_CACHE.has(node)) {
351
+ return [...this.FIELD_CACHE.get(node)]; // Return defensive copy
352
+ }
353
+ const fields = [];
354
+ const visitor = {
355
+ visitConditional: (n) => {
356
+ this._safeWalk(n.condition, visitor);
357
+ this._safeWalk(n.thenValue, visitor);
358
+ if (n.elseValue)
359
+ this._safeWalk(n.elseValue, visitor);
360
+ },
361
+ visitLogicalExpression: (n) => {
362
+ this._safeWalk(n.left, visitor);
363
+ this._safeWalk(n.right, visitor);
364
+ },
365
+ visitComparison: (n) => {
366
+ this._safeWalk(n.left, visitor);
367
+ this._safeWalk(n.right, visitor);
368
+ },
369
+ visitMethodCall: (n) => {
370
+ this._safeWalk(n.field, visitor);
371
+ if (n.arguments) {
372
+ n.arguments.forEach((arg) => this._safeWalk(arg, visitor));
373
+ }
374
+ },
375
+ visitFieldAccess: (n) => {
376
+ const fieldPath = n.path.join(".");
377
+ if (!fields.includes(fieldPath)) {
378
+ fields.push(fieldPath);
379
+ }
380
+ },
381
+ visitLiteral: () => { },
382
+ visitConstant: () => { },
383
+ visitArray: (n) => {
384
+ n.elements.forEach((el) => this._safeWalk(el, visitor));
385
+ },
386
+ };
387
+ this._safeWalk(node, visitor);
388
+ const uniqueFields = [...new Set(fields)];
389
+ this.FIELD_CACHE.set(node, uniqueFields);
390
+ return [...uniqueFields]; // Return defensive copy
391
+ }
392
+ /**
393
+ * Get complexity score of the AST
394
+ */
395
+ static getComplexityScore(node) {
396
+ // Check cache first
397
+ if (this.COMPLEXITY_CACHE.has(node)) {
398
+ return this.COMPLEXITY_CACHE.get(node);
399
+ }
400
+ let totalScore = 0;
401
+ const visitor = {
402
+ visitConditional: (n) => {
403
+ let score = 2; // Base complexity for conditional
404
+ score += this._safeWalk(n.condition, visitor);
405
+ score += this._safeWalk(n.thenValue, visitor);
406
+ if (n.elseValue)
407
+ score += this._safeWalk(n.elseValue, visitor);
408
+ return score;
409
+ },
410
+ visitLogicalExpression: (n) => {
411
+ let score = 1; // Logical operators add complexity
412
+ score += this._safeWalk(n.left, visitor);
413
+ score += this._safeWalk(n.right, visitor);
414
+ return score;
415
+ },
416
+ visitComparison: () => 1, // Simple comparison
417
+ visitMethodCall: (n) => {
418
+ let score = 2; // Method calls are more complex
419
+ if (n.arguments)
420
+ score += n.arguments.length;
421
+ return score;
422
+ },
423
+ visitFieldAccess: () => 0,
424
+ visitLiteral: () => 0,
425
+ visitConstant: () => 0,
426
+ visitArray: (n) => Math.ceil(n.elements.length * 0.5), // Arrays add some complexity
427
+ };
428
+ totalScore = this._safeWalk(node, visitor);
429
+ this.COMPLEXITY_CACHE.set(node, totalScore);
430
+ return totalScore;
431
+ }
432
+ /**
433
+ * Check if AST contains nested conditionals
434
+ */
435
+ static hasNestedConditionals(node) {
436
+ let hasNested = false;
437
+ let depth = 0;
438
+ const visitor = {
439
+ visitConditional: (n) => {
440
+ depth++;
441
+ if (depth > 1) {
442
+ hasNested = true;
443
+ return; // Early exit
444
+ }
445
+ this._safeWalk(n.condition, visitor);
446
+ if (!hasNested)
447
+ this._safeWalk(n.thenValue, visitor);
448
+ if (!hasNested && n.elseValue)
449
+ this._safeWalk(n.elseValue, visitor);
450
+ depth--;
451
+ },
452
+ visitLogicalExpression: (n) => {
453
+ if (!hasNested)
454
+ this._safeWalk(n.left, visitor);
455
+ if (!hasNested)
456
+ this._safeWalk(n.right, visitor);
457
+ },
458
+ visitComparison: (n) => {
459
+ if (!hasNested)
460
+ this._safeWalk(n.left, visitor);
461
+ if (!hasNested)
462
+ this._safeWalk(n.right, visitor);
463
+ },
464
+ visitMethodCall: (n) => {
465
+ if (!hasNested)
466
+ this._safeWalk(n.field, visitor);
467
+ if (!hasNested && n.arguments) {
468
+ n.arguments.forEach((arg) => this._safeWalk(arg, visitor));
469
+ }
470
+ },
471
+ visitFieldAccess: () => { },
472
+ visitLiteral: () => { },
473
+ visitConstant: () => { },
474
+ visitArray: (n) => {
475
+ if (!hasNested) {
476
+ n.elements.forEach((el) => this._safeWalk(el, visitor));
477
+ }
478
+ },
479
+ };
480
+ this._safeWalk(node, visitor);
481
+ return hasNested;
482
+ }
483
+ /**
484
+ * Validate AST structure
485
+ */
486
+ static validateAST(node) {
487
+ const errors = [];
488
+ const visitor = {
489
+ visitConditional: (n) => {
490
+ if (!n.condition) {
491
+ errors.push(`Conditional node at position ${n.position} missing condition`);
492
+ }
493
+ if (!n.thenValue) {
494
+ errors.push(`Conditional node at position ${n.position} missing then value`);
495
+ }
496
+ try {
497
+ if (n.condition)
498
+ this._safeWalk(n.condition, visitor);
499
+ if (n.thenValue)
500
+ this._safeWalk(n.thenValue, visitor);
501
+ if (n.elseValue)
502
+ this._safeWalk(n.elseValue, visitor);
503
+ }
504
+ catch (error) {
505
+ errors.push(`Error validating conditional at position ${n.position}: ${error.message}`);
506
+ }
507
+ },
508
+ visitLogicalExpression: (n) => {
509
+ if (!n.left || !n.right) {
510
+ errors.push(`Logical expression at position ${n.position} missing operands`);
511
+ }
512
+ if (!["AND", "OR"].includes(n.operator)) {
513
+ errors.push(`Invalid logical operator at position ${n.position}: ${n.operator}`);
514
+ }
515
+ try {
516
+ if (n.left)
517
+ this._safeWalk(n.left, visitor);
518
+ if (n.right)
519
+ this._safeWalk(n.right, visitor);
520
+ }
521
+ catch (error) {
522
+ errors.push(`Error validating logical expression at position ${n.position}: ${error.message}`);
523
+ }
524
+ },
525
+ visitComparison: (n) => {
526
+ if (!n.left || !n.right) {
527
+ errors.push(`Comparison at position ${n.position} missing operands`);
528
+ }
529
+ try {
530
+ if (n.left)
531
+ this._safeWalk(n.left, visitor);
532
+ if (n.right)
533
+ this._safeWalk(n.right, visitor);
534
+ }
535
+ catch (error) {
536
+ errors.push(`Error validating comparison at position ${n.position}: ${error.message}`);
537
+ }
538
+ },
539
+ visitMethodCall: (n) => {
540
+ if (!n.field) {
541
+ errors.push(`Method call at position ${n.position} missing field`);
542
+ }
543
+ try {
544
+ if (n.field)
545
+ this._safeWalk(n.field, visitor);
546
+ if (n.arguments) {
547
+ n.arguments.forEach((arg) => this._safeWalk(arg, visitor));
548
+ }
549
+ }
550
+ catch (error) {
551
+ errors.push(`Error validating method call at position ${n.position}: ${error.message}`);
552
+ }
553
+ },
554
+ visitFieldAccess: (n) => {
555
+ if (!n.path || n.path.length === 0) {
556
+ errors.push(`Field access at position ${n.position} missing path`);
557
+ }
558
+ else {
559
+ // Validate path segments
560
+ for (const segment of n.path) {
561
+ if (typeof segment !== "string" || segment.trim() === "") {
562
+ errors.push(`Invalid path segment in field access at position ${n.position}: "${segment}"`);
563
+ }
564
+ }
565
+ }
566
+ },
567
+ visitLiteral: (n) => {
568
+ if (n.value === undefined || n.value === null) {
569
+ errors.push(`Literal node at position ${n.position} missing value`);
570
+ }
571
+ const actualType = typeof n.value;
572
+ if (actualType !== n.dataType) {
573
+ errors.push(`Type mismatch in literal at position ${n.position}: expected ${n.dataType}, got ${actualType}`);
574
+ }
575
+ },
576
+ visitConstant: (n) => {
577
+ if (!n.value || typeof n.value !== "string") {
578
+ errors.push(`Constant node at position ${n.position} missing or invalid value`);
579
+ }
580
+ },
581
+ visitArray: (n) => {
582
+ if (!n.elements || !Array.isArray(n.elements)) {
583
+ errors.push(`Array node at position ${n.position} missing or invalid elements`);
584
+ }
585
+ else {
586
+ for (let i = 0; i < n.elements.length; i++) {
587
+ if (!n.elements[i] || n.elements[i].type !== ConditionalTypes.ASTNodeType.LITERAL) {
588
+ errors.push(`Invalid element at index ${i} in array at position ${n.position}`);
589
+ }
590
+ }
591
+ }
592
+ },
593
+ };
594
+ try {
595
+ this._safeWalk(node, visitor);
596
+ }
597
+ catch (error) {
598
+ errors.push(`Critical validation error: ${error.message}`);
599
+ }
600
+ return errors;
601
+ }
602
+ /**
603
+ * Clear internal caches - useful for memory management
604
+ */
605
+ static clearCaches() {
606
+ this._clearCaches();
607
+ }
608
+ /**
609
+ * Get cache statistics for debugging
610
+ */
611
+ static getCacheStats() {
612
+ return {
613
+ fieldCacheSize: this.FIELD_CACHE.size,
614
+ complexityCacheSize: this.COMPLEXITY_CACHE.size,
615
+ };
616
+ }
617
+ }
618
+ ASTAnalyzer.FIELD_CACHE = new Map();
619
+ ASTAnalyzer.COMPLEXITY_CACHE = new Map();
620
+
621
+ exports.ASTAnalyzer = ASTAnalyzer;
622
+ exports.ASTBuilder = ASTBuilder;
623
+ exports.ASTWalker = ASTWalker;
624
+ //# sourceMappingURL=ConditionalAST.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConditionalAST.js","sources":["../../../../../../../../src/core/schema/mode/interfaces/conditional/parser/ConditionalAST.ts"],"sourcesContent":[null],"names":["ASTNodeType","MAX_AST_TRAVERSAL_DEPTH"],"mappings":"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"}