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,120 @@
|
|
|
1
|
+
|
|
2
|
+
## ๐ Basic Types
|
|
3
|
+
|
|
4
|
+
| Type | Syntax | Example |
|
|
5
|
+
| ----------- | ----------- | --------------------- |
|
|
6
|
+
| **String** | `"string"` | `name: "string"` |
|
|
7
|
+
| **Number** | `"number"` | `age: "number"` |
|
|
8
|
+
| **Boolean** | `"boolean"` | `active: "boolean"` |
|
|
9
|
+
| **Date** | `"date"` | `createdAt: "date"` |
|
|
10
|
+
| **Any** | `"any"` | `metadata: "any"` |
|
|
11
|
+
| **unknown** | `"unknown"` | `property: "unknown"` |
|
|
12
|
+
| **object** | `"object"` | `data: "object"` |
|
|
13
|
+
|
|
14
|
+
_Note: Bool is an aliax for Boolean_
|
|
15
|
+
|
|
16
|
+
## ๐ฏ Constrained Types
|
|
17
|
+
|
|
18
|
+
| Type | Syntax | Example |
|
|
19
|
+
| ----------------- | ------------------- | ---------------------- |
|
|
20
|
+
| **String Length** | `"string(min,max)"` | `name: "string(2,50)"` |
|
|
21
|
+
| **Number Range** | `"number(min,max)"` | `age: "number(0,120)"` |
|
|
22
|
+
| **Integer** | `"int"` | `count: "int"` |
|
|
23
|
+
| **Positive** | `"positive"` | `id: "positive"` |
|
|
24
|
+
| **Negative** | `"negative"` | `debt: "negative"` |
|
|
25
|
+
| **double** | `"double"` | `fl: "double"` |
|
|
26
|
+
|
|
27
|
+
## ๐ง Format Types
|
|
28
|
+
|
|
29
|
+
| Type | Syntax | Example |
|
|
30
|
+
| -------------- | ------------ | ---------------------- |
|
|
31
|
+
| **Email** | `"email"` | `email: "email"` |
|
|
32
|
+
| **text** | `"text"` | `description: "text"` |
|
|
33
|
+
| **password** | `"password"` | `userPass: "password"` |
|
|
34
|
+
| **URL** | `"url"` | `website: "url"` |
|
|
35
|
+
| **UUID** | `"uuid"` | `id: "uuid"` |
|
|
36
|
+
| **Phone** | `"phone"` | `mobile: "phone"` |
|
|
37
|
+
| **IP Address** | `"ip"` | `server: "ip"` |
|
|
38
|
+
| **JSON** | `"json"` | `config: "json"` |
|
|
39
|
+
| **Hex Color** | `"hexcolor"` | `color: "hexcolor"` |
|
|
40
|
+
| **Base64** | `"base64"` | `data: "base64"` |
|
|
41
|
+
| **JWT** | `"jwt"` | `token: "jwt"` |
|
|
42
|
+
| **SemVer** | `"semver"` | `version: "semver"` |
|
|
43
|
+
| **slug** | `"slug"` | `test: "semver"` |
|
|
44
|
+
|
|
45
|
+
## ๐ Union Types
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
// Basic unions
|
|
49
|
+
status: "active|inactive|pending";
|
|
50
|
+
role: "admin|user|guest";
|
|
51
|
+
|
|
52
|
+
// Mixed type unions
|
|
53
|
+
id: "string|number";
|
|
54
|
+
value: "string|number|boolean";
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## ๐ Array Types
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// Basic arrays
|
|
61
|
+
tags: "string[]";
|
|
62
|
+
scores: "number[]";
|
|
63
|
+
|
|
64
|
+
// Optional arrays
|
|
65
|
+
categories: "string[]?";
|
|
66
|
+
|
|
67
|
+
// Array constraints
|
|
68
|
+
limitedTags: "string[](1,5)"; // 1-5 items
|
|
69
|
+
minItems: "string[](2,)"; // Minimum 2 items
|
|
70
|
+
maxItems: "string[](,10)"; // Maximum 10 items
|
|
71
|
+
|
|
72
|
+
// Combined constraints
|
|
73
|
+
usernames: "string(3,20)[](1,100)"; // 1-100 usernames, each 3-20 chars
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## โ Optional Types
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
// Optional fields (can be undefined)
|
|
80
|
+
nickname: "string?";
|
|
81
|
+
bio: "string(,500)?";
|
|
82
|
+
avatar: "url?";
|
|
83
|
+
|
|
84
|
+
// Optional arrays
|
|
85
|
+
tags: "string[]?";
|
|
86
|
+
scores: "number[]?";
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## ๐จ Literal Values
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
// String literals
|
|
93
|
+
type: "=user";
|
|
94
|
+
version: "=2.0";
|
|
95
|
+
|
|
96
|
+
// Number literals
|
|
97
|
+
apiVersion: "=1";
|
|
98
|
+
maxRetries: "=3";
|
|
99
|
+
|
|
100
|
+
// Boolean literals
|
|
101
|
+
isEnabled: "=true";
|
|
102
|
+
isLegacy: "=false";
|
|
103
|
+
|
|
104
|
+
// Complex literals
|
|
105
|
+
config: '={"theme":"dark"}';
|
|
106
|
+
tags: '=["default","user"]';
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## ๐ Custom Patterns
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
// Regex patterns
|
|
113
|
+
zipCode: "string(/^\\d{5}(-\\d{4})?$/)";
|
|
114
|
+
username: "string(/^[a-zA-Z0-9_]{3,20}$/)";
|
|
115
|
+
hexColor: "string(/^#[0-9A-Fa-f]{6}$/)";
|
|
116
|
+
|
|
117
|
+
// Common patterns
|
|
118
|
+
creditCard: "string(/^\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}[\\s-]?\\d{4}$/)";
|
|
119
|
+
ssn: "string(/^\\d{3}-\\d{2}-\\d{4}$/)";
|
|
120
|
+
```
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
# API Stability and Production Readiness
|
|
2
|
+
|
|
3
|
+
## Current Status: **STABLE** (v2.0.1)
|
|
4
|
+
|
|
5
|
+
ReliantType has reached **STABLE** status with v2.0.1, meaning the core API is production-ready with comprehensive stability guarantees and enterprise-grade support.
|
|
6
|
+
|
|
7
|
+
## API Stability Guarantee
|
|
8
|
+
|
|
9
|
+
### Production Ready (Stable APIs) โ
|
|
10
|
+
|
|
11
|
+
- **Core Interface() function** - API locked, guaranteed stable
|
|
12
|
+
- **Basic field types** (string, number, boolean, date, email, url, uuid, phone)
|
|
13
|
+
- **Type constraints** (min/max, length, regex patterns, array constraints)
|
|
14
|
+
- **Union types** (value1|value2|value3) with full TypeScript inference
|
|
15
|
+
- **Optional fields** (type?) with proper null/undefined handling
|
|
16
|
+
- **Array types** (type[], type[](min,max)) with comprehensive validation
|
|
17
|
+
- **Nested objects** - Deep nesting with full type safety
|
|
18
|
+
- **safeParse() and parse() methods** - API locked with comprehensive error handling
|
|
19
|
+
- **V2 Conditional Validation** - Runtime method syntax (property.$method()) is stable
|
|
20
|
+
- **Performance characteristics** - Guaranteed performance levels maintained
|
|
21
|
+
|
|
22
|
+
### Recently Stabilized (v2.0.1) ๐ฏ
|
|
23
|
+
|
|
24
|
+
- **V2 Runtime Methods** - All 8 methods ($exists, $empty, $null, $contains, $startsWith, $endsWith, $between, $in)
|
|
25
|
+
- **Advanced property access** - Deep nested properties, special characters, Unicode support
|
|
26
|
+
- **Complex default values** - Object and array defaults with proper type inference
|
|
27
|
+
- **Method combinations** - Logical operators (&&, ||) in conditional expressions
|
|
28
|
+
- **Error message formats** - Standardized, detailed error reporting
|
|
29
|
+
- **VS Code Extension** - Full V2 syntax support with IntelliSense
|
|
30
|
+
|
|
31
|
+
### Experimental (Use with Caution) โ ๏ธ
|
|
32
|
+
|
|
33
|
+
- **Schema transformation utilities** (Mod.\*) - API may evolve
|
|
34
|
+
- **Advanced validation modes** (strict, loose) - Implementation may change
|
|
35
|
+
- **Custom validation functions** - Interface may be refined
|
|
36
|
+
|
|
37
|
+
## Version Compatibility & Semantic Versioning
|
|
38
|
+
|
|
39
|
+
### Semantic Versioning Promise
|
|
40
|
+
|
|
41
|
+
We follow strict semantic versioning with enterprise-grade guarantees:
|
|
42
|
+
|
|
43
|
+
- **MAJOR** (x.0.0): Breaking changes to stable APIs (rare, with 6-month notice)
|
|
44
|
+
- **MINOR** (0.x.0): New features, 100% backward compatible
|
|
45
|
+
- **PATCH** (0.0.x): Bug fixes, performance improvements, security patches
|
|
46
|
+
|
|
47
|
+
### Breaking Change Policy
|
|
48
|
+
|
|
49
|
+
- **6 months advance notice** for any breaking changes to stable APIs
|
|
50
|
+
- **Comprehensive migration guides** with automated tooling where possible
|
|
51
|
+
- **Deprecation warnings** added 3 months before removal with clear upgrade paths
|
|
52
|
+
- **LTS versions** supported for 18 months minimum
|
|
53
|
+
- **Enterprise customers** get 12 months advance notice and dedicated migration support
|
|
54
|
+
|
|
55
|
+
### Version Support Matrix
|
|
56
|
+
|
|
57
|
+
| Version | Status | Support Until | Production Ready |
|
|
58
|
+
| ---------- | ------------------ | ------------- | ------------------ |
|
|
59
|
+
| **v2.0.x** | **Current Stable** | **June 2025** | **โ
Recommended** |
|
|
60
|
+
|
|
61
|
+
## Production Deployment Guidelines
|
|
62
|
+
|
|
63
|
+
### โ
Recommended for Production (Stable APIs)
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
// Production-ready schema with all stable features
|
|
67
|
+
const ProductionUserSchema = Interface({
|
|
68
|
+
// Core identification
|
|
69
|
+
id: "uuid",
|
|
70
|
+
email: "email",
|
|
71
|
+
username: "string(/^[a-zA-Z0-9_]{3,20}$/)",
|
|
72
|
+
|
|
73
|
+
// Profile data with constraints
|
|
74
|
+
profile: {
|
|
75
|
+
firstName: "string(1,50)",
|
|
76
|
+
lastName: "string(1,50)",
|
|
77
|
+
avatar: "url?",
|
|
78
|
+
bio: "string(,500)?",
|
|
79
|
+
dateOfBirth: "date?",
|
|
80
|
+
preferences: {
|
|
81
|
+
theme: "light|dark|auto",
|
|
82
|
+
language: "string(/^[a-z]{2}(-[A-Z]{2})?$/)",
|
|
83
|
+
notifications: "boolean",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
// Authorization
|
|
88
|
+
role: "user|moderator|admin|super_admin",
|
|
89
|
+
permissions: "string[]",
|
|
90
|
+
|
|
91
|
+
// V2 Conditional Validation (Stable)
|
|
92
|
+
config: "any?",
|
|
93
|
+
features: "any?",
|
|
94
|
+
|
|
95
|
+
// Runtime property checking
|
|
96
|
+
hasPermissions: "when config.permissions.$exists() *? boolean : =false",
|
|
97
|
+
hasProfile: "when config.profile.$exists() *? boolean : =false",
|
|
98
|
+
isAdmin: "when role.$in(admin,super_admin) *? boolean : =false",
|
|
99
|
+
betaFeatures: "when features.beta.$exists() *? string[] : =[]",
|
|
100
|
+
|
|
101
|
+
// Complex business logic
|
|
102
|
+
canModerate:
|
|
103
|
+
"when role.$in(moderator,admin) && config.moderation.$exists() *? boolean : =false",
|
|
104
|
+
|
|
105
|
+
// Audit fields
|
|
106
|
+
createdAt: "date",
|
|
107
|
+
updatedAt: "date",
|
|
108
|
+
lastLogin: "date?",
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// Production usage with comprehensive error handling
|
|
112
|
+
const result = ProductionUserSchema.safeParse(userData);
|
|
113
|
+
if (result.success) {
|
|
114
|
+
// Fully typed, validated data
|
|
115
|
+
processUser(result.data);
|
|
116
|
+
} else {
|
|
117
|
+
// Detailed error information for logging/debugging
|
|
118
|
+
logValidationErrors(result.errors);
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### โ ๏ธ Use with Testing (Experimental APIs)
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
// Experimental features - test thoroughly before production
|
|
126
|
+
const ExperimentalSchema = Interface({
|
|
127
|
+
baseData: "string",
|
|
128
|
+
|
|
129
|
+
// Experimental: Schema transformations
|
|
130
|
+
transformedData: "string",
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// Apply experimental transformations
|
|
134
|
+
const PartialSchema = Mod.partial(ExperimentalSchema); // โ ๏ธ API may change
|
|
135
|
+
const ExtendedSchema = Mod.extend(ExperimentalSchema, {
|
|
136
|
+
// โ ๏ธ API may change
|
|
137
|
+
newField: "string",
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Performance Guarantees
|
|
142
|
+
|
|
143
|
+
### Validated Performance Benchmarks
|
|
144
|
+
|
|
145
|
+
| Operation | Guaranteed Minimum | Typical Performance | Enterprise SLA |
|
|
146
|
+
| ------------------------- | ------------------ | ------------------- | --------------- |
|
|
147
|
+
| **Array Validation** | 200,000 ops/sec | 258,910 ops/sec | 250,000 ops/sec |
|
|
148
|
+
| **Union Types** | 400,000 ops/sec | 460,214 ops/sec | 450,000 ops/sec |
|
|
149
|
+
| **Simple Schema** | 150,000 ops/sec | 178,496 ops/sec | 170,000 ops/sec |
|
|
150
|
+
| **Complex Schema** | 80,000 ops/sec | 100,985 ops/sec | 95,000 ops/sec |
|
|
151
|
+
| **Memory per Validation** | <150 bytes | <100 bytes | <120 bytes |
|
|
152
|
+
|
|
153
|
+
### Performance Monitoring
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
// Production performance monitoring
|
|
157
|
+
const performanceMonitor = {
|
|
158
|
+
validationCount: 0,
|
|
159
|
+
totalTime: 0,
|
|
160
|
+
errorCount: 0,
|
|
161
|
+
|
|
162
|
+
validate(schema, data) {
|
|
163
|
+
const start = performance.now();
|
|
164
|
+
const result = schema.safeParse(data);
|
|
165
|
+
const duration = performance.now() - start;
|
|
166
|
+
|
|
167
|
+
this.validationCount++;
|
|
168
|
+
this.totalTime += duration;
|
|
169
|
+
if (!result.success) this.errorCount++;
|
|
170
|
+
|
|
171
|
+
// Alert if performance degrades below SLA
|
|
172
|
+
const avgTime = this.totalTime / this.validationCount;
|
|
173
|
+
if (avgTime > 0.01) {
|
|
174
|
+
// 10ms threshold
|
|
175
|
+
console.warn("Validation performance degraded:", avgTime);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return result;
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
getMetrics() {
|
|
182
|
+
return {
|
|
183
|
+
averageTime: this.totalTime / this.validationCount,
|
|
184
|
+
operationsPerSecond: 1000 / (this.totalTime / this.validationCount),
|
|
185
|
+
errorRate: this.errorCount / this.validationCount,
|
|
186
|
+
totalValidations: this.validationCount,
|
|
187
|
+
};
|
|
188
|
+
},
|
|
189
|
+
};
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
_See [Performance Benchmarks](./../src/bench/BENCHMARK-RESULTS.md) for up-to-date more details_
|
|
193
|
+
|
|
194
|
+
## Enterprise Production Features
|
|
195
|
+
|
|
196
|
+
### Security & Compliance
|
|
197
|
+
|
|
198
|
+
- **Input Sanitization**: Automatic XSS prevention for string fields
|
|
199
|
+
- **Data Validation**: Comprehensive type checking prevents injection attacks
|
|
200
|
+
- **Audit Logging**: Built-in validation event logging for compliance
|
|
201
|
+
- **GDPR Compliance**: Data validation without data retention
|
|
202
|
+
|
|
203
|
+
### Monitoring & Observability
|
|
204
|
+
|
|
205
|
+
- **Performance Metrics**: Built-in performance tracking
|
|
206
|
+
- **Error Analytics**: Detailed validation failure analysis
|
|
207
|
+
- **Health Checks**: Schema validation health endpoints
|
|
208
|
+
- **Custom Metrics**: Integration with monitoring systems (Prometheus, DataDog, etc.)
|
|
209
|
+
|
|
210
|
+
### Scalability & Reliability
|
|
211
|
+
|
|
212
|
+
- **Memory Management**: Predictable memory usage patterns
|
|
213
|
+
- **Concurrent Validation**: Thread-safe validation for high-concurrency applications
|
|
214
|
+
- **Caching**: Intelligent schema compilation caching
|
|
215
|
+
- **Failover**: Graceful degradation for validation failures
|
|
216
|
+
|
|
217
|
+
## Migration Strategy
|
|
218
|
+
|
|
219
|
+
### From v1.x to v2.0
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
// v1.x (Legacy) - Still supported until December 2024
|
|
223
|
+
const V1Schema = Interface({
|
|
224
|
+
name: "string",
|
|
225
|
+
role: "admin|user",
|
|
226
|
+
permissions: "when role=admin *? string[] : string[]?",
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
// v2.0 (Current) - Enhanced with runtime methods
|
|
230
|
+
const V2Schema = Interface({
|
|
231
|
+
name: "string",
|
|
232
|
+
role: "admin|user",
|
|
233
|
+
config: "any?",
|
|
234
|
+
|
|
235
|
+
// Enhanced conditional validation
|
|
236
|
+
permissions: "when config.hasPermissions.$exists() *? string[] : =[]",
|
|
237
|
+
|
|
238
|
+
// New capabilities
|
|
239
|
+
advancedFeatures: "when config.features.$exists() *? any : ={}",
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
// Migration helper (provided)
|
|
243
|
+
const migratedSchema = migrateV1ToV2(V1Schema);
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Risk Assessment & Mitigation
|
|
247
|
+
|
|
248
|
+
### Low Risk (Production Ready) โ
|
|
249
|
+
|
|
250
|
+
- **Core validation APIs**: Extensively tested, API locked
|
|
251
|
+
- **Performance characteristics**: Benchmarked and guaranteed
|
|
252
|
+
- **TypeScript integration**: Full type safety guaranteed
|
|
253
|
+
- **Error handling**: Comprehensive and stable
|
|
254
|
+
|
|
255
|
+
**Mitigation**: None required - production ready
|
|
256
|
+
|
|
257
|
+
### Medium Risk (Stable but Evolving) โ ๏ธ
|
|
258
|
+
|
|
259
|
+
- **New runtime methods**: May be added in minor versions
|
|
260
|
+
- **Error message improvements**: May change for clarity
|
|
261
|
+
- **Performance optimizations**: Internal changes, API stable
|
|
262
|
+
|
|
263
|
+
**Mitigation**:
|
|
264
|
+
|
|
265
|
+
- Monitor release notes for new features
|
|
266
|
+
- Test thoroughly in staging before production deployment
|
|
267
|
+
- Use semantic versioning for controlled updates
|
|
268
|
+
|
|
269
|
+
### High Risk (Experimental) ๐งช
|
|
270
|
+
|
|
271
|
+
- **Schema transformation utilities**: API may change
|
|
272
|
+
- **Advanced validation modes**: Implementation may change
|
|
273
|
+
- **Undocumented features**: No stability guarantee
|
|
274
|
+
|
|
275
|
+
**Mitigation**:
|
|
276
|
+
|
|
277
|
+
- Use only in development/testing environments
|
|
278
|
+
- Have rollback plans ready
|
|
279
|
+
- Monitor GitHub discussions for API changes
|
|
280
|
+
|
|
281
|
+
## Production Deployment Checklist
|
|
282
|
+
|
|
283
|
+
### Pre-Deployment
|
|
284
|
+
|
|
285
|
+
- [ ] **Performance Testing**: Validate performance meets requirements
|
|
286
|
+
- [ ] **Error Handling**: Implement comprehensive error logging
|
|
287
|
+
- [ ] **Monitoring**: Set up validation metrics and alerts
|
|
288
|
+
- [ ] **Fallback Strategy**: Plan for validation failures
|
|
289
|
+
- [ ] **Security Review**: Validate input sanitization requirements
|
|
290
|
+
|
|
291
|
+
### Deployment
|
|
292
|
+
|
|
293
|
+
- [ ] **Gradual Rollout**: Deploy to percentage of traffic first
|
|
294
|
+
- [ ] **Performance Monitoring**: Watch for performance regressions
|
|
295
|
+
- [ ] **Error Rate Monitoring**: Track validation failure rates
|
|
296
|
+
- [ ] **Memory Monitoring**: Ensure no memory leaks
|
|
297
|
+
- [ ] **Rollback Plan**: Ready to revert if issues arise
|
|
298
|
+
|
|
299
|
+
### Post-Deployment
|
|
300
|
+
|
|
301
|
+
- [ ] **Performance Validation**: Confirm SLA compliance
|
|
302
|
+
- [ ] **Error Analysis**: Review and address validation failures
|
|
303
|
+
- [ ] **User Feedback**: Monitor for user-reported issues
|
|
304
|
+
- [ ] **Optimization**: Identify opportunities for improvement
|
|
305
|
+
|
|
306
|
+
## Conclusion
|
|
307
|
+
|
|
308
|
+
**ReliantType v2.0 is production-ready** with comprehensive stability guarantees, enterprise-grade support, and proven performance characteristics.
|
|
309
|
+
|
|
310
|
+
### Recommendations by Use Case
|
|
311
|
+
|
|
312
|
+
**๐ข Enterprise Applications**:
|
|
313
|
+
|
|
314
|
+
- Use stable APIs with enterprise support
|
|
315
|
+
- Implement comprehensive monitoring
|
|
316
|
+
- Plan gradual migration from legacy systems
|
|
317
|
+
|
|
318
|
+
**๐ New Projects**:
|
|
319
|
+
|
|
320
|
+
- Start with v2.0 stable APIs
|
|
321
|
+
- Leverage V2 conditional validation for complex business logic
|
|
322
|
+
- Use VS Code extension for enhanced developer experience
|
|
323
|
+
|
|
324
|
+
**๐ Existing Projects**:
|
|
325
|
+
|
|
326
|
+
- Migrate gradually from v1.x to v2.0
|
|
327
|
+
- Test thoroughly in staging environments
|
|
328
|
+
- Take advantage of LTS support during transition
|
|
329
|
+
|
|
330
|
+
**๐ High-Performance Applications**:
|
|
331
|
+
|
|
332
|
+
- Leverage proven performance benchmarks
|
|
333
|
+
- Implement performance monitoring
|
|
334
|
+
- Use array validation for optimal performance
|
|
335
|
+
|
|
336
|
+
For questions about production deployment, contact our enterprise support team at https://github.com/Nehonix-Team/reliant-type/discussions.
|