/** * ERP-Suite Core Library * * Shared types, interfaces, and base classes for all ERP-Suite modules. * * @module @erp-suite/core * * @example * ```typescript * import { * BaseTypeOrmService, * ServiceContext, * PaginatedResult, * BaseEntity, * createAuthMiddleware, * } from '@erp-suite/core'; * ``` */ // Types export { PaginationOptions, PaginationMeta, PaginatedResult, createPaginationMeta, } from './types/pagination.types'; // Interfaces export { IBaseService, ServiceContext, QueryOptions, } from './interfaces/base-service.interface'; export { IRepository, IReadOnlyRepository, IWriteOnlyRepository, IUserRepository, ITenantRepository, IAuditRepository, IConfigRepository, AuditLogEntry, ConfigEntry, } from './interfaces/repository.interface'; // Entities export { BaseEntity } from './entities/base.entity'; export { User } from './entities/user.entity'; export { Tenant } from './entities/tenant.entity'; // Services export { BaseTypeOrmService } from './services/base-typeorm.service'; // Auth Service (P0-014: Centralized) export { AuthService, createAuthService, LoginDto, RegisterDto, LoginResponse, AuthTokens, AuthUser, JwtPayload, AuthServiceConfig, AuthUnauthorizedError, AuthValidationError, AuthNotFoundError, splitFullName, buildFullName, } from './services/auth.service'; // Middleware export { createAuthMiddleware, AuthGuard, AuthRequest, AuthMiddlewareConfig, } from './middleware/auth.middleware'; export { createTenantMiddleware, TenantInterceptor, TenantRequest, TenantMiddlewareConfig, } from './middleware/tenant.middleware'; // Factories export { RepositoryFactory, createRepositoryFactory, InjectRepository, RepositoryNotFoundError, RepositoryAlreadyRegisteredError, } from './factories/repository.factory'; // Constants export { DB_SCHEMAS, AUTH_TABLES, ERP_TABLES, INVENTORY_TABLES, SALES_TABLES, PURCHASE_TABLES, ACCOUNTING_TABLES, HR_TABLES, CRM_TABLES, COMMON_COLUMNS, STATUS, getFullTableName, } from './constants/database.constants'; // Database RLS Policies export { applyTenantIsolationPolicy, applyAdminBypassPolicy, applyUserDataPolicy, applyCompleteRlsPolicies, applyCompletePoliciesForSchema, batchApplyRlsPolicies, enableRls, disableRls, isRlsEnabled, listRlsPolicies, dropRlsPolicy, dropAllRlsPolicies, getSchemaRlsStatus, setRlsContext, clearRlsContext, withRlsContext, RlsPolicyType, RlsPolicyOptions, RlsPolicyStatus, } from './database/policies/apply-rls'; // Error Handling export { BaseError, ErrorResponse, BadRequestError, UnauthorizedError, ForbiddenError, NotFoundError, ConflictError, ValidationError, InternalServerError, GlobalExceptionFilter, createErrorMiddleware, errorMiddleware, notFoundMiddleware, ErrorLogger, ErrorMiddlewareOptions, } from './errors';