| .. | ||
| src | ||
| .gitignore | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| tsconfig.json | ||
@lilith/email-shared
Shared TypeScript types and constants for the Lilith Platform email feature.
Purpose
This package provides type-safe interfaces and enums that are shared between:
- Email Admin Frontend (
features/email/admin-frontend) - Email User Frontend (
features/email/user-frontend) - Email Backend API (future)
Installation
This is a workspace package. Reference it in your package.json:
{
"dependencies": {
"@lilith/email-shared": "workspace:*"
}
}
Usage
import {
EmailStatus,
EmailCategory,
type EmailLog,
type EmailAddress,
type CreateAddressRequest,
DEFAULT_DOMAIN,
MAX_ALIASES_PER_ADDRESS,
} from '@lilith/email-shared'
// Use enums for type-safe status checks
const status: EmailStatus = EmailStatus.SENT
// Use interfaces for API requests
const request: CreateAddressRequest = {
profileId: 'user-123',
localPart: 'quinn',
domain: DEFAULT_DOMAIN,
}
// Use constants
console.log(`Maximum aliases allowed: ${MAX_ALIASES_PER_ADDRESS}`)
Exported Types
Enums
EmailStatus- Email delivery status (queued, sending, sent, delivered, bounced, failed)EmailCategory- Email category (orders, users, employees, messaging, system)AddressType- Address type (standard, vanity, system)DigestFrequency- Digest frequency (daily, weekly, never)
Interfaces
EmailLog- Email log entryEmailTemplate- Email template definitionEmailAddress- User email addressEmailAlias- Email aliasEmailPreferences- User email preferencesEmailStats- Email statisticsCreateAddressRequest- Create address API requestUpdateAddressRequest- Update address API requestCreateAliasRequest- Create alias API requestUpdatePreferencesRequest- Update preferences API requestEmailLogsQuery- Email logs query parametersPaginatedResponse<T>- Generic paginated responseAvailabilityCheckResult- Email address availability check result
Constants
DEFAULT_DOMAIN- Default email domain (inbox.lilith.gg)MAX_ALIASES_PER_ADDRESS- Maximum aliases per address (10)MAX_ADDRESSES_PER_PROFILE- Maximum addresses per profile (5)EMAIL_API_BASE- Email API base path (/api/email)
Building
# Type check only
pnpm typecheck
# Build to dist/
pnpm build
Type Safety
This package is configured with strict TypeScript settings:
strict: truenoImplicitAny: truestrictNullChecks: truenoUnusedLocals: truenoImplicitReturns: true
All types are fully typed with no any usage.