@sygnl/event-schema
v1.0.3
Published
Unified event schemas for e-commerce and SaaS analytics with TypeScript and Zod validation
Maintainers
Readme
@sygnl/event-schema
Unified event schemas for e-commerce and SaaS analytics with TypeScript and Zod validation.
Install
npm install @sygnl/event-schemaQuick Start
import { validateEvent, PurchaseEventSchema } from '@sygnl/event-schema';
// Validate event
const result = validateEvent({
event_type: 'purchase',
timestamp: Date.now(),
order_id: 'order_123',
total: 99.99,
currency: 'USD',
products: [
{ id: 'prod_1', name: 'Widget', price: 99.99, quantity: 1 }
]
});
if (result.success) {
console.log('Valid event:', result.data);
} else {
console.error('Invalid:', result.errors);
}Features
- E-commerce events (purchase, add_to_cart, view_item, etc.)
- SaaS events (signup, subscription, trial, etc.)
- Custom event support with type safety
- Zod schema validation
- TypeScript types derived from schemas
- Extensible and composable
Event Types
E-commerce
- product_viewed
- add_to_cart
- remove_from_cart
- checkout_started
- purchase
- refund
SaaS
- user_signed_up
- user_logged_in
- subscription_started
- subscription_cancelled
- trial_started
- trial_converted
Custom Events
import { createCustomEventSchema } from '@sygnl/event-schema';
import { z } from 'zod';
const VideoPlayedSchema = createCustomEventSchema('video_played', z.object({
video_id: z.string(),
duration_seconds: z.number(),
progress_percent: z.number()
}));
const result = VideoPlayedSchema.safeParse(event);API
// Validate any event
validateEvent(event);
// Validate specific type
PurchaseEventSchema.parse(event);
AddToCartEventSchema.parse(event);
UserSignedUpEventSchema.parse(event);
// Type inference
type PurchaseEvent = z.infer<typeof PurchaseEventSchema>;License
Apache-2.0
Copyright 2026 Edge Foundry, Inc.
