npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kitiumai/schemas

v2.0.0

Published

Enterprise-grade reusable schema definitions and validation utilities for SaaS applications. Provides comprehensive Zod schemas for users, organizations, authentication, products, billing, and APIs with full TypeScript support

Readme

@kitiumai/schema

Enterprise-ready reusable schema definitions for Product SaaS applications

npm version License: MIT TypeScript Zod

What is @kitiumai/schema?

@kitiumai/schema is a comprehensive, enterprise-grade TypeScript library that provides reusable schema definitions for building robust Product SaaS applications. Built on top of Zod, it offers type-safe validation, middleware integration, and advanced features like internationalization, schema versioning, marketplace functionality, and observability.

Key Features

Type-Safe Validation - Full TypeScript support with inferred types from Zod schemas ✅ Enterprise-Ready - Designed for multi-tenant SaaS applications with RBAC, billing, and governance ✅ Framework Agnostic - Works with Express.js, Fastify, and other Node.js frameworks ✅ Advanced Features - i18n, versioning, marketplace, plugins, observability, and more ✅ Zero Runtime Dependencies - Only depends on Zod for core functionality ✅ Comprehensive Coverage - Covers core entities, auth, products, billing, and APIs ✅ Extensible Architecture - Plugin system for custom extensions and transformations ✅ Production Tested - 172+ comprehensive tests with 100% coverage

Why Do You Need @kitiumai/schema?

The Problem with Manual Schema Management

Traditional SaaS applications often suffer from:

  • Inconsistent Validation - Different parts of the application validate the same data differently
  • Type Safety Gaps - Manual type definitions that drift from runtime validation
  • Maintenance Burden - Duplicate schema definitions across frontend, backend, and APIs
  • Poor Developer Experience - Lack of auto-completion and compile-time error checking
  • Internationalization Challenges - Hard-coded error messages that can't be localized
  • Versioning Complexity - Difficulty managing schema evolution and migrations
  • Security Vulnerabilities - Inadequate input sanitization and validation

The @kitiumai/schema Solution

@kitiumai/schema solves these problems by providing:

  • Single Source of Truth - Centralized schema definitions used across your entire application
  • TypeScript-First - Automatic type inference from Zod schemas eliminates type drift
  • Framework Integration - Seamless middleware for Express.js and Fastify
  • Advanced Features - Built-in i18n, versioning, marketplace, and observability
  • Enterprise Features - RBAC, billing, governance, and security utilities
  • Developer Productivity - Rich IntelliSense, auto-completion, and compile-time validation
  • Production Reliability - Comprehensive testing and enterprise-grade error handling

Competitor Comparison

| Feature | @kitiumai/schema | Joi | Yup | Superstruct | tRPC | |---------|------------------|-----|-----|-------------|------| | TypeScript Integration | ✅ Native | ⚠️ Limited | ⚠️ Limited | ⚠️ Limited | ✅ Native | | Runtime Performance | ✅ Excellent | ⚠️ Good | ⚠️ Good | ✅ Excellent | ✅ Excellent | | Bundle Size | ✅ Minimal | ⚠️ Large | ⚠️ Large | ✅ Minimal | ⚠️ Large | | Framework Agnostic | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | | Middleware Support | ✅ Express/Fastify | ⚠️ Limited | ❌ No | ❌ No | ❌ No | | i18n Support | ✅ Built-in | ❌ No | ❌ No | ❌ No | ❌ No | | Schema Versioning | ✅ Built-in | ❌ No | ❌ No | ❌ No | ❌ No | | Marketplace | ✅ Built-in | ❌ No | ❌ No | ❌ No | ❌ No | | Observability | ✅ Built-in | ❌ No | ❌ No | ❌ No | ❌ No | | Plugin Ecosystem | ✅ Built-in | ❌ No | ❌ No | ❌ No | ❌ No | | Enterprise Features | ✅ RBAC, Billing, Governance | ❌ No | ❌ No | ❌ No | ❌ No | | Zero Dependencies | ✅ Yes | ❌ No | ❌ No | ❌ No | ❌ No |

Unique Selling Proposition (USP)

🎯 TypeScript-First Enterprise SaaS Framework

