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,85 @@
1
+ 'use strict';
2
+
3
+ var LiveValidator = require('./LiveValidator.js');
4
+
5
+ /**
6
+ * Form validator with DOM integration
7
+ */
8
+ class FormValidator extends LiveValidator.LiveValidator {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.boundFields = {};
12
+ this.autoValidationEnabled = false;
13
+ this.submitListeners = [];
14
+ }
15
+ /**
16
+ * Bind a form field for automatic validation (Node.js compatible)
17
+ */
18
+ bindField(fieldName, element) {
19
+ this.boundFields[fieldName] = element;
20
+ if (this.autoValidationEnabled) {
21
+ this.setupFieldListeners(fieldName, element);
22
+ }
23
+ }
24
+ /**
25
+ * Enable automatic validation on input changes (Node.js compatible)
26
+ */
27
+ enableAutoValidation() {
28
+ this.autoValidationEnabled = true;
29
+ Object.entries(this.boundFields).forEach(([fieldName, element]) => {
30
+ this.setupFieldListeners(fieldName, element);
31
+ });
32
+ }
33
+ /**
34
+ * Listen for form submission
35
+ */
36
+ onSubmit(listener) {
37
+ this.submitListeners.push(listener);
38
+ }
39
+ /**
40
+ * Trigger form validation (typically on submit)
41
+ */
42
+ submit() {
43
+ const result = this.validateAll();
44
+ this.submitListeners.forEach(listener => listener(result.isValid, result.data, result.errors));
45
+ }
46
+ setupFieldListeners(fieldName, element) {
47
+ // Check if we're in a browser environment
48
+ if (typeof globalThis !== 'undefined' && globalThis.window && element && typeof element.addEventListener === 'function') {
49
+ // Browser environment - set up real DOM event listeners
50
+ const handleInput = (event) => {
51
+ const target = event.target;
52
+ const value = target.value !== undefined ? target.value : target.textContent;
53
+ this.validateField(fieldName, value);
54
+ };
55
+ const handleChange = (event) => {
56
+ const target = event.target;
57
+ const value = target.value !== undefined ? target.value : target.textContent;
58
+ this.validateField(fieldName, value);
59
+ };
60
+ // Add event listeners for real-time validation
61
+ element.addEventListener('input', handleInput);
62
+ element.addEventListener('change', handleChange);
63
+ element.addEventListener('blur', handleChange);
64
+ // Store cleanup function for later removal
65
+ if (!element._fortifyCleanup) {
66
+ element._fortifyCleanup = () => {
67
+ element.removeEventListener('input', handleInput);
68
+ element.removeEventListener('change', handleChange);
69
+ element.removeEventListener('blur', handleChange);
70
+ };
71
+ }
72
+ }
73
+ else {
74
+ // Node.js environment - provide programmatic interface
75
+ if (!element._fortifyValidate) {
76
+ element._fortifyValidate = (value) => {
77
+ return this.validateField(fieldName, value);
78
+ };
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ exports.FormValidator = FormValidator;
85
+ //# sourceMappingURL=FormValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormValidator.js","sources":["../../../../../../../src/core/schema/extensions/components/RealtimeValidation/FormValidator.ts"],"sourcesContent":[null],"names":["LiveValidator"],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ 'use strict';
2
+
3
+ require('../../mods/index.js');
4
+ var validationEngine = require('../../mods/validation-engine.js');
5
+
6
+ /**
7
+ * Live validator for real-time validation
8
+ */
9
+ class LiveValidator {
10
+ constructor(schema) {
11
+ this.schema = schema;
12
+ this.currentData = {};
13
+ this.currentErrors = {};
14
+ this.listeners = [];
15
+ this.fieldListeners = {};
16
+ }
17
+ /**
18
+ * Validate a single field in real-time
19
+ */
20
+ validateField(fieldName, value) {
21
+ this.currentData[fieldName] = value;
22
+ // Check if schema is an Interface schema (has definition property)
23
+ let fieldSchema;
24
+ if (this.schema.definition &&
25
+ this.schema.definition[fieldName]) {
26
+ fieldSchema = this.schema.definition[fieldName];
27
+ }
28
+ else {
29
+ fieldSchema = this.schema[fieldName];
30
+ }
31
+ // console.log("field: ", fieldSchema);
32
+ // console.log("fieldName: ", fieldName);
33
+ const validationResult = validationEngine.ValidationEngine.validateField(fieldSchema, value);
34
+ this.currentErrors[fieldName] = validationResult.errors;
35
+ const result = {
36
+ field: fieldName,
37
+ value,
38
+ isValid: validationResult.isValid,
39
+ errors: validationResult.errors,
40
+ };
41
+ // Notify field listeners
42
+ if (this.fieldListeners[fieldName]) {
43
+ this.fieldListeners[fieldName].forEach((listener) => listener(result));
44
+ }
45
+ // Notify global listeners
46
+ this.notifyListeners();
47
+ // Validate all
48
+ this.validateAll();
49
+ return result;
50
+ }
51
+ /**
52
+ * Validate all current data
53
+ */
54
+ validateAll() {
55
+ // Check if schema is an Interface schema (has safeParse method)
56
+ if (this.schema.safeParse) {
57
+ // Use Interface schema's built-in validation
58
+ const validationResult = this.schema.safeParse(this.currentData);
59
+ const errors = {};
60
+ if (!validationResult.success && validationResult.errors) {
61
+ // Convert Interface errors to LiveValidator format
62
+ Object.entries(validationResult.errors).forEach(([key, value]) => {
63
+ errors[key] = Array.isArray(value) ? value : [String(value)];
64
+ });
65
+ }
66
+ this.currentErrors = errors;
67
+ const result = {
68
+ isValid: validationResult.success,
69
+ data: this.currentData,
70
+ errors: this.currentErrors,
71
+ timestamp: new Date(),
72
+ };
73
+ // Notify listeners after creating the result
74
+ this.listeners.forEach((listener) => listener(result));
75
+ return result;
76
+ }
77
+ else {
78
+ // Fallback to ValidationEngine for other schema types
79
+ const validationResult = validationEngine.ValidationEngine.validateObject(this.schema, this.currentData);
80
+ // Update current errors with validation results
81
+ this.currentErrors = validationResult.errors;
82
+ const result = {
83
+ isValid: validationResult.isValid,
84
+ data: this.currentData,
85
+ errors: this.currentErrors,
86
+ timestamp: new Date(),
87
+ };
88
+ // Notify listeners after creating the result
89
+ this.listeners.forEach((listener) => listener(result));
90
+ return result;
91
+ }
92
+ }
93
+ /**
94
+ * Listen for validation changes
95
+ */
96
+ onValidation(listener) {
97
+ this.listeners.push(listener);
98
+ }
99
+ /**
100
+ * Listen for specific field validation
101
+ */
102
+ onFieldValidation(fieldName, listener) {
103
+ if (!this.fieldListeners[fieldName]) {
104
+ this.fieldListeners[fieldName] = [];
105
+ }
106
+ this.fieldListeners[fieldName].push(listener);
107
+ }
108
+ /**
109
+ * Get current validation state
110
+ */
111
+ get isValid() {
112
+ return Object.values(this.currentErrors).every((errors) => errors.length === 0);
113
+ }
114
+ get errors() {
115
+ return { ...this.currentErrors };
116
+ }
117
+ get data() {
118
+ return { ...this.currentData };
119
+ }
120
+ notifyListeners() {
121
+ // Create validation result without calling validateAll to avoid recursion
122
+ const result = {
123
+ isValid: Object.values(this.currentErrors).every((errors) => errors.length === 0),
124
+ data: this.currentData,
125
+ errors: this.currentErrors,
126
+ timestamp: new Date(),
127
+ };
128
+ this.listeners.forEach((listener) => listener(result));
129
+ }
130
+ }
131
+
132
+ exports.LiveValidator = LiveValidator;
133
+ //# sourceMappingURL=LiveValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveValidator.js","sources":["../../../../../../../src/core/schema/extensions/components/RealtimeValidation/LiveValidator.ts"],"sourcesContent":[null],"names":["ValidationEngine"],"mappings":"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"}
@@ -0,0 +1,351 @@
1
+ 'use strict';
2
+
3
+ require('../../mods/index.js');
4
+ var validationEngine = require('../../mods/validation-engine.js');
5
+
6
+ /**
7
+ * Enhanced Stream Validator with full EventEmitter-like interface
8
+ * Supports all standard stream methods (.on, .emit, .pipe, etc.)
9
+ * Synchronized with InterfaceSchema modules
10
+ */
11
+ class StreamValidator {
12
+ constructor(schema) {
13
+ this.schema = schema;
14
+ this.validListeners = [];
15
+ this.invalidListeners = [];
16
+ this.statsListeners = [];
17
+ // Enhanced event system
18
+ this.eventListeners = new Map();
19
+ this.onceListeners = new Map();
20
+ // Stream control
21
+ this.isPaused = false;
22
+ this.isDestroyed = false;
23
+ this.dataQueue = [];
24
+ // Data transformation pipeline
25
+ this.transformers = [];
26
+ this.filters = [];
27
+ this.mappers = [];
28
+ this.stats = {
29
+ totalValidated: 0,
30
+ validCount: 0,
31
+ invalidCount: 0,
32
+ errorRate: 0,
33
+ startTime: new Date(),
34
+ };
35
+ }
36
+ // =================================================================
37
+ // CORE EVENT EMITTER METHODS
38
+ // =================================================================
39
+ /**
40
+ * Generic event listener (EventEmitter-like interface)
41
+ */
42
+ on(event, listener) {
43
+ if (this.isDestroyed)
44
+ throw new Error("StreamValidator is destroyed");
45
+ if (!this.eventListeners.has(event)) {
46
+ this.eventListeners.set(event, []);
47
+ }
48
+ this.eventListeners.get(event).push(listener);
49
+ return this;
50
+ }
51
+ /**
52
+ * One-time event listener
53
+ */
54
+ once(event, listener) {
55
+ if (this.isDestroyed)
56
+ throw new Error("StreamValidator is destroyed");
57
+ if (!this.onceListeners.has(event)) {
58
+ this.onceListeners.set(event, []);
59
+ }
60
+ this.onceListeners.get(event).push(listener);
61
+ return this;
62
+ }
63
+ /**
64
+ * Remove event listener
65
+ */
66
+ off(event, listener) {
67
+ if (listener) {
68
+ // Remove specific listener
69
+ const listeners = this.eventListeners.get(event);
70
+ if (listeners) {
71
+ const index = listeners.indexOf(listener);
72
+ if (index > -1)
73
+ listeners.splice(index, 1);
74
+ }
75
+ const onceListeners = this.onceListeners.get(event);
76
+ if (onceListeners) {
77
+ const index = onceListeners.indexOf(listener);
78
+ if (index > -1)
79
+ onceListeners.splice(index, 1);
80
+ }
81
+ }
82
+ else {
83
+ // Remove all listeners for event
84
+ this.eventListeners.delete(event);
85
+ this.onceListeners.delete(event);
86
+ }
87
+ return this;
88
+ }
89
+ /**
90
+ * Emit event to all listeners
91
+ */
92
+ emit(event, ...args) {
93
+ if (this.isDestroyed)
94
+ return false;
95
+ let hasListeners = false;
96
+ // Regular listeners
97
+ const listeners = this.eventListeners.get(event);
98
+ if (listeners && listeners.length > 0) {
99
+ hasListeners = true;
100
+ listeners.forEach((listener) => {
101
+ try {
102
+ listener(...args);
103
+ }
104
+ catch (error) {
105
+ this.emit("error", error);
106
+ }
107
+ });
108
+ }
109
+ // Once listeners
110
+ const onceListeners = this.onceListeners.get(event);
111
+ if (onceListeners && onceListeners.length > 0) {
112
+ hasListeners = true;
113
+ onceListeners.forEach((listener) => {
114
+ try {
115
+ listener(...args);
116
+ }
117
+ catch (error) {
118
+ this.emit("error", error);
119
+ }
120
+ });
121
+ this.onceListeners.delete(event); // Clear once listeners
122
+ }
123
+ return hasListeners;
124
+ }
125
+ // =================================================================
126
+ // ENHANCED VALIDATION WITH STREAM CONTROL
127
+ // =================================================================
128
+ /**
129
+ * Enhanced validate method with stream control and InterfaceSchema sync
130
+ */
131
+ validate(data) {
132
+ if (this.isDestroyed) {
133
+ this.emit("error", new Error("Cannot validate on destroyed stream"));
134
+ return;
135
+ }
136
+ if (this.isPaused) {
137
+ this.dataQueue.push(data);
138
+ this.emit("queued", data);
139
+ return;
140
+ }
141
+ this._processData(data);
142
+ }
143
+ _processData(data) {
144
+ this.stats.totalValidated++;
145
+ this.emit("data", data);
146
+ try {
147
+ // Apply data transformation pipeline
148
+ let processedData = this._applyTransformations(data);
149
+ // Apply filters
150
+ if (!this._passesFilters(processedData)) {
151
+ this.emit("filtered", processedData);
152
+ return;
153
+ }
154
+ // FIXED: Use InterfaceSchema.safeParse for proper validation sync
155
+ let validationResult;
156
+ if (typeof this.schema.safeParse === "function") {
157
+ // Use InterfaceSchema validation
158
+ const result = this.schema.safeParse(processedData);
159
+ validationResult = {
160
+ isValid: result.success,
161
+ errors: result.success ? {} : this._formatErrors(result.errors),
162
+ };
163
+ }
164
+ else {
165
+ // Fallback to ValidationEngine
166
+ validationResult = validationEngine.ValidationEngine.validateObject(this.schema, processedData);
167
+ }
168
+ if (validationResult.isValid) {
169
+ this.stats.validCount++;
170
+ this.validListeners.forEach((listener) => listener(processedData));
171
+ this.emit("valid", processedData);
172
+ }
173
+ else {
174
+ this.stats.invalidCount++;
175
+ this.invalidListeners.forEach((listener) => listener(processedData, validationResult.errors));
176
+ this.emit("invalid", processedData, validationResult.errors);
177
+ }
178
+ this.updateStats();
179
+ this.emit("validated", processedData, validationResult);
180
+ }
181
+ catch (error) {
182
+ this.emit("error", error);
183
+ }
184
+ }
185
+ _formatErrors(errors) {
186
+ const formatted = {};
187
+ errors.forEach((error) => {
188
+ const field = error.path || "unknown";
189
+ if (!formatted[field])
190
+ formatted[field] = [];
191
+ formatted[field].push(error.message || error.toString());
192
+ });
193
+ return formatted;
194
+ }
195
+ _applyTransformations(data) {
196
+ let result = data;
197
+ for (const transformer of this.transformers) {
198
+ result = transformer(result);
199
+ }
200
+ for (const mapper of this.mappers) {
201
+ result = mapper(result);
202
+ }
203
+ return result;
204
+ }
205
+ _passesFilters(data) {
206
+ return this.filters.every((filter) => filter(data));
207
+ }
208
+ /**
209
+ * Listen for valid data
210
+ */
211
+ onValid(listener) {
212
+ this.validListeners.push(listener);
213
+ }
214
+ /**
215
+ * Listen for invalid data
216
+ */
217
+ onInvalid(listener) {
218
+ this.invalidListeners.push(listener);
219
+ }
220
+ /**
221
+ * Listen for validation statistics
222
+ */
223
+ onStats(listener) {
224
+ this.statsListeners.push(listener);
225
+ }
226
+ /**
227
+ * Get current validation statistics
228
+ */
229
+ getStats() {
230
+ return { ...this.stats };
231
+ }
232
+ updateStats() {
233
+ this.stats.errorRate =
234
+ this.stats.totalValidated > 0
235
+ ? this.stats.invalidCount / this.stats.totalValidated
236
+ : 0;
237
+ this.statsListeners.forEach((listener) => listener(this.stats));
238
+ }
239
+ // =================================================================
240
+ // DATA TRANSFORMATION METHODS
241
+ // =================================================================
242
+ /**
243
+ * Add data transformer to pipeline
244
+ */
245
+ transform(transformer) {
246
+ if (this.isDestroyed)
247
+ throw new Error("StreamValidator is destroyed");
248
+ this.transformers.push(transformer);
249
+ return this;
250
+ }
251
+ /**
252
+ * Add data filter to pipeline
253
+ */
254
+ filter(predicate) {
255
+ if (this.isDestroyed)
256
+ throw new Error("StreamValidator is destroyed");
257
+ this.filters.push(predicate);
258
+ return this;
259
+ }
260
+ /**
261
+ * Add data mapper to pipeline
262
+ */
263
+ map(mapper) {
264
+ if (this.isDestroyed)
265
+ throw new Error("StreamValidator is destroyed");
266
+ this.mappers.push(mapper);
267
+ return this;
268
+ }
269
+ /**
270
+ * Pipe data to another stream validator
271
+ */
272
+ pipe(destination) {
273
+ if (this.isDestroyed)
274
+ throw new Error("StreamValidator is destroyed");
275
+ this.on("valid", (data) => {
276
+ destination.validate(data);
277
+ });
278
+ this.on("error", (error) => {
279
+ destination.emit("error", error);
280
+ });
281
+ return destination;
282
+ }
283
+ // =================================================================
284
+ // STREAM CONTROL METHODS
285
+ // =================================================================
286
+ /**
287
+ * Pause the stream (queue incoming data)
288
+ */
289
+ pause() {
290
+ this.isPaused = true;
291
+ this.emit("pause");
292
+ return this;
293
+ }
294
+ /**
295
+ * Resume the stream (process queued data)
296
+ */
297
+ resume() {
298
+ if (this.isDestroyed)
299
+ throw new Error("StreamValidator is destroyed");
300
+ this.isPaused = false;
301
+ this.emit("resume");
302
+ // Process queued data
303
+ const queuedData = [...this.dataQueue];
304
+ this.dataQueue = [];
305
+ queuedData.forEach((data) => this._processData(data));
306
+ return this;
307
+ }
308
+ /**
309
+ * Destroy the stream (cleanup and prevent further use)
310
+ */
311
+ destroy() {
312
+ if (this.isDestroyed)
313
+ return this;
314
+ this.isDestroyed = true;
315
+ this.isPaused = false;
316
+ // Clear all data
317
+ this.dataQueue = [];
318
+ this.transformers = [];
319
+ this.filters = [];
320
+ this.mappers = [];
321
+ // Clear all listeners
322
+ this.validListeners = [];
323
+ this.invalidListeners = [];
324
+ this.statsListeners = [];
325
+ this.eventListeners.clear();
326
+ this.onceListeners.clear();
327
+ this.emit("destroy");
328
+ return this;
329
+ }
330
+ /**
331
+ * Check if stream is destroyed
332
+ */
333
+ get destroyed() {
334
+ return this.isDestroyed;
335
+ }
336
+ /**
337
+ * Check if stream is paused
338
+ */
339
+ get paused() {
340
+ return this.isPaused;
341
+ }
342
+ /**
343
+ * Get queue length
344
+ */
345
+ get queueLength() {
346
+ return this.dataQueue.length;
347
+ }
348
+ }
349
+
350
+ exports.StreamValidator = StreamValidator;
351
+ //# sourceMappingURL=StreamValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamValidator.js","sources":["../../../../../../../src/core/schema/extensions/components/RealtimeValidation/StreamValidator.ts"],"sourcesContent":[null],"names":["ValidationEngine"],"mappings":";;;;;AAIA;;;;AAIG;MACU,eAAe,CAAA;AA+B1B,IAAA,WAAA,CAAoB,MAAuB,EAAA;QAAvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;QA9BnC,IAAc,CAAA,cAAA,GAA+B,EAAE,CAAC;QAChD,IAAgB,CAAA,gBAAA,GAEpB,EAAE,CAAC;QACC,IAAc,CAAA,cAAA,GAA4C,EAAE,CAAC;;AAG7D,QAAA,IAAA,CAAA,cAAc,GACpB,IAAI,GAAG,EAAE,CAAC;AACJ,QAAA,IAAA,CAAA,aAAa,GACnB,IAAI,GAAG,EAAE,CAAC;;QAGJ,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;;QAGtB,IAAY,CAAA,YAAA,GAA8B,EAAE,CAAC;QAC7C,IAAO,CAAA,OAAA,GAAkC,EAAE,CAAC;QAC5C,IAAO,CAAA,OAAA,GAA8B,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,KAAK,GAAoB;AAC/B,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;KAE6C;;;;AAM/C;;AAEG;IACH,EAAE,CAAC,KAAa,EAAE,QAAkC,EAAA;QAClD,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SACpC;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACH,IAAI,CAAC,KAAa,EAAE,QAAkC,EAAA;QACpD,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SACnC;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACH,GAAG,CAAC,KAAa,EAAE,QAAmC,EAAA;QACpD,IAAI,QAAQ,EAAE;;YAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,SAAS,EAAE;gBACb,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;AAAE,oBAAA,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC5C;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,aAAa,EAAE;gBACjB,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;AAAE,oBAAA,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAChD;SACF;aAAM;;AAEL,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAClC;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;QAChC,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,KAAK,CAAC;QAEnC,IAAI,YAAY,GAAG,KAAK,CAAC;;QAGzB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,YAAY,GAAG,IAAI,CAAC;AACpB,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC7B,gBAAA,IAAI;AACF,oBAAA,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;iBACnB;gBAAC,OAAO,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;iBAC3B;AACH,aAAC,CAAC,CAAC;SACJ;;QAGD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,YAAY,GAAG,IAAI,CAAC;AACpB,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACjC,gBAAA,IAAI;AACF,oBAAA,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;iBACnB;gBAAC,OAAO,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;iBAC3B;AACH,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAClC;AAED,QAAA,OAAO,YAAY,CAAC;KACrB;;;;AAMD;;AAEG;AACH,IAAA,QAAQ,CAAC,IAAS,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACrE,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC1B,OAAO;SACR;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACzB;AAEO,IAAA,YAAY,CAAC,IAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAExB,QAAA,IAAI;;YAEF,IAAI,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;;YAGrD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBACrC,OAAO;aACR;;AAGD,YAAA,IAAI,gBAAgB,CAAC;YACrB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE;;gBAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AACpD,gBAAA,gBAAgB,GAAG;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,oBAAA,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;iBAChE,CAAC;aACH;iBAAM;;gBAEL,gBAAgB,GAAGA,iCAAgB,CAAC,cAAc,CAChD,IAAI,CAAC,MAAM,EACX,aAAa,CACd,CAAC;aACH;AAED,YAAA,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC5B,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AACnE,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;aACnC;iBAAM;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,KACrC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,CACjD,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;aAC9D;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;SACzD;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3B;KACF;AAEO,IAAA,aAAa,CAAC,MAAa,EAAA;QACjC,MAAM,SAAS,GAA6B,EAAE,CAAC;AAC/C,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACvB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAAE,gBAAA,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC7C,YAAA,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3D,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,SAAS,CAAC;KAClB;AAEO,IAAA,qBAAqB,CAAC,IAAS,EAAA;QACrC,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,QAAA,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3C,YAAA,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;SAC9B;AACD,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACjC,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;SACzB;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAEO,IAAA,cAAc,CAAC,IAAS,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KACrD;AAED;;AAEG;AACH,IAAA,OAAO,CAAC,QAA6B,EAAA;AACnC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;AAED;;AAEG;AACH,IAAA,SAAS,CACP,QAA+D,EAAA;AAE/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;AAED;;AAEG;AACH,IAAA,OAAO,CAAC,QAA0C,EAAA;AAChD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpC;AAED;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;KAC1B;IAEO,WAAW,GAAA;QACjB,IAAI,CAAC,KAAK,CAAC,SAAS;AAClB,YAAA,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC;kBACzB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc;kBACnD,CAAC,CAAC;AAER,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACjE;;;;AAMD;;AAEG;AACH,IAAA,SAAS,CAAC,WAA+B,EAAA;QACvC,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,SAAiC,EAAA;QACtC,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7B,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,MAA0B,EAAA;QAC5B,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,WAA4B,EAAA;QAC/B,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAEtE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,KAAI;AACxB,YAAA,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AACzB,YAAA,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,WAAW,CAAC;KACpB;;;;AAMD;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACH,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;QAGpB,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AAEpB,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAEtD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACH,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,OAAO,IAAI,CAAC;AAElC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;AAGtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;;AAGlB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAE3B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED;;AAEG;AACH,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC9B;AACF;;;;"}