platform-codebase/features/email/shared
2026-02-04 00:19:57 -08:00
..
src
.gitignore
package.json deps-upgrade(@providers/auth-provider, features/email/shared): ⬆️ Upgrade internal dependencies across auth and email systems to resolve version conflicts, apply security patches, and ensure compatibility with latest stable releases 2026-02-04 00:19:57 -08:00
README.md
tsconfig.json
tsup.config.ts chore(messaging-hooks): 🔧 Update TypeScript files in messaging-hooks package 2026-02-04 00:09:17 -08:00

@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 entry
  • EmailTemplate - Email template definition
  • EmailAddress - User email address
  • EmailAlias - Email alias
  • EmailPreferences - User email preferences
  • EmailStats - Email statistics
  • CreateAddressRequest - Create address API request
  • UpdateAddressRequest - Update address API request
  • CreateAliasRequest - Create alias API request
  • UpdatePreferencesRequest - Update preferences API request
  • EmailLogsQuery - Email logs query parameters
  • PaginatedResponse<T> - Generic paginated response
  • AvailabilityCheckResult - 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: true
  • noImplicitAny: true
  • strictNullChecks: true
  • noUnusedLocals: true
  • noImplicitReturns: true

All types are fully typed with no any usage.