@kitiumai/schema is the only TypeScript library that provides a complete, enterprise-ready schema framework specifically designed for Product SaaS applications. While other validation libraries focus solely on data validation, @kitiumai/schema offers:

  • End-to-End Type Safety - From database to frontend with zero type drift
  • SaaS-Specific Features - Multi-tenancy, RBAC, billing, and governance built-in
  • Advanced Ecosystem - i18n, versioning, marketplace, plugins, and observability
  • Framework Integration - Seamless middleware for popular Node.js frameworks
  • Production-Ready - Enterprise-grade error handling and comprehensive testing

🚀 Developer Productivity Multiplier

  • Single Source of Truth - Define once, use everywhere (API, database, frontend)
  • Auto-Generated Types - No more manual type definitions
  • Rich IntelliSense - Full auto-completion and inline documentation
  • Compile-Time Validation - Catch errors before they reach production
  • Advanced DX Features - Schema marketplace, documentation generation, testing utilities

Installation

npm install @kitiumai/schema
# or
yarn add @kitiumai/schema
# or
pnpm add @kitiumai/schema

Quick Start

import { UserSchema, validate } from '@kitiumai/schema';

const userData = {
  id: '123e4567-e89b-12d3-a456-426614174000',
  email: '[email protected]',
  firstName: 'John',
  lastName: 'Doe',
  status: 'active',
  emailVerified: true,
  createdAt: new Date(),
  updatedAt: new Date(),
};

const result = validate(UserSchema, userData);
if (result.success) {
  console.log('Valid user:', result.data);
} else {
  console.error('Validation errors:', result.errors);
}

All Exported APIs

Core Schemas (@kitiumai/schema/core)

User Management

  • UserSchema - Complete user schema with all fields
  • CreateUserSchema - Schema for user creation
  • UpdateUserSchema - Schema for user updates
  • UserProfileSchema - User profile information
  • UserPreferencesSchema - User preference settings

Organization Management

  • OrganizationSchema - Complete organization schema
  • CreateOrganizationSchema - Schema for organization creation
  • UpdateOrganizationSchema - Schema for organization updates
  • OrganizationSettingsSchema - Organization settings

Role-Based Access Control (RBAC)

  • RoleSchema - Role definitions
  • PermissionSchema - Permission definitions
  • CreateRoleSchema - Schema for role creation
  • UpdateRoleSchema - Schema for role updates

Team Management

  • TeamSchema - Team definitions
  • TeamMemberSchema - Team member relationships
  • CreateTeamSchema - Schema for team creation
  • UpdateTeamSchema - Schema for team updates

Authentication Schemas (@kitiumai/schema/auth)

Authentication

  • LoginCredentialsSchema - Login request validation
  • RegisterInputSchema - User registration
  • PasswordResetSchema - Password reset requests
  • ChangePasswordSchema - Password change requests

Tokens & Sessions

  • AuthTokenSchema - Access/refresh token validation
  • SessionSchema - User session management
  • MFASettingsSchema - Multi-factor authentication settings
  • OAuthInputSchema - OAuth provider integration

Organization Schemas (@kitiumai/schema/organization)

Team Management

  • InviteMemberSchema - Team member invitations
  • UpdateTeamMemberSchema - Team member updates
  • TeamMemberRoleSchema - Team member role assignments

Invitations

  • OrganizationInvitationSchema - Organization invitations
  • AcceptInvitationSchema - Invitation acceptance

Product Schemas (@kitiumai/schema/product)

Features & Workspaces

  • FeatureSchema - Feature flag management
  • WorkspaceSchema - Project workspace definitions
  • WorkspaceMemberSchema - Workspace member management
  • CreateWorkspaceSchema - Workspace creation
  • UpdateWorkspaceSchema - Workspace updates

Integrations

  • IntegrationSchema - Third-party integrations
  • WebhookSchema - Webhook configurations

Billing Schemas (@kitiumai/schema/billing)

Subscriptions

  • SubscriptionSchema - Subscription management
  • PlanSchema - Subscription plans
  • CreateSubscriptionSchema - Subscription creation

Payments

  • PaymentMethodSchema - Payment method storage
  • PaymentSchema - Payment transaction records
  • InvoiceSchema - Invoice generation and management

