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 @@
1
+ {"version":3,"file":"FieldPrecompilers.js","sources":["../../../../../../../src/core/schema/mode/interfaces/precompilation/FieldPrecompilers.ts"],"sourcesContent":[null],"names":["ValidationHelpers","ErrorHandler","ErrorCode","ConstraintParser"],"mappings":"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"}
@@ -0,0 +1,523 @@
1
+ 'use strict';
2
+
3
+ var FieldPrecompilers = require('./FieldPrecompilers.js');
4
+ var VALIDATION_CONSTANTS = require('../../../../../constants/VALIDATION_CONSTANTS.js');
5
+ var ErrorHandler = require('../errors/ErrorHandler.js');
6
+ var errors_type = require('../errors/types/errors.type.js');
7
+ var ValidatorTypes = require('../../../../types/ValidatorTypes.js');
8
+
9
+ /**
10
+ * ULTRA-PERFORMANCE Schema Precompilation Module
11
+ *
12
+ * This module precompiles entire schemas at creation time to eliminate
13
+ * runtime overhead while maintaining full security and validation.
14
+ *
15
+ */
16
+ exports.OptimizationLevel = void 0;
17
+ (function (OptimizationLevel) {
18
+ OptimizationLevel[OptimizationLevel["NONE"] = 0] = "NONE";
19
+ OptimizationLevel[OptimizationLevel["BASIC"] = 1] = "BASIC";
20
+ OptimizationLevel[OptimizationLevel["AGGRESSIVE"] = 2] = "AGGRESSIVE";
21
+ OptimizationLevel[OptimizationLevel["ULTRA"] = 3] = "ULTRA";
22
+ })(exports.OptimizationLevel || (exports.OptimizationLevel = {}));
23
+ class SchemaPrecompiler {
24
+ /**
25
+ * MAIN ENTRY POINT: Precompile entire schema for maximum performance
26
+ */
27
+ static precompileSchema(schemaDefinition, options = {}) {
28
+ const startTime = performance.now();
29
+ // SAFETY: Check compilation depth to prevent infinite recursion
30
+ if (this.compilationDepth >= this.MAX_COMPILATION_DEPTH) {
31
+ throw new Error(`Schema compilation depth exceeded (${this.MAX_COMPILATION_DEPTH}). Possible circular reference detected.`);
32
+ }
33
+ // Generate cache key
34
+ const schemaHash = this.generateSchemaHash(schemaDefinition, options);
35
+ // SAFETY: Check for circular references
36
+ if (this.compilationStack.has(schemaHash)) {
37
+ throw new Error(`Circular reference detected in schema compilation: ${schemaHash}`);
38
+ }
39
+ // Check cache first
40
+ const cached = this.compilationCache.get(schemaHash);
41
+ if (cached) {
42
+ this.performanceStats.cacheHits++;
43
+ return cached.validator;
44
+ }
45
+ // SAFETY: Track compilation
46
+ this.compilationDepth++;
47
+ this.compilationStack.add(schemaHash);
48
+ try {
49
+ // Analyze schema complexity and determine optimization level
50
+ const optimizationLevel = this.analyzeOptimizationLevel(schemaDefinition);
51
+ // Compile fields
52
+ const compiledFields = this.compileFields(schemaDefinition, options);
53
+ // Generate ultra-optimized validator
54
+ const validator = this.generateOptimizedValidator(compiledFields, optimizationLevel, schemaHash);
55
+ const compilationTime = performance.now() - startTime;
56
+ // Cache the compilation
57
+ const compilation = {
58
+ fields: compiledFields,
59
+ validator,
60
+ optimizationLevel,
61
+ compilationTime,
62
+ estimatedPerformanceGain: this.estimatePerformanceGain(compiledFields),
63
+ };
64
+ this.compilationCache.set(schemaHash, compilation);
65
+ this.performanceStats.compilations++;
66
+ this.performanceStats.totalCompilationTime += compilationTime;
67
+ return validator;
68
+ }
69
+ catch (error) {
70
+ // console.error('Schema precompilation failed:', error);
71
+ throw error;
72
+ }
73
+ finally {
74
+ this.compilationDepth--;
75
+ this.compilationStack.delete(schemaHash);
76
+ }
77
+ }
78
+ /**
79
+ * ULTRA-FAST: Generate specialized validator based on schema patterns
80
+ */
81
+ static generateOptimizedValidator(fields, optimizationLevel, schemaHash) {
82
+ // For ULTRA optimization, generate specialized code paths
83
+ if (optimizationLevel === exports.OptimizationLevel.ULTRA) {
84
+ return this.generateUltraOptimizedValidator(fields, schemaHash);
85
+ }
86
+ // For AGGRESSIVE optimization, use compiled field validators
87
+ if (optimizationLevel === exports.OptimizationLevel.AGGRESSIVE) {
88
+ return this.generateAggressiveValidator(fields, schemaHash);
89
+ }
90
+ // For BASIC optimization, use cached validators
91
+ return this.generateBasicValidator(fields, schemaHash);
92
+ }
93
+ /**
94
+ * ULTRA-OPTIMIZED: Generate the fastest possible validator
95
+ * Uses specialized code paths for common patterns
96
+ */
97
+ static generateUltraOptimizedValidator(fields, schemaHash) {
98
+ // Separate fields by type for specialized handling
99
+ const simpleFields = fields.filter((f) => f.isSimpleType);
100
+ const unionFields = fields.filter((f) => f.isUnion);
101
+ const arrayFields = fields.filter((f) => f.isArray);
102
+ const nestedFields = fields.filter((f) => f.isNested);
103
+ const validator = (data) => {
104
+ // ULTRA-FAST: Type check with early return
105
+ if (typeof data !== "object" || data === null) {
106
+ return {
107
+ success: false,
108
+ errors: [ErrorHandler.ErrorHandler.createTypeError([], "object", data)],
109
+ warnings: [],
110
+ data: undefined,
111
+ };
112
+ }
113
+ const validatedData = {};
114
+ const errors = [];
115
+ // OPTIMIZED: Process simple fields first (fastest path)
116
+ for (const field of simpleFields) {
117
+ const value = data[field.fieldName];
118
+ const result = field.validator(value);
119
+ if (!result.success) {
120
+ // Add field path to errors
121
+ const errorsWithPath = result.errors.map((error) => ({
122
+ ...error,
123
+ path: [field.fieldName, ...error.path],
124
+ message: error.message.includes(" in field ")
125
+ ? error.message
126
+ : `${error.message} in field "${field.fieldName}"`,
127
+ }));
128
+ errors.push(...errorsWithPath);
129
+ }
130
+ else {
131
+ validatedData[field.fieldName] = result.data;
132
+ }
133
+ }
134
+ // OPTIMIZED: Process union fields with precompiled validators
135
+ for (const field of unionFields) {
136
+ const value = data[field.fieldName];
137
+ const result = field.validator(value);
138
+ if (!result.success) {
139
+ // Add field path to errors
140
+ const errorsWithPath = result.errors.map((error) => ({
141
+ ...error,
142
+ path: [field.fieldName, ...error.path],
143
+ message: error.message.includes(" in field ")
144
+ ? error.message
145
+ : `${error.message} in field "${field.fieldName}"`,
146
+ }));
147
+ errors.push(...errorsWithPath);
148
+ }
149
+ else {
150
+ validatedData[field.fieldName] = result.data;
151
+ }
152
+ }
153
+ // OPTIMIZED: Process array fields
154
+ for (const field of arrayFields) {
155
+ const value = data[field.fieldName];
156
+ const result = field.validator(value);
157
+ if (!result.success) {
158
+ // Add field path to errors
159
+ const errorsWithPath = result.errors.map((error) => ({
160
+ ...error,
161
+ path: [field.fieldName, ...error.path],
162
+ message: error.message.includes(" in field ")
163
+ ? error.message
164
+ : `${error.message} in field "${field.fieldName}"`,
165
+ }));
166
+ errors.push(...errorsWithPath);
167
+ }
168
+ else {
169
+ validatedData[field.fieldName] = result.data;
170
+ }
171
+ }
172
+ // OPTIMIZED: Process nested fields last
173
+ for (const field of nestedFields) {
174
+ const value = data[field.fieldName];
175
+ const result = field.validator(value);
176
+ if (!result.success) {
177
+ // Add field path to errors
178
+ const errorsWithPath = result.errors.map((error) => ({
179
+ ...error,
180
+ path: [field.fieldName, ...error.path],
181
+ message: error.message.includes(" in field ")
182
+ ? error.message
183
+ : `${error.message} in field "${field.fieldName}"`,
184
+ }));
185
+ errors.push(...errorsWithPath);
186
+ }
187
+ else {
188
+ validatedData[field.fieldName] = result.data;
189
+ }
190
+ }
191
+ // ULTRA-FAST: Return result
192
+ if (errors.length === 0) {
193
+ return {
194
+ success: true,
195
+ errors: [],
196
+ warnings: [],
197
+ data: validatedData,
198
+ };
199
+ }
200
+ else {
201
+ return {
202
+ success: false,
203
+ errors,
204
+ warnings: [],
205
+ data: undefined,
206
+ };
207
+ }
208
+ };
209
+ // Mark as precompiled
210
+ validator._isPrecompiled = true;
211
+ validator._schemaHash = schemaHash;
212
+ validator._optimizationLevel = exports.OptimizationLevel.ULTRA;
213
+ return validator;
214
+ }
215
+ /**
216
+ * Analyze schema to determine optimal optimization level
217
+ */
218
+ static analyzeOptimizationLevel(schema) {
219
+ const fieldCount = Object.keys(schema).length;
220
+ let complexityScore = 0;
221
+ for (const [key, value] of Object.entries(schema)) {
222
+ if (typeof value === "string") {
223
+ if (value.includes("|"))
224
+ complexityScore += 2; // Union
225
+ if (value.includes("[]"))
226
+ complexityScore += 2; // Array
227
+ if (value.includes("when"))
228
+ complexityScore += 5; // Conditional
229
+ if (value.includes("("))
230
+ complexityScore += 1; // Constraints
231
+ }
232
+ else if (typeof value === "object") {
233
+ complexityScore += 10; // Nested object
234
+ }
235
+ }
236
+ // Determine optimization level based on complexity
237
+ if (fieldCount <= 5 && complexityScore <= 10) {
238
+ return exports.OptimizationLevel.ULTRA;
239
+ }
240
+ else if (fieldCount <= 15 && complexityScore <= 30) {
241
+ return exports.OptimizationLevel.AGGRESSIVE;
242
+ }
243
+ else if (fieldCount <= 50) {
244
+ return exports.OptimizationLevel.BASIC;
245
+ }
246
+ else {
247
+ return exports.OptimizationLevel.NONE;
248
+ }
249
+ }
250
+ /**
251
+ * Generate schema hash for caching
252
+ */
253
+ static generateSchemaHash(schema, options) {
254
+ const schemaStr = JSON.stringify(schema, Object.keys(schema).sort());
255
+ const optionsStr = JSON.stringify(options);
256
+ return `${this.simpleHash(schemaStr)}_${this.simpleHash(optionsStr)}`;
257
+ }
258
+ static simpleHash(str) {
259
+ let hash = 0;
260
+ for (let i = 0; i < str.length; i++) {
261
+ const char = str.charCodeAt(i);
262
+ hash = (hash << 5) - hash + char;
263
+ hash = hash & hash; // Convert to 32-bit integer
264
+ }
265
+ return hash.toString(36);
266
+ }
267
+ /**
268
+ * Compile individual fields with specialized optimizations
269
+ */
270
+ static compileFields(schema, options) {
271
+ const fields = [];
272
+ for (const [fieldName, fieldType] of Object.entries(schema)) {
273
+ const compilation = this.compileField(fieldName, fieldType, options, 0);
274
+ fields.push(compilation);
275
+ }
276
+ return fields;
277
+ }
278
+ /**
279
+ * Compile a single field with maximum optimization
280
+ */
281
+ static compileField(fieldName, fieldType, options, depth = 0) {
282
+ // Handle nested objects properly
283
+ if (typeof fieldType === "object" &&
284
+ fieldType !== null &&
285
+ !Array.isArray(fieldType)) {
286
+ // This is a nested object - create a validator that recursively validates the nested schema
287
+ const validator = (value) => {
288
+ if (typeof value !== "object" ||
289
+ value === null ||
290
+ Array.isArray(value)) {
291
+ return {
292
+ success: false,
293
+ errors: [ErrorHandler.ErrorHandler.createTypeError([], "object", value)],
294
+ warnings: [],
295
+ data: undefined,
296
+ };
297
+ }
298
+ // Recursively validate nested object with depth tracking
299
+ const validatedData = {};
300
+ const errors = [];
301
+ const warnings = [];
302
+ for (const [key, nestedFieldType] of Object.entries(fieldType)) {
303
+ const nestedValue = value[key];
304
+ // For nested fields, use FieldPrecompilers directly for string types
305
+ if (typeof nestedFieldType === "string") {
306
+ const fieldValidator = FieldPrecompilers.FieldPrecompilers.parseAndCompile(nestedFieldType);
307
+ const result = fieldValidator(nestedValue);
308
+ if (!result.success) {
309
+ errors.push(...result.errors);
310
+ }
311
+ else {
312
+ validatedData[key] = result.data;
313
+ if (result.warnings)
314
+ warnings.push(...result.warnings);
315
+ }
316
+ }
317
+ else if (typeof nestedFieldType === "object" &&
318
+ nestedFieldType !== null) {
319
+ // For nested objects, validate recursively with depth limit
320
+ if (depth < this.MAX_COMPILATION_DEPTH - 1) {
321
+ // Safe to recurse - compile and validate the nested object
322
+ const nestedField = this.compileField(key, nestedFieldType, options, depth + 1);
323
+ const nestedResult = nestedField.validator(nestedValue);
324
+ if (!nestedResult.success) {
325
+ errors.push(...nestedResult.errors);
326
+ }
327
+ else {
328
+ validatedData[key] = nestedResult.data;
329
+ if (nestedResult.warnings)
330
+ warnings.push(...nestedResult.warnings);
331
+ }
332
+ }
333
+ else {
334
+ // Depth limit reached - do basic type checking only
335
+ if (typeof nestedValue === "object" && nestedValue !== null) {
336
+ validatedData[key] = nestedValue;
337
+ warnings.push(`${key}: Maximum nesting depth reached - basic validation only`);
338
+ }
339
+ else {
340
+ errors.push(ErrorHandler.ErrorHandler.createTypeError([], "object", nestedValue));
341
+ }
342
+ }
343
+ }
344
+ else {
345
+ // Unknown field type
346
+ errors.push(ErrorHandler.ErrorHandler.createSimpleError(`Unknown field type: ${nestedFieldType}`, errors_type.ErrorCode.TYPE_MISMATCH));
347
+ }
348
+ }
349
+ return {
350
+ success: errors.length === 0,
351
+ errors,
352
+ warnings,
353
+ data: errors.length === 0 ? validatedData : undefined,
354
+ };
355
+ };
356
+ return {
357
+ fieldName,
358
+ fieldType: "[nested object]",
359
+ validator: validator,
360
+ isOptional: false,
361
+ hasDefault: false,
362
+ isSimpleType: false,
363
+ isUnion: false,
364
+ isArray: false,
365
+ isNested: true,
366
+ };
367
+ }
368
+ // Handle string field types
369
+ const fieldTypeStr = String(fieldType);
370
+ // Create precompiled validator for this field
371
+ const validator = FieldPrecompilers.FieldPrecompilers.parseAndCompile(fieldTypeStr);
372
+ return {
373
+ fieldName,
374
+ fieldType: fieldTypeStr,
375
+ validator,
376
+ isOptional: fieldTypeStr.includes("?"),
377
+ hasDefault: false, // TODO: Extract default values
378
+ isSimpleType: this.isSimpleType(fieldType),
379
+ isUnion: fieldTypeStr.includes("|"),
380
+ isArray: fieldTypeStr.includes("[]"),
381
+ isNested: typeof fieldType === "object",
382
+ };
383
+ }
384
+ static isSimpleType(fieldType) {
385
+ if (typeof fieldType !== "string")
386
+ return false;
387
+ // Handle constants (=value) as simple types
388
+ if (fieldType.startsWith("="))
389
+ return true;
390
+ // Handle record types as simple types (they have precompiled validators)
391
+ if (fieldType.startsWith("record<") || fieldType.startsWith("Record<")) {
392
+ return true;
393
+ }
394
+ const simpleTypes = ValidatorTypes.SUPPORTED_VALIDATOR_TYPES;
395
+ return simpleTypes.some((type) => fieldType.startsWith(type));
396
+ }
397
+ static generateAggressiveValidator(fields, schemaHash) {
398
+ // AGGRESSIVE optimization: Use the basic validator for now
399
+ // TODO: Implement more aggressive optimizations like field grouping, early exits, etc.
400
+ const basicValidator = this.generateBasicValidator(fields, schemaHash);
401
+ // Mark as aggressive optimization level
402
+ basicValidator._optimizationLevel = exports.OptimizationLevel.AGGRESSIVE;
403
+ return basicValidator;
404
+ }
405
+ static generateBasicValidator(fields, schemaHash) {
406
+ // BASIC optimization: Use compiled field validators with simple iteration
407
+ const validator = (data) => {
408
+ // Fast path for non-objects
409
+ if (typeof data !== "object" || data === null || Array.isArray(data)) {
410
+ return {
411
+ success: false,
412
+ errors: [ErrorHandler.ErrorHandler.createTypeError([], "object", data)],
413
+ warnings: [],
414
+ data: undefined,
415
+ };
416
+ }
417
+ const validatedData = {};
418
+ const errors = [];
419
+ const warnings = [];
420
+ // Validate each field using compiled validators
421
+ for (const field of fields) {
422
+ const value = data[field.fieldName];
423
+ // Handle optional fields
424
+ if (value === undefined) {
425
+ if (!field.isOptional) {
426
+ errors.push(ErrorHandler.ErrorHandler.createMissingFieldError([field.fieldName], field.fieldName));
427
+ }
428
+ else if (field.hasDefault) {
429
+ validatedData[field.fieldName] = field.defaultValue;
430
+ }
431
+ continue;
432
+ }
433
+ // Use the compiled field validator
434
+ const result = field.validator(value);
435
+ if (!result.success) {
436
+ // Add field path to errors
437
+ const errorsWithPath = result.errors.map((error) => ({
438
+ ...error,
439
+ path: [field.fieldName, ...error.path],
440
+ message: error.message.includes(" in field ")
441
+ ? error.message
442
+ : `${error.message} in field "${field.fieldName}"`,
443
+ }));
444
+ errors.push(...errorsWithPath);
445
+ }
446
+ else {
447
+ validatedData[field.fieldName] = result.data;
448
+ }
449
+ // Collect warnings
450
+ if (result.warnings && result.warnings.length > 0) {
451
+ warnings.push(...result.warnings);
452
+ }
453
+ }
454
+ // Return validation result
455
+ if (errors.length === 0) {
456
+ return {
457
+ success: true,
458
+ errors: [],
459
+ warnings,
460
+ data: validatedData,
461
+ };
462
+ }
463
+ else {
464
+ return {
465
+ success: false,
466
+ errors,
467
+ warnings,
468
+ data: undefined,
469
+ };
470
+ }
471
+ };
472
+ validator._isPrecompiled = true;
473
+ validator._schemaHash = schemaHash;
474
+ validator._optimizationLevel = exports.OptimizationLevel.BASIC;
475
+ return validator;
476
+ }
477
+ static estimatePerformanceGain(fields) {
478
+ // Estimate performance gain based on field types
479
+ let gain = 1.0;
480
+ for (const field of fields) {
481
+ if (field.isUnion)
482
+ gain += 0.5;
483
+ if (field.isArray)
484
+ gain += 0.3;
485
+ if (field.isSimpleType)
486
+ gain += 0.2;
487
+ }
488
+ return Math.min(gain, 5.0); // Cap at 5x improvement
489
+ }
490
+ /**
491
+ * Get compilation statistics
492
+ */
493
+ static getStats() {
494
+ return { ...this.performanceStats };
495
+ }
496
+ /**
497
+ * Clear compilation cache
498
+ */
499
+ static clearCache() {
500
+ this.compilationCache.clear();
501
+ this.performanceStats = {
502
+ compilations: 0,
503
+ cacheHits: 0,
504
+ totalCompilationTime: 0,
505
+ averageSpeedup: 0,
506
+ };
507
+ }
508
+ }
509
+ SchemaPrecompiler.compilationCache = new Map();
510
+ SchemaPrecompiler.performanceStats = {
511
+ compilations: 0,
512
+ cacheHits: 0,
513
+ totalCompilationTime: 0,
514
+ averageSpeedup: 0,
515
+ };
516
+ // SAFETY: Track compilation depth to prevent infinite recursion
517
+ SchemaPrecompiler.compilationDepth = 0;
518
+ SchemaPrecompiler.MAX_COMPILATION_DEPTH = VALIDATION_CONSTANTS.MAX_COMPILATION_DEPTH;
519
+ // SAFETY: Track circular references
520
+ SchemaPrecompiler.compilationStack = new Set();
521
+
522
+ exports.SchemaPrecompiler = SchemaPrecompiler;
523
+ //# sourceMappingURL=SchemaPrecompiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaPrecompiler.js","sources":["../../../../../../../src/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.ts"],"sourcesContent":[null],"names":["OptimizationLevel","ErrorHandler","FieldPrecompilers","ErrorCode","SUPPORTED_VALIDATOR_TYPES","IMPORTED_MAX_COMPILATION_DEPTH"],"mappings":"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"}