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.
- package/LICENSE +21 -0
- package/README.md +1305 -0
- package/dist/cjs/constants/SECURITY_CONSTANTS.js +49 -0
- package/dist/cjs/constants/SECURITY_CONSTANTS.js.map +1 -0
- package/dist/cjs/constants/VALIDATION_CONSTANTS.js +103 -0
- package/dist/cjs/constants/VALIDATION_CONSTANTS.js.map +1 -0
- package/dist/cjs/core/schema/extensions/SmartInference.js +200 -0
- package/dist/cjs/core/schema/extensions/SmartInference.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/Docs.js +100 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/Docs.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js +192 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js +174 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js +54 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js +50 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/index.js +15 -0
- package/dist/cjs/core/schema/extensions/components/AutoDocumentation/index.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js +70 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js +40 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js +19 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js +20 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js +49 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/index.js +98 -0
- package/dist/cjs/core/schema/extensions/components/ConditionalValidation/index.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/FormValidator.js +85 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/FormValidator.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/LiveValidator.js +133 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/LiveValidator.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/StreamValidator.js +351 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/StreamValidator.js.map +1 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/index.js +109 -0
- package/dist/cjs/core/schema/extensions/components/RealtimeValidation/index.js.map +1 -0
- package/dist/cjs/core/schema/extensions/index.js +61 -0
- package/dist/cjs/core/schema/extensions/index.js.map +1 -0
- package/dist/cjs/core/schema/extensions/mods/index.js +51 -0
- package/dist/cjs/core/schema/extensions/mods/index.js.map +1 -0
- package/dist/cjs/core/schema/extensions/mods/openapi-converter.js +227 -0
- package/dist/cjs/core/schema/extensions/mods/openapi-converter.js.map +1 -0
- package/dist/cjs/core/schema/extensions/mods/typescript-generator.js +287 -0
- package/dist/cjs/core/schema/extensions/mods/typescript-generator.js.map +1 -0
- package/dist/cjs/core/schema/extensions/mods/validation-engine.js +224 -0
- package/dist/cjs/core/schema/extensions/mods/validation-engine.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/Interface.js +277 -0
- package/dist/cjs/core/schema/mode/interfaces/Interface.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/InterfaceSchema.js +1431 -0
- package/dist/cjs/core/schema/mode/interfaces/InterfaceSchema.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js +520 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js +624 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js +811 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js +599 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js +89 -0
- package/dist/cjs/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/errors/ErrorHandler.js +356 -0
- package/dist/cjs/core/schema/mode/interfaces/errors/ErrorHandler.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/errors/types/errors.type.js +80 -0
- package/dist/cjs/core/schema/mode/interfaces/errors/types/errors.type.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js +778 -0
- package/dist/cjs/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js +523 -0
- package/dist/cjs/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/ConditionalTypes.js +681 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/ConditionalTypes.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/IDESupport.js +430 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/IDESupport.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/TypeInference.js +225 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/TypeInference.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/index.js +44 -0
- package/dist/cjs/core/schema/mode/interfaces/typescript/index.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/ConstraintParser.js +1134 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/ConstraintParser.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/TypeGuards.js +256 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/TypeGuards.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/TypeValidators.js +429 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/TypeValidators.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/UnionCache.js +404 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/UnionCache.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/ValidationHelpers.js +851 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/ValidationHelpers.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/mods/passValidator.js +262 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/mods/passValidator.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/mods/securityValidator.js +887 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/mods/securityValidator.js.map +1 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/mods/urlValidation.js +191 -0
- package/dist/cjs/core/schema/mode/interfaces/validators/mods/urlValidation.js.map +1 -0
- package/dist/cjs/core/schema/optimization/ObjectValidationCache.js +462 -0
- package/dist/cjs/core/schema/optimization/ObjectValidationCache.js.map +1 -0
- package/dist/cjs/core/schema/optimization/PerformanceMonitor.js +773 -0
- package/dist/cjs/core/schema/optimization/PerformanceMonitor.js.map +1 -0
- package/dist/cjs/core/schema/optimization/SchemaCompiler.js +600 -0
- package/dist/cjs/core/schema/optimization/SchemaCompiler.js.map +1 -0
- package/dist/cjs/core/types/ValidatorTypes.js +70 -0
- package/dist/cjs/core/types/ValidatorTypes.js.map +1 -0
- package/dist/cjs/core/types/parser.type.js +12 -0
- package/dist/cjs/core/types/parser.type.js.map +1 -0
- package/dist/cjs/core/utils/Make.js +61 -0
- package/dist/cjs/core/utils/Make.js.map +1 -0
- package/dist/cjs/core/utils/Mod.js +1033 -0
- package/dist/cjs/core/utils/Mod.js.map +1 -0
- package/dist/cjs/core/utils/UrlArgs.js +102 -0
- package/dist/cjs/core/utils/UrlArgs.js.map +1 -0
- package/dist/cjs/core/utils/arrayToEnum.js +18 -0
- package/dist/cjs/core/utils/arrayToEnum.js.map +1 -0
- package/dist/cjs/core/utils/createUrlArgsEnumFArray.js +13 -0
- package/dist/cjs/core/utils/createUrlArgsEnumFArray.js.map +1 -0
- package/dist/cjs/core/utils/securityHelpers.js +215 -0
- package/dist/cjs/core/utils/securityHelpers.js.map +1 -0
- package/dist/cjs/core/utils/securityValidatorHelpers.js +65 -0
- package/dist/cjs/core/utils/securityValidatorHelpers.js.map +1 -0
- package/dist/cjs/index.js +31 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/esm/constants/SECURITY_CONSTANTS.js +47 -0
- package/dist/esm/constants/SECURITY_CONSTANTS.js.map +1 -0
- package/dist/esm/constants/VALIDATION_CONSTANTS.js +98 -0
- package/dist/esm/constants/VALIDATION_CONSTANTS.js.map +1 -0
- package/dist/esm/core/schema/extensions/SmartInference.js +197 -0
- package/dist/esm/core/schema/extensions/SmartInference.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/Docs.js +98 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/Docs.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js +190 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js +172 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js +52 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js +48 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/index.js +12 -0
- package/dist/esm/core/schema/extensions/components/AutoDocumentation/index.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js +68 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js +38 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js +17 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js +18 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js +45 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/index.js +92 -0
- package/dist/esm/core/schema/extensions/components/ConditionalValidation/index.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/FormValidator.js +83 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/FormValidator.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/LiveValidator.js +131 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/LiveValidator.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/StreamValidator.js +349 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/StreamValidator.js.map +1 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/index.js +103 -0
- package/dist/esm/core/schema/extensions/components/RealtimeValidation/index.js.map +1 -0
- package/dist/esm/core/schema/extensions/index.js +53 -0
- package/dist/esm/core/schema/extensions/index.js.map +1 -0
- package/dist/esm/core/schema/extensions/mods/index.js +47 -0
- package/dist/esm/core/schema/extensions/mods/index.js.map +1 -0
- package/dist/esm/core/schema/extensions/mods/openapi-converter.js +225 -0
- package/dist/esm/core/schema/extensions/mods/openapi-converter.js.map +1 -0
- package/dist/esm/core/schema/extensions/mods/typescript-generator.js +284 -0
- package/dist/esm/core/schema/extensions/mods/typescript-generator.js.map +1 -0
- package/dist/esm/core/schema/extensions/mods/validation-engine.js +222 -0
- package/dist/esm/core/schema/extensions/mods/validation-engine.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/Interface.js +269 -0
- package/dist/esm/core/schema/mode/interfaces/Interface.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/InterfaceSchema.js +1429 -0
- package/dist/esm/core/schema/mode/interfaces/InterfaceSchema.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js +518 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js +620 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js +809 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js +597 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js +89 -0
- package/dist/esm/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/errors/ErrorHandler.js +354 -0
- package/dist/esm/core/schema/mode/interfaces/errors/ErrorHandler.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/errors/types/errors.type.js +80 -0
- package/dist/esm/core/schema/mode/interfaces/errors/types/errors.type.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js +776 -0
- package/dist/esm/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js +521 -0
- package/dist/esm/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/ConditionalTypes.js +681 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/ConditionalTypes.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/IDESupport.js +428 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/IDESupport.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/TypeInference.js +223 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/TypeInference.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/index.js +35 -0
- package/dist/esm/core/schema/mode/interfaces/typescript/index.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/ConstraintParser.js +1132 -0
- package/dist/esm/core/schema/mode/interfaces/validators/ConstraintParser.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/TypeGuards.js +254 -0
- package/dist/esm/core/schema/mode/interfaces/validators/TypeGuards.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/TypeValidators.js +427 -0
- package/dist/esm/core/schema/mode/interfaces/validators/TypeValidators.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/UnionCache.js +400 -0
- package/dist/esm/core/schema/mode/interfaces/validators/UnionCache.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/ValidationHelpers.js +849 -0
- package/dist/esm/core/schema/mode/interfaces/validators/ValidationHelpers.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/mods/passValidator.js +260 -0
- package/dist/esm/core/schema/mode/interfaces/validators/mods/passValidator.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/mods/securityValidator.js +881 -0
- package/dist/esm/core/schema/mode/interfaces/validators/mods/securityValidator.js.map +1 -0
- package/dist/esm/core/schema/mode/interfaces/validators/mods/urlValidation.js +189 -0
- package/dist/esm/core/schema/mode/interfaces/validators/mods/urlValidation.js.map +1 -0
- package/dist/esm/core/schema/optimization/ObjectValidationCache.js +460 -0
- package/dist/esm/core/schema/optimization/ObjectValidationCache.js.map +1 -0
- package/dist/esm/core/schema/optimization/PerformanceMonitor.js +771 -0
- package/dist/esm/core/schema/optimization/PerformanceMonitor.js.map +1 -0
- package/dist/esm/core/schema/optimization/SchemaCompiler.js +598 -0
- package/dist/esm/core/schema/optimization/SchemaCompiler.js.map +1 -0
- package/dist/esm/core/types/ValidatorTypes.js +65 -0
- package/dist/esm/core/types/ValidatorTypes.js.map +1 -0
- package/dist/esm/core/types/parser.type.js +12 -0
- package/dist/esm/core/types/parser.type.js.map +1 -0
- package/dist/esm/core/utils/Make.js +59 -0
- package/dist/esm/core/utils/Make.js.map +1 -0
- package/dist/esm/core/utils/Mod.js +1031 -0
- package/dist/esm/core/utils/Mod.js.map +1 -0
- package/dist/esm/core/utils/UrlArgs.js +98 -0
- package/dist/esm/core/utils/UrlArgs.js.map +1 -0
- package/dist/esm/core/utils/arrayToEnum.js +16 -0
- package/dist/esm/core/utils/arrayToEnum.js.map +1 -0
- package/dist/esm/core/utils/createUrlArgsEnumFArray.js +11 -0
- package/dist/esm/core/utils/createUrlArgsEnumFArray.js.map +1 -0
- package/dist/esm/core/utils/securityHelpers.js +207 -0
- package/dist/esm/core/utils/securityHelpers.js.map +1 -0
- package/dist/esm/core/utils/securityValidatorHelpers.js +62 -0
- package/dist/esm/core/utils/securityValidatorHelpers.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/schema.d.ts +2595 -0
- package/docs/ALL_TYPES.md +120 -0
- package/docs/API-STABILITY.md +336 -0
- package/docs/CONDITIONAL-VALIDATION.md +637 -0
- package/docs/EXAMPLES.md +876 -0
- package/docs/FIELD-TYPES.md +829 -0
- package/docs/GETTING-STARTED.md +394 -0
- package/docs/LIVE-UTILITY.md +1137 -0
- package/docs/QUICK-REFERENCE.md +346 -0
- package/docs/README.md +205 -0
- package/docs/VSCODE-EXTENSION.md +458 -0
- package/package.json +219 -0
- package/src/bench/BENCHMARK-RESULTS.md +211 -0
- package/src/bench/benchmark-results.json +148 -0
- package/src/bench/performance-comparison.ts +218 -0
- package/src/bench/precompilation-benchmark.ts +218 -0
- package/src/constants/SECURITY_CONSTANTS.ts +44 -0
- package/src/constants/VALIDATION_CONSTANTS.ts +176 -0
- package/src/core/README.md +395 -0
- package/src/core/compiler/SchemaTransformer.ts +279 -0
- package/src/core/compiler/TypeAnalyzer.ts +378 -0
- package/src/core/compiler/TypeScriptCompilerIntegration.ts +220 -0
- package/src/core/compiler/TypeToSchemaConverter.ts +288 -0
- package/src/core/index.ts +70 -0
- package/src/core/schema/extensions/AutoDocumentation.ts +572 -0
- package/src/core/schema/extensions/ConditionalValidation.ts +330 -0
- package/src/core/schema/extensions/README.md +171 -0
- package/src/core/schema/extensions/RealtimeValidation.ts +656 -0
- package/src/core/schema/extensions/SmartInference.ts +224 -0
- package/src/core/schema/extensions/components/AutoDocumentation/Docs.ts +98 -0
- package/src/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.ts +201 -0
- package/src/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.ts +176 -0
- package/src/core/schema/extensions/components/AutoDocumentation/OpenAPIGenerator.ts +175 -0
- package/src/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.ts +49 -0
- package/src/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.ts +54 -0
- package/src/core/schema/extensions/components/AutoDocumentation/index.ts +17 -0
- package/src/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.ts +101 -0
- package/src/core/schema/extensions/components/ConditionalValidation/ConditionalElse.ts +65 -0
- package/src/core/schema/extensions/components/ConditionalValidation/ConditionalThen.ts +33 -0
- package/src/core/schema/extensions/components/ConditionalValidation/Extend.ts +75 -0
- package/src/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.ts +16 -0
- package/src/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.ts +50 -0
- package/src/core/schema/extensions/components/ConditionalValidation/index.ts +104 -0
- package/src/core/schema/extensions/components/RealtimeValidation/FormValidator.ts +88 -0
- package/src/core/schema/extensions/components/RealtimeValidation/LiveValidator.ts +171 -0
- package/src/core/schema/extensions/components/RealtimeValidation/StreamValidator.ts +397 -0
- package/src/core/schema/extensions/components/RealtimeValidation/index.ts +114 -0
- package/src/core/schema/extensions/index.ts +76 -0
- package/src/core/schema/extensions/mods/index.ts +131 -0
- package/src/core/schema/extensions/mods/openapi-converter.ts +338 -0
- package/src/core/schema/extensions/mods/typescript-generator.ts +379 -0
- package/src/core/schema/extensions/mods/validation-engine.ts +295 -0
- package/src/core/schema/mode/interfaces/Interface.ts +364 -0
- package/src/core/schema/mode/interfaces/InterfaceSchema.ts +1838 -0
- package/src/core/schema/mode/interfaces/README.md +278 -0
- package/src/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.ts +657 -0
- package/src/core/schema/mode/interfaces/conditional/parser/ConditionalAST.ts +826 -0
- package/src/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.ts +992 -0
- package/src/core/schema/mode/interfaces/conditional/parser/ConditionalParser.ts +803 -0
- package/src/core/schema/mode/interfaces/conditional/parser/readme.md +406 -0
- package/src/core/schema/mode/interfaces/conditional/types/ConditionalTypes.ts +273 -0
- package/src/core/schema/mode/interfaces/errors/ErrorHandler.ts +624 -0
- package/src/core/schema/mode/interfaces/errors/types/errors.type.ts +102 -0
- package/src/core/schema/mode/interfaces/precompilation/FieldPrecompilers.ts +962 -0
- package/src/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.ts +667 -0
- package/src/core/schema/mode/interfaces/typescript/ConditionalTypes.ts +1534 -0
- package/src/core/schema/mode/interfaces/typescript/IDESupport.ts +534 -0
- package/src/core/schema/mode/interfaces/typescript/TypeInference.ts +737 -0
- package/src/core/schema/mode/interfaces/typescript/index.ts +92 -0
- package/src/core/schema/mode/interfaces/validators/ConstraintParser.ts +1438 -0
- package/src/core/schema/mode/interfaces/validators/EnhancedErrorReporting.ts +227 -0
- package/src/core/schema/mode/interfaces/validators/TypeGuards.ts +288 -0
- package/src/core/schema/mode/interfaces/validators/TypeValidators.ts +660 -0
- package/src/core/schema/mode/interfaces/validators/UnionCache.ts +508 -0
- package/src/core/schema/mode/interfaces/validators/ValidationHelpers.ts +1257 -0
- package/src/core/schema/mode/interfaces/validators/index.ts +21 -0
- package/src/core/schema/mode/interfaces/validators/mods/passValidator.ts +424 -0
- package/src/core/schema/mode/interfaces/validators/mods/securityValidator.ts +1634 -0
- package/src/core/schema/mode/interfaces/validators/mods/urlValidation.ts +333 -0
- package/src/core/schema/optimization/ObjectValidationCache.ts +560 -0
- package/src/core/schema/optimization/PerformanceInitializer.ts +188 -0
- package/src/core/schema/optimization/PerformanceMonitor.ts +898 -0
- package/src/core/schema/optimization/SchemaCompiler.ts +730 -0
- package/src/core/testing/TestDataGenerator.ts +590 -0
- package/src/core/types/SchemaValidator.type.ts +210 -0
- package/src/core/types/ValidatorTypes.ts +93 -0
- package/src/core/types/extension.type.ts +109 -0
- package/src/core/types/objValidationCache.ts +17 -0
- package/src/core/types/parser.type.ts +15 -0
- package/src/core/types/perfoMonitor.ts +37 -0
- package/src/core/types/scompiler.ts +22 -0
- package/src/core/types/securityValidator.type.ts +10 -0
- package/src/core/types/types.ts +154 -0
- package/src/core/utils/Make.ts +97 -0
- package/src/core/utils/Mod.ts +1168 -0
- package/src/core/utils/UrlArgs.ts +124 -0
- package/src/core/utils/arrayToEnum.ts +89 -0
- package/src/core/utils/createUrlArgsEnumFArray.ts +11 -0
- package/src/core/utils/securityHelpers.ts +341 -0
- package/src/core/utils/securityValidatorHelpers.ts +76 -0
- package/src/index.ts +124 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# Interface Schema Architecture
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The Interface Schema system provides TypeScript-like schema validation with a modular, linked architecture. All modules are designed to work together and link back to the main `Interface.ts` and `InterfaceSchema.ts` components.
|
|
6
|
+
|
|
7
|
+
## Core Architecture
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Interface.ts (Main Entry Point)
|
|
11
|
+
↓
|
|
12
|
+
InterfaceSchema.ts (Core Implementation)
|
|
13
|
+
↓
|
|
14
|
+
├── validators/ (Core Validation Logic)
|
|
15
|
+
│ ├── TypeValidators.ts (Primary validation engine)
|
|
16
|
+
│ ├── ConstraintParser.ts (Constraint parsing & caching)
|
|
17
|
+
│ ├── TypeGuards.ts (Type checking utilities)
|
|
18
|
+
│ ├── ValidationHelpers.ts (Validation utilities)
|
|
19
|
+
│ └── index.ts (Unified exports)
|
|
20
|
+
│
|
|
21
|
+
├── typescript/ (TypeScript Integration)
|
|
22
|
+
│ ├── TypeInference.ts (Complete type system & inference)
|
|
23
|
+
│ ├── ConditionalTypes.ts (Advanced conditional logic & operators)
|
|
24
|
+
│ └── IDESupport.ts (Developer experience & tooling)
|
|
25
|
+
│
|
|
26
|
+
└── conditional/ (Conditional Validation)
|
|
27
|
+
├── parser/ (AST parsing)
|
|
28
|
+
├── evaluator/ (Expression evaluation)
|
|
29
|
+
└── types/ (Conditional type definitions)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Module Roles & Responsibilities
|
|
33
|
+
|
|
34
|
+
### Core Modules
|
|
35
|
+
|
|
36
|
+
#### `Interface.ts`
|
|
37
|
+
|
|
38
|
+
- **Role**: Main public API and entry point
|
|
39
|
+
- **Responsibilities**:
|
|
40
|
+
- Export the `Interface()` function
|
|
41
|
+
- Provide type helpers (`InferType`, `InferSchemaType`)
|
|
42
|
+
- Export convenience utilities (`FieldTypes`, `QuickSchemas`)
|
|
43
|
+
- **Links to**: `InterfaceSchema.ts`, all type definitions
|
|
44
|
+
|
|
45
|
+
#### `InterfaceSchema.ts`
|
|
46
|
+
|
|
47
|
+
- **Role**: Core schema implementation and validation orchestrator
|
|
48
|
+
- **Responsibilities**:
|
|
49
|
+
- Implement the main `InterfaceSchema` class
|
|
50
|
+
- Coordinate validation through validators
|
|
51
|
+
- Handle schema compilation and caching
|
|
52
|
+
- Manage conditional validation
|
|
53
|
+
- **Links to**: All validator modules, conditional system, type system
|
|
54
|
+
|
|
55
|
+
### Validation System (`validators/`)
|
|
56
|
+
|
|
57
|
+
#### `TypeValidators.ts`
|
|
58
|
+
|
|
59
|
+
- **Role**: Primary validation engine for all data types
|
|
60
|
+
- **Responsibilities**:
|
|
61
|
+
- Validate basic types (string, number, boolean, etc.)
|
|
62
|
+
- Handle specialized types (email, url, uuid, etc.)
|
|
63
|
+
- Apply constraints and transformations
|
|
64
|
+
- Support loose mode conversions
|
|
65
|
+
- **Used by**: `InterfaceSchema.ts`, extensions
|
|
66
|
+
- **Dependencies**: `ConstraintParser.ts`, `TypeGuards.ts`
|
|
67
|
+
|
|
68
|
+
#### `ConstraintParser.ts`
|
|
69
|
+
|
|
70
|
+
- **Role**: Parse and cache constraint syntax
|
|
71
|
+
- **Responsibilities**:
|
|
72
|
+
- Parse constraint strings like `"string(3,20)"`, `"number(0,100)"`
|
|
73
|
+
- Cache parsed results for performance
|
|
74
|
+
- Handle complex constraint combinations
|
|
75
|
+
- **Used by**: `TypeValidators.ts`, `InterfaceSchema.ts`
|
|
76
|
+
|
|
77
|
+
#### `TypeGuards.ts`
|
|
78
|
+
|
|
79
|
+
- **Role**: Type checking and validation utilities
|
|
80
|
+
- **Responsibilities**:
|
|
81
|
+
- Provide type guard functions
|
|
82
|
+
- Check value types and formats
|
|
83
|
+
- Validate special constructs (unions, constants)
|
|
84
|
+
- **Used by**: `TypeValidators.ts`, `ValidationHelpers.ts`
|
|
85
|
+
|
|
86
|
+
#### `ValidationHelpers.ts`
|
|
87
|
+
|
|
88
|
+
- **Role**: Shared validation utilities
|
|
89
|
+
- **Responsibilities**:
|
|
90
|
+
- Handle constant value validation
|
|
91
|
+
- Provide result creation helpers
|
|
92
|
+
- Cache validation results
|
|
93
|
+
- **Used by**: `TypeValidators.ts`, conditional system
|
|
94
|
+
|
|
95
|
+
### TypeScript Integration (`typescript/`) - **UNIFIED SYSTEM**
|
|
96
|
+
|
|
97
|
+
#### `TypeInference.ts` (Core Type System)
|
|
98
|
+
|
|
99
|
+
- **Role**: Complete TypeScript type inference and analysis
|
|
100
|
+
- **Responsibilities**:
|
|
101
|
+
- Infer TypeScript types from schema definitions
|
|
102
|
+
- Handle optional fields, arrays, nested objects
|
|
103
|
+
- Support advanced type transformations
|
|
104
|
+
- Analyze conditional expressions for type safety
|
|
105
|
+
- Provide compile-time type checking
|
|
106
|
+
- **Used by**: `Interface.ts`, `InterfaceSchema.ts`, IDE support
|
|
107
|
+
|
|
108
|
+
#### `ConditionalTypes.ts` (Advanced Conditional Logic)
|
|
109
|
+
|
|
110
|
+
- **Role**: Advanced conditional type operations and operators
|
|
111
|
+
- **Responsibilities**:
|
|
112
|
+
- Define conditional operators (`==`, `!=`, `>`, etc.)
|
|
113
|
+
- Handle operator precedence and evaluation
|
|
114
|
+
- Provide type-safe conditional builders
|
|
115
|
+
- Advanced conditional type utilities
|
|
116
|
+
- **Used by**: Conditional system, type inference
|
|
117
|
+
|
|
118
|
+
#### `IDESupport.ts` (Developer Experience)
|
|
119
|
+
|
|
120
|
+
- **Role**: IDE integration and developer tooling
|
|
121
|
+
- **Responsibilities**:
|
|
122
|
+
- Provide autocomplete for conditional expressions
|
|
123
|
+
- Generate hover information and diagnostics
|
|
124
|
+
- Support real-time validation feedback
|
|
125
|
+
- **Used by**: IDE extensions, development tools
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
### Conditional System (`conditional/`)
|
|
130
|
+
|
|
131
|
+
#### `parser/ConditionalParser.ts`
|
|
132
|
+
|
|
133
|
+
- **Role**: Parse conditional expressions into AST
|
|
134
|
+
- **Responsibilities**:
|
|
135
|
+
- Parse conditional syntax like `"when field=value ? type1 : type2"`
|
|
136
|
+
- Generate Abstract Syntax Trees
|
|
137
|
+
- Handle nested conditionals
|
|
138
|
+
- **Used by**: `InterfaceSchema.ts`, TypeScript integration
|
|
139
|
+
|
|
140
|
+
#### `evaluator/ConditionalEvaluator.ts`
|
|
141
|
+
|
|
142
|
+
- **Role**: Evaluate conditional expressions
|
|
143
|
+
- **Responsibilities**:
|
|
144
|
+
- Execute conditional logic against data
|
|
145
|
+
- Return appropriate schema types based on conditions
|
|
146
|
+
- **Used by**: `InterfaceSchema.ts`
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## Data Flow
|
|
151
|
+
|
|
152
|
+
1. **Schema Definition**: User calls `Interface({ ... })` with schema definition
|
|
153
|
+
2. **Schema Creation**: `Interface.ts` creates `InterfaceSchema` instance
|
|
154
|
+
3. **Schema Compilation**: `InterfaceSchema.ts` pre-compiles field definitions using:
|
|
155
|
+
- `ConstraintParser.ts` for constraint parsing
|
|
156
|
+
- `ConditionalParser.ts` for conditional expressions
|
|
157
|
+
4. **Validation**: When `safeParse()` is called:
|
|
158
|
+
- `InterfaceSchema.ts` orchestrates validation
|
|
159
|
+
- `TypeValidators.ts` performs actual type validation
|
|
160
|
+
- `ConditionalEvaluator.ts` handles conditional logic
|
|
161
|
+
- `ValidationHelpers.ts` provides utilities
|
|
162
|
+
|
|
163
|
+
## Performance Optimizations
|
|
164
|
+
|
|
165
|
+
- **Pre-compilation**: Constraints and conditionals are parsed once during schema creation
|
|
166
|
+
- **Caching**: Parsed results are cached to avoid repeated parsing
|
|
167
|
+
- **Modular Loading**: Only required modules are loaded based on schema features used
|
|
168
|
+
|
|
169
|
+
## Extension Points
|
|
170
|
+
|
|
171
|
+
- **Custom Validators**: Add new validators to `TypeValidators.ts`
|
|
172
|
+
- **New Operators**: Extend `ConditionalOperators.ts`
|
|
173
|
+
- **Type Extensions**: Add new type inference rules to `interface.type.ts`
|
|
174
|
+
- **IDE Features**: Enhance `IDESupport.ts` for better developer experience
|
|
175
|
+
|
|
176
|
+
## No Duplication Policy
|
|
177
|
+
|
|
178
|
+
- **Single Source of Truth**: Each validation type has one implementation in `TypeValidators.ts`
|
|
179
|
+
- **Shared Utilities**: Common functionality is in `ValidationHelpers.ts` and `TypeGuards.ts`
|
|
180
|
+
- **Consistent APIs**: All modules use the same result types and error formats
|
|
181
|
+
- **Unified Exports**: All functionality is accessible through `Interface.ts`
|
|
182
|
+
|
|
183
|
+
## Current Issues & Fixes Applied
|
|
184
|
+
|
|
185
|
+
### 1. Duplicate Validation Logic (✅ FIXED)
|
|
186
|
+
|
|
187
|
+
**Problem**: `ValidationEngine` in `extensions/mods` duplicated validation logic from `TypeValidators`
|
|
188
|
+
**Solution**: Refactored `ValidationEngine` to use `TypeValidators` as the single source of truth
|
|
189
|
+
|
|
190
|
+
- Removed 200+ lines of duplicate validation code
|
|
191
|
+
- ValidationEngine now delegates to TypeValidators for all validation
|
|
192
|
+
- Consistent error handling and result formats across the system
|
|
193
|
+
|
|
194
|
+
### 2. Scattered TypeScript Support (✅ REORGANIZED)
|
|
195
|
+
|
|
196
|
+
**Problem**: TypeScript functionality was spread across multiple locations
|
|
197
|
+
**Solution**: Consolidated all TypeScript integration in `typescript/` directory with clear roles
|
|
198
|
+
|
|
199
|
+
- Created `typescript/index.ts` for unified exports
|
|
200
|
+
- Proper linking through main `Interface.ts`
|
|
201
|
+
- Clear separation of concerns between modules
|
|
202
|
+
|
|
203
|
+
### 3. Missing Module Linking (✅ ESTABLISHED)
|
|
204
|
+
|
|
205
|
+
**Problem**: Modules weren't properly linked to main Interface system
|
|
206
|
+
**Solution**: All modules now properly import and link through `Interface.ts` and `InterfaceSchema.ts`
|
|
207
|
+
|
|
208
|
+
- All validators exported through main Interface
|
|
209
|
+
- TypeScript integration properly linked
|
|
210
|
+
- Conditional system integrated with main schema
|
|
211
|
+
|
|
212
|
+
### 4. Unclear Dependencies (✅ DOCUMENTED)
|
|
213
|
+
|
|
214
|
+
**Problem**: Module dependencies and relationships weren't clear
|
|
215
|
+
**Solution**: Created clear dependency graph and documented all relationships
|
|
216
|
+
|
|
217
|
+
- Complete architecture documentation
|
|
218
|
+
- Module roles and responsibilities defined
|
|
219
|
+
- Data flow and interaction patterns documented
|
|
220
|
+
|
|
221
|
+
### 5. Code Duplication Eliminated (✅ COMPLETED)
|
|
222
|
+
|
|
223
|
+
**Problem**: Multiple modules had overlapping functionality
|
|
224
|
+
**Solution**: Established single source of truth for each concern
|
|
225
|
+
|
|
226
|
+
- TypeValidators: Single validation implementation
|
|
227
|
+
- ConstraintParser: Single constraint parsing logic
|
|
228
|
+
- ValidationHelpers: Shared utilities
|
|
229
|
+
- No duplicate validation methods across modules
|
|
230
|
+
|
|
231
|
+
## Usage Examples
|
|
232
|
+
|
|
233
|
+
### Basic Schema Creation
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
import { Interface } from "./Interface";
|
|
237
|
+
|
|
238
|
+
const UserSchema = Interface({
|
|
239
|
+
id: "positive",
|
|
240
|
+
email: "email",
|
|
241
|
+
name: "string(2,50)",
|
|
242
|
+
age: "int(18,120)?",
|
|
243
|
+
tags: "string[]?",
|
|
244
|
+
});
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### With Conditional Validation
|
|
248
|
+
|
|
249
|
+
```typescript
|
|
250
|
+
const OrderSchema = Interface({
|
|
251
|
+
type: "pickup|delivery",
|
|
252
|
+
address: "when type=delivery ? string : string?",
|
|
253
|
+
fee: "when type=delivery ? number(0,) : number?",
|
|
254
|
+
});
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Advanced Type Inference
|
|
258
|
+
|
|
259
|
+
```typescript
|
|
260
|
+
import { InferType } from "./Interface";
|
|
261
|
+
|
|
262
|
+
type User = InferType<typeof UserSchema>;
|
|
263
|
+
// Result: { id: number; email: string; name: string; age?: number; tags?: string[] }
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Testing Strategy
|
|
267
|
+
|
|
268
|
+
- **Unit Tests**: Each module has comprehensive unit tests
|
|
269
|
+
- **Integration Tests**: Test module interactions and data flow
|
|
270
|
+
- **Performance Tests**: Validate caching and pre-compilation benefits
|
|
271
|
+
- **Type Tests**: Ensure TypeScript type inference works correctly
|
|
272
|
+
|
|
273
|
+
## Future Enhancements
|
|
274
|
+
|
|
275
|
+
- **Compiler Integration**: Full TypeScript compiler API integration for `Make.fromType<T>()`
|
|
276
|
+
- **Advanced Conditionals**: Support for more complex conditional expressions
|
|
277
|
+
- **Custom Validators**: Plugin system for custom validation logic
|
|
278
|
+
- **Schema Composition**: Advanced schema merging and composition utilities
|