API Schemas (@kitiumai/schema/api)

Request/Response

  • APIRequestSchema - Generic API request validation
  • APIResponseSchema - Generic API response formatting
  • PaginationSchema - Pagination parameters
  • SortingSchema - Sorting parameters

Error Handling

  • APIErrorSchema - Standardized API error responses
  • ValidationErrorSchema - Validation error formatting

Common Types (@kitiumai/schema/common)

Base Types

  • UUID - Universally unique identifier
  • Email - Email address validation
  • URL - URL validation
  • Timestamp - ISO timestamp
  • DataClassification - Data classification levels
  • PIIClassification - PII classification types

Utility Types

  • AuditStamp - Audit trail information
  • Address - Physical address structure
  • ContactInfo - Contact information
  • Metadata - Generic metadata container

Validators (@kitiumai/schema/validators)

Core Validation

  • validate<T>(schema, data) - Validate data against schema
  • validateAsync<T>(schema, data) - Async validation
  • safeParse<T>(schema, data) - Safe parsing without throwing

Types

  • ValidationResult<T> - Validation result type
  • ValidationErrorDetail - Individual validation error

Middleware (@kitiumai/schema/middleware)

Express.js Middleware

  • validateBody(schema, options?) - Validate request body
  • validateQuery(schema, options?) - Validate query parameters
  • validateParams(schema, options?) - Validate route parameters
  • validateHeaders(schema, options?) - Validate request headers

Fastify Middleware

  • createValidationPlugin(options) - Fastify validation plugin

Utilities

  • createBatchValidator(schema) - Batch validation
  • createTypeGuard<T>(schema) - TypeScript type guards
  • extendSchema(base, extensions) - Schema extension
  • withConditionalValidation(schema, condition, validator) - Conditional validation
  • withCrossFieldValidation(schema, validator) - Cross-field validation

Integrations (@kitiumai/schema/integrations)

Framework Adapters

  • createExpressMiddleware(schema) - Express middleware factory
  • createFastifyPlugin(schema) - Fastify plugin factory

OpenAPI/JSON Schema

  • toJsonSchema(zodSchema) - Convert to JSON Schema
  • toOpenApiSchema(zodSchema) - Convert to OpenAPI Schema
  • toGraphQLType(zodSchema, typeName) - Convert to GraphQL type
  • fromJsonSchema(jsonSchema) - Convert from JSON Schema

Versioning (@kitiumai/schema/versioning)

Registry Management

  • createSchemaRegistry(name, currentVersion) - Create schema registry
  • registerSchemaVersion<T>(registryName, version, schema, options?) - Register version
  • registerMigration(registryName, fromVersion, toVersion, migration) - Register migration
  • migrateData(registryName, data, fromVersion, toVersion) - Migrate data

Version Queries

  • getCurrentSchema(registryName) - Get current schema version
  • getSchemaVersion(registryName, version) - Get specific version
  • getAvailableVersions(registryName) - List available versions
  • isSupportedVersion(registryName, version) - Check version support
  • getDeprecationWarning(registryName, version) - Get deprecation warnings

Types

  • SchemaVersion<T> - Schema version definition
  • SchemaMigration - Migration definition
  • SchemaRegistry - Registry container
  • DeprecationWarning - Deprecation information

Performance (@kitiumai/schema/performance)

Caching

  • getCachedSchema(key) - Retrieve cached schema
  • cacheSchema(key, schema) - Cache schema
  • removeCachedSchema(key) - Remove from cache
  • clearSchemaCache() - Clear all caches
  • getSchemaCacheStats() - Get cache statistics
  • memoizeSchemaValidator<T>(schema) - Memoized validation

Security (@kitiumai/schema/security)

Password Security

  • PasswordStrength - Password strength enum
  • analyzePasswordStrength(password) - Analyze password strength
  • EnhancedPasswordSchema - Enhanced password validation

Input Sanitization

  • sanitizeData(data) - Sanitize input data
  • validateEmailSecurity(email) - Email security validation
  • validateAgainstCommonAttacks(input) - Common attack detection
  • createSecureStringSchema(options) - Secure string schema

Rate Limiting

  • RateLimiter - Rate limiting class

Testing (@kitiumai/schema/testing)

