reliant-type 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1305 -0
  3. package/dist/cjs/constants/SECURITY_CONSTANTS.js +49 -0
  4. package/dist/cjs/constants/SECURITY_CONSTANTS.js.map +1 -0
  5. package/dist/cjs/constants/VALIDATION_CONSTANTS.js +103 -0
  6. package/dist/cjs/constants/VALIDATION_CONSTANTS.js.map +1 -0
  7. package/dist/cjs/core/schema/extensions/SmartInference.js +200 -0
  8. package/dist/cjs/core/schema/extensions/SmartInference.js.map +1 -0
  9. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/Docs.js +100 -0
  10. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/Docs.js.map +1 -0
  11. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js +192 -0
  12. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js.map +1 -0
  13. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js +174 -0
  14. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js.map +1 -0
  15. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js +54 -0
  16. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js.map +1 -0
  17. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js +50 -0
  18. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js.map +1 -0
  19. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/index.js +15 -0
  20. package/dist/cjs/core/schema/extensions/components/AutoDocumentation/index.js.map +1 -0
  21. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js +70 -0
  22. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js.map +1 -0
  23. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js +40 -0
  24. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js.map +1 -0
  25. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js +19 -0
  26. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js.map +1 -0
  27. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js +20 -0
  28. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js.map +1 -0
  29. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js +49 -0
  30. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js.map +1 -0
  31. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/index.js +98 -0
  32. package/dist/cjs/core/schema/extensions/components/ConditionalValidation/index.js.map +1 -0
  33. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/FormValidator.js +85 -0
  34. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/FormValidator.js.map +1 -0
  35. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/LiveValidator.js +133 -0
  36. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/LiveValidator.js.map +1 -0
  37. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/StreamValidator.js +351 -0
  38. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/StreamValidator.js.map +1 -0
  39. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/index.js +109 -0
  40. package/dist/cjs/core/schema/extensions/components/RealtimeValidation/index.js.map +1 -0
  41. package/dist/cjs/core/schema/extensions/index.js +61 -0
  42. package/dist/cjs/core/schema/extensions/index.js.map +1 -0
  43. package/dist/cjs/core/schema/extensions/mods/index.js +51 -0
  44. package/dist/cjs/core/schema/extensions/mods/index.js.map +1 -0
  45. package/dist/cjs/core/schema/extensions/mods/openapi-converter.js +227 -0
  46. package/dist/cjs/core/schema/extensions/mods/openapi-converter.js.map +1 -0
  47. package/dist/cjs/core/schema/extensions/mods/typescript-generator.js +287 -0
  48. package/dist/cjs/core/schema/extensions/mods/typescript-generator.js.map +1 -0
  49. package/dist/cjs/core/schema/extensions/mods/validation-engine.js +224 -0
  50. package/dist/cjs/core/schema/extensions/mods/validation-engine.js.map +1 -0
  51. package/dist/cjs/core/schema/mode/interfaces/Interface.js +277 -0
  52. package/dist/cjs/core/schema/mode/interfaces/Interface.js.map +1 -0
  53. package/dist/cjs/core/schema/mode/interfaces/InterfaceSchema.js +1431 -0
  54. package/dist/cjs/core/schema/mode/interfaces/InterfaceSchema.js.map +1 -0
  55. package/dist/cjs/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js +520 -0
  56. package/dist/cjs/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js.map +1 -0
  57. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js +624 -0
  58. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js.map +1 -0
  59. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js +811 -0
  60. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js.map +1 -0
  61. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js +599 -0
  62. package/dist/cjs/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js.map +1 -0
  63. package/dist/cjs/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js +89 -0
  64. package/dist/cjs/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js.map +1 -0
  65. package/dist/cjs/core/schema/mode/interfaces/errors/ErrorHandler.js +356 -0
  66. package/dist/cjs/core/schema/mode/interfaces/errors/ErrorHandler.js.map +1 -0
  67. package/dist/cjs/core/schema/mode/interfaces/errors/types/errors.type.js +80 -0
  68. package/dist/cjs/core/schema/mode/interfaces/errors/types/errors.type.js.map +1 -0
  69. package/dist/cjs/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js +778 -0
  70. package/dist/cjs/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js.map +1 -0
  71. package/dist/cjs/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js +523 -0
  72. package/dist/cjs/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js.map +1 -0
  73. package/dist/cjs/core/schema/mode/interfaces/typescript/ConditionalTypes.js +681 -0
  74. package/dist/cjs/core/schema/mode/interfaces/typescript/ConditionalTypes.js.map +1 -0
  75. package/dist/cjs/core/schema/mode/interfaces/typescript/IDESupport.js +430 -0
  76. package/dist/cjs/core/schema/mode/interfaces/typescript/IDESupport.js.map +1 -0
  77. package/dist/cjs/core/schema/mode/interfaces/typescript/TypeInference.js +225 -0
  78. package/dist/cjs/core/schema/mode/interfaces/typescript/TypeInference.js.map +1 -0
  79. package/dist/cjs/core/schema/mode/interfaces/typescript/index.js +44 -0
  80. package/dist/cjs/core/schema/mode/interfaces/typescript/index.js.map +1 -0
  81. package/dist/cjs/core/schema/mode/interfaces/validators/ConstraintParser.js +1134 -0
  82. package/dist/cjs/core/schema/mode/interfaces/validators/ConstraintParser.js.map +1 -0
  83. package/dist/cjs/core/schema/mode/interfaces/validators/TypeGuards.js +256 -0
  84. package/dist/cjs/core/schema/mode/interfaces/validators/TypeGuards.js.map +1 -0
  85. package/dist/cjs/core/schema/mode/interfaces/validators/TypeValidators.js +429 -0
  86. package/dist/cjs/core/schema/mode/interfaces/validators/TypeValidators.js.map +1 -0
  87. package/dist/cjs/core/schema/mode/interfaces/validators/UnionCache.js +404 -0
  88. package/dist/cjs/core/schema/mode/interfaces/validators/UnionCache.js.map +1 -0
  89. package/dist/cjs/core/schema/mode/interfaces/validators/ValidationHelpers.js +851 -0
  90. package/dist/cjs/core/schema/mode/interfaces/validators/ValidationHelpers.js.map +1 -0
  91. package/dist/cjs/core/schema/mode/interfaces/validators/mods/passValidator.js +262 -0
  92. package/dist/cjs/core/schema/mode/interfaces/validators/mods/passValidator.js.map +1 -0
  93. package/dist/cjs/core/schema/mode/interfaces/validators/mods/securityValidator.js +887 -0
  94. package/dist/cjs/core/schema/mode/interfaces/validators/mods/securityValidator.js.map +1 -0
  95. package/dist/cjs/core/schema/mode/interfaces/validators/mods/urlValidation.js +191 -0
  96. package/dist/cjs/core/schema/mode/interfaces/validators/mods/urlValidation.js.map +1 -0
  97. package/dist/cjs/core/schema/optimization/ObjectValidationCache.js +462 -0
  98. package/dist/cjs/core/schema/optimization/ObjectValidationCache.js.map +1 -0
  99. package/dist/cjs/core/schema/optimization/PerformanceMonitor.js +773 -0
  100. package/dist/cjs/core/schema/optimization/PerformanceMonitor.js.map +1 -0
  101. package/dist/cjs/core/schema/optimization/SchemaCompiler.js +600 -0
  102. package/dist/cjs/core/schema/optimization/SchemaCompiler.js.map +1 -0
  103. package/dist/cjs/core/types/ValidatorTypes.js +70 -0
  104. package/dist/cjs/core/types/ValidatorTypes.js.map +1 -0
  105. package/dist/cjs/core/types/parser.type.js +12 -0
  106. package/dist/cjs/core/types/parser.type.js.map +1 -0
  107. package/dist/cjs/core/utils/Make.js +61 -0
  108. package/dist/cjs/core/utils/Make.js.map +1 -0
  109. package/dist/cjs/core/utils/Mod.js +1033 -0
  110. package/dist/cjs/core/utils/Mod.js.map +1 -0
  111. package/dist/cjs/core/utils/UrlArgs.js +102 -0
  112. package/dist/cjs/core/utils/UrlArgs.js.map +1 -0
  113. package/dist/cjs/core/utils/arrayToEnum.js +18 -0
  114. package/dist/cjs/core/utils/arrayToEnum.js.map +1 -0
  115. package/dist/cjs/core/utils/createUrlArgsEnumFArray.js +13 -0
  116. package/dist/cjs/core/utils/createUrlArgsEnumFArray.js.map +1 -0
  117. package/dist/cjs/core/utils/securityHelpers.js +215 -0
  118. package/dist/cjs/core/utils/securityHelpers.js.map +1 -0
  119. package/dist/cjs/core/utils/securityValidatorHelpers.js +65 -0
  120. package/dist/cjs/core/utils/securityValidatorHelpers.js.map +1 -0
  121. package/dist/cjs/index.js +31 -0
  122. package/dist/cjs/index.js.map +1 -0
  123. package/dist/cjs/package.json +3 -0
  124. package/dist/esm/constants/SECURITY_CONSTANTS.js +47 -0
  125. package/dist/esm/constants/SECURITY_CONSTANTS.js.map +1 -0
  126. package/dist/esm/constants/VALIDATION_CONSTANTS.js +98 -0
  127. package/dist/esm/constants/VALIDATION_CONSTANTS.js.map +1 -0
  128. package/dist/esm/core/schema/extensions/SmartInference.js +197 -0
  129. package/dist/esm/core/schema/extensions/SmartInference.js.map +1 -0
  130. package/dist/esm/core/schema/extensions/components/AutoDocumentation/Docs.js +98 -0
  131. package/dist/esm/core/schema/extensions/components/AutoDocumentation/Docs.js.map +1 -0
  132. package/dist/esm/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js +190 -0
  133. package/dist/esm/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.js.map +1 -0
  134. package/dist/esm/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js +172 -0
  135. package/dist/esm/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.js.map +1 -0
  136. package/dist/esm/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js +52 -0
  137. package/dist/esm/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.js.map +1 -0
  138. package/dist/esm/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js +48 -0
  139. package/dist/esm/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.js.map +1 -0
  140. package/dist/esm/core/schema/extensions/components/AutoDocumentation/index.js +12 -0
  141. package/dist/esm/core/schema/extensions/components/AutoDocumentation/index.js.map +1 -0
  142. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js +68 -0
  143. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.js.map +1 -0
  144. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js +38 -0
  145. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalElse.js.map +1 -0
  146. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js +17 -0
  147. package/dist/esm/core/schema/extensions/components/ConditionalValidation/ConditionalThen.js.map +1 -0
  148. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js +18 -0
  149. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.js.map +1 -0
  150. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js +45 -0
  151. package/dist/esm/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.js.map +1 -0
  152. package/dist/esm/core/schema/extensions/components/ConditionalValidation/index.js +92 -0
  153. package/dist/esm/core/schema/extensions/components/ConditionalValidation/index.js.map +1 -0
  154. package/dist/esm/core/schema/extensions/components/RealtimeValidation/FormValidator.js +83 -0
  155. package/dist/esm/core/schema/extensions/components/RealtimeValidation/FormValidator.js.map +1 -0
  156. package/dist/esm/core/schema/extensions/components/RealtimeValidation/LiveValidator.js +131 -0
  157. package/dist/esm/core/schema/extensions/components/RealtimeValidation/LiveValidator.js.map +1 -0
  158. package/dist/esm/core/schema/extensions/components/RealtimeValidation/StreamValidator.js +349 -0
  159. package/dist/esm/core/schema/extensions/components/RealtimeValidation/StreamValidator.js.map +1 -0
  160. package/dist/esm/core/schema/extensions/components/RealtimeValidation/index.js +103 -0
  161. package/dist/esm/core/schema/extensions/components/RealtimeValidation/index.js.map +1 -0
  162. package/dist/esm/core/schema/extensions/index.js +53 -0
  163. package/dist/esm/core/schema/extensions/index.js.map +1 -0
  164. package/dist/esm/core/schema/extensions/mods/index.js +47 -0
  165. package/dist/esm/core/schema/extensions/mods/index.js.map +1 -0
  166. package/dist/esm/core/schema/extensions/mods/openapi-converter.js +225 -0
  167. package/dist/esm/core/schema/extensions/mods/openapi-converter.js.map +1 -0
  168. package/dist/esm/core/schema/extensions/mods/typescript-generator.js +284 -0
  169. package/dist/esm/core/schema/extensions/mods/typescript-generator.js.map +1 -0
  170. package/dist/esm/core/schema/extensions/mods/validation-engine.js +222 -0
  171. package/dist/esm/core/schema/extensions/mods/validation-engine.js.map +1 -0
  172. package/dist/esm/core/schema/mode/interfaces/Interface.js +269 -0
  173. package/dist/esm/core/schema/mode/interfaces/Interface.js.map +1 -0
  174. package/dist/esm/core/schema/mode/interfaces/InterfaceSchema.js +1429 -0
  175. package/dist/esm/core/schema/mode/interfaces/InterfaceSchema.js.map +1 -0
  176. package/dist/esm/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js +518 -0
  177. package/dist/esm/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.js.map +1 -0
  178. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js +620 -0
  179. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalAST.js.map +1 -0
  180. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js +809 -0
  181. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.js.map +1 -0
  182. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js +597 -0
  183. package/dist/esm/core/schema/mode/interfaces/conditional/parser/ConditionalParser.js.map +1 -0
  184. package/dist/esm/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js +89 -0
  185. package/dist/esm/core/schema/mode/interfaces/conditional/types/ConditionalTypes.js.map +1 -0
  186. package/dist/esm/core/schema/mode/interfaces/errors/ErrorHandler.js +354 -0
  187. package/dist/esm/core/schema/mode/interfaces/errors/ErrorHandler.js.map +1 -0
  188. package/dist/esm/core/schema/mode/interfaces/errors/types/errors.type.js +80 -0
  189. package/dist/esm/core/schema/mode/interfaces/errors/types/errors.type.js.map +1 -0
  190. package/dist/esm/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js +776 -0
  191. package/dist/esm/core/schema/mode/interfaces/precompilation/FieldPrecompilers.js.map +1 -0
  192. package/dist/esm/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js +521 -0
  193. package/dist/esm/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.js.map +1 -0
  194. package/dist/esm/core/schema/mode/interfaces/typescript/ConditionalTypes.js +681 -0
  195. package/dist/esm/core/schema/mode/interfaces/typescript/ConditionalTypes.js.map +1 -0
  196. package/dist/esm/core/schema/mode/interfaces/typescript/IDESupport.js +428 -0
  197. package/dist/esm/core/schema/mode/interfaces/typescript/IDESupport.js.map +1 -0
  198. package/dist/esm/core/schema/mode/interfaces/typescript/TypeInference.js +223 -0
  199. package/dist/esm/core/schema/mode/interfaces/typescript/TypeInference.js.map +1 -0
  200. package/dist/esm/core/schema/mode/interfaces/typescript/index.js +35 -0
  201. package/dist/esm/core/schema/mode/interfaces/typescript/index.js.map +1 -0
  202. package/dist/esm/core/schema/mode/interfaces/validators/ConstraintParser.js +1132 -0
  203. package/dist/esm/core/schema/mode/interfaces/validators/ConstraintParser.js.map +1 -0
  204. package/dist/esm/core/schema/mode/interfaces/validators/TypeGuards.js +254 -0
  205. package/dist/esm/core/schema/mode/interfaces/validators/TypeGuards.js.map +1 -0
  206. package/dist/esm/core/schema/mode/interfaces/validators/TypeValidators.js +427 -0
  207. package/dist/esm/core/schema/mode/interfaces/validators/TypeValidators.js.map +1 -0
  208. package/dist/esm/core/schema/mode/interfaces/validators/UnionCache.js +400 -0
  209. package/dist/esm/core/schema/mode/interfaces/validators/UnionCache.js.map +1 -0
  210. package/dist/esm/core/schema/mode/interfaces/validators/ValidationHelpers.js +849 -0
  211. package/dist/esm/core/schema/mode/interfaces/validators/ValidationHelpers.js.map +1 -0
  212. package/dist/esm/core/schema/mode/interfaces/validators/mods/passValidator.js +260 -0
  213. package/dist/esm/core/schema/mode/interfaces/validators/mods/passValidator.js.map +1 -0
  214. package/dist/esm/core/schema/mode/interfaces/validators/mods/securityValidator.js +881 -0
  215. package/dist/esm/core/schema/mode/interfaces/validators/mods/securityValidator.js.map +1 -0
  216. package/dist/esm/core/schema/mode/interfaces/validators/mods/urlValidation.js +189 -0
  217. package/dist/esm/core/schema/mode/interfaces/validators/mods/urlValidation.js.map +1 -0
  218. package/dist/esm/core/schema/optimization/ObjectValidationCache.js +460 -0
  219. package/dist/esm/core/schema/optimization/ObjectValidationCache.js.map +1 -0
  220. package/dist/esm/core/schema/optimization/PerformanceMonitor.js +771 -0
  221. package/dist/esm/core/schema/optimization/PerformanceMonitor.js.map +1 -0
  222. package/dist/esm/core/schema/optimization/SchemaCompiler.js +598 -0
  223. package/dist/esm/core/schema/optimization/SchemaCompiler.js.map +1 -0
  224. package/dist/esm/core/types/ValidatorTypes.js +65 -0
  225. package/dist/esm/core/types/ValidatorTypes.js.map +1 -0
  226. package/dist/esm/core/types/parser.type.js +12 -0
  227. package/dist/esm/core/types/parser.type.js.map +1 -0
  228. package/dist/esm/core/utils/Make.js +59 -0
  229. package/dist/esm/core/utils/Make.js.map +1 -0
  230. package/dist/esm/core/utils/Mod.js +1031 -0
  231. package/dist/esm/core/utils/Mod.js.map +1 -0
  232. package/dist/esm/core/utils/UrlArgs.js +98 -0
  233. package/dist/esm/core/utils/UrlArgs.js.map +1 -0
  234. package/dist/esm/core/utils/arrayToEnum.js +16 -0
  235. package/dist/esm/core/utils/arrayToEnum.js.map +1 -0
  236. package/dist/esm/core/utils/createUrlArgsEnumFArray.js +11 -0
  237. package/dist/esm/core/utils/createUrlArgsEnumFArray.js.map +1 -0
  238. package/dist/esm/core/utils/securityHelpers.js +207 -0
  239. package/dist/esm/core/utils/securityHelpers.js.map +1 -0
  240. package/dist/esm/core/utils/securityValidatorHelpers.js +62 -0
  241. package/dist/esm/core/utils/securityValidatorHelpers.js.map +1 -0
  242. package/dist/esm/index.js +12 -0
  243. package/dist/esm/index.js.map +1 -0
  244. package/dist/esm/package.json +3 -0
  245. package/dist/schema.d.ts +2595 -0
  246. package/docs/ALL_TYPES.md +120 -0
  247. package/docs/API-STABILITY.md +336 -0
  248. package/docs/CONDITIONAL-VALIDATION.md +637 -0
  249. package/docs/EXAMPLES.md +876 -0
  250. package/docs/FIELD-TYPES.md +829 -0
  251. package/docs/GETTING-STARTED.md +394 -0
  252. package/docs/LIVE-UTILITY.md +1137 -0
  253. package/docs/QUICK-REFERENCE.md +346 -0
  254. package/docs/README.md +205 -0
  255. package/docs/VSCODE-EXTENSION.md +458 -0
  256. package/package.json +219 -0
  257. package/src/bench/BENCHMARK-RESULTS.md +211 -0
  258. package/src/bench/benchmark-results.json +148 -0
  259. package/src/bench/performance-comparison.ts +218 -0
  260. package/src/bench/precompilation-benchmark.ts +218 -0
  261. package/src/constants/SECURITY_CONSTANTS.ts +44 -0
  262. package/src/constants/VALIDATION_CONSTANTS.ts +176 -0
  263. package/src/core/README.md +395 -0
  264. package/src/core/compiler/SchemaTransformer.ts +279 -0
  265. package/src/core/compiler/TypeAnalyzer.ts +378 -0
  266. package/src/core/compiler/TypeScriptCompilerIntegration.ts +220 -0
  267. package/src/core/compiler/TypeToSchemaConverter.ts +288 -0
  268. package/src/core/index.ts +70 -0
  269. package/src/core/schema/extensions/AutoDocumentation.ts +572 -0
  270. package/src/core/schema/extensions/ConditionalValidation.ts +330 -0
  271. package/src/core/schema/extensions/README.md +171 -0
  272. package/src/core/schema/extensions/RealtimeValidation.ts +656 -0
  273. package/src/core/schema/extensions/SmartInference.ts +224 -0
  274. package/src/core/schema/extensions/components/AutoDocumentation/Docs.ts +98 -0
  275. package/src/core/schema/extensions/components/AutoDocumentation/DocumentationGenerator.ts +201 -0
  276. package/src/core/schema/extensions/components/AutoDocumentation/InteractiveDocumentationGenerator.ts +176 -0
  277. package/src/core/schema/extensions/components/AutoDocumentation/OpenAPIGenerator.ts +175 -0
  278. package/src/core/schema/extensions/components/AutoDocumentation/SchemaAnalyzer.ts +49 -0
  279. package/src/core/schema/extensions/components/AutoDocumentation/TypeScriptGenerator.ts +54 -0
  280. package/src/core/schema/extensions/components/AutoDocumentation/index.ts +17 -0
  281. package/src/core/schema/extensions/components/ConditionalValidation/ConditionalBuilder.ts +101 -0
  282. package/src/core/schema/extensions/components/ConditionalValidation/ConditionalElse.ts +65 -0
  283. package/src/core/schema/extensions/components/ConditionalValidation/ConditionalThen.ts +33 -0
  284. package/src/core/schema/extensions/components/ConditionalValidation/Extend.ts +75 -0
  285. package/src/core/schema/extensions/components/ConditionalValidation/MultiConditionalBuilder.ts +16 -0
  286. package/src/core/schema/extensions/components/ConditionalValidation/MultiConditionalThen.ts +50 -0
  287. package/src/core/schema/extensions/components/ConditionalValidation/index.ts +104 -0
  288. package/src/core/schema/extensions/components/RealtimeValidation/FormValidator.ts +88 -0
  289. package/src/core/schema/extensions/components/RealtimeValidation/LiveValidator.ts +171 -0
  290. package/src/core/schema/extensions/components/RealtimeValidation/StreamValidator.ts +397 -0
  291. package/src/core/schema/extensions/components/RealtimeValidation/index.ts +114 -0
  292. package/src/core/schema/extensions/index.ts +76 -0
  293. package/src/core/schema/extensions/mods/index.ts +131 -0
  294. package/src/core/schema/extensions/mods/openapi-converter.ts +338 -0
  295. package/src/core/schema/extensions/mods/typescript-generator.ts +379 -0
  296. package/src/core/schema/extensions/mods/validation-engine.ts +295 -0
  297. package/src/core/schema/mode/interfaces/Interface.ts +364 -0
  298. package/src/core/schema/mode/interfaces/InterfaceSchema.ts +1838 -0
  299. package/src/core/schema/mode/interfaces/README.md +278 -0
  300. package/src/core/schema/mode/interfaces/conditional/evaluator/ConditionalEvaluator.ts +657 -0
  301. package/src/core/schema/mode/interfaces/conditional/parser/ConditionalAST.ts +826 -0
  302. package/src/core/schema/mode/interfaces/conditional/parser/ConditionalLexer.ts +992 -0
  303. package/src/core/schema/mode/interfaces/conditional/parser/ConditionalParser.ts +803 -0
  304. package/src/core/schema/mode/interfaces/conditional/parser/readme.md +406 -0
  305. package/src/core/schema/mode/interfaces/conditional/types/ConditionalTypes.ts +273 -0
  306. package/src/core/schema/mode/interfaces/errors/ErrorHandler.ts +624 -0
  307. package/src/core/schema/mode/interfaces/errors/types/errors.type.ts +102 -0
  308. package/src/core/schema/mode/interfaces/precompilation/FieldPrecompilers.ts +962 -0
  309. package/src/core/schema/mode/interfaces/precompilation/SchemaPrecompiler.ts +667 -0
  310. package/src/core/schema/mode/interfaces/typescript/ConditionalTypes.ts +1534 -0
  311. package/src/core/schema/mode/interfaces/typescript/IDESupport.ts +534 -0
  312. package/src/core/schema/mode/interfaces/typescript/TypeInference.ts +737 -0
  313. package/src/core/schema/mode/interfaces/typescript/index.ts +92 -0
  314. package/src/core/schema/mode/interfaces/validators/ConstraintParser.ts +1438 -0
  315. package/src/core/schema/mode/interfaces/validators/EnhancedErrorReporting.ts +227 -0
  316. package/src/core/schema/mode/interfaces/validators/TypeGuards.ts +288 -0
  317. package/src/core/schema/mode/interfaces/validators/TypeValidators.ts +660 -0
  318. package/src/core/schema/mode/interfaces/validators/UnionCache.ts +508 -0
  319. package/src/core/schema/mode/interfaces/validators/ValidationHelpers.ts +1257 -0
  320. package/src/core/schema/mode/interfaces/validators/index.ts +21 -0
  321. package/src/core/schema/mode/interfaces/validators/mods/passValidator.ts +424 -0
  322. package/src/core/schema/mode/interfaces/validators/mods/securityValidator.ts +1634 -0
  323. package/src/core/schema/mode/interfaces/validators/mods/urlValidation.ts +333 -0
  324. package/src/core/schema/optimization/ObjectValidationCache.ts +560 -0
  325. package/src/core/schema/optimization/PerformanceInitializer.ts +188 -0
  326. package/src/core/schema/optimization/PerformanceMonitor.ts +898 -0
  327. package/src/core/schema/optimization/SchemaCompiler.ts +730 -0
  328. package/src/core/testing/TestDataGenerator.ts +590 -0
  329. package/src/core/types/SchemaValidator.type.ts +210 -0
  330. package/src/core/types/ValidatorTypes.ts +93 -0
  331. package/src/core/types/extension.type.ts +109 -0
  332. package/src/core/types/objValidationCache.ts +17 -0
  333. package/src/core/types/parser.type.ts +15 -0
  334. package/src/core/types/perfoMonitor.ts +37 -0
  335. package/src/core/types/scompiler.ts +22 -0
  336. package/src/core/types/securityValidator.type.ts +10 -0
  337. package/src/core/types/types.ts +154 -0
  338. package/src/core/utils/Make.ts +97 -0
  339. package/src/core/utils/Mod.ts +1168 -0
  340. package/src/core/utils/UrlArgs.ts +124 -0
  341. package/src/core/utils/arrayToEnum.ts +89 -0
  342. package/src/core/utils/createUrlArgsEnumFArray.ts +11 -0
  343. package/src/core/utils/securityHelpers.ts +341 -0
  344. package/src/core/utils/securityValidatorHelpers.ts +76 -0
  345. package/src/index.ts +124 -0
