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,346 @@
|
|
|
1
|
+
# Quick Reference
|
|
2
|
+
|
|
3
|
+
Fast reference guide for ReliantType syntax, types, and patterns.
|
|
4
|
+
|
|
5
|
+
## 🚀 Basic Usage
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { Interface } from "reliant-type";
|
|
9
|
+
|
|
10
|
+
const Schema = Interface({
|
|
11
|
+
// Your schema definition
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
const result = Schema.safeParse(data);
|
|
15
|
+
if (result.success) {
|
|
16
|
+
// Use result.data (fully typed)
|
|
17
|
+
} else {
|
|
18
|
+
// Handle result.errors
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 📝 Basic Types
|
|
23
|
+
|
|
24
|
+
| Type | Syntax | Example |
|
|
25
|
+
| ----------- | ----------- | --------------------- |
|
|
26
|
+
| **String** | `"string"` | `name: "string"` |
|
|
27
|
+
| **Number** | `"number"` | `age: "number"` |
|
|
28
|
+
| **Boolean** | `"boolean"` | `active: "boolean"` |
|
|
29
|
+
| **Date** | `"date"` | `createdAt: "date"` |
|
|
30
|
+
| **Any** | `"any"` | `metadata: "any"` |
|
|
31
|
+
| **unknown** | `"unknown"` | `property: "unknown"` |
|
|
32
|
+
| **object** | `"object"` | `data: "object"` |
|
|
33
|
+
|
|
34
|
+
_Note: Bool is an aliax for Boolean_
|
|
35
|
+
|
|
36
|
+
## 🎯 Constrained Types
|
|
37
|
+
|
|
38
|
+
| Type | Syntax | Example |
|
|
39
|
+
| ----------------- | ------------------- | ---------------------- |
|
|
40
|
+
| **String Length** | `"string(min,max)"` | `name: "string(2,50)"` |
|
|
41
|
+
| **Number Range** | `"number(min,max)"` | `age: "number(0,120)"` |
|
|
42
|
+
| **Integer** | `"int"` | `count: "int"` |
|
|
43
|
+
| **Positive** | `"positive"` | `id: "positive"` |
|
|
44
|
+
| **Negative** | `"negative"` | `debt: "negative"` |
|
|
45
|
+
| **double** | `"double"` | `fl: "double"` |
|
|
46
|
+
|
|
47
|
+
## 📧 Format Types
|
|
48
|
+
|
|
49
|
+
| Type | Syntax | Example |
|
|
50
|
+
| -------------- | ------------ | ---------------------- |
|
|
51
|
+
| **Email** | `"email"` | `email: "email"` |
|
|
52
|
+
| **text** | `"text"` | `description: "text"` |
|
|
53
|
+
| **password** | `"password"` | `userPass: "password"` |
|
|
54
|
+
| **URL** | `"url"` | `website: "url"` |
|
|
55
|
+
| **UUID** | `"uuid"` | `id: "uuid"` |
|
|
56
|
+
| **Phone** | `"phone"` | `mobile: "phone"` |
|
|
57
|
+
| **IP Address** | `"ip"` | `server: "ip"` |
|
|
58
|
+
| **JSON** | `"json"` | `config: "json"` |
|
|
59
|
+
| **Hex Color** | `"hexcolor"` | `color: "hexcolor"` |
|
|
60
|
+
| **Base64** | `"base64"` | `data: "base64"` |
|
|
61
|
+
| **JWT** | `"jwt"` | `token: "jwt"` |
|
|
62
|
+
| **SemVer** | `"semver"` | `version: "semver"` |
|
|
63
|
+
| **slug** | `"slug"` | `test: "semver"` |
|
|
64
|
+
|
|
65
|
+
See [all types](./ALL_TYPES.md)
|
|
66
|
+
|
|
67
|
+
## 🔥 V2 Conditional Validation
|
|
68
|
+
|
|
69
|
+
### Basic Syntax
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// Basic conditional
|
|
73
|
+
permissions: "when role=admin *? string[] : string[]?";
|
|
74
|
+
|
|
75
|
+
// V2 runtime methods
|
|
76
|
+
hasData: "when config.data.$exists() *? boolean : =false";
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### V2 Runtime Methods
|
|
80
|
+
|
|
81
|
+
| Method | Syntax | Description |
|
|
82
|
+
| ----------------------- | ------------------------------ | --------------------------- |
|
|
83
|
+
| **$exists()** | `property.$exists()` | Check if property exists |
|
|
84
|
+
| **$empty()** | `property.$empty()` | Check if property is empty |
|
|
85
|
+
| **$null()** | `property.$null()` | Check if property is null |
|
|
86
|
+
| **$contains(val)** | `property.$contains(value)` | Check if contains value |
|
|
87
|
+
| **$startsWith(prefix)** | `property.$startsWith(prefix)` | Check if starts with prefix |
|
|
88
|
+
| **$endsWith(suffix)** | `property.$endsWith(suffix)` | Check if ends with suffix |
|
|
89
|
+
| **$between(min,max)** | `property.$between(min,max)` | Check if value in range |
|
|
90
|
+
| **$in(val1,val2,...)** | `property.$in(val1,val2,...)` | Check if value in list |
|
|
91
|
+
|
|
92
|
+
### V2 Examples
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
const V2Schema = Interface({
|
|
96
|
+
config: "any?",
|
|
97
|
+
user: "any?",
|
|
98
|
+
|
|
99
|
+
// Property existence
|
|
100
|
+
hasPermissions: "when config.permissions.$exists() *? boolean : =false",
|
|
101
|
+
|
|
102
|
+
// Empty checking
|
|
103
|
+
hasContent: "when user.bio.$empty() *? =no_bio : =has_bio",
|
|
104
|
+
|
|
105
|
+
// String methods
|
|
106
|
+
isImportant: "when user.message.$contains(urgent) *? boolean : =false",
|
|
107
|
+
isSystemUser: "when user.email.$endsWith(@system.com) *? boolean : =false",
|
|
108
|
+
|
|
109
|
+
// Numeric methods
|
|
110
|
+
isAdult: "when user.age.$between(18,65) *? boolean : =false",
|
|
111
|
+
hasElevatedRole: "when user.role.$in(admin,moderator) *? boolean : =false",
|
|
112
|
+
|
|
113
|
+
// Complex defaults
|
|
114
|
+
defaultSettings: 'when config.settings.$exists() *? any : ={"theme":"dark"}',
|
|
115
|
+
defaultTags: 'when config.tags.$exists() *? string[] : =["default"]',
|
|
116
|
+
});
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 🏗️ Nested Objects
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
const NestedSchema = Interface({
|
|
123
|
+
user: {
|
|
124
|
+
id: "uuid",
|
|
125
|
+
profile: {
|
|
126
|
+
name: "string",
|
|
127
|
+
contact: {
|
|
128
|
+
email: "email",
|
|
129
|
+
phone: "phone?",
|
|
130
|
+
address: {
|
|
131
|
+
street: "string",
|
|
132
|
+
city: "string",
|
|
133
|
+
country: "string(2,2)"
|
|
134
|
+
}?
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
// Optional nested objects
|
|
140
|
+
settings: {
|
|
141
|
+
theme: "light|dark",
|
|
142
|
+
notifications: {
|
|
143
|
+
email: "boolean",
|
|
144
|
+
push: "boolean"
|
|
145
|
+
}
|
|
146
|
+
}?
|
|
147
|
+
});
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## ⚡ Performance Tips
|
|
151
|
+
|
|
152
|
+
### Efficient Types
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
// ✅ Fast - Use specific types
|
|
156
|
+
email: "email";
|
|
157
|
+
id: "uuid";
|
|
158
|
+
age: "int(0,120)";
|
|
159
|
+
|
|
160
|
+
// ❌ Slower - Generic types with validation
|
|
161
|
+
email: "string"; // Then validate in code
|
|
162
|
+
id: "string"; // Then validate format
|
|
163
|
+
age: "number"; // Then check range
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Efficient Conditionals
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
// ✅ Fast - Simple existence checks first
|
|
170
|
+
hasFeature: "when config.$exists() && config.features.$exists() *? boolean : =false";
|
|
171
|
+
|
|
172
|
+
// ❌ Slower - Complex operations first
|
|
173
|
+
hasFeature: "when config.features.$contains(advanced) && config.$exists() *? boolean : =false";
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## 🛠️ Common Patterns
|
|
177
|
+
|
|
178
|
+
### User Schema
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
const UserSchema = Interface({
|
|
182
|
+
id: "uuid",
|
|
183
|
+
email: "email",
|
|
184
|
+
username: "string(3,20)",
|
|
185
|
+
password: "string(8,)",
|
|
186
|
+
profile: {
|
|
187
|
+
firstName: "string(1,50)",
|
|
188
|
+
lastName: "string(1,50)",
|
|
189
|
+
avatar: "url?",
|
|
190
|
+
bio: "string(,500)?",
|
|
191
|
+
},
|
|
192
|
+
role: "admin|user|moderator",
|
|
193
|
+
isActive: "boolean",
|
|
194
|
+
createdAt: "date",
|
|
195
|
+
lastLogin: "date?",
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### API Response Schema
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
const APIResponseSchema = Interface({
|
|
203
|
+
status: "success|error|partial",
|
|
204
|
+
statusCode: "int(100,599)",
|
|
205
|
+
message: "string?",
|
|
206
|
+
data: "any?",
|
|
207
|
+
errors: {
|
|
208
|
+
code: "string",
|
|
209
|
+
message: "string",
|
|
210
|
+
field: "string?"
|
|
211
|
+
}[]?,
|
|
212
|
+
meta: {
|
|
213
|
+
timestamp: "date",
|
|
214
|
+
requestId: "uuid",
|
|
215
|
+
version: "string(/^v\\d+\\.\\d+$/)"
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### E-commerce Product Schema
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
const ProductSchema = Interface({
|
|
224
|
+
id: "uuid",
|
|
225
|
+
sku: "string(/^[A-Z0-9-]{8,20}$/)",
|
|
226
|
+
name: "string(1,200)",
|
|
227
|
+
price: "number(0.01,999999.99)",
|
|
228
|
+
category: "electronics|clothing|books|home",
|
|
229
|
+
inStock: "boolean",
|
|
230
|
+
tags: "string[](0,20)",
|
|
231
|
+
images: {
|
|
232
|
+
primary: "url",
|
|
233
|
+
gallery: "url[](0,10)"
|
|
234
|
+
}?,
|
|
235
|
+
seo: {
|
|
236
|
+
title: "string(,60)?",
|
|
237
|
+
description: "string(,160)?"
|
|
238
|
+
}?
|
|
239
|
+
});
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## 🔧 Validation Methods
|
|
243
|
+
|
|
244
|
+
### Safe Parsing (Recommended)
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
const result = Schema.safeParse(data);
|
|
248
|
+
|
|
249
|
+
if (result.success) {
|
|
250
|
+
console.log("Valid:", result.data); // Fully typed
|
|
251
|
+
} else {
|
|
252
|
+
console.log("Errors:", result.errors);
|
|
253
|
+
result.errors.forEach((error) => {
|
|
254
|
+
console.log(`${error.path.join(".")}: ${error.message}`);
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Direct Parsing
|
|
260
|
+
|
|
261
|
+
```typescript
|
|
262
|
+
try {
|
|
263
|
+
const validData = Schema.parse(data);
|
|
264
|
+
// Use validData (fully typed)
|
|
265
|
+
} catch (error) {
|
|
266
|
+
console.log("Validation failed:", error.message);
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## 🎨 VS Code Extension
|
|
271
|
+
|
|
272
|
+
### Trigger Characters
|
|
273
|
+
|
|
274
|
+
- `"` - Type suggestions
|
|
275
|
+
- `:` - Field definitions
|
|
276
|
+
- `|` - Union types
|
|
277
|
+
- `=` - Constants
|
|
278
|
+
- `(` - Constraints
|
|
279
|
+
- `.` - Property access
|
|
280
|
+
- `$` - V2 methods
|
|
281
|
+
|
|
282
|
+
### Commands
|
|
283
|
+
|
|
284
|
+
- `Ctrl+Shift+V` - Validate Schema
|
|
285
|
+
- `Ctrl+Shift+T` - Apply Color Scheme
|
|
286
|
+
- `F12` - Go to Definition
|
|
287
|
+
- `Ctrl+Space` - Trigger Completion
|
|
288
|
+
|
|
289
|
+
### Settings
|
|
290
|
+
|
|
291
|
+
```json
|
|
292
|
+
{
|
|
293
|
+
"fortify.enableDiagnostics": true,
|
|
294
|
+
"fortify.colorScheme": "professional",
|
|
295
|
+
"editor.semanticHighlighting.enabled": true
|
|
296
|
+
}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## 🚨 Common Mistakes
|
|
300
|
+
|
|
301
|
+
### ❌ Wrong Constraint Syntax
|
|
302
|
+
|
|
303
|
+
```typescript
|
|
304
|
+
// Wrong
|
|
305
|
+
name: "string(,)"; // Empty constraint
|
|
306
|
+
age: "number()"; // Empty parentheses
|
|
307
|
+
tags: "string[]("; // Incomplete array constraint
|
|
308
|
+
|
|
309
|
+
// Correct
|
|
310
|
+
name: "string(1,50)"; // Proper min,max
|
|
311
|
+
age: "number(0,120)"; // Proper range
|
|
312
|
+
tags: "string[](1,10)"; // Proper array constraint
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### ❌ Invalid Union Syntax
|
|
316
|
+
|
|
317
|
+
```typescript
|
|
318
|
+
// Wrong
|
|
319
|
+
status: "active | inactive"; // Spaces around |
|
|
320
|
+
role: "admin,user,guest"; // Commas instead of |
|
|
321
|
+
|
|
322
|
+
// Correct
|
|
323
|
+
status: "active|inactive"; // No spaces
|
|
324
|
+
role: "admin|user|guest"; // Use | separator
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### ❌ Incorrect Optional Syntax
|
|
328
|
+
|
|
329
|
+
```typescript
|
|
330
|
+
// Wrong
|
|
331
|
+
name: "string | undefined"; // TypeScript syntax
|
|
332
|
+
age: "number | null"; // TypeScript syntax
|
|
333
|
+
|
|
334
|
+
// Correct
|
|
335
|
+
name: "string?"; // Fortify optional syntax
|
|
336
|
+
age: "number?"; // Simple and clean
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
## 📚 Quick Links
|
|
340
|
+
|
|
341
|
+
- **[Getting Started](./GETTING-STARTED.md)** - Installation and first steps
|
|
342
|
+
- **[Field Types Reference](./FIELD-TYPES.md)** - Complete type guide
|
|
343
|
+
- **[Conditional Validation](./CONDITIONAL-VALIDATION.md)** - V1 and V2 conditionals
|
|
344
|
+
- **[VS Code Extension](./VSCODE-EXTENSION.md)** - Development tools
|
|
345
|
+
- **[Examples Collection](./EXAMPLES.md)** - Real-world patterns
|
|
346
|
+
- **[API Reference](./API-REFERENCE.md)** - Complete API docs
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# ReliantType Documentation
|
|
2
|
+
|
|
3
|
+
Welcome to the comprehensive documentation for ReliantType - the TypeScript-first validation library with interface-native syntax.
|
|
4
|
+
|
|
5
|
+
## 📚 Documentation Index
|
|
6
|
+
|
|
7
|
+
### **Getting Started**
|
|
8
|
+
|
|
9
|
+
- **[Installation & Setup](./GETTING-STARTED.md)** - Quick start guide and installation
|
|
10
|
+
- **[Basic Examples](./BASIC-EXAMPLES.md)** - Simple examples to get you started
|
|
11
|
+
- **[Field Types Reference](./FIELD-TYPES.md)** - Complete guide to all available field types
|
|
12
|
+
|
|
13
|
+
### **Core Features**
|
|
14
|
+
|
|
15
|
+
- **[Conditional Validation Guide](./CONDITIONAL-VALIDATION.md)** - V1 and V2 conditional validation
|
|
16
|
+
- **[Live Utility - Real-time Validation](./LIVE-UTILITY.md)** - EventEmitter interface, stream processing, and form integration
|
|
17
|
+
- **[V2 Migration Guide](./V2-MIGRATION.md)** - Migrating from V1 to V2 syntax
|
|
18
|
+
- **[Advanced Features](./ADVANCED-FEATURES.md)** - Schema transformations and validation modes
|
|
19
|
+
|
|
20
|
+
### **Tooling & Development**
|
|
21
|
+
|
|
22
|
+
- **[VS Code Extension](./VSCODE-EXTENSION.md)** - Complete extension guide and features
|
|
23
|
+
- **[API Reference](./API-REFERENCE.md)** - Complete API documentation
|
|
24
|
+
- **[Performance Guide](./PERFORMANCE.md)** - Optimization and benchmarking
|
|
25
|
+
|
|
26
|
+
### **Examples & References**
|
|
27
|
+
|
|
28
|
+
- **[Examples Collection](./EXAMPLES.md)** - Real-world examples and patterns
|
|
29
|
+
- **[Quick Reference](./QUICK-REFERENCE.md)** - Syntax cheat sheet
|
|
30
|
+
- **[Best Practices](./BEST-PRACTICES.md)** - Recommended patterns and practices
|
|
31
|
+
|
|
32
|
+
### **Production & Enterprise**
|
|
33
|
+
|
|
34
|
+
- **[Production Deployment](./PRODUCTION-DEPLOYMENT.md)** - Production deployment guide
|
|
35
|
+
- **[API Stability](./API-STABILITY.md)** - Production readiness and stability guarantees
|
|
36
|
+
- **[Enterprise Features](./ENTERPRISE.md)** - Enterprise-specific features and support
|
|
37
|
+
|
|
38
|
+
## 🚀 Quick Navigation
|
|
39
|
+
|
|
40
|
+
### **New to ReliantType?**
|
|
41
|
+
|
|
42
|
+
1. Start with **[Getting Started](./GETTING-STARTED.md)**
|
|
43
|
+
2. Learn the basics with **[Basic Examples](./BASIC-EXAMPLES.md)**
|
|
44
|
+
3. Explore **[Field Types](./FIELD-TYPES.md)** for validation options
|
|
45
|
+
|
|
46
|
+
### **Upgrading from V1?**
|
|
47
|
+
|
|
48
|
+
1. Read the **[V2 Migration Guide](./V2-MIGRATION.md)**
|
|
49
|
+
2. Learn **[V2 Conditional Validation](./CONDITIONAL-VALIDATION.md)**
|
|
50
|
+
3. Check **[API Stability](./API-STABILITY.md)** for compatibility
|
|
51
|
+
|
|
52
|
+
### **Building Production Apps?**
|
|
53
|
+
|
|
54
|
+
1. Review **[Best Practices](./BEST-PRACTICES.md)**
|
|
55
|
+
2. Follow **[Production Deployment](./PRODUCTION-DEPLOYMENT.md)**
|
|
56
|
+
3. Consider **[Enterprise Features](./ENTERPRISE.md)**
|
|
57
|
+
|
|
58
|
+
### **Need Development Tools?**
|
|
59
|
+
|
|
60
|
+
1. Install **[VS Code Extension](./VSCODE-EXTENSION.md)**
|
|
61
|
+
2. Check **[Performance Guide](./PERFORMANCE.md)**
|
|
62
|
+
3. Use **[Quick Reference](./QUICK-REFERENCE.md)** for syntax
|
|
63
|
+
|
|
64
|
+
### **Building Real-time Applications?**
|
|
65
|
+
|
|
66
|
+
1. Learn **[Live Utility](./LIVE-UTILITY.md)** for stream processing
|
|
67
|
+
2. Implement real-time form validation
|
|
68
|
+
3. Use EventEmitter interface for reactive validation
|
|
69
|
+
|
|
70
|
+
## 🎯 Key Concepts
|
|
71
|
+
|
|
72
|
+
### **Interface-Native Syntax**
|
|
73
|
+
|
|
74
|
+
ReliantType uses TypeScript interface-like syntax for intuitive schema definition:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
const UserSchema = Interface({
|
|
78
|
+
id: "uuid",
|
|
79
|
+
email: "email",
|
|
80
|
+
name: "string(2,50)",
|
|
81
|
+
age: "number(18,120)?",
|
|
82
|
+
role: "admin|user|guest",
|
|
83
|
+
});
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### **V2 Conditional Validation**
|
|
87
|
+
|
|
88
|
+
Enhanced runtime property checking with powerful method syntax:
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
const AdvancedSchema = Interface({
|
|
92
|
+
config: "any?",
|
|
93
|
+
|
|
94
|
+
// V2 Runtime Methods
|
|
95
|
+
hasPermissions: "when config.permissions.$exists() *? boolean : =false",
|
|
96
|
+
isListEmpty: "when config.items.$empty() *? boolean : =true",
|
|
97
|
+
hasAdminRole: "when config.roles.$contains(admin) *? boolean : =false",
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### **Type Safety**
|
|
102
|
+
|
|
103
|
+
Full TypeScript integration with perfect type inference:
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
const result = UserSchema.safeParse(data);
|
|
107
|
+
if (result.success) {
|
|
108
|
+
// result.data is fully typed!
|
|
109
|
+
console.log(result.data.email); // TypeScript knows this is a string
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 🔥 What's New in V2
|
|
114
|
+
|
|
115
|
+
### **Enhanced Runtime Methods**
|
|
116
|
+
|
|
117
|
+
- **8 new runtime methods**: `$exists()`, `$empty()`, `$null()`, `$contains()`, `$startsWith()`, `$endsWith()`, `$between()`, `$in()`
|
|
118
|
+
- **Deep property access**: `user.profile.settings.advanced.$exists()`
|
|
119
|
+
- **Special character support**: `config["admin-override"].$exists()`
|
|
120
|
+
- **Unicode support**: `features.feature_🚀.$exists()`
|
|
121
|
+
|
|
122
|
+
### **Complex Default Values**
|
|
123
|
+
|
|
124
|
+
- **Object defaults**: `={"theme":"dark","lang":"en"}`
|
|
125
|
+
- **Array defaults**: `=["default","user"]`
|
|
126
|
+
- **Type-safe defaults**: Full TypeScript inference
|
|
127
|
+
|
|
128
|
+
### **Performance Improvements**
|
|
129
|
+
|
|
130
|
+
- **258,910 ops/sec** for array validation (1.6x faster than Zod)
|
|
131
|
+
- **460,214 ops/sec** for union types
|
|
132
|
+
- **Sub-millisecond validation** for typical schemas
|
|
133
|
+
|
|
134
|
+
## 🛠️ Development Tools
|
|
135
|
+
|
|
136
|
+
### **VS Code Extension**
|
|
137
|
+
|
|
138
|
+
Professional development experience with:
|
|
139
|
+
|
|
140
|
+
- **Syntax Highlighting** - Context-aware highlighting
|
|
141
|
+
- **IntelliSense** - Smart autocomplete for all features
|
|
142
|
+
- **Real-time Validation** - Instant error detection
|
|
143
|
+
- **Hover Documentation** - Detailed information on hover
|
|
144
|
+
- **Go-to-Definition** - Navigate to property definitions
|
|
145
|
+
|
|
146
|
+
### **Performance Monitoring**
|
|
147
|
+
|
|
148
|
+
Built-in performance tracking and optimization:
|
|
149
|
+
|
|
150
|
+
- **Validation metrics** - Track performance in production
|
|
151
|
+
- **Memory monitoring** - Detect memory leaks
|
|
152
|
+
- **Benchmark tools** - Compare with other libraries
|
|
153
|
+
|
|
154
|
+
## 📖 Learning Path
|
|
155
|
+
|
|
156
|
+
### **Beginner (0-1 hour)**
|
|
157
|
+
|
|
158
|
+
1. **[Getting Started](./GETTING-STARTED.md)** - Installation and first schema
|
|
159
|
+
2. **[Basic Examples](./BASIC-EXAMPLES.md)** - Simple validation patterns
|
|
160
|
+
3. **[Field Types](./FIELD-TYPES.md)** - Available validation types
|
|
161
|
+
|
|
162
|
+
### **Intermediate (1-3 hours)**
|
|
163
|
+
|
|
164
|
+
1. **[Conditional Validation](./CONDITIONAL-VALIDATION.md)** - Business logic validation
|
|
165
|
+
2. **[Advanced Features](./ADVANCED-FEATURES.md)** - Schema transformations
|
|
166
|
+
3. **[VS Code Extension](./VSCODE-EXTENSION.md)** - Development tools
|
|
167
|
+
|
|
168
|
+
### **Advanced (3+ hours)**
|
|
169
|
+
|
|
170
|
+
1. **[V2 Migration](./V2-MIGRATION.md)** - Upgrading existing schemas
|
|
171
|
+
2. **[Performance Guide](./PERFORMANCE.md)** - Optimization techniques
|
|
172
|
+
3. **[Production Deployment](./PRODUCTION-DEPLOYMENT.md)** - Enterprise deployment
|
|
173
|
+
|
|
174
|
+
## 🤝 Community & Support
|
|
175
|
+
|
|
176
|
+
### **Getting Help**
|
|
177
|
+
|
|
178
|
+
- **[GitHub Issues](https://github.com/Nehonix-Team/reliant-type/issues)** - Bug reports and feature requests
|
|
179
|
+
- **[GitHub Discussions](https://github.com/Nehonix-Team/reliant-type/discussions)** - Community Q&A
|
|
180
|
+
- **[Examples Collection](./EXAMPLES.md)** - Real-world usage patterns
|
|
181
|
+
|
|
182
|
+
### **Contributing**
|
|
183
|
+
|
|
184
|
+
- **[Contributing Guide](../CONTRIBUTING.md)** - How to contribute
|
|
185
|
+
- **[Best Practices](./BEST-PRACTICES.md)** - Recommended patterns
|
|
186
|
+
- **[API Reference](./API-REFERENCE.md)** - Complete API documentation
|
|
187
|
+
|
|
188
|
+
### **Enterprise Support**
|
|
189
|
+
|
|
190
|
+
- **[Enterprise Features](./ENTERPRISE.md)** - Enterprise-specific capabilities
|
|
191
|
+
- **[API Stability](./API-STABILITY.md)** - Production guarantees
|
|
192
|
+
- **Email**: https://github.com/Nehonix-Team/reliant-type/discussions
|
|
193
|
+
|
|
194
|
+
## 🎉 Ready to Start?
|
|
195
|
+
|
|
196
|
+
Choose your path:
|
|
197
|
+
|
|
198
|
+
**🚀 New Project**: Start with **[Getting Started](./GETTING-STARTED.md)**
|
|
199
|
+
**🔄 Existing Project**: Check **[V2 Migration Guide](./V2-MIGRATION.md)**
|
|
200
|
+
**🏢 Enterprise**: Review **[Production Deployment](./PRODUCTION-DEPLOYMENT.md)**
|
|
201
|
+
**🛠️ Development**: Install **[VS Code Extension](./VSCODE-EXTENSION.md)**
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
_Built with precision and care by the Nehonix Team_
|