154 lines
3.0 KiB
TypeScript
154 lines
3.0 KiB
TypeScript
/**
|
|
* 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';
|