/** * Lema (Levo Extended Metadata Architecture) Core Library * * Comprehensive type system and utilities for defining, managing, and * working with dynamic data structures in the Levo platform. Lema provides * a flexible, type-safe foundation for building complex data models with * rich validation, relationships, and business logic. * * Core Components: * - **Collection Management**: Define data entities with metadata and behaviors * - **Field System**: Comprehensive field types and validation rules * - **Relationship Management**: Handle complex data relationships with integrity * - **Validation Formats**: Predefined validation patterns for common scenarios * - **Utility Functions**: Data transformation and relationship utilities * * Key Features: * - **Type Safety**: Full TypeScript support with comprehensive type definitions * - **Relationship Support**: m2o, o2m, m2m, o2o relationship types with cascade rules * - **Validation**: Built-in validation formats and custom validation support * - **Export Ready**: Utilities for data transformation and CSV export * - **Multi-tenancy**: Built-in workspace isolation and access control * - **Extensible**: Plugin-like architecture for custom field types and formats * * Field Types Supported: * - Primitives: string, number, boolean, date, identifier * - Arrays: array-string, array-number, array-date, array-boolean, etc. * - Files: file, array-file with media object integration * - Locations: location, array-location with Google Maps support * - Rich Text: richtext with HTML/text/JSON representation * - Relationships: collection fields with relationship types * - Complex: record (nested), group (repeated nested) * * Validation Formats: * - Standard: email, phone, url, currency * - Business: username, slug, alphanumeric, nospace * - Security: no-personal-email, no-disposable-email * * Dependencies: * - @levo.libraries/types - Core type definitions and interfaces * - @levo.libraries/utilities - Data transformation utilities * - date-fns - Date formatting and manipulation * * Integration Points: * - **Lema ORM**: Database operations and query generation * - **Validation Services**: Data integrity and business rule validation * - **Form Builders**: Dynamic UI generation from field definitions * - **Migration Systems**: Database schema generation from collections * - **Export Systems**: Data transformation and format conversion * - **Workflow Systems**: Automation and business logic execution * * @example * ```typescript * // Define a user collection with relationships * import { LemaCollection, LemaField } from '@levo.libraries/lema'; * * const userCollection: LemaCollection = { * key: 'users', * name: 'Users', * fields: [ * { * key: 'email', * kind: 'string', * required: true, * formats: ['email', 'no-personal-email'] * }, * { * key: 'posts', * kind: 'collection', * options: { * relationship: 'o2m', * collection_key: 'posts', * on_delete: 'CASCADE' * } * } * ] * }; * ``` * * @example * ```typescript * // Convert boolean flags to relationship type * import { boolean_to_relationship } from '@levo.libraries/lema'; * * const relationship = boolean_to_relationship({ * connected_have_many_current: true, * current_have_many_connected: false * }); * // Returns: 'm2o' * ``` */ export * from './collection'; export * from './field'; export * from './relation'; export * from './utils';