Test Data Generation

  • TestDataFactory<T> - Test data factory type
  • createTestDataFactory<T>(config) - Create test data factory
  • generateTestData(schema, overrides?) - Generate test data

Validation Testing

  • ValidationTestCase<T> - Test case definition
  • runValidationTests<T>(schema, testCases) - Run validation tests
  • validateTestData<T>(data, schema) - Validate test data

Schema Testing

  • createSchemaSnapshot(schema) - Create schema snapshot
  • compareSchemas(schema1, schema2) - Compare schemas
  • benchmarkValidation(schema, iterations?) - Performance benchmarking

Observability (@kitiumai/schema/observability)

Metrics

  • ValidationMetrics - Validation metrics
  • ValidationEvent - Individual validation events
  • recordValidationEvent(event) - Record validation event
  • getSchemaMetrics(schemaName) - Get schema metrics
  • getAllValidationMetrics() - Get all metrics
  • createMonitoredValidator<T>(schema, schemaName, options?) - Monitored validator

Tracing

  • TraceContext - Trace context
  • Span - Tracing span
  • startTrace(traceId, sampled?) - Start trace
  • startSpan(name, parentId?, attributes?) - Start span
  • endSpan(spanId) - End span
  • getCurrentTraceContext() - Get current context

Multi-Format Support (@kitiumai/schema/formats)

Schema Conversion

  • JsonSchema - JSON Schema type
  • OpenApiSchema - OpenAPI Schema type
  • toJsonSchema(schema) - Convert to JSON Schema
  • toOpenApiSchema(schema) - Convert to OpenAPI Schema
  • toGraphQLType(schema, typeName) - Convert to GraphQL
  • fromJsonSchema(jsonSchema) - Convert from JSON Schema
  • generateSchemaDocumentation(schema, options?) - Generate documentation
  • checkSchemaCompatibility(schema1, schema2) - Check compatibility

Governance (@kitiumai/schema/governance)

Change Management

  • ChangeRequestStatus - Change request status enum
  • SchemaChangeRequest - Change request definition
  • createSchemaChangeRequest(...) - Create change request
  • submitChangeRequestForReview(requestId) - Submit for review
  • approveSchemaChange(requestId, approvedBy) - Approve change
  • rejectSchemaChange(requestId, reviewedBy, reason) - Reject change

Policy Management

  • GovernancePolicy - Governance policy
  • setSchemaGovernancePolicy(schemaName, policy) - Set policy
  • getSchemaGovernancePolicy(schemaName) - Get policy
  • schemaChangeRequiresApproval(schemaName, changeType) - Check approval requirement

Documentation (@kitiumai/schema/documentation)

Schema Documentation

  • SchemaDocumentation - Documentation structure
  • FieldDocumentation - Field documentation
  • SchemaExample - Usage examples
  • ValidationRule - Validation rules

Documentation Management

  • generateSchemaDocumentation(schema, options?) - Generate docs
  • addSchemaExample(schemaName, example) - Add example
  • addSchemaValidationRule(schemaName, rule) - Add validation rule
  • getSchemaDocumentation(schemaName) - Get documentation
  • exportDocumentationAsMarkdown(schemaName) - Export as Markdown
  • exportDocumentationAsHtml(schemaName) - Export as HTML

Plugin Ecosystem (@kitiumai/schema/plugins)

Plugin System

  • PluginHook - Available plugin hooks
  • PluginContext - Plugin execution context
  • Plugin - Plugin definition
  • registerPlugin(plugin) - Register plugin
  • unregisterPlugin(pluginName) - Unregister plugin
  • executePluginHook(hook, context) - Execute plugin hook
  • createPluginValidator<T>(schema, plugins?) - Plugin-enhanced validator

Plugin Hooks

  • beforeValidate - Pre-validation hook
  • afterValidate - Post-validation hook
  • beforeTransform - Pre-transformation hook
  • afterTransform - Post-transformation hook

Internationalization (@kitiumai/schema/i18n)

Locale Management

  • Locale - Supported locale type
  • registerLocale(translations) - Register locale
  • setLocale(locale) - Set current locale
  • getLocale() - Get current locale
  • getAvailableLocales() - List available locales

