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,211 @@
1
+ # ReliantType Performance Report
2
+
3
+ ## 📊 Executive Summary
4
+
5
+ **Generated:** 7/18/2025, 8:19:17 AM
6
+ **Node.js Version:** v24.3.0
7
+ **Platform:** linux (x64)
8
+ **ReliantType Version:** 2.0.21
9
+
10
+ ### 🏆 Performance Highlights
11
+
12
+ | Metric | Value |
13
+ |--------|-------|
14
+ | **Total Test Suites** | 6 |
15
+ | **Fastest Operation** | Basic Types (496,131.184 ops/sec) |
16
+ | **Most Consistent** | Union Types (5.8% CV) |
17
+ | **Memory Efficiency** | 1.42 KB per schema |
18
+
19
+ ### 💾 Memory Usage
20
+
21
+ - **Total Memory Used:** 2.78 MB
22
+ - **Schemas Created:** 2,000
23
+ - **Memory Per Schema:** 1.42 KB
24
+
25
+ ## 📋 Detailed Performance Results
26
+
27
+
28
+ ### 1. Basic Types
29
+
30
+ **Performance Metrics:**
31
+ - **Operations/Second:** 496,131.184 ops/sec
32
+ - **Average Time/Op:** 2.02 μs
33
+ - **Median Time:** 100.78 ms
34
+
35
+ **Reliability Metrics:**
36
+ - **Success Rate:** 100.0%
37
+ - **Coefficient of Variation:** 32.3%
38
+ - **Time Range:** 88.70 - 188.94 ms
39
+
40
+ | Metric | Value |
41
+ |--------|-------|
42
+ | **Iterations** | 50,000 |
43
+ | **Median Time** | 100.78 ms |
44
+ | **Mean Time** | 124.86 ms |
45
+ | **Std Deviation** | 40.36 ms |
46
+ | **Min Time** | 88.70 ms |
47
+ | **Max Time** | 188.94 ms |
48
+
49
+
50
+ ### 2. Complex Nested
51
+
52
+ **Performance Metrics:**
53
+ - **Operations/Second:** 12,443.531 ops/sec
54
+ - **Average Time/Op:** 80.36 μs
55
+ - **Median Time:** 401.82 ms
56
+
57
+ **Reliability Metrics:**
58
+ - **Success Rate:** 100.0%
59
+ - **Coefficient of Variation:** 10.8%
60
+ - **Time Range:** 345.57 - 484.38 ms
61
+
62
+ | Metric | Value |
63
+ |--------|-------|
64
+ | **Iterations** | 5,000 |
65
+ | **Median Time** | 401.82 ms |
66
+ | **Mean Time** | 407.29 ms |
67
+ | **Std Deviation** | 44.08 ms |
68
+ | **Min Time** | 345.57 ms |
69
+ | **Max Time** | 484.38 ms |
70
+
71
+
72
+ ### 3. Array Validation
73
+
74
+ **Performance Metrics:**
75
+ - **Operations/Second:** 147,805.966 ops/sec
76
+ - **Average Time/Op:** 6.77 μs
77
+ - **Median Time:** 54.13 ms
78
+
79
+ **Reliability Metrics:**
80
+ - **Success Rate:** 0.0%
81
+ - **Coefficient of Variation:** 34.5%
82
+ - **Time Range:** 38.10 - 98.61 ms
83
+
84
+ | Metric | Value |
85
+ |--------|-------|
86
+ | **Iterations** | 8,000 |
87
+ | **Median Time** | 54.13 ms |
88
+ | **Mean Time** | 57.39 ms |
89
+ | **Std Deviation** | 19.80 ms |
90
+ | **Min Time** | 38.10 ms |
91
+ | **Max Time** | 98.61 ms |
92
+
93
+
94
+ ### 4. Union Types
95
+
96
+ **Performance Metrics:**
97
+ - **Operations/Second:** 130,063.973 ops/sec
98
+ - **Average Time/Op:** 7.69 μs
99
+ - **Median Time:** 153.77 ms
100
+
101
+ **Reliability Metrics:**
102
+ - **Success Rate:** 100.0%
103
+ - **Coefficient of Variation:** 5.8%
104
+ - **Time Range:** 145.57 - 177.70 ms
105
+
106
+ | Metric | Value |
107
+ |--------|-------|
108
+ | **Iterations** | 20,000 |
109
+ | **Median Time** | 153.77 ms |
110
+ | **Mean Time** | 156.50 ms |
111
+ | **Std Deviation** | 9.14 ms |
112
+ | **Min Time** | 145.57 ms |
113
+ | **Max Time** | 177.70 ms |
114
+
115
+
116
+ ### 5. Conditional Logic
117
+
118
+ **Performance Metrics:**
119
+ - **Operations/Second:** 13,833.264 ops/sec
120
+ - **Average Time/Op:** 72.29 μs
121
+ - **Median Time:** 1084.34 ms
122
+
123
+ **Reliability Metrics:**
124
+ - **Success Rate:** 0.0%
125
+ - **Coefficient of Variation:** 13.1%
126
+ - **Time Range:** 924.03 - 1443.54 ms
127
+
128
+ | Metric | Value |
129
+ |--------|-------|
130
+ | **Iterations** | 15,000 |
131
+ | **Median Time** | 1084.34 ms |
132
+ | **Mean Time** | 1078.61 ms |
133
+ | **Std Deviation** | 140.92 ms |
134
+ | **Min Time** | 924.03 ms |
135
+ | **Max Time** | 1443.54 ms |
136
+
137
+
138
+ ### 6. Format Validation
139
+
140
+ **Performance Metrics:**
141
+ - **Operations/Second:** 90,788.957 ops/sec
142
+ - **Average Time/Op:** 11.01 μs
143
+ - **Median Time:** 132.17 ms
144
+
145
+ **Reliability Metrics:**
146
+ - **Success Rate:** 100.0%
147
+ - **Coefficient of Variation:** 22.8%
148
+ - **Time Range:** 109.13 - 216.44 ms
149
+
150
+ | Metric | Value |
151
+ |--------|-------|
152
+ | **Iterations** | 12,000 |
153
+ | **Median Time** | 132.17 ms |
154
+ | **Mean Time** | 132.19 ms |
155
+ | **Std Deviation** | 30.17 ms |
156
+ | **Min Time** | 109.13 ms |
157
+ | **Max Time** | 216.44 ms |
158
+
159
+
160
+ ## 🎯 Performance Analysis
161
+
162
+ ### Key Findings
163
+
164
+ 1. **Conditional Validation Performance**: The unique conditional validation feature maintains competitive performance while adding significant functionality.
165
+
166
+ 2. **Format Validation**: Regular expression-based validations show consistent performance across different pattern complexities.
167
+
168
+ 3. **Scaling Characteristics**: Performance scales predictably with data size and schema complexity.
169
+
170
+ 4. **Memory Efficiency**: Linear memory scaling with reasonable per-schema overhead.
171
+
172
+ ### Performance Characteristics by Test Type
173
+
174
+ - **Basic Types**: 496,131.184 ops/sec (32.3% variation)
175
+ - **Complex Nested**: 12,443.531 ops/sec (10.8% variation)
176
+ - **Array Validation**: 147,805.966 ops/sec (34.5% variation)
177
+ - **Union Types**: 130,063.973 ops/sec (5.8% variation)
178
+ - **Conditional Logic**: 13,833.264 ops/sec (13.1% variation)
179
+ - **Format Validation**: 90,788.957 ops/sec (22.8% variation)
180
+
181
+ ## 🔧 Technical Details
182
+
183
+ ### Test Environment
184
+ - **Node.js:** v24.3.0
185
+ - **Platform:** linux
186
+ - **Architecture:** x64
187
+ - **Test Type:** standalone-performance
188
+
189
+ ### Methodology
190
+ - **Warm-up:** 1000 iterations per test to ensure JIT optimization
191
+ - **Statistical Analysis:** 10 runs per test with median reporting
192
+ - **Memory Testing:** Multiple schema creation patterns
193
+ - **Scaling Analysis:** Variable data sizes from 10 to 5000 items
194
+
195
+ ### Unique Features Tested
196
+ - **Conditional Validation:** Runtime property checking with `when` syntax
197
+ - **Format Validation:** Email, URL, phone, UUID, and regex patterns
198
+ - **Complex Nesting:** Deep object validation with multiple levels
199
+ - **Array Validation:** Dynamic array sizing and type constraints
200
+
201
+ ## 📝 Notes
202
+
203
+ - Results reflect core validation performance under controlled conditions
204
+ - Memory usage includes schema compilation and runtime overhead
205
+ - Conditional validation adds minimal performance overhead for significant functionality gains
206
+ - Performance may vary based on data complexity and validation requirements
207
+
208
+ ---
209
+
210
+ *Generated automatically by the ReliantType benchmark suite*
211
+ *Last updated: 7/18/2025, 8:19:17 AM*
@@ -0,0 +1,148 @@
1
+ {
2
+ "metadata": {
3
+ "timestamp": "2025-07-18T08:19:17.534Z",
4
+ "nodeVersion": "v24.3.0",
5
+ "platform": "linux",
6
+ "arch": "x64",
7
+ "fortifyVersion": "2.0.21",
8
+ "testType": "standalone-performance"
9
+ },
10
+ "summary": {
11
+ "totalTests": 6,
12
+ "fastestTest": {
13
+ "name": "Basic Types",
14
+ "iterations": 50000,
15
+ "median": 100.77979699999992,
16
+ "mean": 124.8620427,
17
+ "std": 40.36453915326238,
18
+ "min": 88.70023300000003,
19
+ "max": 188.9411030000001,
20
+ "avgTimePerOp": 0.002015595939999998,
21
+ "operationsPerSecond": 496131.18391179177,
22
+ "successRate": 100,
23
+ "coefficientOfVariation": 32.327309629431824
24
+ },
25
+ "mostConsistent": {
26
+ "name": "Union Types",
27
+ "iterations": 20000,
28
+ "median": 153.77048300000024,
29
+ "mean": 156.50413840000002,
30
+ "std": 9.143031275966724,
31
+ "min": 145.56904900000063,
32
+ "max": 177.70391199999995,
33
+ "avgTimePerOp": 0.007688524150000012,
34
+ "operationsPerSecond": 130063.97333095435,
35
+ "successRate": 100,
36
+ "coefficientOfVariation": 5.842038024961724
37
+ },
38
+ "memoryUsage": {
39
+ "totalMB": 2.7825021743774414,
40
+ "schemasCreated": 2000,
41
+ "memoryPerSchemaKB": 1.42464111328125
42
+ }
43
+ },
44
+ "detailedResults": [
45
+ {
46
+ "testName": "Basic Types",
47
+ "iterations": 50000,
48
+ "performance": {
49
+ "operationsPerSecond": 496131.18391179177,
50
+ "avgTimePerOpMs": 0.002015595939999998,
51
+ "medianTimeMs": 100.77979699999992,
52
+ "meanTimeMs": 124.8620427
53
+ },
54
+ "reliability": {
55
+ "standardDeviationMs": 40.36453915326238,
56
+ "coefficientOfVariation": 32.327309629431824,
57
+ "minTimeMs": 88.70023300000003,
58
+ "maxTimeMs": 188.9411030000001,
59
+ "successRate": 100
60
+ }
61
+ },
62
+ {
63
+ "testName": "Complex Nested",
64
+ "iterations": 5000,
65
+ "performance": {
66
+ "operationsPerSecond": 12443.531317100646,
67
+ "avgTimePerOpMs": 0.08036303960000005,
68
+ "medianTimeMs": 401.81519800000024,
69
+ "meanTimeMs": 407.28758210000007
70
+ },
71
+ "reliability": {
72
+ "standardDeviationMs": 44.081113162774365,
73
+ "coefficientOfVariation": 10.823092846457387,
74
+ "minTimeMs": 345.57275200000004,
75
+ "maxTimeMs": 484.38353800000027,
76
+ "successRate": 100
77
+ }
78
+ },
79
+ {
80
+ "testName": "Array Validation",
81
+ "iterations": 8000,
82
+ "performance": {
83
+ "operationsPerSecond": 147805.96638737075,
84
+ "avgTimePerOpMs": 0.006765626750000024,
85
+ "medianTimeMs": 54.12501400000019,
86
+ "meanTimeMs": 57.39228440000024
87
+ },
88
+ "reliability": {
89
+ "standardDeviationMs": 19.797747163451515,
90
+ "coefficientOfVariation": 34.49548553507557,
91
+ "minTimeMs": 38.095392000000174,
92
+ "maxTimeMs": 98.61152699999911,
93
+ "successRate": 0
94
+ }
95
+ },
96
+ {
97
+ "testName": "Union Types",
98
+ "iterations": 20000,
99
+ "performance": {
100
+ "operationsPerSecond": 130063.97333095435,
101
+ "avgTimePerOpMs": 0.007688524150000012,
102
+ "medianTimeMs": 153.77048300000024,
103
+ "meanTimeMs": 156.50413840000002
104
+ },
105
+ "reliability": {
106
+ "standardDeviationMs": 9.143031275966724,
107
+ "coefficientOfVariation": 5.842038024961724,
108
+ "minTimeMs": 145.56904900000063,
109
+ "maxTimeMs": 177.70391199999995,
110
+ "successRate": 100
111
+ }
112
+ },
113
+ {
114
+ "testName": "Conditional Logic",
115
+ "iterations": 15000,
116
+ "performance": {
117
+ "operationsPerSecond": 13833.264244632099,
118
+ "avgTimePerOpMs": 0.07228951766666662,
119
+ "medianTimeMs": 1084.3427649999994,
120
+ "meanTimeMs": 1078.6061701999997
121
+ },
122
+ "reliability": {
123
+ "standardDeviationMs": 140.92447308897908,
124
+ "coefficientOfVariation": 13.065424339529624,
125
+ "minTimeMs": 924.0281079999986,
126
+ "maxTimeMs": 1443.5429700000004,
127
+ "successRate": 0
128
+ }
129
+ },
130
+ {
131
+ "testName": "Format Validation",
132
+ "iterations": 12000,
133
+ "performance": {
134
+ "operationsPerSecond": 90788.95717269111,
135
+ "avgTimePerOpMs": 0.011014555416666856,
136
+ "medianTimeMs": 132.17466500000228,
137
+ "meanTimeMs": 132.18898519999965
138
+ },
139
+ "reliability": {
140
+ "standardDeviationMs": 30.17182710625554,
141
+ "coefficientOfVariation": 22.824766421049446,
142
+ "minTimeMs": 109.12656799999968,
143
+ "maxTimeMs": 216.44466499999908,
144
+ "successRate": 100
145
+ }
146
+ }
147
+ ]
148
+ }
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Performance comparison between optimized and original implementations
3
+ */
4
+
5
+ import { Interface } from "../core/schema/mode/interfaces/Interface";
6
+ import { ConstraintParser } from "../core/schema/mode/interfaces/validators/ConstraintParser";
7
+
8
+ console.log("=== PERFORMANCE COMPARISON ===\n");
9
+
10
+ // Test schema
11
+ const testSchema = Interface({
12
+ id: "positive",
13
+ email: "email",
14
+ name: "string(2,50)",
15
+ age: "int(18,120)?",
16
+ tags: "string[](1,10)?",
17
+ status: "active|inactive|pending",
18
+ metadata: {
19
+ created: "date",
20
+ updated: "date?",
21
+ version: "string",
22
+ },
23
+ });
24
+
25
+ // Test data
26
+ const testData: any = {
27
+ id: 1,
28
+ email: "test@example.com",
29
+ name: "John Doe",
30
+ age: 25,
31
+ tags: ["developer", "typescript", "nodejs"],
32
+ status: "active",
33
+ metadata: {
34
+ created: new Date(),
35
+ updated: new Date(),
36
+ version: "1.0.0",
37
+ },
38
+ };
39
+
40
+ console.log("1. Constraint Parser Cache Performance:");
41
+
42
+ // Test constraint parsing performance
43
+ const constraintTypes = [
44
+ "string(2,50)",
45
+ "int(18,120)?",
46
+ "string[](1,10)?",
47
+ "email",
48
+ "positive",
49
+ "active|inactive|pending",
50
+ ];
51
+
52
+ // First run (cache miss)
53
+ const startParse1 = performance.now();
54
+ for (let i = 0; i < 10000; i++) {
55
+ for (const type of constraintTypes) {
56
+ ConstraintParser.parseConstraints(type);
57
+ }
58
+ }
59
+ const endParse1 = performance.now();
60
+
61
+ // Clear cache and run again
62
+ ConstraintParser.clearCache();
63
+
64
+ // Second run (cache miss again)
65
+ const startParse2 = performance.now();
66
+ for (let i = 0; i < 10000; i++) {
67
+ for (const type of constraintTypes) {
68
+ ConstraintParser.parseConstraints(type);
69
+ }
70
+ }
71
+ const endParse2 = performance.now();
72
+
73
+ // Third run (cache hit)
74
+ const startParse3 = performance.now();
75
+ for (let i = 0; i < 10000; i++) {
76
+ for (const type of constraintTypes) {
77
+ ConstraintParser.parseConstraints(type);
78
+ }
79
+ }
80
+ const endParse3 = performance.now();
81
+
82
+ console.log(`First run (no cache): ${(endParse1 - startParse1).toFixed(2)}ms`);
83
+ console.log(`Second run (no cache): ${(endParse2 - startParse2).toFixed(2)}ms`);
84
+ console.log(
85
+ `Third run (with cache): ${(endParse3 - startParse3).toFixed(2)}ms`
86
+ );
87
+ console.log(
88
+ `Cache speedup: ${((endParse2 - startParse2) / (endParse3 - startParse3)).toFixed(2)}x`
89
+ );
90
+
91
+ console.log("\n2. Schema Validation Performance:");
92
+
93
+ // Warm up
94
+ for (let i = 0; i < 1000; i++) {
95
+ testSchema.safeParse(testData);
96
+ }
97
+
98
+ // Test different data sizes
99
+ const testSizes = [1000, 5000, 10000];
100
+
101
+ for (const size of testSizes) {
102
+ const startTime = performance.now();
103
+
104
+ for (let i = 0; i < size; i++) {
105
+ testSchema.safeParse(testData);
106
+ }
107
+
108
+ const endTime = performance.now();
109
+ const totalTime = endTime - startTime;
110
+ const avgTime = totalTime / size;
111
+ const opsPerSec = size / (totalTime / 1000);
112
+
113
+ console.log(
114
+ `${size} validations: ${totalTime.toFixed(2)}ms (${avgTime.toFixed(4)}ms avg, ${opsPerSec.toFixed(0)} ops/sec)`
115
+ );
116
+ }
117
+
118
+ console.log("\n3. Memory Usage Test:");
119
+
120
+ // Test memory usage with many validations
121
+ const memBefore = process.memoryUsage();
122
+
123
+ for (let i = 0; i < 50000; i++) {
124
+ testSchema.safeParse(testData);
125
+ }
126
+
127
+ const memAfter = process.memoryUsage();
128
+ const memDiff = memAfter.heapUsed - memBefore.heapUsed;
129
+
130
+ console.log(
131
+ `Memory used for 50,000 validations: ${(memDiff / 1024 / 1024).toFixed(2)} MB`
132
+ );
133
+ console.log(`Memory per validation: ${(memDiff / 50000).toFixed(0)} bytes`);
134
+
135
+ console.log("\n4. Cache Statistics:");
136
+
137
+ const cacheStats = ConstraintParser.getCacheStats();
138
+ console.log(`Constraint parser cache size: ${cacheStats.size} entries`);
139
+
140
+ console.log("\n5. Complex Schema Performance:");
141
+
142
+ // Test with a more complex schema
143
+ const complexSchema = Interface({
144
+ user: {
145
+ id: "positive",
146
+ profile: {
147
+ name: "string(2,100)",
148
+ email: "email",
149
+ phone: "phone?",
150
+ address: {
151
+ street: "string",
152
+ city: "string",
153
+ country: "string",
154
+ zipCode: "string",
155
+ },
156
+ },
157
+ preferences: {
158
+ theme: "light|dark",
159
+ notifications: "boolean",
160
+ language: "string(2,5)",
161
+ },
162
+ },
163
+ permissions: "when user.profile.email~@admin *? string[] : string[]?",
164
+ metadata: {
165
+ created: "date",
166
+ updated: "date?",
167
+ tags: "string[](0,20)?",
168
+ },
169
+ });
170
+
171
+ const complexData: any = {
172
+ user: {
173
+ id: 1,
174
+ profile: {
175
+ name: "John Doe",
176
+ email: "john@example.com",
177
+ phone: "+1234567890",
178
+ address: {
179
+ street: "123 Main St",
180
+ city: "New York",
181
+ country: "USA",
182
+ zipCode: "10001",
183
+ },
184
+ },
185
+ preferences: {
186
+ theme: "dark",
187
+ notifications: true,
188
+ language: "en",
189
+ },
190
+ },
191
+ metadata: {
192
+ created: new Date(),
193
+ updated: new Date(),
194
+ tags: ["user", "premium", "verified"],
195
+ },
196
+ };
197
+
198
+ const complexIterations = 5000;
199
+ const complexStart = performance.now();
200
+
201
+ for (let i = 0; i < complexIterations; i++) {
202
+ complexSchema.safeParse(complexData);
203
+ }
204
+
205
+ const complexEnd = performance.now();
206
+ const complexTime = complexEnd - complexStart;
207
+ const complexAvg = complexTime / complexIterations;
208
+ const complexOps = complexIterations / (complexTime / 1000);
209
+
210
+ console.log(
211
+ `Complex schema (${complexIterations} validations): ${complexTime.toFixed(2)}ms`
212
+ );
213
+ console.log(
214
+ `Complex schema average: ${complexAvg.toFixed(4)}ms per validation`
215
+ );
216
+ console.log(`Complex schema ops/sec: ${complexOps.toFixed(0)}`);
217
+
218
+ console.log("\nPerformance comparison completed! 📊");