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