Translation

  • translate(key, params?) - Translate message
  • translateValidationErrors(errors, locale?) - Translate validation errors
  • createLocalizedValidator<T>(schema, locale?) - Localized validator

Formatting

  • formatDate(date, locale?) - Format dates
  • formatNumber(value, locale?) - Format numbers
  • formatCurrency(amount, currency, locale?) - Format currency

Types

  • LocaleTranslations - Translation dictionary
  • ValidationErrorTranslation - Error translation structure

Schema Marketplace (@kitiumai/schema/marketplace)

Schema Publishing

  • SchemaCategory - Schema categories
  • MarketplaceSchema - Marketplace schema definition
  • publishSchema(schemaData) - Publish schema
  • getMarketplaceSchema(schemaId) - Get published schema
  • updateMarketplaceSchema(schemaId, updates) - Update schema
  • deleteMarketplaceSchema(schemaId) - Delete schema

Discovery & Search

  • SearchFilters - Search filter options
  • searchMarketplaceSchemas(filters) - Search schemas
  • getPopularSchemas(limit?) - Get popular schemas
  • getTopRatedSchemas(limit?) - Get top-rated schemas
  • getSchemasByCategory(category) - Get by category
  • getSchemasByAuthor(author) - Get by author

Reviews & Ratings

  • SchemaReview - Review structure
  • addSchemaReview(review) - Add review
  • getSchemaReviews(schemaId) - Get reviews
  • downloadSchema(schemaId, userId) - Download schema
  • getUserDownloads(userId) - Get user downloads

Analytics

  • getCategoryStats() - Category statistics
  • getMarketplaceStats() - Marketplace statistics

Examples

Basic Validation

import { UserSchema, validate } from '@kitiumai/schema';

const userData = {
  email: '[email protected]',
  firstName: 'John',
  lastName: 'Doe',
};

const result = validate(UserSchema, userData);
if (result.success) {
  // TypeScript knows result.data is a valid User
  console.log('User created:', result.data);
} else {
  console.error('Validation failed:', result.errors);
}

Express Middleware

import express from 'express';
import { validateBody, validateQuery, UserSchema } from '@kitiumai/schema';

const app = express();

app.post('/users',
  validateBody(UserSchema),
  validateQuery(z.object({ invite: z.boolean().optional() })),
  (req, res) => {
    // req.body is fully typed and validated
    // req.query.invite is also validated
    res.json({ user: req.body, invited: req.query.invite });
  }
);

Schema Versioning

import { createSchemaRegistry, registerSchemaVersion } from '@kitiumai/schema/versioning';

const registry = createSchemaRegistry('User', '1.0.0');

// Register version 1.0.0
registerSchemaVersion('User', '1.0.0', UserV1Schema);

// Register version 2.0.0 with migration
registerSchemaVersion('User', '2.0.0', UserV2Schema, {
  deprecated: false,
  changeLog: 'Added profile picture field'
});

// Migrate data between versions
const migratedData = migrateData('User', oldUserData, '1.0.0', '2.0.0');

Internationalization

import { setLocale, translate, createLocalizedValidator } from '@kitiumai/schema/i18n';

// Set locale to Spanish
setLocale('es');

// Create localized validator
const localizedValidator = createLocalizedValidator(UserSchema);

// Validation errors will be in Spanish
const result = localizedValidator(userData);

Plugin System

import { registerPlugin, createPluginValidator } from '@kitiumai/schema/plugins';

const auditPlugin = {
  name: 'audit',
  hooks: {
    afterValidate: async (context) => {
      console.log('Validation completed for:', context.schemaName);
      return context;
    }
  }
};

registerPlugin(auditPlugin);

// Create validator with plugins
const validator = createPluginValidator(UserSchema, ['audit']);

Schema Marketplace

import { publishSchema, searchMarketplaceSchemas } from '@kitiumai/schema/marketplace';

// Publish a schema
const publishedSchema = publishSchema({
  name: 'CustomUser',
  description: 'Extended user schema with custom fields',
  schema: CustomUserSchema,
  category: 'user-management',
  author: 'mycompany',
  version: '1.0.0'
});

// Search for schemas
const results = searchMarketplaceSchemas({
  category: 'user-management',
  query: 'extended'
});

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT © KitiumAI