@@ -0,0 +1,876 @@
1
+ # Examples Collection
2
+
3
+ Real-world examples and patterns for ReliantType usage across different domains and use cases.
4
+
5
+ ## 📚 Table of Contents
6
+
7
+ - [User Management](#user-management)
8
+ - [E-commerce](#e-commerce)
9
+ - [API Development](#api-development)
10
+ - [Content Management](#content-management)
11
+ - [Financial Applications](#financial-applications)
12
+ - [IoT and Sensors](#iot-and-sensors)
13
+ - [Social Media](#social-media)
14
+ - [Enterprise Applications](#enterprise-applications)
15
+
16
+ ## User Management
17
+
18
+ ### User Registration Schema
19
+
20
+ ```typescript
21
+ import { Interface } from "reliant-type";
22
+
23
+ const UserRegistrationSchema = Interface({
24
+ // Basic information
25
+ email: "email",
26
+ password: "string(8,128)",
27
+ confirmPassword: "string(8,128)",
28
+
29
+ // Profile information
30
+ profile: {
31
+ firstName: "string(1,50)",
32
+ lastName: "string(1,50)",
33
+ displayName: "string(3,50)?",
34
+ dateOfBirth: "date?",
35
+ gender: "male|female|other|prefer-not-to-say"?,
36
+ avatar: "url?",
37
+ bio: "string(,500)?"
38
+ },
39
+
40
+ // Contact information
41
+ contact: {
42
+ phone: "phone?",
43
+ address: {
44
+ street: "string(5,100)",
45
+ city: "string(2,50)",
46
+ state: "string(2,50)",
47
+ zipCode: "string(/^\\d{5}(-\\d{4})?$/)",
48
+ country: "string(/^[A-Z]{2}$/)"
49
+ }?
50
+ }?,
51
+
52
+ // Preferences
53
+ preferences: {
54
+ theme: "light|dark|auto",
55
+ language: "string(/^[a-z]{2}(-[A-Z]{2})?$/)",
56
+ timezone: "string?",
57
+ notifications: {
58
+ email: "boolean",
59
+ push: "boolean",
60
+ sms: "boolean",
61
+ marketing: "boolean"
62
+ }
63
+ },
64
+
65
+ // Legal agreements
66
+ agreements: {
67
+ termsOfService: "=true",
68
+ privacyPolicy: "=true",
69
+ marketingConsent: "boolean",
70
+ dataProcessing: "=true"
71
+ },
72
+
73
+ // Runtime configuration for conditional validation
74
+ config: "any?",
75
+
76
+ // Conditional fields
77
+ betaFeatures: "when config.beta.$exists() *? string[] : =[]",
78
+ referralCode: "when config.referral.$exists() *? string : =null"
79
+ });
80
+
81
+ // Usage example
82
+ const registrationData = {
83
+ email: "john.doe@example.com",
84
+ password: "SecurePass123!",
85
+ confirmPassword: "SecurePass123!",
86
+ profile: {
87
+ firstName: "John",
88
+ lastName: "Doe",
89
+ displayName: "johndoe",
90
+ dateOfBirth: new Date("1990-05-15")
91
+ },
92
+ preferences: {
93
+ theme: "dark",
94
+ language: "en-US",
95
+ notifications: {
96
+ email: true,
97
+ push: true,
98
+ sms: false,
99
+ marketing: false
100
+ }
101
+ },
102
+ agreements: {
103
+ termsOfService: true,
104
+ privacyPolicy: true,
105
+ marketingConsent: false,
106
+ dataProcessing: true
107
+ }
108
+ };
109
+
110
+ const result = UserRegistrationSchema.safeParse(registrationData);
111
+ ```
112
+
113
+ ### User Profile Update Schema
114
+
115
+ ```typescript
116
+ const UserProfileUpdateSchema = Interface({
117
+ // Only fields that can be updated
118
+ profile: {
119
+ firstName: "string(1,50)?",
120
+ lastName: "string(1,50)?",
121
+ displayName: "string(3,50)?",
122
+ avatar: "url?",
123
+ bio: "string(,500)?"
124
+ }?,
125
+
126
+ contact: {
127
+ phone: "phone?",
128
+ address: {
129
+ street: "string(5,100)?",
130
+ city: "string(2,50)?",
131
+ state: "string(2,50)?",
132
+ zipCode: "string(/^\\d{5}(-\\d{4})?$/)?",
133
+ country: "string(/^[A-Z]{2}$/)?",
134
+ }?
135
+ }?,
136
+
137
+ preferences: {
138
+ theme: "light|dark|auto"?,
139
+ language: "string(/^[a-z]{2}(-[A-Z]{2})?$/)?",
140
+ timezone: "string?",
141
+ notifications: {
142
+ email: "boolean?",
143
+ push: "boolean?",
144
+ sms: "boolean?",
145
+ marketing: "boolean?"
146
+ }?
147
+ }?,
148
+
149
+ // Metadata
150
+ lastUpdated: "date",
151
+ updatedBy: "uuid"
152
+ });
153
+ ```
154
+
155
+ ## E-commerce
156
+
157
+ ### Product Catalog Schema
158
+
159
+ ```typescript
160
+ const ProductSchema = Interface({
161
+ // Product identification
162
+ id: "uuid",
163
+ sku: "string(/^[A-Z0-9-]{8,20}$/)",
164
+ name: "string(1,200)",
165
+ slug: "string(/^[a-z0-9-]+$/)",
166
+
167
+ // Pricing
168
+ pricing: {
169
+ basePrice: "number(0.01,999999.99)",
170
+ salePrice: "number(0.01,999999.99)?",
171
+ currency: "string(/^[A-Z]{3}$/)",
172
+ taxRate: "number(0,1)?",
173
+ discountPercentage: "number(0,100)?"
174
+ },
175
+
176
+ // Product details
177
+ description: "string(10,5000)",
178
+ shortDescription: "string(10,500)?",
179
+ specifications: "any?",
180
+
181
+ // Categorization
182
+ category: {
183
+ primary: "electronics|clothing|books|home|sports|beauty|toys",
184
+ secondary: "string(2,50)?",
185
+ tags: "string[](1,20)"
186
+ },
187
+
188
+ // Inventory
189
+ inventory: {
190
+ quantity: "int(0,)",
191
+ trackQuantity: "boolean",
192
+ allowBackorder: "boolean",
193
+ lowStockThreshold: "int(0,)?",
194
+ reservedQuantity: "int(0,)"
195
+ },
196
+
197
+ // Media
198
+ media: {
199
+ images: {
200
+ primary: "url",
201
+ gallery: "url[](0,20)",
202
+ thumbnails: "url[]?"
203
+ },
204
+ videos: "url[]?",
205
+ documents: "url[]?"
206
+ },
207
+
208
+ // SEO
209
+ seo: {
210
+ title: "string(10,60)?",
211
+ description: "string(50,160)?",
212
+ keywords: "string[](0,10)",
213
+ canonicalUrl: "url?"
214
+ }?,
215
+
216
+ // Shipping
217
+ shipping: {
218
+ weight: "number(0,)?",
219
+ dimensions: {
220
+ length: "number(0,)",
221
+ width: "number(0,)",
222
+ height: "number(0,)"
223
+ }?,
224
+ shippingClass: "standard|express|overnight|digital"
225
+ },
226
+
227
+ // Status and publishing
228
+ status: "draft|active|inactive|archived",
229
+ visibility: "public|private|hidden",
230
+ publishedAt: "date?",
231
+
232
+ // Timestamps
233
+ createdAt: "date",
234
+ updatedAt: "date",
235
+
236
+ // Runtime configuration
237
+ config: "any?",
238
+
239
+ // Conditional fields
240
+ digitalDownload: "when config.isDigital.$exists() *? any : =null",
241
+ subscriptionOptions: "when config.isSubscription.$exists() *? any : =null",
242
+ variantOptions: "when config.hasVariants.$exists() *? any[] : =[]"
243
+ });
244
+ ```
245
+
246
+ ### Shopping Cart Schema
247
+
248
+ ```typescript
249
+ const ShoppingCartSchema = Interface({
250
+ id: "uuid",
251
+ userId: "uuid?",
252
+ sessionId: "string?",
253
+
254
+ items: {
255
+ productId: "uuid",
256
+ variantId: "uuid?",
257
+ quantity: "int(1,)",
258
+ unitPrice: "number(0.01,)",
259
+ totalPrice: "number(0.01,)",
260
+ addedAt: "date"
261
+ }[](0,100),
262
+
263
+ totals: {
264
+ subtotal: "number(0,)",
265
+ tax: "number(0,)",
266
+ shipping: "number(0,)",
267
+ discount: "number(0,)",
268
+ total: "number(0,)"
269
+ },
270
+
271
+ discounts: {
272
+ code: "string",
273
+ type: "percentage|fixed|shipping",
274
+ value: "number(0,)",
275
+ appliedAt: "date"
276
+ }[]?,
277
+
278
+ shipping: {
279
+ method: "standard|express|overnight",
280
+ address: {
281
+ name: "string(1,100)",
282
+ street: "string(5,100)",
283
+ city: "string(2,50)",
284
+ state: "string(2,50)",
285
+ zipCode: "string(/^\\d{5}(-\\d{4})?$/)",
286
+ country: "string(/^[A-Z]{2}$/)",
287
+ phone: "phone?"
288
+ }?
289
+ }?,
290
+
291
+ createdAt: "date",
292
+ updatedAt: "date",
293
+ expiresAt: "date"
294
+ });
295
+ ```
296
+
297
+ ## API Development
298
+
299
+ ### REST API Response Schema
300
+
301
+ ```typescript
302
+ const APIResponseSchema = Interface({
303
+ // Response metadata
304
+ meta: {
305
+ version: "string(/^v\\d+\\.\\d+$/)",
306
+ timestamp: "date",
307
+ requestId: "uuid",
308
+ duration: "number(0,)",
309
+ environment: "development|staging|production",
310
+ rateLimit: {
311
+ limit: "int(1,)",
312
+ remaining: "int(0,)",
313
+ resetAt: "date"
314
+ }?
315
+ },
316
+
317
+ // Response status
318
+ status: "success|error|partial",
319
+ statusCode: "int(100,599)",
320
+ message: "string?",
321
+
322
+ // Data payload (varies by endpoint)
323
+ data: "any?",
324
+
325
+ // Error handling
326
+ errors: {
327
+ code: "string",
328
+ message: "string",
329
+ field: "string?",
330
+ details: "any?",
331
+ documentation: "url?"
332
+ }[]?,
333
+
334
+ // Warnings (non-blocking issues)
335
+ warnings: {
336
+ code: "string",
337
+ message: "string",
338
+ field: "string?",
339
+ severity: "low|medium|high"
340
+ }[]?,
341
+
342
+ // Pagination (for list endpoints)
343
+ pagination: {
344
+ page: "int(1,)",
345
+ limit: "int(1,1000)",
346
+ total: "int(0,)",
347
+ totalPages: "int(0,)",
348
+ hasNext: "boolean",
349
+ hasPrev: "boolean"
350
+ }?,
351
+
352
+ // HATEOAS links
353
+ links: {
354
+ self: "url",
355
+ next: "url?",
356
+ prev: "url?",
357
+ first: "url?",
358
+ last: "url?",
359
+ related: "url[]?"
360
+ }?,
361
+
362
+ // Runtime context for conditional validation
363
+ context: "any?",
364
+
365
+ // Conditional fields
366
+ debugInfo: "when context.debug.$exists() *? any : =null",
367
+ performanceMetrics: "when context.includeMetrics.$exists() *? any : =null"
368
+ });
369
+ ```
370
+
371
+ ### GraphQL Query Variables Schema
372
+
373
+ ```typescript
374
+ const GraphQLVariablesSchema = Interface({
375
+ // Pagination
376
+ first: "int(1,100)?",
377
+ after: "string?",
378
+ last: "int(1,100)?",
379
+ before: "string?",
380
+
381
+ // Filtering
382
+ where: {
383
+ id: "uuid?",
384
+ name: "string?",
385
+ email: "email?",
386
+ status: "active|inactive|pending"?,
387
+ createdAt: {
388
+ gte: "date?",
389
+ lte: "date?",
390
+ eq: "date?"
391
+ }?,
392
+ tags: "string[]?"
393
+ }?,
394
+
395
+ // Sorting
396
+ orderBy: {
397
+ field: "id|name|email|createdAt|updatedAt",
398
+ direction: "ASC|DESC"
399
+ }[]?,
400
+
401
+ // Field selection
402
+ include: "string[]?",
403
+ exclude: "string[]?",
404
+
405
+ // Search
406
+ search: {
407
+ query: "string(1,100)",
408
+ fields: "string[]?",
409
+ fuzzy: "boolean?"
410
+ }?
411
+ });
412
+ ```
413
+
414
+ ## Content Management
415
+
416
+ ### Blog Post Schema
417
+
418
+ ```typescript
419
+ const BlogPostSchema = Interface({
420
+ id: "uuid",
421
+ title: "string(5,200)",
422
+ slug: "string(/^[a-z0-9-]+$/)",
423
+
424
+ content: {
425
+ excerpt: "string(50,500)",
426
+ body: "string(100,)",
427
+ format: "markdown|html|plaintext"
428
+ },
429
+
430
+ author: {
431
+ id: "uuid",
432
+ name: "string",
433
+ email: "email",
434
+ avatar: "url?"
435
+ },
436
+
437
+ categorization: {
438
+ category: "string",
439
+ tags: "string[](0,20)",
440
+ series: "string?"
441
+ },
442
+
443
+ media: {
444
+ featuredImage: "url?",
445
+ gallery: "url[]?",
446
+ attachments: {
447
+ name: "string",
448
+ url: "url",
449
+ type: "image|video|document|audio",
450
+ size: "int(0,)"
451
+ }[]?
452
+ },
453
+
454
+ seo: {
455
+ title: "string(10,60)?",
456
+ description: "string(50,160)?",
457
+ keywords: "string[](0,15)",
458
+ canonicalUrl: "url?",
459
+ noIndex: "boolean?"
460
+ }?,
461
+
462
+ publishing: {
463
+ status: "draft|published|scheduled|archived",
464
+ publishedAt: "date?",
465
+ scheduledFor: "date?",
466
+ visibility: "public|private|password-protected",
467
+ password: "string?"
468
+ },
469
+
470
+ engagement: {
471
+ allowComments: "boolean",
472
+ allowSharing: "boolean",
473
+ allowRating: "boolean"
474
+ },
475
+
476
+ timestamps: {
477
+ createdAt: "date",
478
+ updatedAt: "date",
479
+ lastModifiedBy: "uuid"
480
+ }
481
+ });
482
+ ```
483
+
484
+ ### Comment System Schema
485
+
486
+ ```typescript
487
+ const CommentSchema = Interface({
488
+ id: "uuid",
489
+ postId: "uuid",
490
+ parentId: "uuid?", // For nested comments
491
+
492
+ author: {
493
+ id: "uuid?", // Null for anonymous
494
+ name: "string(1,50)",
495
+ email: "email",
496
+ website: "url?",
497
+ avatar: "url?"
498
+ },
499
+
500
+ content: {
501
+ body: "string(1,2000)",
502
+ format: "plaintext|markdown"
503
+ },
504
+
505
+ moderation: {
506
+ status: "pending|approved|rejected|spam",
507
+ moderatedBy: "uuid?",
508
+ moderatedAt: "date?",
509
+ reason: "string?"
510
+ },
511
+
512
+ metadata: {
513
+ ipAddress: "ip",
514
+ userAgent: "string?",
515
+ referrer: "url?"
516
+ },
517
+
518
+ engagement: {
519
+ likes: "int(0,)",
520
+ dislikes: "int(0,)",
521
+ replies: "int(0,)"
522
+ },
523
+
524
+ timestamps: {
525
+ createdAt: "date",
526
+ updatedAt: "date?"
527
+ }
528
+ });
529
+ ```
530
+
531
+ ## Financial Applications
532
+
533
+ ### Transaction Schema
534
+
535
+ ```typescript
536
+ const TransactionSchema = Interface({
537
+ id: "uuid",
538
+ transactionId: "string(/^TXN[0-9A-Z]{10}$/)",
539
+
540
+ parties: {
541
+ from: {
542
+ accountId: "uuid",
543
+ accountNumber: "string(/^[0-9]{10,12}$/)",
544
+ name: "string",
545
+ type: "checking|savings|credit|business"
546
+ },
547
+ to: {
548
+ accountId: "uuid",
549
+ accountNumber: "string(/^[0-9]{10,12}$/)",
550
+ name: "string",
551
+ type: "checking|savings|credit|business"
552
+ }
553
+ },
554
+
555
+ amount: {
556
+ value: "number(0.01,)",
557
+ currency: "string(/^[A-Z]{3}$/)",
558
+ exchangeRate: "number(0,)?"
559
+ },
560
+
561
+ details: {
562
+ type: "transfer|payment|deposit|withdrawal|fee|interest",
563
+ category: "string?",
564
+ description: "string(1,500)",
565
+ reference: "string?",
566
+ memo: "string(,200)?"
567
+ },
568
+
569
+ processing: {
570
+ status: "pending|processing|completed|failed|cancelled",
571
+ method: "ach|wire|card|check|cash|crypto",
572
+ processingTime: "instant|same-day|next-day|3-5-days",
573
+ fees: {
574
+ amount: "number(0,)",
575
+ type: "fixed|percentage",
576
+ description: "string"
577
+ }[]?
578
+ },
579
+
580
+ security: {
581
+ authenticationMethod: "password|2fa|biometric|token",
582
+ riskScore: "number(0,100)",
583
+ fraudFlags: "string[]?",
584
+ encryptionLevel: "standard|high|military"
585
+ },
586
+
587
+ compliance: {
588
+ amlChecked: "boolean",
589
+ kycVerified: "boolean",
590
+ reportingRequired: "boolean",
591
+ regulatoryFlags: "string[]?"
592
+ },
593
+
594
+ timestamps: {
595
+ initiatedAt: "date",
596
+ processedAt: "date?",
597
+ completedAt: "date?",
598
+ settledAt: "date?"
599
+ }
600
+ });
601
+ ```
602
+
603
+ ### Investment Portfolio Schema
604
+
605
+ ```typescript
606
+ const PortfolioSchema = Interface({
607
+ id: "uuid",
608
+ accountId: "uuid",
609
+ name: "string(1,100)",
610
+
611
+ holdings: {
612
+ symbol: "string(/^[A-Z]{1,5}$/)",
613
+ name: "string",
614
+ type: "stock|bond|etf|mutual-fund|crypto|commodity",
615
+ quantity: "number(0,)",
616
+ averageCost: "number(0,)",
617
+ currentPrice: "number(0,)",
618
+ marketValue: "number(0,)",
619
+ gainLoss: "number",
620
+ gainLossPercent: "number",
621
+ lastUpdated: "date"
622
+ }[],
623
+
624
+ allocation: {
625
+ stocks: "number(0,100)",
626
+ bonds: "number(0,100)",
627
+ cash: "number(0,100)",
628
+ alternatives: "number(0,100)",
629
+ international: "number(0,100)"
630
+ },
631
+
632
+ performance: {
633
+ totalValue: "number(0,)",
634
+ totalGainLoss: "number",
635
+ totalGainLossPercent: "number",
636
+ dayChange: "number",
637
+ dayChangePercent: "number",
638
+ ytdReturn: "number",
639
+ oneYearReturn: "number",
640
+ threeYearReturn: "number?",
641
+ fiveYearReturn: "number?"
642
+ },
643
+
644
+ riskMetrics: {
645
+ beta: "number?",
646
+ sharpeRatio: "number?",
647
+ volatility: "number(0,100)?",
648
+ maxDrawdown: "number?"
649
+ },
650
+
651
+ settings: {
652
+ riskTolerance: "conservative|moderate|aggressive",
653
+ investmentGoal: "retirement|education|house|general",
654
+ timeHorizon: "short|medium|long",
655
+ autoRebalance: "boolean",
656
+ dividendReinvestment: "boolean"
657
+ }
658
+ });
659
+ ```
660
+
661
+ ## IoT and Sensors
662
+
663
+ ### Sensor Data Schema
664
+
665
+ ```typescript
666
+ const SensorDataSchema = Interface({
667
+ deviceId: "uuid",
668
+ sensorId: "string",
669
+
670
+ device: {
671
+ name: "string",
672
+ type: "temperature|humidity|pressure|motion|light|sound|air-quality",
673
+ location: "string",
674
+ firmware: "string(/^\\d+\\.\\d+\\.\\d+$/)",
675
+ batteryLevel: "number(0,100)?"
676
+ },
677
+
678
+ readings: {
679
+ value: "number",
680
+ unit: "string",
681
+ precision: "number(0,10)",
682
+ calibrated: "boolean"
683
+ },
684
+
685
+ metadata: {
686
+ timestamp: "date",
687
+ timezone: "string",
688
+ quality: "excellent|good|fair|poor",
689
+ confidence: "number(0,100)",
690
+ source: "sensor|calculated|estimated"
691
+ },
692
+
693
+ environmental: {
694
+ temperature: "number?",
695
+ humidity: "number(0,100)?",
696
+ pressure: "number?",
697
+ altitude: "number?"
698
+ }?,
699
+
700
+ location: {
701
+ latitude: "number(-90,90)?",
702
+ longitude: "number(-180,180)?",
703
+ accuracy: "number(0,)?"
704
+ }?,
705
+
706
+ alerts: {
707
+ threshold: "number?",
708
+ triggered: "boolean",
709
+ severity: "low|medium|high|critical"?,
710
+ message: "string?"
711
+ }?,
712
+
713
+ // Runtime configuration
714
+ config: "any?",
715
+
716
+ // Conditional processing
717
+ processed: "when config.enableProcessing.$exists() *? boolean : =false",
718
+ aggregated: "when config.enableAggregation.$exists() *? any : =null"
719
+ });
720
+ ```
721
+
722
+ ## Social Media
723
+
724
+ ### Social Media Post Schema
725
+
726
+ ```typescript
727
+ const SocialPostSchema = Interface({
728
+ id: "uuid",
729
+ platform: "twitter|facebook|instagram|linkedin|tiktok",
730
+
731
+ author: {
732
+ id: "string",
733
+ username: "string(/^[a-zA-Z0-9_]{1,30}$/)",
734
+ displayName: "string",
735
+ avatar: "url?",
736
+ verified: "boolean",
737
+ followerCount: "int(0,)?"
738
+ },
739
+
740
+ content: {
741
+ text: "string(,2000)?",
742
+ hashtags: "string(/^#[a-zA-Z0-9_]+$/)[](0,30)",
743
+ mentions: "string(/^@[a-zA-Z0-9_]+$/)[](0,50)",
744
+ links: "url[]?",
745
+ media: {
746
+ type: "image|video|gif|audio",
747
+ url: "url",
748
+ thumbnail: "url?",
749
+ duration: "number(0,)?" // For videos/audio
750
+ }[]?
751
+ },
752
+
753
+ engagement: {
754
+ likes: "int(0,)",
755
+ shares: "int(0,)",
756
+ comments: "int(0,)",
757
+ views: "int(0,)?",
758
+ saves: "int(0,)?"
759
+ },
760
+
761
+ metadata: {
762
+ language: "string(/^[a-z]{2}$/)?",
763
+ location: {
764
+ name: "string?",
765
+ coordinates: {
766
+ lat: "number(-90,90)",
767
+ lng: "number(-180,180)"
768
+ }?
769
+ }?,
770
+ device: "string?",
771
+ source: "web|mobile|api|third-party"
772
+ },
773
+
774
+ moderation: {
775
+ flagged: "boolean",
776
+ reasons: "spam|harassment|misinformation|inappropriate|copyright"[]?,
777
+ reviewed: "boolean",
778
+ approved: "boolean?"
779
+ },
780
+
781
+ timestamps: {
782
+ createdAt: "date",
783
+ updatedAt: "date?",
784
+ scheduledFor: "date?",
785
+ publishedAt: "date?"
786
+ }
787
+ });
788
+ ```
789
+
790
+ ## Enterprise Applications
791
+
792
+ ### Employee Management Schema
793
+
794
+ ```typescript
795
+ const EmployeeSchema = Interface({
796
+ id: "uuid",
797
+ employeeId: "string(/^EMP[0-9]{6}$/)",
798
+
799
+ personal: {
800
+ firstName: "string(1,50)",
801
+ lastName: "string(1,50)",
802
+ middleName: "string(1,50)?",
803
+ preferredName: "string(1,50)?",
804
+ dateOfBirth: "date",
805
+ gender: "male|female|other|prefer-not-to-say"?,
806
+ nationality: "string(/^[A-Z]{2}$/)",
807
+ maritalStatus: "single|married|divorced|widowed|separated"?
808
+ },
809
+
810
+ contact: {
811
+ email: "email",
812
+ personalEmail: "email?",
813
+ phone: "phone",
814
+ emergencyContact: {
815
+ name: "string",
816
+ relationship: "string",
817
+ phone: "phone",
818
+ email: "email?"
819
+ },
820
+ address: {
821
+ street: "string",
822
+ city: "string",
823
+ state: "string",
824
+ zipCode: "string",
825
+ country: "string(/^[A-Z]{2}$/)"
826
+ }
827
+ },
828
+
829
+ employment: {
830
+ status: "active|inactive|terminated|on-leave|suspended",
831
+ type: "full-time|part-time|contract|intern|consultant",
832
+ startDate: "date",
833
+ endDate: "date?",
834
+ probationEndDate: "date?",
835
+ department: "string",
836
+ position: "string",
837
+ level: "junior|mid|senior|lead|manager|director|vp|c-level",
838
+ reportsTo: "uuid?",
839
+ location: "string",
840
+ workArrangement: "office|remote|hybrid"
841
+ },
842
+
843
+ compensation: {
844
+ salary: "number(0,)",
845
+ currency: "string(/^[A-Z]{3}$/)",
846
+ payFrequency: "weekly|bi-weekly|monthly|annually",
847
+ benefits: "string[]?",
848
+ bonusEligible: "boolean",
849
+ equityGrant: "number(0,)?"
850
+ },
851
+
852
+ performance: {
853
+ lastReviewDate: "date?",
854
+ nextReviewDate: "date?",
855
+ currentRating: "exceeds|meets|below|unsatisfactory"?,
856
+ goals: "string[]?",
857
+ skills: "string[]?"
858
+ },
859
+
860
+ access: {
861
+ badgeNumber: "string?",
862
+ accessLevel: "basic|elevated|admin|executive",
863
+ systems: "string[]?",
864
+ permissions: "string[]?"
865
+ },
866
+
867
+ // Runtime HR configuration
868
+ hrConfig: "any?",
869
+
870
+ // Conditional fields
871
+ visaStatus: "when hrConfig.requiresVisa.$exists() *? any : =null",
872
+ securityClearance: "when hrConfig.requiresClearance.$exists() *? any : =null"
873
+ });
874
+ ```
875
+
876
+ These examples demonstrate real-world usage patterns across various domains, showing how ReliantType can handle complex validation requirements while maintaining type safety and readability.