@plyaz/types 1.29.1 → 1.29.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/events/enums.d.ts +2 -0
- package/dist/core/events/index.d.ts +1 -1
- package/dist/core/events/payloads.d.ts +14 -0
- package/dist/core/index.cjs +4 -2
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/init/types.d.ts +7 -0
- package/dist/index.cjs +4 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -96,6 +96,7 @@ export declare const CacheEventAction: {
|
|
|
96
96
|
readonly DELETE: "delete";
|
|
97
97
|
readonly CLEAR: "clear";
|
|
98
98
|
readonly EXPIRED: "expired";
|
|
99
|
+
readonly ERROR: "error";
|
|
99
100
|
};
|
|
100
101
|
/**
|
|
101
102
|
* Auth event actions
|
|
@@ -212,6 +213,7 @@ export declare const CORE_EVENTS: {
|
|
|
212
213
|
readonly DELETE: "cache:delete";
|
|
213
214
|
readonly CLEAR: "cache:clear";
|
|
214
215
|
readonly EXPIRED: "cache:expired";
|
|
216
|
+
readonly ERROR: "cache:error";
|
|
215
217
|
};
|
|
216
218
|
readonly AUTH: {
|
|
217
219
|
readonly LOGIN: "auth:login";
|
|
@@ -19,4 +19,4 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export { CoreEventScope, SystemEventAction, EntityEventAction, ValidationEventAction, SanitizationEventAction, ApiEventAction, CacheEventAction, AuthEventAction, DatabaseEventAction, FeatureFlagEventAction, StoreEventAction, StorageEventAction, NotificationEventAction, CORE_EVENTS, } from './enums';
|
|
21
21
|
export type { CoreEventScopeType, SystemEventType, EntityEventType, ValidationEventType, SanitizationEventType, ApiEventType, CacheEventType, AuthEventType, DatabaseEventType, FeatureFlagEventType, StoreEventType, CoreEventType, } from './enums';
|
|
22
|
-
export type { CoreEvent, CoreCrudOperation, CoreValidationStartedPayload, CoreValidationSuccessPayload, CoreValidationFailedPayload, CoreSanitizationStartedPayload, CoreSanitizationSuccessPayload, CoreSanitizationFailedPayload, CoreEntityCreatedPayload, CoreEntityUpdatedPayload, CoreEntityPatchedPayload, CoreEntityDeletedPayload, CoreEntityCreatingPayload, CoreEntityUpdatingPayload, CoreEntityPatchingPayload, CoreEntityDeletingPayload, CoreEntityErrorPayload, CoreEntityCompletePayload, CoreBulkCreatedPayload, CoreBulkDeletedPayload, CoreSystemInitializedPayload, CoreSystemReadyPayload, CoreSystemShutdownPayload, CoreSystemErrorPayload, CoreSystemWarningPayload, CoreApiRequestStartPayload, CoreApiRequestSuccessPayload, CoreApiRequestErrorPayload, CoreApiRetryPayload, CoreApiTimeoutPayload, CoreCacheHitPayload, CoreCacheMissPayload, CoreCacheSetPayload, CoreCacheDeletePayload, CoreCacheClearPayload, CoreCacheExpiredPayload, CoreDatabaseConnectedPayload, CoreDatabaseDisconnectedPayload, CoreDatabaseQueryPayload, CoreDatabaseErrorPayload, CoreDatabaseTransactionStartPayload, CoreDatabaseTransactionCommitPayload, CoreDatabaseTransactionRollbackPayload, CoreAuthLoginPayload, CoreAuthLogoutPayload, CoreAuthTokenRefreshPayload, CoreAuthSessionExpiredPayload, CoreAuthUnauthorizedPayload, CoreFeatureFlagChangedPayload, CoreFeatureFlagEvaluatedPayload, CoreFeatureFlagRefreshedPayload, CoreStoreUpdatedPayload, CoreStoreResetPayload, CoreStoreHydratedPayload, CoreStorageUploadedPayload, CoreStorageDownloadedPayload, CoreStorageDeletedPayload, CoreStorageErrorPayload, CoreStorageHealthCheckPayload, CoreNotificationSentPayload, CoreNotificationFailedPayload, CoreNotificationDeliveredPayload, CoreNotificationOpenedPayload, CoreNotificationClickedPayload, CoreNotificationErrorPayload, CoreNotificationHealthCheckPayload, CoreEventPayloadMap, } from './payloads';
|
|
22
|
+
export type { CoreEvent, CoreCrudOperation, CoreValidationStartedPayload, CoreValidationSuccessPayload, CoreValidationFailedPayload, CoreSanitizationStartedPayload, CoreSanitizationSuccessPayload, CoreSanitizationFailedPayload, CoreEntityCreatedPayload, CoreEntityUpdatedPayload, CoreEntityPatchedPayload, CoreEntityDeletedPayload, CoreEntityCreatingPayload, CoreEntityUpdatingPayload, CoreEntityPatchingPayload, CoreEntityDeletingPayload, CoreEntityErrorPayload, CoreEntityCompletePayload, CoreBulkCreatedPayload, CoreBulkDeletedPayload, CoreSystemInitializedPayload, CoreSystemReadyPayload, CoreSystemShutdownPayload, CoreSystemErrorPayload, CoreSystemWarningPayload, CoreApiRequestStartPayload, CoreApiRequestSuccessPayload, CoreApiRequestErrorPayload, CoreApiRetryPayload, CoreApiTimeoutPayload, CoreCacheHitPayload, CoreCacheMissPayload, CoreCacheSetPayload, CoreCacheDeletePayload, CoreCacheClearPayload, CoreCacheExpiredPayload, CoreCacheErrorPayload, CoreDatabaseConnectedPayload, CoreDatabaseDisconnectedPayload, CoreDatabaseQueryPayload, CoreDatabaseErrorPayload, CoreDatabaseTransactionStartPayload, CoreDatabaseTransactionCommitPayload, CoreDatabaseTransactionRollbackPayload, CoreAuthLoginPayload, CoreAuthLogoutPayload, CoreAuthTokenRefreshPayload, CoreAuthSessionExpiredPayload, CoreAuthUnauthorizedPayload, CoreFeatureFlagChangedPayload, CoreFeatureFlagEvaluatedPayload, CoreFeatureFlagRefreshedPayload, CoreStoreUpdatedPayload, CoreStoreResetPayload, CoreStoreHydratedPayload, CoreStorageUploadedPayload, CoreStorageDownloadedPayload, CoreStorageDeletedPayload, CoreStorageErrorPayload, CoreStorageHealthCheckPayload, CoreNotificationSentPayload, CoreNotificationFailedPayload, CoreNotificationDeliveredPayload, CoreNotificationOpenedPayload, CoreNotificationClickedPayload, CoreNotificationErrorPayload, CoreNotificationHealthCheckPayload, CoreEventPayloadMap, } from './payloads';
|
|
@@ -308,6 +308,19 @@ export interface CoreCacheClearPayload {
|
|
|
308
308
|
export interface CoreCacheExpiredPayload {
|
|
309
309
|
key: string;
|
|
310
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* Payload for cache:error events
|
|
313
|
+
*/
|
|
314
|
+
export interface CoreCacheErrorPayload {
|
|
315
|
+
/** The error that occurred */
|
|
316
|
+
error: unknown;
|
|
317
|
+
/** Cache operation that failed (get, set, delete, clear, etc.) */
|
|
318
|
+
operation: string;
|
|
319
|
+
/** Cache key involved (if applicable) */
|
|
320
|
+
key?: string;
|
|
321
|
+
/** Whether the error is recoverable */
|
|
322
|
+
recoverable: boolean;
|
|
323
|
+
}
|
|
311
324
|
/**
|
|
312
325
|
* Payload for database:connected events
|
|
313
326
|
*/
|
|
@@ -613,6 +626,7 @@ export interface CoreEventPayloadMap {
|
|
|
613
626
|
[CORE_EVENTS.CACHE.DELETE]: CoreCacheDeletePayload;
|
|
614
627
|
[CORE_EVENTS.CACHE.CLEAR]: CoreCacheClearPayload;
|
|
615
628
|
[CORE_EVENTS.CACHE.EXPIRED]: CoreCacheExpiredPayload;
|
|
629
|
+
[CORE_EVENTS.CACHE.ERROR]: CoreCacheErrorPayload;
|
|
616
630
|
[CORE_EVENTS.DATABASE.CONNECTED]: CoreDatabaseConnectedPayload;
|
|
617
631
|
[CORE_EVENTS.DATABASE.DISCONNECTED]: CoreDatabaseDisconnectedPayload;
|
|
618
632
|
[CORE_EVENTS.DATABASE.QUERY]: CoreDatabaseQueryPayload;
|
package/dist/core/index.cjs
CHANGED
|
@@ -189,7 +189,8 @@ var CacheEventAction = {
|
|
|
189
189
|
SET: "set",
|
|
190
190
|
DELETE: "delete",
|
|
191
191
|
CLEAR: "clear",
|
|
192
|
-
EXPIRED: "expired"
|
|
192
|
+
EXPIRED: "expired",
|
|
193
|
+
ERROR: "error"
|
|
193
194
|
};
|
|
194
195
|
var AuthEventAction = {
|
|
195
196
|
LOGIN: "login",
|
|
@@ -278,7 +279,8 @@ var CORE_EVENTS = {
|
|
|
278
279
|
SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,
|
|
279
280
|
DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,
|
|
280
281
|
CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,
|
|
281
|
-
EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}
|
|
282
|
+
EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,
|
|
283
|
+
ERROR: `${CoreEventScope.CACHE}:${CacheEventAction.ERROR}`
|
|
282
284
|
},
|
|
283
285
|
AUTH: {
|
|
284
286
|
LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,
|
package/dist/core/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/modules.ts","../../src/core/tables/enum.ts","../../src/core/featureFlag/enums.ts","../../src/core/featureFlag/constants.ts","../../src/core/events/enums.ts","../../src/core/services/keys.ts"],"names":["TABLES","SORT_DIRECTION","FEATURE_FLAG_TABLE","FEATURE_FLAG_FIELD","FEATURE_FLAG_RULE_FIELD","FEATURE_FLAG_PROVIDERS","NODE_ENVIRONMENTS","DATABASE_FIELDS","SYSTEM_USERS","EVALUATION_REASONS","FEATURE_FLAG_TYPES"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Core Module System Types\n *\n * Framework-agnostic module interface for @plyaz/core.\n * Modules implement this contract to integrate with Core.\n */\n\nimport type { DatabaseServiceInterface } from '../db/databaseService';\nimport type { HttpMethod } from '../api/config/types';\nimport type {\n Type,\n DynamicModule,\n ForwardReference,\n InjectionToken,\n OptionalFactoryDependency,\n ModuleMetadata,\n} from '@nestjs/common';\n\n// Re-export HttpMethod for convenience\nexport type { HttpMethod };\n\n/**\n * Core services available to modules\n */\nexport interface CoreServices {\n db: DatabaseServiceInterface;\n // api: ApiClientService;\n // cache: CacheService;\n // logger: LoggerService;\n env: Record<string, string | undefined>;\n}\n\n/**\n * Route handler context\n */\nexport interface CoreRouteContext {\n params: Record<string, string>;\n query: Record<string, string | string[]>;\n body: unknown;\n headers: Record<string, string>;\n services: CoreServices;\n}\n\n/**\n * Route handler function\n */\nexport type CoreRouteHandler = (ctx: CoreRouteContext) => Promise<{\n status?: number;\n body?: unknown;\n headers?: Record<string, string>;\n}>;\n\n/**\n * Route definition - framework agnostic\n */\nexport interface CoreRouteDefinition {\n method: HttpMethod;\n path: string;\n handler: CoreRouteHandler;\n middleware?: string[];\n description?: string;\n}\n\n/**\n * Module configuration schema (optional)\n */\nexport interface CoreModuleConfigSchema<T = unknown> {\n parse: (config: unknown) => T;\n safeParse: (config: unknown) => { success: boolean; data?: T; error?: Error };\n}\n\n/**\n * Service factory for creating module services\n */\nexport type CoreServiceFactory<T = unknown> = (\n services: CoreServices,\n config?: unknown\n) => T | Promise<T>;\n\n/**\n * Module lifecycle hooks\n */\nexport interface CoreModuleLifecycle {\n /**\n * Called when module is initialized\n * Use for setup, connections, etc.\n */\n onInit?(services: CoreServices): Promise<void>;\n\n /**\n * Called when module is being destroyed\n * Use for cleanup, closing connections, etc.\n */\n onDestroy?(): Promise<void>;\n\n /**\n * Called when Core is fully initialized (all modules loaded)\n */\n onReady?(services: CoreServices): Promise<void>;\n}\n\n/**\n * Core module definition - framework agnostic contract\n *\n * @example\n * ```typescript\n * const FeatureFlagModule: CoreModuleDefinition = {\n * name: 'featureFlags',\n * version: '1.0.0',\n * dependencies: ['db'],\n *\n * routes: [\n * { method: 'GET', path: '/flags', handler: listFlags },\n * { method: 'GET', path: '/flags/:key', handler: getFlag },\n * ],\n *\n * services: {\n * featureFlagService: (core) => new FeatureFlagService(core.db),\n * },\n *\n * async onInit(services) {\n * // Initialize feature flag provider\n * },\n * };\n * ```\n */\nexport interface CoreModuleDefinition<TConfig = unknown> extends CoreModuleLifecycle {\n /**\n * Unique module name (used for registration and access)\n */\n name: string;\n\n /**\n * Module version\n */\n version?: string;\n\n /**\n * Core services this module depends on\n */\n dependencies?: ('db' | 'api' | 'cache' | 'logger')[];\n\n /**\n * HTTP routes provided by this module\n */\n routes?: CoreRouteDefinition[];\n\n /**\n * Services exposed by this module\n */\n services?: Record<string, CoreServiceFactory>;\n\n /**\n * Configuration schema for validation\n */\n configSchema?: CoreModuleConfigSchema<TConfig>;\n\n /**\n * Default configuration\n */\n defaultConfig?: Partial<TConfig>;\n}\n\n/**\n * Registered module instance (after initialization)\n */\nexport interface CoreRegisteredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n services: Record<string, unknown>;\n initialized: boolean;\n}\n\n/**\n * Module with configuration (result of .forRoot())\n */\nexport interface CoreConfiguredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n}\n\n/**\n * Helper to create a module definition with forRoot pattern\n */\nexport interface CoreModuleFactory<TConfig = unknown> {\n /**\n * Module definition\n */\n definition: CoreModuleDefinition<TConfig>;\n\n /**\n * Configure module with options\n */\n forRoot(config?: Partial<TConfig>): CoreConfiguredModule<TConfig>;\n\n /**\n * Use module with default config\n */\n default: CoreConfiguredModule<TConfig>;\n}\n\n/**\n * Supported HTTP frameworks for server mode\n */\nexport type CoreFrameworkType =\n | 'node' // Plain Node.js http module\n | 'express' // Express.js\n | 'nestjs' // NestJS\n | 'nextjs'; // Next.js API routes (SSR/Edge)\n\n/**\n * Server configuration\n */\nexport interface CoreServerConfig {\n port: number;\n host?: string;\n framework?: CoreFrameworkType;\n prefix?: string; // API prefix like '/api/v1'\n cors?: {\n enabled: boolean;\n origins?: string[];\n };\n}\n\n/**\n * Framework adapter interface\n */\nexport interface CoreFrameworkAdapter {\n /**\n * Framework name\n */\n name: CoreFrameworkType;\n\n /**\n * Register routes from modules\n */\n registerRoutes(\n routes: Array<{ moduleName: string; routes: CoreRouteDefinition[] }>,\n services: CoreServices\n ): void | Promise<void>;\n\n /**\n * Start the server\n */\n start(config: CoreServerConfig): Promise<void>;\n\n /**\n * Stop the server\n */\n stop(): Promise<void>;\n\n /**\n * Get the underlying framework instance (express app, fastify instance, etc.)\n */\n getInstance(): unknown;\n}\n\n/**\n * Adapter factory function\n */\nexport type CoreAdapterFactory = () => CoreFrameworkAdapter;\n\n/**\n * Runtime environment detection\n */\nexport type CoreRuntimeEnvironment =\n | 'node' // Plain Node.js\n | 'nestjs' // NestJS backend\n | 'express' // Express.js\n | 'nuxt' // Nuxt.js (Vue SSR)\n | 'nextjs' // Next.js (React SSR)\n | 'browser' // Browser/SPA\n | 'edge' // Edge runtime (Cloudflare, Vercel Edge)\n | 'deno' // Deno runtime\n | 'bun' // Bun runtime\n | 'unknown';\n\n/**\n * Runtime context type\n */\nexport type CoreRuntimeContext = 'backend' | 'frontend' | 'universal';\n\n/**\n * Backend runtimes - always server-side\n */\nexport const BACKEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'node',\n 'nestjs',\n 'express',\n 'deno',\n 'bun',\n] as const;\n\n/**\n * Frontend runtimes - always client-side\n */\nexport const FRONTEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = ['browser'] as const;\n\n/**\n * Universal runtimes - can be either (SSR)\n */\nexport const UNIVERSAL_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'nextjs',\n 'nuxt',\n 'edge',\n] as const;\n\n// ============================================================================\n// Next.js Handler Types\n// ============================================================================\n\n/**\n * Handler context for Next.js API routes\n * Provides services and parsed request data\n */\nexport interface CoreNextJsHandlerContext {\n /** Database service */\n db: unknown; // DbService - imported dynamically to avoid circular deps\n /** URL parameters (from dynamic routes like [id]) */\n params: Record<string, string>;\n /** Query string parameters */\n query: Record<string, string | string[]>;\n /** Request body (parsed JSON) */\n body: unknown;\n /** Request headers */\n headers: Record<string, string>;\n /** Original Request object */\n request: Request;\n}\n\n/**\n * Handler return type for Next.js API routes\n */\nexport interface CoreNextJsHandlerResult {\n /** Response body (will be JSON serialized) */\n [key: string]: unknown;\n /** HTTP status code (default: 200) */\n status?: number;\n /** Response headers */\n headers?: Record<string, string>;\n}\n\n/**\n * Handler function type for Next.js API routes\n */\nexport type CoreNextJsHandler = (\n ctx: CoreNextJsHandlerContext\n) => Promise<CoreNextJsHandlerResult | Response>;\n\n/**\n * Options for Next.js createHandler\n */\nexport interface CoreNextJsHandlerOptions {\n /** Core initialization options (used on first request) */\n coreOptions?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Core Initialization Types\n// ============================================================================\n\n/**\n * Core environment variables\n */\nexport interface CoreEnvVars {\n DATABASE_URL?: string;\n SUPABASE_URL?: string;\n SUPABASE_SERVICE_ROLE_KEY?: string;\n SUPABASE_ANON_PUBLIC_KEY?: string;\n ENCRYPTION_KEY?: string;\n API_BASE_URL?: string;\n API_TIMEOUT?: string;\n NODE_ENV?: string;\n [key: string]: string | undefined;\n}\n\n/**\n * Application environment type\n */\nexport type CoreAppEnvironment = 'development' | 'staging' | 'production' | 'test';\n\n/**\n * API client initialization options\n * Extends ApiClientOptions with Core-specific settings\n */\nexport interface CoreApiInitOptions {\n /** Environment for API client configuration */\n env?: CoreAppEnvironment;\n /** Set this client as the default */\n setAsDefault?: boolean;\n /** Base URL for API requests */\n baseURL?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n /** Additional options passed to ApiClientService */\n [key: string]: unknown;\n}\n\n/**\n * Core initialization options\n */\nexport interface CoreInitOptions<\n TDbConfig = unknown,\n TApiConfig = CoreApiInitOptions,\n TCacheConfig = unknown,\n TStorageConfig = unknown,\n TNotificationsConfig = unknown,\n> {\n /** Path to .env file */\n envPath?: string;\n /** Global application environment */\n environment?: CoreAppEnvironment;\n /** Application context (webapp, backoffice, mobile, etc.) */\n appContext?: CoreAppContext;\n /** Explicit environment variables */\n env?: CoreEnvVars;\n /** Database configuration */\n db?: TDbConfig;\n /** API client configuration */\n api?: TApiConfig;\n /** Cache configuration */\n cache?: TCacheConfig;\n /** Storage configuration (backend only) */\n storage?: TStorageConfig;\n /** Notifications configuration (backend only) */\n notifications?: TNotificationsConfig;\n /** Skip database initialization */\n skipDb?: boolean;\n /** Skip API client initialization */\n skipApi?: boolean;\n /** Skip cache initialization */\n skipCache?: boolean;\n /** Skip storage initialization */\n skipStorage?: boolean;\n /** Skip notifications initialization */\n skipNotifications?: boolean;\n /** Enable verbose logging */\n verbose?: boolean;\n /**\n * Logger configuration for Core's internal PackageLogger.\n * - 'pino': JSON structured logs (default)\n * - 'console': Human-readable output (for development)\n */\n logger?: {\n transport?: 'pino' | 'console';\n };\n}\n\n/**\n * Core initialization result\n */\nexport interface CoreServicesResult<\n TDb = unknown,\n TApi = unknown,\n TCache = unknown,\n TStorage = unknown,\n TNotifications = unknown,\n> {\n db: TDb | null;\n api: TApi | null;\n cache: TCache | null;\n storage: TStorage | null;\n notifications: TNotifications | null;\n env: CoreEnvVars;\n runtime: CoreRuntimeEnvironment;\n appContext: CoreAppContext;\n}\n\n// ============================================================================\n// NestJS Module Types\n// ============================================================================\n\n/**\n * Core module options for NestJS\n */\nexport interface CoreNestJsModuleOptions {\n /** Path to .env file */\n envPath?: string;\n /** Database configuration */\n db?: Record<string, unknown>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (adapters/nestjs.ts pattern)\n * Uses NestJS-specific types for proper DI integration.\n */\nexport interface CoreNestJsModuleAsyncOptions {\n /** Modules to import for dependency resolution */\n imports?: Array<Type<unknown> | DynamicModule | Promise<DynamicModule> | ForwardReference>;\n /** Tokens to inject into the factory */\n inject?: Array<InjectionToken | OptionalFactoryDependency>;\n /** Factory function to create module options */\n useFactory: (...args: unknown[]) => CoreNestJsModuleOptions | Promise<CoreNestJsModuleOptions>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (init/nestjs pattern)\n * Extends ModuleMetadata for full NestJS integration.\n */\nexport interface CoreNestJsCoreModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {\n /** Factory function to create init options */\n useFactory: (...args: unknown[]) => CoreInitOptions | Promise<CoreInitOptions>;\n /** Tokens to inject into the factory */\n inject?: Array<Type<unknown> | string | symbol>;\n}\n\n// ============================================================================\n// App Context Types\n// ============================================================================\n\n/**\n * Application context type\n *\n * Identifies which type of application is running.\n * Different apps may have different feature flags, API endpoints, or UI behaviors.\n */\nexport type CoreAppContext =\n | 'webapp' // Main web application\n | 'backoffice' // Admin/back-office portal\n | 'mobile' // Mobile apps (React Native, Capacitor, etc.)\n | 'microapp' // Embedded micro frontends\n | 'cli'; // CLI tools\n\n/**\n * App context constants for type-safe comparisons\n */\nexport const APP_CONTEXTS: readonly CoreAppContext[] = [\n 'webapp',\n 'backoffice',\n 'mobile',\n 'microapp',\n 'cli',\n] as const;\n\n// ============================================================================\n// Domain Service Types\n// ============================================================================\n\n/**\n * Service runtime compatibility\n *\n * Declares which runtimes a service can execute on.\n * Services can be restricted to specific runtimes for security\n * (e.g., backend-only services should never be bundled for frontend).\n */\nexport type CoreServiceRuntime =\n | 'frontend' // Browser, React, Vue, etc. (no DB access)\n | 'backend' // Node.js, NestJS, Express (has DB access)\n | 'universal'; // Works everywhere (SSR, Edge)\n\n/**\n * Domain service configuration\n *\n * Declares service metadata including runtime compatibility\n * and feature flag requirements.\n *\n * @example\n * ```typescript\n * class CampaignDomainService {\n * static readonly config: CoreDomainServiceConfig = {\n * name: 'CampaignDomainService',\n * runtimes: ['frontend', 'backend'],\n * requiresFeatureFlag: 'campaigns:enabled',\n * };\n * }\n * ```\n */\nexport interface CoreDomainServiceConfig {\n /** Service name for logging and debugging */\n name: string;\n\n /** Runtimes this service can run on */\n runtimes: readonly CoreServiceRuntime[];\n\n /** Feature flag required to use this service (optional) */\n requiresFeatureFlag?: string;\n\n /** App contexts this service is available in (optional, all if not specified) */\n appContexts?: readonly CoreAppContext[];\n}\n","export enum TABLES {\n User = 'users',\n}\n","/**\n * Sort direction for database queries\n */\nexport enum SORT_DIRECTION {\n Asc = 'asc',\n Desc = 'desc',\n}\n\n/**\n * Feature flag database table names enumeration\n */\nexport enum FEATURE_FLAG_TABLE {\n FeatureFlags = 'feature_flags',\n FeatureFlagRules = 'feature_flag_rules',\n FeatureFlagEvaluations = 'feature_flag_evaluations',\n FeatureFlagOverrides = 'feature_flag_overrides',\n}\n\n/**\n * Database field names for feature flags table\n */\nexport enum FEATURE_FLAG_FIELD {\n Key = 'key',\n Name = 'name',\n Value = 'value',\n Type = 'type',\n IsEnabled = 'is_enabled',\n Environments = 'environments',\n Description = 'description',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n}\n\n/**\n * Database field names for feature flag rules table\n */\nexport enum FEATURE_FLAG_RULE_FIELD {\n Id = 'id',\n FlagKey = 'flag_key',\n Name = 'name',\n Conditions = 'conditions',\n Value = 'value',\n Priority = 'priority',\n IsEnabled = 'is_enabled',\n}\n\n/**\n * Feature Flag Provider Types\n */\nexport enum FEATURE_FLAG_PROVIDERS {\n MEMORY = 'memory',\n FILE = 'file',\n REDIS = 'redis',\n API = 'api',\n DATABASE = 'database',\n}\n\n/**\n * Node Environment Types\n */\nexport enum NODE_ENVIRONMENTS {\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n STAGING = 'staging',\n TEST = 'test',\n}\n\n/**\n * Database Field Names\n */\nexport enum DATABASE_FIELDS {\n Key = 'key',\n FlagKey = 'flag_key',\n UserId = 'user_id',\n IsEnabled = 'is_enabled',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n ExpiresAt = 'expires_at',\n EvaluatedAt = 'evaluated_at',\n}\n\n/**\n * System User Constants\n */\nexport enum SYSTEM_USERS {\n SYSTEM = 'system',\n}\n\n/**\n * Evaluation Reasons\n * Must match database enum: evaluation_reason\n * Used when logging feature flag evaluations to audit table\n */\nexport enum EVALUATION_REASONS {\n Default = 'default', // Default flag value used\n RuleMatch = 'rule_match', // Matched a targeting rule\n Rollout = 'rollout', // Matched rollout percentage\n Override = 'override', // User-specific override applied\n Disabled = 'disabled', // Flag is disabled\n}\n\n/**\n * Feature Flag Types\n */\nexport enum FEATURE_FLAG_TYPES {\n BOOLEAN = 'boolean',\n STRING = 'string',\n NUMBER = 'number',\n OBJECT = 'object',\n}\n","/**\n * Default Configuration Values\n */\nexport const FEATURE_FLAG_DEFAULTS = {\n CACHE_TTL: 300,\n REFRESH_INTERVAL: 0,\n POOL_SIZE: 10,\n TIMEOUT: 30000,\n TABLE_NAME: 'feature_flags',\n} as const;\n\n/**\n * Metadata keys used for attaching feature flag information\n * to route handlers via decorators.\n */\nexport const FEATURE_FLAG_METADATA = {\n FLAG_CHECK: 'plyaz:feature_flag_check', // Single feature flag check\n RESOLVE_FLAGS: 'plyaz:resolve_feature_flags', // Multiple flags resolved at once\n};\n","/**\n * Core Event Enums and Constants\n *\n * Type-safe event definitions for the CoreEventManager.\n * All event types follow the pattern: SCOPE:ACTION\n *\n * @example\n * ```typescript\n * import { CoreEventType, CORE_EVENTS } from '@plyaz/types/core';\n *\n * // Use constants for type-safe event emission\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, payload);\n *\n * // Subscribe with typed payloads\n * CoreEventManager.on<EntityCreatedPayload>(CORE_EVENTS.ENTITY.CREATED, handler);\n * ```\n */\n\n// ─────────────────────────────────────────────────────────────────\n// Event Scopes\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Event scope categories\n */\nexport const CoreEventScope = {\n SYSTEM: 'system',\n ENTITY: 'entity',\n VALIDATION: 'validation',\n SANITIZATION: 'sanitization',\n API: 'api',\n CACHE: 'cache',\n AUTH: 'auth',\n DATABASE: 'database',\n FEATURE_FLAG: 'featureFlag',\n STORE: 'store',\n STORAGE: 'storage',\n NOTIFICATION: 'notification',\n} as const;\n\nexport type CoreEventScopeType = (typeof CoreEventScope)[keyof typeof CoreEventScope];\n\n// ─────────────────────────────────────────────────────────────────\n// Event Actions per Scope\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * System event actions\n */\nexport const SystemEventAction = {\n INITIALIZED: 'initialized',\n READY: 'ready',\n SHUTDOWN: 'shutdown',\n ERROR: 'error',\n WARNING: 'warning',\n} as const;\n\n/**\n * Entity CRUD event actions\n */\nexport const EntityEventAction = {\n // Lifecycle (before API call)\n CREATING: 'creating',\n UPDATING: 'updating',\n PATCHING: 'patching',\n DELETING: 'deleting',\n // Completed (after API call)\n CREATED: 'created',\n UPDATED: 'updated',\n PATCHED: 'patched',\n DELETED: 'deleted',\n // Error/Complete\n ERROR: 'error',\n COMPLETE: 'complete',\n // Bulk operations\n BULK_CREATED: 'bulkCreated',\n BULK_DELETED: 'bulkDeleted',\n} as const;\n\n/**\n * Validation event actions\n */\nexport const ValidationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * Sanitization event actions\n */\nexport const SanitizationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * API event actions\n */\nexport const ApiEventAction = {\n REQUEST_START: 'requestStart',\n REQUEST_SUCCESS: 'requestSuccess',\n REQUEST_ERROR: 'requestError',\n RETRY: 'retry',\n TIMEOUT: 'timeout',\n} as const;\n\n/**\n * Cache event actions\n */\nexport const CacheEventAction = {\n HIT: 'hit',\n MISS: 'miss',\n SET: 'set',\n DELETE: 'delete',\n CLEAR: 'clear',\n EXPIRED: 'expired',\n} as const;\n\n/**\n * Auth event actions\n */\nexport const AuthEventAction = {\n LOGIN: 'login',\n LOGOUT: 'logout',\n TOKEN_REFRESH: 'tokenRefresh',\n SESSION_EXPIRED: 'sessionExpired',\n UNAUTHORIZED: 'unauthorized',\n} as const;\n\n/**\n * Database event actions\n */\nexport const DatabaseEventAction = {\n CONNECTED: 'connected',\n DISCONNECTED: 'disconnected',\n QUERY: 'query',\n ERROR: 'error',\n TRANSACTION_START: 'transactionStart',\n TRANSACTION_COMMIT: 'transactionCommit',\n TRANSACTION_ROLLBACK: 'transactionRollback',\n} as const;\n\n/**\n * Feature flag event actions\n */\nexport const FeatureFlagEventAction = {\n CHANGED: 'changed',\n EVALUATED: 'evaluated',\n REFRESHED: 'refreshed',\n} as const;\n\n/**\n * Store event actions\n */\nexport const StoreEventAction = {\n UPDATED: 'updated',\n RESET: 'reset',\n HYDRATED: 'hydrated',\n} as const;\n\n/**\n * Storage event actions (file uploads, downloads, deletions)\n */\nexport const StorageEventAction = {\n UPLOADED: 'uploaded',\n DOWNLOADED: 'downloaded',\n DELETED: 'deleted',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n/**\n * Notification event actions (email, sms, push)\n */\nexport const NotificationEventAction = {\n SENT: 'sent',\n FAILED: 'failed',\n DELIVERED: 'delivered',\n OPENED: 'opened',\n CLICKED: 'clicked',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Full Event Types (scope:action constants)\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * All core event type constants\n *\n * @example\n * ```typescript\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, { entity, storeState });\n * CoreEventManager.on(CORE_EVENTS.API.REQUEST_ERROR, handleApiError);\n * ```\n */\nexport const CORE_EVENTS = {\n SYSTEM: {\n INITIALIZED: `${CoreEventScope.SYSTEM}:${SystemEventAction.INITIALIZED}`,\n READY: `${CoreEventScope.SYSTEM}:${SystemEventAction.READY}`,\n SHUTDOWN: `${CoreEventScope.SYSTEM}:${SystemEventAction.SHUTDOWN}`,\n ERROR: `${CoreEventScope.SYSTEM}:${SystemEventAction.ERROR}`,\n WARNING: `${CoreEventScope.SYSTEM}:${SystemEventAction.WARNING}`,\n },\n ENTITY: {\n CREATING: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATING}`,\n UPDATING: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATING}`,\n PATCHING: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHING}`,\n DELETING: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETING}`,\n CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATED}`,\n UPDATED: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATED}`,\n PATCHED: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHED}`,\n DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETED}`,\n ERROR: `${CoreEventScope.ENTITY}:${EntityEventAction.ERROR}`,\n COMPLETE: `${CoreEventScope.ENTITY}:${EntityEventAction.COMPLETE}`,\n BULK_CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_CREATED}`,\n BULK_DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_DELETED}`,\n },\n VALIDATION: {\n STARTED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.VALIDATION}:${ValidationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.FAILED}`,\n },\n SANITIZATION: {\n STARTED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.FAILED}`,\n },\n API: {\n REQUEST_START: `${CoreEventScope.API}:${ApiEventAction.REQUEST_START}`,\n REQUEST_SUCCESS: `${CoreEventScope.API}:${ApiEventAction.REQUEST_SUCCESS}`,\n REQUEST_ERROR: `${CoreEventScope.API}:${ApiEventAction.REQUEST_ERROR}`,\n RETRY: `${CoreEventScope.API}:${ApiEventAction.RETRY}`,\n TIMEOUT: `${CoreEventScope.API}:${ApiEventAction.TIMEOUT}`,\n },\n CACHE: {\n HIT: `${CoreEventScope.CACHE}:${CacheEventAction.HIT}`,\n MISS: `${CoreEventScope.CACHE}:${CacheEventAction.MISS}`,\n SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,\n DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,\n CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,\n EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,\n },\n AUTH: {\n LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,\n LOGOUT: `${CoreEventScope.AUTH}:${AuthEventAction.LOGOUT}`,\n TOKEN_REFRESH: `${CoreEventScope.AUTH}:${AuthEventAction.TOKEN_REFRESH}`,\n SESSION_EXPIRED: `${CoreEventScope.AUTH}:${AuthEventAction.SESSION_EXPIRED}`,\n UNAUTHORIZED: `${CoreEventScope.AUTH}:${AuthEventAction.UNAUTHORIZED}`,\n },\n DATABASE: {\n CONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.CONNECTED}`,\n DISCONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.DISCONNECTED}`,\n QUERY: `${CoreEventScope.DATABASE}:${DatabaseEventAction.QUERY}`,\n ERROR: `${CoreEventScope.DATABASE}:${DatabaseEventAction.ERROR}`,\n TRANSACTION_START: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_START}`,\n TRANSACTION_COMMIT: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_COMMIT}`,\n TRANSACTION_ROLLBACK: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_ROLLBACK}`,\n },\n FEATURE_FLAG: {\n CHANGED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.CHANGED}`,\n EVALUATED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.EVALUATED}`,\n REFRESHED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.REFRESHED}`,\n },\n STORE: {\n UPDATED: `${CoreEventScope.STORE}:${StoreEventAction.UPDATED}`,\n RESET: `${CoreEventScope.STORE}:${StoreEventAction.RESET}`,\n HYDRATED: `${CoreEventScope.STORE}:${StoreEventAction.HYDRATED}`,\n },\n STORAGE: {\n UPLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.UPLOADED}`,\n DOWNLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.DOWNLOADED}`,\n DELETED: `${CoreEventScope.STORAGE}:${StorageEventAction.DELETED}`,\n ERROR: `${CoreEventScope.STORAGE}:${StorageEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.STORAGE}:${StorageEventAction.HEALTH_CHECK}`,\n },\n NOTIFICATION: {\n SENT: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.SENT}`,\n FAILED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.FAILED}`,\n DELIVERED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.DELIVERED}`,\n OPENED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.OPENED}`,\n CLICKED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.CLICKED}`,\n ERROR: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.HEALTH_CHECK}`,\n },\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Event Type Union\n// ─────────────────────────────────────────────────────────────────\n\n/** All system event types */\nexport type SystemEventType = (typeof CORE_EVENTS.SYSTEM)[keyof typeof CORE_EVENTS.SYSTEM];\n\n/** All entity event types */\nexport type EntityEventType = (typeof CORE_EVENTS.ENTITY)[keyof typeof CORE_EVENTS.ENTITY];\n\n/** All validation event types */\nexport type ValidationEventType =\n (typeof CORE_EVENTS.VALIDATION)[keyof typeof CORE_EVENTS.VALIDATION];\n\n/** All sanitization event types */\nexport type SanitizationEventType =\n (typeof CORE_EVENTS.SANITIZATION)[keyof typeof CORE_EVENTS.SANITIZATION];\n\n/** All API event types */\nexport type ApiEventType = (typeof CORE_EVENTS.API)[keyof typeof CORE_EVENTS.API];\n\n/** All cache event types */\nexport type CacheEventType = (typeof CORE_EVENTS.CACHE)[keyof typeof CORE_EVENTS.CACHE];\n\n/** All auth event types */\nexport type AuthEventType = (typeof CORE_EVENTS.AUTH)[keyof typeof CORE_EVENTS.AUTH];\n\n/** All database event types */\nexport type DatabaseEventType = (typeof CORE_EVENTS.DATABASE)[keyof typeof CORE_EVENTS.DATABASE];\n\n/** All feature flag event types */\nexport type FeatureFlagEventType =\n (typeof CORE_EVENTS.FEATURE_FLAG)[keyof typeof CORE_EVENTS.FEATURE_FLAG];\n\n/** All store event types */\nexport type StoreEventType = (typeof CORE_EVENTS.STORE)[keyof typeof CORE_EVENTS.STORE];\n\n/**\n * Union of all core event types\n */\nexport type CoreEventType =\n | SystemEventType\n | EntityEventType\n | ValidationEventType\n | SanitizationEventType\n | ApiEventType\n | CacheEventType\n | AuthEventType\n | DatabaseEventType\n | FeatureFlagEventType\n | StoreEventType;\n","/**\n * Service Keys Constants\n *\n * Centralized service key constants for service registry and dependency injection.\n * Use these constants instead of string literals for type safety and consistency.\n *\n * @example\n * ```typescript\n * import { SERVICE_KEYS } from '@plyaz/types/core/services';\n *\n * class MyService {\n * static readonly serviceKey = SERVICE_KEYS.EXAMPLE;\n * }\n *\n * // Use in service registry\n * const service = ServiceRegistry.get(SERVICE_KEYS.EXAMPLE);\n * ```\n */\n\n/**\n * Keys for all available domain services.\n * These keys are used for service registration and lookup in the ServiceRegistry.\n */\nexport const SERVICE_KEYS = {\n /** Example domain service (backend) */\n EXAMPLE: 'example',\n /** Example domain service (frontend) */\n EXAMPLE_FRONTEND: 'example-frontend',\n /** Feature flags service */\n FEATURE_FLAGS: 'featureFlags',\n} as const;\n\n/**\n * Type for service keys.\n * Ensures only valid service keys can be used.\n */\nexport type ServiceKey = (typeof SERVICE_KEYS)[keyof typeof SERVICE_KEYS];\n\n/**\n * Array of all service keys for iteration.\n * Useful for validating service configurations or iterating over all services.\n */\nexport const ALL_SERVICE_KEYS = Object.values(SERVICE_KEYS) as ServiceKey[];\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/core/modules.ts","../../src/core/tables/enum.ts","../../src/core/featureFlag/enums.ts","../../src/core/featureFlag/constants.ts","../../src/core/events/enums.ts","../../src/core/services/keys.ts"],"names":["TABLES","SORT_DIRECTION","FEATURE_FLAG_TABLE","FEATURE_FLAG_FIELD","FEATURE_FLAG_RULE_FIELD","FEATURE_FLAG_PROVIDERS","NODE_ENVIRONMENTS","DATABASE_FIELDS","SYSTEM_USERS","EVALUATION_REASONS","FEATURE_FLAG_TYPES"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Core Module System Types\n *\n * Framework-agnostic module interface for @plyaz/core.\n * Modules implement this contract to integrate with Core.\n */\n\nimport type { DatabaseServiceInterface } from '../db/databaseService';\nimport type { HttpMethod } from '../api/config/types';\nimport type {\n Type,\n DynamicModule,\n ForwardReference,\n InjectionToken,\n OptionalFactoryDependency,\n ModuleMetadata,\n} from '@nestjs/common';\n\n// Re-export HttpMethod for convenience\nexport type { HttpMethod };\n\n/**\n * Core services available to modules\n */\nexport interface CoreServices {\n db: DatabaseServiceInterface;\n // api: ApiClientService;\n // cache: CacheService;\n // logger: LoggerService;\n env: Record<string, string | undefined>;\n}\n\n/**\n * Route handler context\n */\nexport interface CoreRouteContext {\n params: Record<string, string>;\n query: Record<string, string | string[]>;\n body: unknown;\n headers: Record<string, string>;\n services: CoreServices;\n}\n\n/**\n * Route handler function\n */\nexport type CoreRouteHandler = (ctx: CoreRouteContext) => Promise<{\n status?: number;\n body?: unknown;\n headers?: Record<string, string>;\n}>;\n\n/**\n * Route definition - framework agnostic\n */\nexport interface CoreRouteDefinition {\n method: HttpMethod;\n path: string;\n handler: CoreRouteHandler;\n middleware?: string[];\n description?: string;\n}\n\n/**\n * Module configuration schema (optional)\n */\nexport interface CoreModuleConfigSchema<T = unknown> {\n parse: (config: unknown) => T;\n safeParse: (config: unknown) => { success: boolean; data?: T; error?: Error };\n}\n\n/**\n * Service factory for creating module services\n */\nexport type CoreServiceFactory<T = unknown> = (\n services: CoreServices,\n config?: unknown\n) => T | Promise<T>;\n\n/**\n * Module lifecycle hooks\n */\nexport interface CoreModuleLifecycle {\n /**\n * Called when module is initialized\n * Use for setup, connections, etc.\n */\n onInit?(services: CoreServices): Promise<void>;\n\n /**\n * Called when module is being destroyed\n * Use for cleanup, closing connections, etc.\n */\n onDestroy?(): Promise<void>;\n\n /**\n * Called when Core is fully initialized (all modules loaded)\n */\n onReady?(services: CoreServices): Promise<void>;\n}\n\n/**\n * Core module definition - framework agnostic contract\n *\n * @example\n * ```typescript\n * const FeatureFlagModule: CoreModuleDefinition = {\n * name: 'featureFlags',\n * version: '1.0.0',\n * dependencies: ['db'],\n *\n * routes: [\n * { method: 'GET', path: '/flags', handler: listFlags },\n * { method: 'GET', path: '/flags/:key', handler: getFlag },\n * ],\n *\n * services: {\n * featureFlagService: (core) => new FeatureFlagService(core.db),\n * },\n *\n * async onInit(services) {\n * // Initialize feature flag provider\n * },\n * };\n * ```\n */\nexport interface CoreModuleDefinition<TConfig = unknown> extends CoreModuleLifecycle {\n /**\n * Unique module name (used for registration and access)\n */\n name: string;\n\n /**\n * Module version\n */\n version?: string;\n\n /**\n * Core services this module depends on\n */\n dependencies?: ('db' | 'api' | 'cache' | 'logger')[];\n\n /**\n * HTTP routes provided by this module\n */\n routes?: CoreRouteDefinition[];\n\n /**\n * Services exposed by this module\n */\n services?: Record<string, CoreServiceFactory>;\n\n /**\n * Configuration schema for validation\n */\n configSchema?: CoreModuleConfigSchema<TConfig>;\n\n /**\n * Default configuration\n */\n defaultConfig?: Partial<TConfig>;\n}\n\n/**\n * Registered module instance (after initialization)\n */\nexport interface CoreRegisteredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n services: Record<string, unknown>;\n initialized: boolean;\n}\n\n/**\n * Module with configuration (result of .forRoot())\n */\nexport interface CoreConfiguredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n}\n\n/**\n * Helper to create a module definition with forRoot pattern\n */\nexport interface CoreModuleFactory<TConfig = unknown> {\n /**\n * Module definition\n */\n definition: CoreModuleDefinition<TConfig>;\n\n /**\n * Configure module with options\n */\n forRoot(config?: Partial<TConfig>): CoreConfiguredModule<TConfig>;\n\n /**\n * Use module with default config\n */\n default: CoreConfiguredModule<TConfig>;\n}\n\n/**\n * Supported HTTP frameworks for server mode\n */\nexport type CoreFrameworkType =\n | 'node' // Plain Node.js http module\n | 'express' // Express.js\n | 'nestjs' // NestJS\n | 'nextjs'; // Next.js API routes (SSR/Edge)\n\n/**\n * Server configuration\n */\nexport interface CoreServerConfig {\n port: number;\n host?: string;\n framework?: CoreFrameworkType;\n prefix?: string; // API prefix like '/api/v1'\n cors?: {\n enabled: boolean;\n origins?: string[];\n };\n}\n\n/**\n * Framework adapter interface\n */\nexport interface CoreFrameworkAdapter {\n /**\n * Framework name\n */\n name: CoreFrameworkType;\n\n /**\n * Register routes from modules\n */\n registerRoutes(\n routes: Array<{ moduleName: string; routes: CoreRouteDefinition[] }>,\n services: CoreServices\n ): void | Promise<void>;\n\n /**\n * Start the server\n */\n start(config: CoreServerConfig): Promise<void>;\n\n /**\n * Stop the server\n */\n stop(): Promise<void>;\n\n /**\n * Get the underlying framework instance (express app, fastify instance, etc.)\n */\n getInstance(): unknown;\n}\n\n/**\n * Adapter factory function\n */\nexport type CoreAdapterFactory = () => CoreFrameworkAdapter;\n\n/**\n * Runtime environment detection\n */\nexport type CoreRuntimeEnvironment =\n | 'node' // Plain Node.js\n | 'nestjs' // NestJS backend\n | 'express' // Express.js\n | 'nuxt' // Nuxt.js (Vue SSR)\n | 'nextjs' // Next.js (React SSR)\n | 'browser' // Browser/SPA\n | 'edge' // Edge runtime (Cloudflare, Vercel Edge)\n | 'deno' // Deno runtime\n | 'bun' // Bun runtime\n | 'unknown';\n\n/**\n * Runtime context type\n */\nexport type CoreRuntimeContext = 'backend' | 'frontend' | 'universal';\n\n/**\n * Backend runtimes - always server-side\n */\nexport const BACKEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'node',\n 'nestjs',\n 'express',\n 'deno',\n 'bun',\n] as const;\n\n/**\n * Frontend runtimes - always client-side\n */\nexport const FRONTEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = ['browser'] as const;\n\n/**\n * Universal runtimes - can be either (SSR)\n */\nexport const UNIVERSAL_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'nextjs',\n 'nuxt',\n 'edge',\n] as const;\n\n// ============================================================================\n// Next.js Handler Types\n// ============================================================================\n\n/**\n * Handler context for Next.js API routes\n * Provides services and parsed request data\n */\nexport interface CoreNextJsHandlerContext {\n /** Database service */\n db: unknown; // DbService - imported dynamically to avoid circular deps\n /** URL parameters (from dynamic routes like [id]) */\n params: Record<string, string>;\n /** Query string parameters */\n query: Record<string, string | string[]>;\n /** Request body (parsed JSON) */\n body: unknown;\n /** Request headers */\n headers: Record<string, string>;\n /** Original Request object */\n request: Request;\n}\n\n/**\n * Handler return type for Next.js API routes\n */\nexport interface CoreNextJsHandlerResult {\n /** Response body (will be JSON serialized) */\n [key: string]: unknown;\n /** HTTP status code (default: 200) */\n status?: number;\n /** Response headers */\n headers?: Record<string, string>;\n}\n\n/**\n * Handler function type for Next.js API routes\n */\nexport type CoreNextJsHandler = (\n ctx: CoreNextJsHandlerContext\n) => Promise<CoreNextJsHandlerResult | Response>;\n\n/**\n * Options for Next.js createHandler\n */\nexport interface CoreNextJsHandlerOptions {\n /** Core initialization options (used on first request) */\n coreOptions?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Core Initialization Types\n// ============================================================================\n\n/**\n * Core environment variables\n */\nexport interface CoreEnvVars {\n DATABASE_URL?: string;\n SUPABASE_URL?: string;\n SUPABASE_SERVICE_ROLE_KEY?: string;\n SUPABASE_ANON_PUBLIC_KEY?: string;\n ENCRYPTION_KEY?: string;\n API_BASE_URL?: string;\n API_TIMEOUT?: string;\n NODE_ENV?: string;\n [key: string]: string | undefined;\n}\n\n/**\n * Application environment type\n */\nexport type CoreAppEnvironment = 'development' | 'staging' | 'production' | 'test';\n\n/**\n * API client initialization options\n * Extends ApiClientOptions with Core-specific settings\n */\nexport interface CoreApiInitOptions {\n /** Environment for API client configuration */\n env?: CoreAppEnvironment;\n /** Set this client as the default */\n setAsDefault?: boolean;\n /** Base URL for API requests */\n baseURL?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n /** Additional options passed to ApiClientService */\n [key: string]: unknown;\n}\n\n/**\n * Core initialization options\n */\nexport interface CoreInitOptions<\n TDbConfig = unknown,\n TApiConfig = CoreApiInitOptions,\n TCacheConfig = unknown,\n TStorageConfig = unknown,\n TNotificationsConfig = unknown,\n> {\n /** Path to .env file */\n envPath?: string;\n /** Global application environment */\n environment?: CoreAppEnvironment;\n /** Application context (webapp, backoffice, mobile, etc.) */\n appContext?: CoreAppContext;\n /** Explicit environment variables */\n env?: CoreEnvVars;\n /** Database configuration */\n db?: TDbConfig;\n /** API client configuration */\n api?: TApiConfig;\n /** Cache configuration */\n cache?: TCacheConfig;\n /** Storage configuration (backend only) */\n storage?: TStorageConfig;\n /** Notifications configuration (backend only) */\n notifications?: TNotificationsConfig;\n /** Skip database initialization */\n skipDb?: boolean;\n /** Skip API client initialization */\n skipApi?: boolean;\n /** Skip cache initialization */\n skipCache?: boolean;\n /** Skip storage initialization */\n skipStorage?: boolean;\n /** Skip notifications initialization */\n skipNotifications?: boolean;\n /** Enable verbose logging */\n verbose?: boolean;\n /**\n * Logger configuration for Core's internal PackageLogger.\n * - 'pino': JSON structured logs (default)\n * - 'console': Human-readable output (for development)\n */\n logger?: {\n transport?: 'pino' | 'console';\n };\n}\n\n/**\n * Core initialization result\n */\nexport interface CoreServicesResult<\n TDb = unknown,\n TApi = unknown,\n TCache = unknown,\n TStorage = unknown,\n TNotifications = unknown,\n> {\n db: TDb | null;\n api: TApi | null;\n cache: TCache | null;\n storage: TStorage | null;\n notifications: TNotifications | null;\n env: CoreEnvVars;\n runtime: CoreRuntimeEnvironment;\n appContext: CoreAppContext;\n}\n\n// ============================================================================\n// NestJS Module Types\n// ============================================================================\n\n/**\n * Core module options for NestJS\n */\nexport interface CoreNestJsModuleOptions {\n /** Path to .env file */\n envPath?: string;\n /** Database configuration */\n db?: Record<string, unknown>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (adapters/nestjs.ts pattern)\n * Uses NestJS-specific types for proper DI integration.\n */\nexport interface CoreNestJsModuleAsyncOptions {\n /** Modules to import for dependency resolution */\n imports?: Array<Type<unknown> | DynamicModule | Promise<DynamicModule> | ForwardReference>;\n /** Tokens to inject into the factory */\n inject?: Array<InjectionToken | OptionalFactoryDependency>;\n /** Factory function to create module options */\n useFactory: (...args: unknown[]) => CoreNestJsModuleOptions | Promise<CoreNestJsModuleOptions>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (init/nestjs pattern)\n * Extends ModuleMetadata for full NestJS integration.\n */\nexport interface CoreNestJsCoreModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {\n /** Factory function to create init options */\n useFactory: (...args: unknown[]) => CoreInitOptions | Promise<CoreInitOptions>;\n /** Tokens to inject into the factory */\n inject?: Array<Type<unknown> | string | symbol>;\n}\n\n// ============================================================================\n// App Context Types\n// ============================================================================\n\n/**\n * Application context type\n *\n * Identifies which type of application is running.\n * Different apps may have different feature flags, API endpoints, or UI behaviors.\n */\nexport type CoreAppContext =\n | 'webapp' // Main web application\n | 'backoffice' // Admin/back-office portal\n | 'mobile' // Mobile apps (React Native, Capacitor, etc.)\n | 'microapp' // Embedded micro frontends\n | 'cli'; // CLI tools\n\n/**\n * App context constants for type-safe comparisons\n */\nexport const APP_CONTEXTS: readonly CoreAppContext[] = [\n 'webapp',\n 'backoffice',\n 'mobile',\n 'microapp',\n 'cli',\n] as const;\n\n// ============================================================================\n// Domain Service Types\n// ============================================================================\n\n/**\n * Service runtime compatibility\n *\n * Declares which runtimes a service can execute on.\n * Services can be restricted to specific runtimes for security\n * (e.g., backend-only services should never be bundled for frontend).\n */\nexport type CoreServiceRuntime =\n | 'frontend' // Browser, React, Vue, etc. (no DB access)\n | 'backend' // Node.js, NestJS, Express (has DB access)\n | 'universal'; // Works everywhere (SSR, Edge)\n\n/**\n * Domain service configuration\n *\n * Declares service metadata including runtime compatibility\n * and feature flag requirements.\n *\n * @example\n * ```typescript\n * class CampaignDomainService {\n * static readonly config: CoreDomainServiceConfig = {\n * name: 'CampaignDomainService',\n * runtimes: ['frontend', 'backend'],\n * requiresFeatureFlag: 'campaigns:enabled',\n * };\n * }\n * ```\n */\nexport interface CoreDomainServiceConfig {\n /** Service name for logging and debugging */\n name: string;\n\n /** Runtimes this service can run on */\n runtimes: readonly CoreServiceRuntime[];\n\n /** Feature flag required to use this service (optional) */\n requiresFeatureFlag?: string;\n\n /** App contexts this service is available in (optional, all if not specified) */\n appContexts?: readonly CoreAppContext[];\n}\n","export enum TABLES {\n User = 'users',\n}\n","/**\n * Sort direction for database queries\n */\nexport enum SORT_DIRECTION {\n Asc = 'asc',\n Desc = 'desc',\n}\n\n/**\n * Feature flag database table names enumeration\n */\nexport enum FEATURE_FLAG_TABLE {\n FeatureFlags = 'feature_flags',\n FeatureFlagRules = 'feature_flag_rules',\n FeatureFlagEvaluations = 'feature_flag_evaluations',\n FeatureFlagOverrides = 'feature_flag_overrides',\n}\n\n/**\n * Database field names for feature flags table\n */\nexport enum FEATURE_FLAG_FIELD {\n Key = 'key',\n Name = 'name',\n Value = 'value',\n Type = 'type',\n IsEnabled = 'is_enabled',\n Environments = 'environments',\n Description = 'description',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n}\n\n/**\n * Database field names for feature flag rules table\n */\nexport enum FEATURE_FLAG_RULE_FIELD {\n Id = 'id',\n FlagKey = 'flag_key',\n Name = 'name',\n Conditions = 'conditions',\n Value = 'value',\n Priority = 'priority',\n IsEnabled = 'is_enabled',\n}\n\n/**\n * Feature Flag Provider Types\n */\nexport enum FEATURE_FLAG_PROVIDERS {\n MEMORY = 'memory',\n FILE = 'file',\n REDIS = 'redis',\n API = 'api',\n DATABASE = 'database',\n}\n\n/**\n * Node Environment Types\n */\nexport enum NODE_ENVIRONMENTS {\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n STAGING = 'staging',\n TEST = 'test',\n}\n\n/**\n * Database Field Names\n */\nexport enum DATABASE_FIELDS {\n Key = 'key',\n FlagKey = 'flag_key',\n UserId = 'user_id',\n IsEnabled = 'is_enabled',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n ExpiresAt = 'expires_at',\n EvaluatedAt = 'evaluated_at',\n}\n\n/**\n * System User Constants\n */\nexport enum SYSTEM_USERS {\n SYSTEM = 'system',\n}\n\n/**\n * Evaluation Reasons\n * Must match database enum: evaluation_reason\n * Used when logging feature flag evaluations to audit table\n */\nexport enum EVALUATION_REASONS {\n Default = 'default', // Default flag value used\n RuleMatch = 'rule_match', // Matched a targeting rule\n Rollout = 'rollout', // Matched rollout percentage\n Override = 'override', // User-specific override applied\n Disabled = 'disabled', // Flag is disabled\n}\n\n/**\n * Feature Flag Types\n */\nexport enum FEATURE_FLAG_TYPES {\n BOOLEAN = 'boolean',\n STRING = 'string',\n NUMBER = 'number',\n OBJECT = 'object',\n}\n","/**\n * Default Configuration Values\n */\nexport const FEATURE_FLAG_DEFAULTS = {\n CACHE_TTL: 300,\n REFRESH_INTERVAL: 0,\n POOL_SIZE: 10,\n TIMEOUT: 30000,\n TABLE_NAME: 'feature_flags',\n} as const;\n\n/**\n * Metadata keys used for attaching feature flag information\n * to route handlers via decorators.\n */\nexport const FEATURE_FLAG_METADATA = {\n FLAG_CHECK: 'plyaz:feature_flag_check', // Single feature flag check\n RESOLVE_FLAGS: 'plyaz:resolve_feature_flags', // Multiple flags resolved at once\n};\n","/**\n * Core Event Enums and Constants\n *\n * Type-safe event definitions for the CoreEventManager.\n * All event types follow the pattern: SCOPE:ACTION\n *\n * @example\n * ```typescript\n * import { CoreEventType, CORE_EVENTS } from '@plyaz/types/core';\n *\n * // Use constants for type-safe event emission\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, payload);\n *\n * // Subscribe with typed payloads\n * CoreEventManager.on<EntityCreatedPayload>(CORE_EVENTS.ENTITY.CREATED, handler);\n * ```\n */\n\n// ─────────────────────────────────────────────────────────────────\n// Event Scopes\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Event scope categories\n */\nexport const CoreEventScope = {\n SYSTEM: 'system',\n ENTITY: 'entity',\n VALIDATION: 'validation',\n SANITIZATION: 'sanitization',\n API: 'api',\n CACHE: 'cache',\n AUTH: 'auth',\n DATABASE: 'database',\n FEATURE_FLAG: 'featureFlag',\n STORE: 'store',\n STORAGE: 'storage',\n NOTIFICATION: 'notification',\n} as const;\n\nexport type CoreEventScopeType = (typeof CoreEventScope)[keyof typeof CoreEventScope];\n\n// ─────────────────────────────────────────────────────────────────\n// Event Actions per Scope\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * System event actions\n */\nexport const SystemEventAction = {\n INITIALIZED: 'initialized',\n READY: 'ready',\n SHUTDOWN: 'shutdown',\n ERROR: 'error',\n WARNING: 'warning',\n} as const;\n\n/**\n * Entity CRUD event actions\n */\nexport const EntityEventAction = {\n // Lifecycle (before API call)\n CREATING: 'creating',\n UPDATING: 'updating',\n PATCHING: 'patching',\n DELETING: 'deleting',\n // Completed (after API call)\n CREATED: 'created',\n UPDATED: 'updated',\n PATCHED: 'patched',\n DELETED: 'deleted',\n // Error/Complete\n ERROR: 'error',\n COMPLETE: 'complete',\n // Bulk operations\n BULK_CREATED: 'bulkCreated',\n BULK_DELETED: 'bulkDeleted',\n} as const;\n\n/**\n * Validation event actions\n */\nexport const ValidationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * Sanitization event actions\n */\nexport const SanitizationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * API event actions\n */\nexport const ApiEventAction = {\n REQUEST_START: 'requestStart',\n REQUEST_SUCCESS: 'requestSuccess',\n REQUEST_ERROR: 'requestError',\n RETRY: 'retry',\n TIMEOUT: 'timeout',\n} as const;\n\n/**\n * Cache event actions\n */\nexport const CacheEventAction = {\n HIT: 'hit',\n MISS: 'miss',\n SET: 'set',\n DELETE: 'delete',\n CLEAR: 'clear',\n EXPIRED: 'expired',\n ERROR: 'error',\n} as const;\n\n/**\n * Auth event actions\n */\nexport const AuthEventAction = {\n LOGIN: 'login',\n LOGOUT: 'logout',\n TOKEN_REFRESH: 'tokenRefresh',\n SESSION_EXPIRED: 'sessionExpired',\n UNAUTHORIZED: 'unauthorized',\n} as const;\n\n/**\n * Database event actions\n */\nexport const DatabaseEventAction = {\n CONNECTED: 'connected',\n DISCONNECTED: 'disconnected',\n QUERY: 'query',\n ERROR: 'error',\n TRANSACTION_START: 'transactionStart',\n TRANSACTION_COMMIT: 'transactionCommit',\n TRANSACTION_ROLLBACK: 'transactionRollback',\n} as const;\n\n/**\n * Feature flag event actions\n */\nexport const FeatureFlagEventAction = {\n CHANGED: 'changed',\n EVALUATED: 'evaluated',\n REFRESHED: 'refreshed',\n} as const;\n\n/**\n * Store event actions\n */\nexport const StoreEventAction = {\n UPDATED: 'updated',\n RESET: 'reset',\n HYDRATED: 'hydrated',\n} as const;\n\n/**\n * Storage event actions (file uploads, downloads, deletions)\n */\nexport const StorageEventAction = {\n UPLOADED: 'uploaded',\n DOWNLOADED: 'downloaded',\n DELETED: 'deleted',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n/**\n * Notification event actions (email, sms, push)\n */\nexport const NotificationEventAction = {\n SENT: 'sent',\n FAILED: 'failed',\n DELIVERED: 'delivered',\n OPENED: 'opened',\n CLICKED: 'clicked',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Full Event Types (scope:action constants)\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * All core event type constants\n *\n * @example\n * ```typescript\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, { entity, storeState });\n * CoreEventManager.on(CORE_EVENTS.API.REQUEST_ERROR, handleApiError);\n * ```\n */\nexport const CORE_EVENTS = {\n SYSTEM: {\n INITIALIZED: `${CoreEventScope.SYSTEM}:${SystemEventAction.INITIALIZED}`,\n READY: `${CoreEventScope.SYSTEM}:${SystemEventAction.READY}`,\n SHUTDOWN: `${CoreEventScope.SYSTEM}:${SystemEventAction.SHUTDOWN}`,\n ERROR: `${CoreEventScope.SYSTEM}:${SystemEventAction.ERROR}`,\n WARNING: `${CoreEventScope.SYSTEM}:${SystemEventAction.WARNING}`,\n },\n ENTITY: {\n CREATING: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATING}`,\n UPDATING: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATING}`,\n PATCHING: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHING}`,\n DELETING: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETING}`,\n CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATED}`,\n UPDATED: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATED}`,\n PATCHED: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHED}`,\n DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETED}`,\n ERROR: `${CoreEventScope.ENTITY}:${EntityEventAction.ERROR}`,\n COMPLETE: `${CoreEventScope.ENTITY}:${EntityEventAction.COMPLETE}`,\n BULK_CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_CREATED}`,\n BULK_DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_DELETED}`,\n },\n VALIDATION: {\n STARTED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.VALIDATION}:${ValidationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.FAILED}`,\n },\n SANITIZATION: {\n STARTED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.FAILED}`,\n },\n API: {\n REQUEST_START: `${CoreEventScope.API}:${ApiEventAction.REQUEST_START}`,\n REQUEST_SUCCESS: `${CoreEventScope.API}:${ApiEventAction.REQUEST_SUCCESS}`,\n REQUEST_ERROR: `${CoreEventScope.API}:${ApiEventAction.REQUEST_ERROR}`,\n RETRY: `${CoreEventScope.API}:${ApiEventAction.RETRY}`,\n TIMEOUT: `${CoreEventScope.API}:${ApiEventAction.TIMEOUT}`,\n },\n CACHE: {\n HIT: `${CoreEventScope.CACHE}:${CacheEventAction.HIT}`,\n MISS: `${CoreEventScope.CACHE}:${CacheEventAction.MISS}`,\n SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,\n DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,\n CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,\n EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,\n ERROR: `${CoreEventScope.CACHE}:${CacheEventAction.ERROR}`,\n },\n AUTH: {\n LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,\n LOGOUT: `${CoreEventScope.AUTH}:${AuthEventAction.LOGOUT}`,\n TOKEN_REFRESH: `${CoreEventScope.AUTH}:${AuthEventAction.TOKEN_REFRESH}`,\n SESSION_EXPIRED: `${CoreEventScope.AUTH}:${AuthEventAction.SESSION_EXPIRED}`,\n UNAUTHORIZED: `${CoreEventScope.AUTH}:${AuthEventAction.UNAUTHORIZED}`,\n },\n DATABASE: {\n CONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.CONNECTED}`,\n DISCONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.DISCONNECTED}`,\n QUERY: `${CoreEventScope.DATABASE}:${DatabaseEventAction.QUERY}`,\n ERROR: `${CoreEventScope.DATABASE}:${DatabaseEventAction.ERROR}`,\n TRANSACTION_START: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_START}`,\n TRANSACTION_COMMIT: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_COMMIT}`,\n TRANSACTION_ROLLBACK: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_ROLLBACK}`,\n },\n FEATURE_FLAG: {\n CHANGED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.CHANGED}`,\n EVALUATED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.EVALUATED}`,\n REFRESHED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.REFRESHED}`,\n },\n STORE: {\n UPDATED: `${CoreEventScope.STORE}:${StoreEventAction.UPDATED}`,\n RESET: `${CoreEventScope.STORE}:${StoreEventAction.RESET}`,\n HYDRATED: `${CoreEventScope.STORE}:${StoreEventAction.HYDRATED}`,\n },\n STORAGE: {\n UPLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.UPLOADED}`,\n DOWNLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.DOWNLOADED}`,\n DELETED: `${CoreEventScope.STORAGE}:${StorageEventAction.DELETED}`,\n ERROR: `${CoreEventScope.STORAGE}:${StorageEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.STORAGE}:${StorageEventAction.HEALTH_CHECK}`,\n },\n NOTIFICATION: {\n SENT: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.SENT}`,\n FAILED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.FAILED}`,\n DELIVERED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.DELIVERED}`,\n OPENED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.OPENED}`,\n CLICKED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.CLICKED}`,\n ERROR: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.HEALTH_CHECK}`,\n },\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Event Type Union\n// ─────────────────────────────────────────────────────────────────\n\n/** All system event types */\nexport type SystemEventType = (typeof CORE_EVENTS.SYSTEM)[keyof typeof CORE_EVENTS.SYSTEM];\n\n/** All entity event types */\nexport type EntityEventType = (typeof CORE_EVENTS.ENTITY)[keyof typeof CORE_EVENTS.ENTITY];\n\n/** All validation event types */\nexport type ValidationEventType =\n (typeof CORE_EVENTS.VALIDATION)[keyof typeof CORE_EVENTS.VALIDATION];\n\n/** All sanitization event types */\nexport type SanitizationEventType =\n (typeof CORE_EVENTS.SANITIZATION)[keyof typeof CORE_EVENTS.SANITIZATION];\n\n/** All API event types */\nexport type ApiEventType = (typeof CORE_EVENTS.API)[keyof typeof CORE_EVENTS.API];\n\n/** All cache event types */\nexport type CacheEventType = (typeof CORE_EVENTS.CACHE)[keyof typeof CORE_EVENTS.CACHE];\n\n/** All auth event types */\nexport type AuthEventType = (typeof CORE_EVENTS.AUTH)[keyof typeof CORE_EVENTS.AUTH];\n\n/** All database event types */\nexport type DatabaseEventType = (typeof CORE_EVENTS.DATABASE)[keyof typeof CORE_EVENTS.DATABASE];\n\n/** All feature flag event types */\nexport type FeatureFlagEventType =\n (typeof CORE_EVENTS.FEATURE_FLAG)[keyof typeof CORE_EVENTS.FEATURE_FLAG];\n\n/** All store event types */\nexport type StoreEventType = (typeof CORE_EVENTS.STORE)[keyof typeof CORE_EVENTS.STORE];\n\n/**\n * Union of all core event types\n */\nexport type CoreEventType =\n | SystemEventType\n | EntityEventType\n | ValidationEventType\n | SanitizationEventType\n | ApiEventType\n | CacheEventType\n | AuthEventType\n | DatabaseEventType\n | FeatureFlagEventType\n | StoreEventType;\n","/**\n * Service Keys Constants\n *\n * Centralized service key constants for service registry and dependency injection.\n * Use these constants instead of string literals for type safety and consistency.\n *\n * @example\n * ```typescript\n * import { SERVICE_KEYS } from '@plyaz/types/core/services';\n *\n * class MyService {\n * static readonly serviceKey = SERVICE_KEYS.EXAMPLE;\n * }\n *\n * // Use in service registry\n * const service = ServiceRegistry.get(SERVICE_KEYS.EXAMPLE);\n * ```\n */\n\n/**\n * Keys for all available domain services.\n * These keys are used for service registration and lookup in the ServiceRegistry.\n */\nexport const SERVICE_KEYS = {\n /** Example domain service (backend) */\n EXAMPLE: 'example',\n /** Example domain service (frontend) */\n EXAMPLE_FRONTEND: 'example-frontend',\n /** Feature flags service */\n FEATURE_FLAGS: 'featureFlags',\n} as const;\n\n/**\n * Type for service keys.\n * Ensures only valid service keys can be used.\n */\nexport type ServiceKey = (typeof SERVICE_KEYS)[keyof typeof SERVICE_KEYS];\n\n/**\n * Array of all service keys for iteration.\n * Useful for validating service configurations or iterating over all services.\n */\nexport const ALL_SERVICE_KEYS = Object.values(SERVICE_KEYS) as ServiceKey[];\n"]}
|
package/dist/core/index.js
CHANGED
|
@@ -187,7 +187,8 @@ var CacheEventAction = {
|
|
|
187
187
|
SET: "set",
|
|
188
188
|
DELETE: "delete",
|
|
189
189
|
CLEAR: "clear",
|
|
190
|
-
EXPIRED: "expired"
|
|
190
|
+
EXPIRED: "expired",
|
|
191
|
+
ERROR: "error"
|
|
191
192
|
};
|
|
192
193
|
var AuthEventAction = {
|
|
193
194
|
LOGIN: "login",
|
|
@@ -276,7 +277,8 @@ var CORE_EVENTS = {
|
|
|
276
277
|
SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,
|
|
277
278
|
DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,
|
|
278
279
|
CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,
|
|
279
|
-
EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}
|
|
280
|
+
EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,
|
|
281
|
+
ERROR: `${CoreEventScope.CACHE}:${CacheEventAction.ERROR}`
|
|
280
282
|
},
|
|
281
283
|
AUTH: {
|
|
282
284
|
LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/modules.ts","../../src/core/tables/enum.ts","../../src/core/featureFlag/enums.ts","../../src/core/featureFlag/constants.ts","../../src/core/events/enums.ts","../../src/core/services/keys.ts"],"names":["TABLES","SORT_DIRECTION","FEATURE_FLAG_TABLE","FEATURE_FLAG_FIELD","FEATURE_FLAG_RULE_FIELD","FEATURE_FLAG_PROVIDERS","NODE_ENVIRONMENTS","DATABASE_FIELDS","SYSTEM_USERS","EVALUATION_REASONS","FEATURE_FLAG_TYPES"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Core Module System Types\n *\n * Framework-agnostic module interface for @plyaz/core.\n * Modules implement this contract to integrate with Core.\n */\n\nimport type { DatabaseServiceInterface } from '../db/databaseService';\nimport type { HttpMethod } from '../api/config/types';\nimport type {\n Type,\n DynamicModule,\n ForwardReference,\n InjectionToken,\n OptionalFactoryDependency,\n ModuleMetadata,\n} from '@nestjs/common';\n\n// Re-export HttpMethod for convenience\nexport type { HttpMethod };\n\n/**\n * Core services available to modules\n */\nexport interface CoreServices {\n db: DatabaseServiceInterface;\n // api: ApiClientService;\n // cache: CacheService;\n // logger: LoggerService;\n env: Record<string, string | undefined>;\n}\n\n/**\n * Route handler context\n */\nexport interface CoreRouteContext {\n params: Record<string, string>;\n query: Record<string, string | string[]>;\n body: unknown;\n headers: Record<string, string>;\n services: CoreServices;\n}\n\n/**\n * Route handler function\n */\nexport type CoreRouteHandler = (ctx: CoreRouteContext) => Promise<{\n status?: number;\n body?: unknown;\n headers?: Record<string, string>;\n}>;\n\n/**\n * Route definition - framework agnostic\n */\nexport interface CoreRouteDefinition {\n method: HttpMethod;\n path: string;\n handler: CoreRouteHandler;\n middleware?: string[];\n description?: string;\n}\n\n/**\n * Module configuration schema (optional)\n */\nexport interface CoreModuleConfigSchema<T = unknown> {\n parse: (config: unknown) => T;\n safeParse: (config: unknown) => { success: boolean; data?: T; error?: Error };\n}\n\n/**\n * Service factory for creating module services\n */\nexport type CoreServiceFactory<T = unknown> = (\n services: CoreServices,\n config?: unknown\n) => T | Promise<T>;\n\n/**\n * Module lifecycle hooks\n */\nexport interface CoreModuleLifecycle {\n /**\n * Called when module is initialized\n * Use for setup, connections, etc.\n */\n onInit?(services: CoreServices): Promise<void>;\n\n /**\n * Called when module is being destroyed\n * Use for cleanup, closing connections, etc.\n */\n onDestroy?(): Promise<void>;\n\n /**\n * Called when Core is fully initialized (all modules loaded)\n */\n onReady?(services: CoreServices): Promise<void>;\n}\n\n/**\n * Core module definition - framework agnostic contract\n *\n * @example\n * ```typescript\n * const FeatureFlagModule: CoreModuleDefinition = {\n * name: 'featureFlags',\n * version: '1.0.0',\n * dependencies: ['db'],\n *\n * routes: [\n * { method: 'GET', path: '/flags', handler: listFlags },\n * { method: 'GET', path: '/flags/:key', handler: getFlag },\n * ],\n *\n * services: {\n * featureFlagService: (core) => new FeatureFlagService(core.db),\n * },\n *\n * async onInit(services) {\n * // Initialize feature flag provider\n * },\n * };\n * ```\n */\nexport interface CoreModuleDefinition<TConfig = unknown> extends CoreModuleLifecycle {\n /**\n * Unique module name (used for registration and access)\n */\n name: string;\n\n /**\n * Module version\n */\n version?: string;\n\n /**\n * Core services this module depends on\n */\n dependencies?: ('db' | 'api' | 'cache' | 'logger')[];\n\n /**\n * HTTP routes provided by this module\n */\n routes?: CoreRouteDefinition[];\n\n /**\n * Services exposed by this module\n */\n services?: Record<string, CoreServiceFactory>;\n\n /**\n * Configuration schema for validation\n */\n configSchema?: CoreModuleConfigSchema<TConfig>;\n\n /**\n * Default configuration\n */\n defaultConfig?: Partial<TConfig>;\n}\n\n/**\n * Registered module instance (after initialization)\n */\nexport interface CoreRegisteredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n services: Record<string, unknown>;\n initialized: boolean;\n}\n\n/**\n * Module with configuration (result of .forRoot())\n */\nexport interface CoreConfiguredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n}\n\n/**\n * Helper to create a module definition with forRoot pattern\n */\nexport interface CoreModuleFactory<TConfig = unknown> {\n /**\n * Module definition\n */\n definition: CoreModuleDefinition<TConfig>;\n\n /**\n * Configure module with options\n */\n forRoot(config?: Partial<TConfig>): CoreConfiguredModule<TConfig>;\n\n /**\n * Use module with default config\n */\n default: CoreConfiguredModule<TConfig>;\n}\n\n/**\n * Supported HTTP frameworks for server mode\n */\nexport type CoreFrameworkType =\n | 'node' // Plain Node.js http module\n | 'express' // Express.js\n | 'nestjs' // NestJS\n | 'nextjs'; // Next.js API routes (SSR/Edge)\n\n/**\n * Server configuration\n */\nexport interface CoreServerConfig {\n port: number;\n host?: string;\n framework?: CoreFrameworkType;\n prefix?: string; // API prefix like '/api/v1'\n cors?: {\n enabled: boolean;\n origins?: string[];\n };\n}\n\n/**\n * Framework adapter interface\n */\nexport interface CoreFrameworkAdapter {\n /**\n * Framework name\n */\n name: CoreFrameworkType;\n\n /**\n * Register routes from modules\n */\n registerRoutes(\n routes: Array<{ moduleName: string; routes: CoreRouteDefinition[] }>,\n services: CoreServices\n ): void | Promise<void>;\n\n /**\n * Start the server\n */\n start(config: CoreServerConfig): Promise<void>;\n\n /**\n * Stop the server\n */\n stop(): Promise<void>;\n\n /**\n * Get the underlying framework instance (express app, fastify instance, etc.)\n */\n getInstance(): unknown;\n}\n\n/**\n * Adapter factory function\n */\nexport type CoreAdapterFactory = () => CoreFrameworkAdapter;\n\n/**\n * Runtime environment detection\n */\nexport type CoreRuntimeEnvironment =\n | 'node' // Plain Node.js\n | 'nestjs' // NestJS backend\n | 'express' // Express.js\n | 'nuxt' // Nuxt.js (Vue SSR)\n | 'nextjs' // Next.js (React SSR)\n | 'browser' // Browser/SPA\n | 'edge' // Edge runtime (Cloudflare, Vercel Edge)\n | 'deno' // Deno runtime\n | 'bun' // Bun runtime\n | 'unknown';\n\n/**\n * Runtime context type\n */\nexport type CoreRuntimeContext = 'backend' | 'frontend' | 'universal';\n\n/**\n * Backend runtimes - always server-side\n */\nexport const BACKEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'node',\n 'nestjs',\n 'express',\n 'deno',\n 'bun',\n] as const;\n\n/**\n * Frontend runtimes - always client-side\n */\nexport const FRONTEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = ['browser'] as const;\n\n/**\n * Universal runtimes - can be either (SSR)\n */\nexport const UNIVERSAL_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'nextjs',\n 'nuxt',\n 'edge',\n] as const;\n\n// ============================================================================\n// Next.js Handler Types\n// ============================================================================\n\n/**\n * Handler context for Next.js API routes\n * Provides services and parsed request data\n */\nexport interface CoreNextJsHandlerContext {\n /** Database service */\n db: unknown; // DbService - imported dynamically to avoid circular deps\n /** URL parameters (from dynamic routes like [id]) */\n params: Record<string, string>;\n /** Query string parameters */\n query: Record<string, string | string[]>;\n /** Request body (parsed JSON) */\n body: unknown;\n /** Request headers */\n headers: Record<string, string>;\n /** Original Request object */\n request: Request;\n}\n\n/**\n * Handler return type for Next.js API routes\n */\nexport interface CoreNextJsHandlerResult {\n /** Response body (will be JSON serialized) */\n [key: string]: unknown;\n /** HTTP status code (default: 200) */\n status?: number;\n /** Response headers */\n headers?: Record<string, string>;\n}\n\n/**\n * Handler function type for Next.js API routes\n */\nexport type CoreNextJsHandler = (\n ctx: CoreNextJsHandlerContext\n) => Promise<CoreNextJsHandlerResult | Response>;\n\n/**\n * Options for Next.js createHandler\n */\nexport interface CoreNextJsHandlerOptions {\n /** Core initialization options (used on first request) */\n coreOptions?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Core Initialization Types\n// ============================================================================\n\n/**\n * Core environment variables\n */\nexport interface CoreEnvVars {\n DATABASE_URL?: string;\n SUPABASE_URL?: string;\n SUPABASE_SERVICE_ROLE_KEY?: string;\n SUPABASE_ANON_PUBLIC_KEY?: string;\n ENCRYPTION_KEY?: string;\n API_BASE_URL?: string;\n API_TIMEOUT?: string;\n NODE_ENV?: string;\n [key: string]: string | undefined;\n}\n\n/**\n * Application environment type\n */\nexport type CoreAppEnvironment = 'development' | 'staging' | 'production' | 'test';\n\n/**\n * API client initialization options\n * Extends ApiClientOptions with Core-specific settings\n */\nexport interface CoreApiInitOptions {\n /** Environment for API client configuration */\n env?: CoreAppEnvironment;\n /** Set this client as the default */\n setAsDefault?: boolean;\n /** Base URL for API requests */\n baseURL?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n /** Additional options passed to ApiClientService */\n [key: string]: unknown;\n}\n\n/**\n * Core initialization options\n */\nexport interface CoreInitOptions<\n TDbConfig = unknown,\n TApiConfig = CoreApiInitOptions,\n TCacheConfig = unknown,\n TStorageConfig = unknown,\n TNotificationsConfig = unknown,\n> {\n /** Path to .env file */\n envPath?: string;\n /** Global application environment */\n environment?: CoreAppEnvironment;\n /** Application context (webapp, backoffice, mobile, etc.) */\n appContext?: CoreAppContext;\n /** Explicit environment variables */\n env?: CoreEnvVars;\n /** Database configuration */\n db?: TDbConfig;\n /** API client configuration */\n api?: TApiConfig;\n /** Cache configuration */\n cache?: TCacheConfig;\n /** Storage configuration (backend only) */\n storage?: TStorageConfig;\n /** Notifications configuration (backend only) */\n notifications?: TNotificationsConfig;\n /** Skip database initialization */\n skipDb?: boolean;\n /** Skip API client initialization */\n skipApi?: boolean;\n /** Skip cache initialization */\n skipCache?: boolean;\n /** Skip storage initialization */\n skipStorage?: boolean;\n /** Skip notifications initialization */\n skipNotifications?: boolean;\n /** Enable verbose logging */\n verbose?: boolean;\n /**\n * Logger configuration for Core's internal PackageLogger.\n * - 'pino': JSON structured logs (default)\n * - 'console': Human-readable output (for development)\n */\n logger?: {\n transport?: 'pino' | 'console';\n };\n}\n\n/**\n * Core initialization result\n */\nexport interface CoreServicesResult<\n TDb = unknown,\n TApi = unknown,\n TCache = unknown,\n TStorage = unknown,\n TNotifications = unknown,\n> {\n db: TDb | null;\n api: TApi | null;\n cache: TCache | null;\n storage: TStorage | null;\n notifications: TNotifications | null;\n env: CoreEnvVars;\n runtime: CoreRuntimeEnvironment;\n appContext: CoreAppContext;\n}\n\n// ============================================================================\n// NestJS Module Types\n// ============================================================================\n\n/**\n * Core module options for NestJS\n */\nexport interface CoreNestJsModuleOptions {\n /** Path to .env file */\n envPath?: string;\n /** Database configuration */\n db?: Record<string, unknown>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (adapters/nestjs.ts pattern)\n * Uses NestJS-specific types for proper DI integration.\n */\nexport interface CoreNestJsModuleAsyncOptions {\n /** Modules to import for dependency resolution */\n imports?: Array<Type<unknown> | DynamicModule | Promise<DynamicModule> | ForwardReference>;\n /** Tokens to inject into the factory */\n inject?: Array<InjectionToken | OptionalFactoryDependency>;\n /** Factory function to create module options */\n useFactory: (...args: unknown[]) => CoreNestJsModuleOptions | Promise<CoreNestJsModuleOptions>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (init/nestjs pattern)\n * Extends ModuleMetadata for full NestJS integration.\n */\nexport interface CoreNestJsCoreModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {\n /** Factory function to create init options */\n useFactory: (...args: unknown[]) => CoreInitOptions | Promise<CoreInitOptions>;\n /** Tokens to inject into the factory */\n inject?: Array<Type<unknown> | string | symbol>;\n}\n\n// ============================================================================\n// App Context Types\n// ============================================================================\n\n/**\n * Application context type\n *\n * Identifies which type of application is running.\n * Different apps may have different feature flags, API endpoints, or UI behaviors.\n */\nexport type CoreAppContext =\n | 'webapp' // Main web application\n | 'backoffice' // Admin/back-office portal\n | 'mobile' // Mobile apps (React Native, Capacitor, etc.)\n | 'microapp' // Embedded micro frontends\n | 'cli'; // CLI tools\n\n/**\n * App context constants for type-safe comparisons\n */\nexport const APP_CONTEXTS: readonly CoreAppContext[] = [\n 'webapp',\n 'backoffice',\n 'mobile',\n 'microapp',\n 'cli',\n] as const;\n\n// ============================================================================\n// Domain Service Types\n// ============================================================================\n\n/**\n * Service runtime compatibility\n *\n * Declares which runtimes a service can execute on.\n * Services can be restricted to specific runtimes for security\n * (e.g., backend-only services should never be bundled for frontend).\n */\nexport type CoreServiceRuntime =\n | 'frontend' // Browser, React, Vue, etc. (no DB access)\n | 'backend' // Node.js, NestJS, Express (has DB access)\n | 'universal'; // Works everywhere (SSR, Edge)\n\n/**\n * Domain service configuration\n *\n * Declares service metadata including runtime compatibility\n * and feature flag requirements.\n *\n * @example\n * ```typescript\n * class CampaignDomainService {\n * static readonly config: CoreDomainServiceConfig = {\n * name: 'CampaignDomainService',\n * runtimes: ['frontend', 'backend'],\n * requiresFeatureFlag: 'campaigns:enabled',\n * };\n * }\n * ```\n */\nexport interface CoreDomainServiceConfig {\n /** Service name for logging and debugging */\n name: string;\n\n /** Runtimes this service can run on */\n runtimes: readonly CoreServiceRuntime[];\n\n /** Feature flag required to use this service (optional) */\n requiresFeatureFlag?: string;\n\n /** App contexts this service is available in (optional, all if not specified) */\n appContexts?: readonly CoreAppContext[];\n}\n","export enum TABLES {\n User = 'users',\n}\n","/**\n * Sort direction for database queries\n */\nexport enum SORT_DIRECTION {\n Asc = 'asc',\n Desc = 'desc',\n}\n\n/**\n * Feature flag database table names enumeration\n */\nexport enum FEATURE_FLAG_TABLE {\n FeatureFlags = 'feature_flags',\n FeatureFlagRules = 'feature_flag_rules',\n FeatureFlagEvaluations = 'feature_flag_evaluations',\n FeatureFlagOverrides = 'feature_flag_overrides',\n}\n\n/**\n * Database field names for feature flags table\n */\nexport enum FEATURE_FLAG_FIELD {\n Key = 'key',\n Name = 'name',\n Value = 'value',\n Type = 'type',\n IsEnabled = 'is_enabled',\n Environments = 'environments',\n Description = 'description',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n}\n\n/**\n * Database field names for feature flag rules table\n */\nexport enum FEATURE_FLAG_RULE_FIELD {\n Id = 'id',\n FlagKey = 'flag_key',\n Name = 'name',\n Conditions = 'conditions',\n Value = 'value',\n Priority = 'priority',\n IsEnabled = 'is_enabled',\n}\n\n/**\n * Feature Flag Provider Types\n */\nexport enum FEATURE_FLAG_PROVIDERS {\n MEMORY = 'memory',\n FILE = 'file',\n REDIS = 'redis',\n API = 'api',\n DATABASE = 'database',\n}\n\n/**\n * Node Environment Types\n */\nexport enum NODE_ENVIRONMENTS {\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n STAGING = 'staging',\n TEST = 'test',\n}\n\n/**\n * Database Field Names\n */\nexport enum DATABASE_FIELDS {\n Key = 'key',\n FlagKey = 'flag_key',\n UserId = 'user_id',\n IsEnabled = 'is_enabled',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n ExpiresAt = 'expires_at',\n EvaluatedAt = 'evaluated_at',\n}\n\n/**\n * System User Constants\n */\nexport enum SYSTEM_USERS {\n SYSTEM = 'system',\n}\n\n/**\n * Evaluation Reasons\n * Must match database enum: evaluation_reason\n * Used when logging feature flag evaluations to audit table\n */\nexport enum EVALUATION_REASONS {\n Default = 'default', // Default flag value used\n RuleMatch = 'rule_match', // Matched a targeting rule\n Rollout = 'rollout', // Matched rollout percentage\n Override = 'override', // User-specific override applied\n Disabled = 'disabled', // Flag is disabled\n}\n\n/**\n * Feature Flag Types\n */\nexport enum FEATURE_FLAG_TYPES {\n BOOLEAN = 'boolean',\n STRING = 'string',\n NUMBER = 'number',\n OBJECT = 'object',\n}\n","/**\n * Default Configuration Values\n */\nexport const FEATURE_FLAG_DEFAULTS = {\n CACHE_TTL: 300,\n REFRESH_INTERVAL: 0,\n POOL_SIZE: 10,\n TIMEOUT: 30000,\n TABLE_NAME: 'feature_flags',\n} as const;\n\n/**\n * Metadata keys used for attaching feature flag information\n * to route handlers via decorators.\n */\nexport const FEATURE_FLAG_METADATA = {\n FLAG_CHECK: 'plyaz:feature_flag_check', // Single feature flag check\n RESOLVE_FLAGS: 'plyaz:resolve_feature_flags', // Multiple flags resolved at once\n};\n","/**\n * Core Event Enums and Constants\n *\n * Type-safe event definitions for the CoreEventManager.\n * All event types follow the pattern: SCOPE:ACTION\n *\n * @example\n * ```typescript\n * import { CoreEventType, CORE_EVENTS } from '@plyaz/types/core';\n *\n * // Use constants for type-safe event emission\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, payload);\n *\n * // Subscribe with typed payloads\n * CoreEventManager.on<EntityCreatedPayload>(CORE_EVENTS.ENTITY.CREATED, handler);\n * ```\n */\n\n// ─────────────────────────────────────────────────────────────────\n// Event Scopes\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Event scope categories\n */\nexport const CoreEventScope = {\n SYSTEM: 'system',\n ENTITY: 'entity',\n VALIDATION: 'validation',\n SANITIZATION: 'sanitization',\n API: 'api',\n CACHE: 'cache',\n AUTH: 'auth',\n DATABASE: 'database',\n FEATURE_FLAG: 'featureFlag',\n STORE: 'store',\n STORAGE: 'storage',\n NOTIFICATION: 'notification',\n} as const;\n\nexport type CoreEventScopeType = (typeof CoreEventScope)[keyof typeof CoreEventScope];\n\n// ─────────────────────────────────────────────────────────────────\n// Event Actions per Scope\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * System event actions\n */\nexport const SystemEventAction = {\n INITIALIZED: 'initialized',\n READY: 'ready',\n SHUTDOWN: 'shutdown',\n ERROR: 'error',\n WARNING: 'warning',\n} as const;\n\n/**\n * Entity CRUD event actions\n */\nexport const EntityEventAction = {\n // Lifecycle (before API call)\n CREATING: 'creating',\n UPDATING: 'updating',\n PATCHING: 'patching',\n DELETING: 'deleting',\n // Completed (after API call)\n CREATED: 'created',\n UPDATED: 'updated',\n PATCHED: 'patched',\n DELETED: 'deleted',\n // Error/Complete\n ERROR: 'error',\n COMPLETE: 'complete',\n // Bulk operations\n BULK_CREATED: 'bulkCreated',\n BULK_DELETED: 'bulkDeleted',\n} as const;\n\n/**\n * Validation event actions\n */\nexport const ValidationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * Sanitization event actions\n */\nexport const SanitizationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * API event actions\n */\nexport const ApiEventAction = {\n REQUEST_START: 'requestStart',\n REQUEST_SUCCESS: 'requestSuccess',\n REQUEST_ERROR: 'requestError',\n RETRY: 'retry',\n TIMEOUT: 'timeout',\n} as const;\n\n/**\n * Cache event actions\n */\nexport const CacheEventAction = {\n HIT: 'hit',\n MISS: 'miss',\n SET: 'set',\n DELETE: 'delete',\n CLEAR: 'clear',\n EXPIRED: 'expired',\n} as const;\n\n/**\n * Auth event actions\n */\nexport const AuthEventAction = {\n LOGIN: 'login',\n LOGOUT: 'logout',\n TOKEN_REFRESH: 'tokenRefresh',\n SESSION_EXPIRED: 'sessionExpired',\n UNAUTHORIZED: 'unauthorized',\n} as const;\n\n/**\n * Database event actions\n */\nexport const DatabaseEventAction = {\n CONNECTED: 'connected',\n DISCONNECTED: 'disconnected',\n QUERY: 'query',\n ERROR: 'error',\n TRANSACTION_START: 'transactionStart',\n TRANSACTION_COMMIT: 'transactionCommit',\n TRANSACTION_ROLLBACK: 'transactionRollback',\n} as const;\n\n/**\n * Feature flag event actions\n */\nexport const FeatureFlagEventAction = {\n CHANGED: 'changed',\n EVALUATED: 'evaluated',\n REFRESHED: 'refreshed',\n} as const;\n\n/**\n * Store event actions\n */\nexport const StoreEventAction = {\n UPDATED: 'updated',\n RESET: 'reset',\n HYDRATED: 'hydrated',\n} as const;\n\n/**\n * Storage event actions (file uploads, downloads, deletions)\n */\nexport const StorageEventAction = {\n UPLOADED: 'uploaded',\n DOWNLOADED: 'downloaded',\n DELETED: 'deleted',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n/**\n * Notification event actions (email, sms, push)\n */\nexport const NotificationEventAction = {\n SENT: 'sent',\n FAILED: 'failed',\n DELIVERED: 'delivered',\n OPENED: 'opened',\n CLICKED: 'clicked',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Full Event Types (scope:action constants)\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * All core event type constants\n *\n * @example\n * ```typescript\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, { entity, storeState });\n * CoreEventManager.on(CORE_EVENTS.API.REQUEST_ERROR, handleApiError);\n * ```\n */\nexport const CORE_EVENTS = {\n SYSTEM: {\n INITIALIZED: `${CoreEventScope.SYSTEM}:${SystemEventAction.INITIALIZED}`,\n READY: `${CoreEventScope.SYSTEM}:${SystemEventAction.READY}`,\n SHUTDOWN: `${CoreEventScope.SYSTEM}:${SystemEventAction.SHUTDOWN}`,\n ERROR: `${CoreEventScope.SYSTEM}:${SystemEventAction.ERROR}`,\n WARNING: `${CoreEventScope.SYSTEM}:${SystemEventAction.WARNING}`,\n },\n ENTITY: {\n CREATING: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATING}`,\n UPDATING: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATING}`,\n PATCHING: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHING}`,\n DELETING: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETING}`,\n CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATED}`,\n UPDATED: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATED}`,\n PATCHED: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHED}`,\n DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETED}`,\n ERROR: `${CoreEventScope.ENTITY}:${EntityEventAction.ERROR}`,\n COMPLETE: `${CoreEventScope.ENTITY}:${EntityEventAction.COMPLETE}`,\n BULK_CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_CREATED}`,\n BULK_DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_DELETED}`,\n },\n VALIDATION: {\n STARTED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.VALIDATION}:${ValidationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.FAILED}`,\n },\n SANITIZATION: {\n STARTED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.FAILED}`,\n },\n API: {\n REQUEST_START: `${CoreEventScope.API}:${ApiEventAction.REQUEST_START}`,\n REQUEST_SUCCESS: `${CoreEventScope.API}:${ApiEventAction.REQUEST_SUCCESS}`,\n REQUEST_ERROR: `${CoreEventScope.API}:${ApiEventAction.REQUEST_ERROR}`,\n RETRY: `${CoreEventScope.API}:${ApiEventAction.RETRY}`,\n TIMEOUT: `${CoreEventScope.API}:${ApiEventAction.TIMEOUT}`,\n },\n CACHE: {\n HIT: `${CoreEventScope.CACHE}:${CacheEventAction.HIT}`,\n MISS: `${CoreEventScope.CACHE}:${CacheEventAction.MISS}`,\n SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,\n DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,\n CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,\n EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,\n },\n AUTH: {\n LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,\n LOGOUT: `${CoreEventScope.AUTH}:${AuthEventAction.LOGOUT}`,\n TOKEN_REFRESH: `${CoreEventScope.AUTH}:${AuthEventAction.TOKEN_REFRESH}`,\n SESSION_EXPIRED: `${CoreEventScope.AUTH}:${AuthEventAction.SESSION_EXPIRED}`,\n UNAUTHORIZED: `${CoreEventScope.AUTH}:${AuthEventAction.UNAUTHORIZED}`,\n },\n DATABASE: {\n CONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.CONNECTED}`,\n DISCONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.DISCONNECTED}`,\n QUERY: `${CoreEventScope.DATABASE}:${DatabaseEventAction.QUERY}`,\n ERROR: `${CoreEventScope.DATABASE}:${DatabaseEventAction.ERROR}`,\n TRANSACTION_START: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_START}`,\n TRANSACTION_COMMIT: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_COMMIT}`,\n TRANSACTION_ROLLBACK: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_ROLLBACK}`,\n },\n FEATURE_FLAG: {\n CHANGED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.CHANGED}`,\n EVALUATED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.EVALUATED}`,\n REFRESHED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.REFRESHED}`,\n },\n STORE: {\n UPDATED: `${CoreEventScope.STORE}:${StoreEventAction.UPDATED}`,\n RESET: `${CoreEventScope.STORE}:${StoreEventAction.RESET}`,\n HYDRATED: `${CoreEventScope.STORE}:${StoreEventAction.HYDRATED}`,\n },\n STORAGE: {\n UPLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.UPLOADED}`,\n DOWNLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.DOWNLOADED}`,\n DELETED: `${CoreEventScope.STORAGE}:${StorageEventAction.DELETED}`,\n ERROR: `${CoreEventScope.STORAGE}:${StorageEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.STORAGE}:${StorageEventAction.HEALTH_CHECK}`,\n },\n NOTIFICATION: {\n SENT: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.SENT}`,\n FAILED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.FAILED}`,\n DELIVERED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.DELIVERED}`,\n OPENED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.OPENED}`,\n CLICKED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.CLICKED}`,\n ERROR: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.HEALTH_CHECK}`,\n },\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Event Type Union\n// ─────────────────────────────────────────────────────────────────\n\n/** All system event types */\nexport type SystemEventType = (typeof CORE_EVENTS.SYSTEM)[keyof typeof CORE_EVENTS.SYSTEM];\n\n/** All entity event types */\nexport type EntityEventType = (typeof CORE_EVENTS.ENTITY)[keyof typeof CORE_EVENTS.ENTITY];\n\n/** All validation event types */\nexport type ValidationEventType =\n (typeof CORE_EVENTS.VALIDATION)[keyof typeof CORE_EVENTS.VALIDATION];\n\n/** All sanitization event types */\nexport type SanitizationEventType =\n (typeof CORE_EVENTS.SANITIZATION)[keyof typeof CORE_EVENTS.SANITIZATION];\n\n/** All API event types */\nexport type ApiEventType = (typeof CORE_EVENTS.API)[keyof typeof CORE_EVENTS.API];\n\n/** All cache event types */\nexport type CacheEventType = (typeof CORE_EVENTS.CACHE)[keyof typeof CORE_EVENTS.CACHE];\n\n/** All auth event types */\nexport type AuthEventType = (typeof CORE_EVENTS.AUTH)[keyof typeof CORE_EVENTS.AUTH];\n\n/** All database event types */\nexport type DatabaseEventType = (typeof CORE_EVENTS.DATABASE)[keyof typeof CORE_EVENTS.DATABASE];\n\n/** All feature flag event types */\nexport type FeatureFlagEventType =\n (typeof CORE_EVENTS.FEATURE_FLAG)[keyof typeof CORE_EVENTS.FEATURE_FLAG];\n\n/** All store event types */\nexport type StoreEventType = (typeof CORE_EVENTS.STORE)[keyof typeof CORE_EVENTS.STORE];\n\n/**\n * Union of all core event types\n */\nexport type CoreEventType =\n | SystemEventType\n | EntityEventType\n | ValidationEventType\n | SanitizationEventType\n | ApiEventType\n | CacheEventType\n | AuthEventType\n | DatabaseEventType\n | FeatureFlagEventType\n | StoreEventType;\n","/**\n * Service Keys Constants\n *\n * Centralized service key constants for service registry and dependency injection.\n * Use these constants instead of string literals for type safety and consistency.\n *\n * @example\n * ```typescript\n * import { SERVICE_KEYS } from '@plyaz/types/core/services';\n *\n * class MyService {\n * static readonly serviceKey = SERVICE_KEYS.EXAMPLE;\n * }\n *\n * // Use in service registry\n * const service = ServiceRegistry.get(SERVICE_KEYS.EXAMPLE);\n * ```\n */\n\n/**\n * Keys for all available domain services.\n * These keys are used for service registration and lookup in the ServiceRegistry.\n */\nexport const SERVICE_KEYS = {\n /** Example domain service (backend) */\n EXAMPLE: 'example',\n /** Example domain service (frontend) */\n EXAMPLE_FRONTEND: 'example-frontend',\n /** Feature flags service */\n FEATURE_FLAGS: 'featureFlags',\n} as const;\n\n/**\n * Type for service keys.\n * Ensures only valid service keys can be used.\n */\nexport type ServiceKey = (typeof SERVICE_KEYS)[keyof typeof SERVICE_KEYS];\n\n/**\n * Array of all service keys for iteration.\n * Useful for validating service configurations or iterating over all services.\n */\nexport const ALL_SERVICE_KEYS = Object.values(SERVICE_KEYS) as ServiceKey[];\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/core/modules.ts","../../src/core/tables/enum.ts","../../src/core/featureFlag/enums.ts","../../src/core/featureFlag/constants.ts","../../src/core/events/enums.ts","../../src/core/services/keys.ts"],"names":["TABLES","SORT_DIRECTION","FEATURE_FLAG_TABLE","FEATURE_FLAG_FIELD","FEATURE_FLAG_RULE_FIELD","FEATURE_FLAG_PROVIDERS","NODE_ENVIRONMENTS","DATABASE_FIELDS","SYSTEM_USERS","EVALUATION_REASONS","FEATURE_FLAG_TYPES"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Core Module System Types\n *\n * Framework-agnostic module interface for @plyaz/core.\n * Modules implement this contract to integrate with Core.\n */\n\nimport type { DatabaseServiceInterface } from '../db/databaseService';\nimport type { HttpMethod } from '../api/config/types';\nimport type {\n Type,\n DynamicModule,\n ForwardReference,\n InjectionToken,\n OptionalFactoryDependency,\n ModuleMetadata,\n} from '@nestjs/common';\n\n// Re-export HttpMethod for convenience\nexport type { HttpMethod };\n\n/**\n * Core services available to modules\n */\nexport interface CoreServices {\n db: DatabaseServiceInterface;\n // api: ApiClientService;\n // cache: CacheService;\n // logger: LoggerService;\n env: Record<string, string | undefined>;\n}\n\n/**\n * Route handler context\n */\nexport interface CoreRouteContext {\n params: Record<string, string>;\n query: Record<string, string | string[]>;\n body: unknown;\n headers: Record<string, string>;\n services: CoreServices;\n}\n\n/**\n * Route handler function\n */\nexport type CoreRouteHandler = (ctx: CoreRouteContext) => Promise<{\n status?: number;\n body?: unknown;\n headers?: Record<string, string>;\n}>;\n\n/**\n * Route definition - framework agnostic\n */\nexport interface CoreRouteDefinition {\n method: HttpMethod;\n path: string;\n handler: CoreRouteHandler;\n middleware?: string[];\n description?: string;\n}\n\n/**\n * Module configuration schema (optional)\n */\nexport interface CoreModuleConfigSchema<T = unknown> {\n parse: (config: unknown) => T;\n safeParse: (config: unknown) => { success: boolean; data?: T; error?: Error };\n}\n\n/**\n * Service factory for creating module services\n */\nexport type CoreServiceFactory<T = unknown> = (\n services: CoreServices,\n config?: unknown\n) => T | Promise<T>;\n\n/**\n * Module lifecycle hooks\n */\nexport interface CoreModuleLifecycle {\n /**\n * Called when module is initialized\n * Use for setup, connections, etc.\n */\n onInit?(services: CoreServices): Promise<void>;\n\n /**\n * Called when module is being destroyed\n * Use for cleanup, closing connections, etc.\n */\n onDestroy?(): Promise<void>;\n\n /**\n * Called when Core is fully initialized (all modules loaded)\n */\n onReady?(services: CoreServices): Promise<void>;\n}\n\n/**\n * Core module definition - framework agnostic contract\n *\n * @example\n * ```typescript\n * const FeatureFlagModule: CoreModuleDefinition = {\n * name: 'featureFlags',\n * version: '1.0.0',\n * dependencies: ['db'],\n *\n * routes: [\n * { method: 'GET', path: '/flags', handler: listFlags },\n * { method: 'GET', path: '/flags/:key', handler: getFlag },\n * ],\n *\n * services: {\n * featureFlagService: (core) => new FeatureFlagService(core.db),\n * },\n *\n * async onInit(services) {\n * // Initialize feature flag provider\n * },\n * };\n * ```\n */\nexport interface CoreModuleDefinition<TConfig = unknown> extends CoreModuleLifecycle {\n /**\n * Unique module name (used for registration and access)\n */\n name: string;\n\n /**\n * Module version\n */\n version?: string;\n\n /**\n * Core services this module depends on\n */\n dependencies?: ('db' | 'api' | 'cache' | 'logger')[];\n\n /**\n * HTTP routes provided by this module\n */\n routes?: CoreRouteDefinition[];\n\n /**\n * Services exposed by this module\n */\n services?: Record<string, CoreServiceFactory>;\n\n /**\n * Configuration schema for validation\n */\n configSchema?: CoreModuleConfigSchema<TConfig>;\n\n /**\n * Default configuration\n */\n defaultConfig?: Partial<TConfig>;\n}\n\n/**\n * Registered module instance (after initialization)\n */\nexport interface CoreRegisteredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n services: Record<string, unknown>;\n initialized: boolean;\n}\n\n/**\n * Module with configuration (result of .forRoot())\n */\nexport interface CoreConfiguredModule<TConfig = unknown> {\n definition: CoreModuleDefinition<TConfig>;\n config: TConfig;\n}\n\n/**\n * Helper to create a module definition with forRoot pattern\n */\nexport interface CoreModuleFactory<TConfig = unknown> {\n /**\n * Module definition\n */\n definition: CoreModuleDefinition<TConfig>;\n\n /**\n * Configure module with options\n */\n forRoot(config?: Partial<TConfig>): CoreConfiguredModule<TConfig>;\n\n /**\n * Use module with default config\n */\n default: CoreConfiguredModule<TConfig>;\n}\n\n/**\n * Supported HTTP frameworks for server mode\n */\nexport type CoreFrameworkType =\n | 'node' // Plain Node.js http module\n | 'express' // Express.js\n | 'nestjs' // NestJS\n | 'nextjs'; // Next.js API routes (SSR/Edge)\n\n/**\n * Server configuration\n */\nexport interface CoreServerConfig {\n port: number;\n host?: string;\n framework?: CoreFrameworkType;\n prefix?: string; // API prefix like '/api/v1'\n cors?: {\n enabled: boolean;\n origins?: string[];\n };\n}\n\n/**\n * Framework adapter interface\n */\nexport interface CoreFrameworkAdapter {\n /**\n * Framework name\n */\n name: CoreFrameworkType;\n\n /**\n * Register routes from modules\n */\n registerRoutes(\n routes: Array<{ moduleName: string; routes: CoreRouteDefinition[] }>,\n services: CoreServices\n ): void | Promise<void>;\n\n /**\n * Start the server\n */\n start(config: CoreServerConfig): Promise<void>;\n\n /**\n * Stop the server\n */\n stop(): Promise<void>;\n\n /**\n * Get the underlying framework instance (express app, fastify instance, etc.)\n */\n getInstance(): unknown;\n}\n\n/**\n * Adapter factory function\n */\nexport type CoreAdapterFactory = () => CoreFrameworkAdapter;\n\n/**\n * Runtime environment detection\n */\nexport type CoreRuntimeEnvironment =\n | 'node' // Plain Node.js\n | 'nestjs' // NestJS backend\n | 'express' // Express.js\n | 'nuxt' // Nuxt.js (Vue SSR)\n | 'nextjs' // Next.js (React SSR)\n | 'browser' // Browser/SPA\n | 'edge' // Edge runtime (Cloudflare, Vercel Edge)\n | 'deno' // Deno runtime\n | 'bun' // Bun runtime\n | 'unknown';\n\n/**\n * Runtime context type\n */\nexport type CoreRuntimeContext = 'backend' | 'frontend' | 'universal';\n\n/**\n * Backend runtimes - always server-side\n */\nexport const BACKEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'node',\n 'nestjs',\n 'express',\n 'deno',\n 'bun',\n] as const;\n\n/**\n * Frontend runtimes - always client-side\n */\nexport const FRONTEND_RUNTIMES: readonly CoreRuntimeEnvironment[] = ['browser'] as const;\n\n/**\n * Universal runtimes - can be either (SSR)\n */\nexport const UNIVERSAL_RUNTIMES: readonly CoreRuntimeEnvironment[] = [\n 'nextjs',\n 'nuxt',\n 'edge',\n] as const;\n\n// ============================================================================\n// Next.js Handler Types\n// ============================================================================\n\n/**\n * Handler context for Next.js API routes\n * Provides services and parsed request data\n */\nexport interface CoreNextJsHandlerContext {\n /** Database service */\n db: unknown; // DbService - imported dynamically to avoid circular deps\n /** URL parameters (from dynamic routes like [id]) */\n params: Record<string, string>;\n /** Query string parameters */\n query: Record<string, string | string[]>;\n /** Request body (parsed JSON) */\n body: unknown;\n /** Request headers */\n headers: Record<string, string>;\n /** Original Request object */\n request: Request;\n}\n\n/**\n * Handler return type for Next.js API routes\n */\nexport interface CoreNextJsHandlerResult {\n /** Response body (will be JSON serialized) */\n [key: string]: unknown;\n /** HTTP status code (default: 200) */\n status?: number;\n /** Response headers */\n headers?: Record<string, string>;\n}\n\n/**\n * Handler function type for Next.js API routes\n */\nexport type CoreNextJsHandler = (\n ctx: CoreNextJsHandlerContext\n) => Promise<CoreNextJsHandlerResult | Response>;\n\n/**\n * Options for Next.js createHandler\n */\nexport interface CoreNextJsHandlerOptions {\n /** Core initialization options (used on first request) */\n coreOptions?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Core Initialization Types\n// ============================================================================\n\n/**\n * Core environment variables\n */\nexport interface CoreEnvVars {\n DATABASE_URL?: string;\n SUPABASE_URL?: string;\n SUPABASE_SERVICE_ROLE_KEY?: string;\n SUPABASE_ANON_PUBLIC_KEY?: string;\n ENCRYPTION_KEY?: string;\n API_BASE_URL?: string;\n API_TIMEOUT?: string;\n NODE_ENV?: string;\n [key: string]: string | undefined;\n}\n\n/**\n * Application environment type\n */\nexport type CoreAppEnvironment = 'development' | 'staging' | 'production' | 'test';\n\n/**\n * API client initialization options\n * Extends ApiClientOptions with Core-specific settings\n */\nexport interface CoreApiInitOptions {\n /** Environment for API client configuration */\n env?: CoreAppEnvironment;\n /** Set this client as the default */\n setAsDefault?: boolean;\n /** Base URL for API requests */\n baseURL?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n /** Additional options passed to ApiClientService */\n [key: string]: unknown;\n}\n\n/**\n * Core initialization options\n */\nexport interface CoreInitOptions<\n TDbConfig = unknown,\n TApiConfig = CoreApiInitOptions,\n TCacheConfig = unknown,\n TStorageConfig = unknown,\n TNotificationsConfig = unknown,\n> {\n /** Path to .env file */\n envPath?: string;\n /** Global application environment */\n environment?: CoreAppEnvironment;\n /** Application context (webapp, backoffice, mobile, etc.) */\n appContext?: CoreAppContext;\n /** Explicit environment variables */\n env?: CoreEnvVars;\n /** Database configuration */\n db?: TDbConfig;\n /** API client configuration */\n api?: TApiConfig;\n /** Cache configuration */\n cache?: TCacheConfig;\n /** Storage configuration (backend only) */\n storage?: TStorageConfig;\n /** Notifications configuration (backend only) */\n notifications?: TNotificationsConfig;\n /** Skip database initialization */\n skipDb?: boolean;\n /** Skip API client initialization */\n skipApi?: boolean;\n /** Skip cache initialization */\n skipCache?: boolean;\n /** Skip storage initialization */\n skipStorage?: boolean;\n /** Skip notifications initialization */\n skipNotifications?: boolean;\n /** Enable verbose logging */\n verbose?: boolean;\n /**\n * Logger configuration for Core's internal PackageLogger.\n * - 'pino': JSON structured logs (default)\n * - 'console': Human-readable output (for development)\n */\n logger?: {\n transport?: 'pino' | 'console';\n };\n}\n\n/**\n * Core initialization result\n */\nexport interface CoreServicesResult<\n TDb = unknown,\n TApi = unknown,\n TCache = unknown,\n TStorage = unknown,\n TNotifications = unknown,\n> {\n db: TDb | null;\n api: TApi | null;\n cache: TCache | null;\n storage: TStorage | null;\n notifications: TNotifications | null;\n env: CoreEnvVars;\n runtime: CoreRuntimeEnvironment;\n appContext: CoreAppContext;\n}\n\n// ============================================================================\n// NestJS Module Types\n// ============================================================================\n\n/**\n * Core module options for NestJS\n */\nexport interface CoreNestJsModuleOptions {\n /** Path to .env file */\n envPath?: string;\n /** Database configuration */\n db?: Record<string, unknown>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (adapters/nestjs.ts pattern)\n * Uses NestJS-specific types for proper DI integration.\n */\nexport interface CoreNestJsModuleAsyncOptions {\n /** Modules to import for dependency resolution */\n imports?: Array<Type<unknown> | DynamicModule | Promise<DynamicModule> | ForwardReference>;\n /** Tokens to inject into the factory */\n inject?: Array<InjectionToken | OptionalFactoryDependency>;\n /** Factory function to create module options */\n useFactory: (...args: unknown[]) => CoreNestJsModuleOptions | Promise<CoreNestJsModuleOptions>;\n /** Whether to make Core services globally available */\n isGlobal?: boolean;\n}\n\n/**\n * Async options for NestJS CoreModule (init/nestjs pattern)\n * Extends ModuleMetadata for full NestJS integration.\n */\nexport interface CoreNestJsCoreModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {\n /** Factory function to create init options */\n useFactory: (...args: unknown[]) => CoreInitOptions | Promise<CoreInitOptions>;\n /** Tokens to inject into the factory */\n inject?: Array<Type<unknown> | string | symbol>;\n}\n\n// ============================================================================\n// App Context Types\n// ============================================================================\n\n/**\n * Application context type\n *\n * Identifies which type of application is running.\n * Different apps may have different feature flags, API endpoints, or UI behaviors.\n */\nexport type CoreAppContext =\n | 'webapp' // Main web application\n | 'backoffice' // Admin/back-office portal\n | 'mobile' // Mobile apps (React Native, Capacitor, etc.)\n | 'microapp' // Embedded micro frontends\n | 'cli'; // CLI tools\n\n/**\n * App context constants for type-safe comparisons\n */\nexport const APP_CONTEXTS: readonly CoreAppContext[] = [\n 'webapp',\n 'backoffice',\n 'mobile',\n 'microapp',\n 'cli',\n] as const;\n\n// ============================================================================\n// Domain Service Types\n// ============================================================================\n\n/**\n * Service runtime compatibility\n *\n * Declares which runtimes a service can execute on.\n * Services can be restricted to specific runtimes for security\n * (e.g., backend-only services should never be bundled for frontend).\n */\nexport type CoreServiceRuntime =\n | 'frontend' // Browser, React, Vue, etc. (no DB access)\n | 'backend' // Node.js, NestJS, Express (has DB access)\n | 'universal'; // Works everywhere (SSR, Edge)\n\n/**\n * Domain service configuration\n *\n * Declares service metadata including runtime compatibility\n * and feature flag requirements.\n *\n * @example\n * ```typescript\n * class CampaignDomainService {\n * static readonly config: CoreDomainServiceConfig = {\n * name: 'CampaignDomainService',\n * runtimes: ['frontend', 'backend'],\n * requiresFeatureFlag: 'campaigns:enabled',\n * };\n * }\n * ```\n */\nexport interface CoreDomainServiceConfig {\n /** Service name for logging and debugging */\n name: string;\n\n /** Runtimes this service can run on */\n runtimes: readonly CoreServiceRuntime[];\n\n /** Feature flag required to use this service (optional) */\n requiresFeatureFlag?: string;\n\n /** App contexts this service is available in (optional, all if not specified) */\n appContexts?: readonly CoreAppContext[];\n}\n","export enum TABLES {\n User = 'users',\n}\n","/**\n * Sort direction for database queries\n */\nexport enum SORT_DIRECTION {\n Asc = 'asc',\n Desc = 'desc',\n}\n\n/**\n * Feature flag database table names enumeration\n */\nexport enum FEATURE_FLAG_TABLE {\n FeatureFlags = 'feature_flags',\n FeatureFlagRules = 'feature_flag_rules',\n FeatureFlagEvaluations = 'feature_flag_evaluations',\n FeatureFlagOverrides = 'feature_flag_overrides',\n}\n\n/**\n * Database field names for feature flags table\n */\nexport enum FEATURE_FLAG_FIELD {\n Key = 'key',\n Name = 'name',\n Value = 'value',\n Type = 'type',\n IsEnabled = 'is_enabled',\n Environments = 'environments',\n Description = 'description',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n}\n\n/**\n * Database field names for feature flag rules table\n */\nexport enum FEATURE_FLAG_RULE_FIELD {\n Id = 'id',\n FlagKey = 'flag_key',\n Name = 'name',\n Conditions = 'conditions',\n Value = 'value',\n Priority = 'priority',\n IsEnabled = 'is_enabled',\n}\n\n/**\n * Feature Flag Provider Types\n */\nexport enum FEATURE_FLAG_PROVIDERS {\n MEMORY = 'memory',\n FILE = 'file',\n REDIS = 'redis',\n API = 'api',\n DATABASE = 'database',\n}\n\n/**\n * Node Environment Types\n */\nexport enum NODE_ENVIRONMENTS {\n DEVELOPMENT = 'development',\n PRODUCTION = 'production',\n STAGING = 'staging',\n TEST = 'test',\n}\n\n/**\n * Database Field Names\n */\nexport enum DATABASE_FIELDS {\n Key = 'key',\n FlagKey = 'flag_key',\n UserId = 'user_id',\n IsEnabled = 'is_enabled',\n CreatedAt = 'created_at',\n UpdatedAt = 'updated_at',\n ExpiresAt = 'expires_at',\n EvaluatedAt = 'evaluated_at',\n}\n\n/**\n * System User Constants\n */\nexport enum SYSTEM_USERS {\n SYSTEM = 'system',\n}\n\n/**\n * Evaluation Reasons\n * Must match database enum: evaluation_reason\n * Used when logging feature flag evaluations to audit table\n */\nexport enum EVALUATION_REASONS {\n Default = 'default', // Default flag value used\n RuleMatch = 'rule_match', // Matched a targeting rule\n Rollout = 'rollout', // Matched rollout percentage\n Override = 'override', // User-specific override applied\n Disabled = 'disabled', // Flag is disabled\n}\n\n/**\n * Feature Flag Types\n */\nexport enum FEATURE_FLAG_TYPES {\n BOOLEAN = 'boolean',\n STRING = 'string',\n NUMBER = 'number',\n OBJECT = 'object',\n}\n","/**\n * Default Configuration Values\n */\nexport const FEATURE_FLAG_DEFAULTS = {\n CACHE_TTL: 300,\n REFRESH_INTERVAL: 0,\n POOL_SIZE: 10,\n TIMEOUT: 30000,\n TABLE_NAME: 'feature_flags',\n} as const;\n\n/**\n * Metadata keys used for attaching feature flag information\n * to route handlers via decorators.\n */\nexport const FEATURE_FLAG_METADATA = {\n FLAG_CHECK: 'plyaz:feature_flag_check', // Single feature flag check\n RESOLVE_FLAGS: 'plyaz:resolve_feature_flags', // Multiple flags resolved at once\n};\n","/**\n * Core Event Enums and Constants\n *\n * Type-safe event definitions for the CoreEventManager.\n * All event types follow the pattern: SCOPE:ACTION\n *\n * @example\n * ```typescript\n * import { CoreEventType, CORE_EVENTS } from '@plyaz/types/core';\n *\n * // Use constants for type-safe event emission\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, payload);\n *\n * // Subscribe with typed payloads\n * CoreEventManager.on<EntityCreatedPayload>(CORE_EVENTS.ENTITY.CREATED, handler);\n * ```\n */\n\n// ─────────────────────────────────────────────────────────────────\n// Event Scopes\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Event scope categories\n */\nexport const CoreEventScope = {\n SYSTEM: 'system',\n ENTITY: 'entity',\n VALIDATION: 'validation',\n SANITIZATION: 'sanitization',\n API: 'api',\n CACHE: 'cache',\n AUTH: 'auth',\n DATABASE: 'database',\n FEATURE_FLAG: 'featureFlag',\n STORE: 'store',\n STORAGE: 'storage',\n NOTIFICATION: 'notification',\n} as const;\n\nexport type CoreEventScopeType = (typeof CoreEventScope)[keyof typeof CoreEventScope];\n\n// ─────────────────────────────────────────────────────────────────\n// Event Actions per Scope\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * System event actions\n */\nexport const SystemEventAction = {\n INITIALIZED: 'initialized',\n READY: 'ready',\n SHUTDOWN: 'shutdown',\n ERROR: 'error',\n WARNING: 'warning',\n} as const;\n\n/**\n * Entity CRUD event actions\n */\nexport const EntityEventAction = {\n // Lifecycle (before API call)\n CREATING: 'creating',\n UPDATING: 'updating',\n PATCHING: 'patching',\n DELETING: 'deleting',\n // Completed (after API call)\n CREATED: 'created',\n UPDATED: 'updated',\n PATCHED: 'patched',\n DELETED: 'deleted',\n // Error/Complete\n ERROR: 'error',\n COMPLETE: 'complete',\n // Bulk operations\n BULK_CREATED: 'bulkCreated',\n BULK_DELETED: 'bulkDeleted',\n} as const;\n\n/**\n * Validation event actions\n */\nexport const ValidationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * Sanitization event actions\n */\nexport const SanitizationEventAction = {\n STARTED: 'started',\n SUCCESS: 'success',\n FAILED: 'failed',\n} as const;\n\n/**\n * API event actions\n */\nexport const ApiEventAction = {\n REQUEST_START: 'requestStart',\n REQUEST_SUCCESS: 'requestSuccess',\n REQUEST_ERROR: 'requestError',\n RETRY: 'retry',\n TIMEOUT: 'timeout',\n} as const;\n\n/**\n * Cache event actions\n */\nexport const CacheEventAction = {\n HIT: 'hit',\n MISS: 'miss',\n SET: 'set',\n DELETE: 'delete',\n CLEAR: 'clear',\n EXPIRED: 'expired',\n ERROR: 'error',\n} as const;\n\n/**\n * Auth event actions\n */\nexport const AuthEventAction = {\n LOGIN: 'login',\n LOGOUT: 'logout',\n TOKEN_REFRESH: 'tokenRefresh',\n SESSION_EXPIRED: 'sessionExpired',\n UNAUTHORIZED: 'unauthorized',\n} as const;\n\n/**\n * Database event actions\n */\nexport const DatabaseEventAction = {\n CONNECTED: 'connected',\n DISCONNECTED: 'disconnected',\n QUERY: 'query',\n ERROR: 'error',\n TRANSACTION_START: 'transactionStart',\n TRANSACTION_COMMIT: 'transactionCommit',\n TRANSACTION_ROLLBACK: 'transactionRollback',\n} as const;\n\n/**\n * Feature flag event actions\n */\nexport const FeatureFlagEventAction = {\n CHANGED: 'changed',\n EVALUATED: 'evaluated',\n REFRESHED: 'refreshed',\n} as const;\n\n/**\n * Store event actions\n */\nexport const StoreEventAction = {\n UPDATED: 'updated',\n RESET: 'reset',\n HYDRATED: 'hydrated',\n} as const;\n\n/**\n * Storage event actions (file uploads, downloads, deletions)\n */\nexport const StorageEventAction = {\n UPLOADED: 'uploaded',\n DOWNLOADED: 'downloaded',\n DELETED: 'deleted',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n/**\n * Notification event actions (email, sms, push)\n */\nexport const NotificationEventAction = {\n SENT: 'sent',\n FAILED: 'failed',\n DELIVERED: 'delivered',\n OPENED: 'opened',\n CLICKED: 'clicked',\n ERROR: 'error',\n HEALTH_CHECK: 'healthCheck',\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Full Event Types (scope:action constants)\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * All core event type constants\n *\n * @example\n * ```typescript\n * CoreEventManager.emit(CORE_EVENTS.ENTITY.CREATED, { entity, storeState });\n * CoreEventManager.on(CORE_EVENTS.API.REQUEST_ERROR, handleApiError);\n * ```\n */\nexport const CORE_EVENTS = {\n SYSTEM: {\n INITIALIZED: `${CoreEventScope.SYSTEM}:${SystemEventAction.INITIALIZED}`,\n READY: `${CoreEventScope.SYSTEM}:${SystemEventAction.READY}`,\n SHUTDOWN: `${CoreEventScope.SYSTEM}:${SystemEventAction.SHUTDOWN}`,\n ERROR: `${CoreEventScope.SYSTEM}:${SystemEventAction.ERROR}`,\n WARNING: `${CoreEventScope.SYSTEM}:${SystemEventAction.WARNING}`,\n },\n ENTITY: {\n CREATING: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATING}`,\n UPDATING: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATING}`,\n PATCHING: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHING}`,\n DELETING: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETING}`,\n CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.CREATED}`,\n UPDATED: `${CoreEventScope.ENTITY}:${EntityEventAction.UPDATED}`,\n PATCHED: `${CoreEventScope.ENTITY}:${EntityEventAction.PATCHED}`,\n DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.DELETED}`,\n ERROR: `${CoreEventScope.ENTITY}:${EntityEventAction.ERROR}`,\n COMPLETE: `${CoreEventScope.ENTITY}:${EntityEventAction.COMPLETE}`,\n BULK_CREATED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_CREATED}`,\n BULK_DELETED: `${CoreEventScope.ENTITY}:${EntityEventAction.BULK_DELETED}`,\n },\n VALIDATION: {\n STARTED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.VALIDATION}:${ValidationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.VALIDATION}:${ValidationEventAction.FAILED}`,\n },\n SANITIZATION: {\n STARTED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.STARTED}`,\n SUCCESS: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.SUCCESS}`,\n FAILED: `${CoreEventScope.SANITIZATION}:${SanitizationEventAction.FAILED}`,\n },\n API: {\n REQUEST_START: `${CoreEventScope.API}:${ApiEventAction.REQUEST_START}`,\n REQUEST_SUCCESS: `${CoreEventScope.API}:${ApiEventAction.REQUEST_SUCCESS}`,\n REQUEST_ERROR: `${CoreEventScope.API}:${ApiEventAction.REQUEST_ERROR}`,\n RETRY: `${CoreEventScope.API}:${ApiEventAction.RETRY}`,\n TIMEOUT: `${CoreEventScope.API}:${ApiEventAction.TIMEOUT}`,\n },\n CACHE: {\n HIT: `${CoreEventScope.CACHE}:${CacheEventAction.HIT}`,\n MISS: `${CoreEventScope.CACHE}:${CacheEventAction.MISS}`,\n SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,\n DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,\n CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,\n EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,\n ERROR: `${CoreEventScope.CACHE}:${CacheEventAction.ERROR}`,\n },\n AUTH: {\n LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,\n LOGOUT: `${CoreEventScope.AUTH}:${AuthEventAction.LOGOUT}`,\n TOKEN_REFRESH: `${CoreEventScope.AUTH}:${AuthEventAction.TOKEN_REFRESH}`,\n SESSION_EXPIRED: `${CoreEventScope.AUTH}:${AuthEventAction.SESSION_EXPIRED}`,\n UNAUTHORIZED: `${CoreEventScope.AUTH}:${AuthEventAction.UNAUTHORIZED}`,\n },\n DATABASE: {\n CONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.CONNECTED}`,\n DISCONNECTED: `${CoreEventScope.DATABASE}:${DatabaseEventAction.DISCONNECTED}`,\n QUERY: `${CoreEventScope.DATABASE}:${DatabaseEventAction.QUERY}`,\n ERROR: `${CoreEventScope.DATABASE}:${DatabaseEventAction.ERROR}`,\n TRANSACTION_START: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_START}`,\n TRANSACTION_COMMIT: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_COMMIT}`,\n TRANSACTION_ROLLBACK: `${CoreEventScope.DATABASE}:${DatabaseEventAction.TRANSACTION_ROLLBACK}`,\n },\n FEATURE_FLAG: {\n CHANGED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.CHANGED}`,\n EVALUATED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.EVALUATED}`,\n REFRESHED: `${CoreEventScope.FEATURE_FLAG}:${FeatureFlagEventAction.REFRESHED}`,\n },\n STORE: {\n UPDATED: `${CoreEventScope.STORE}:${StoreEventAction.UPDATED}`,\n RESET: `${CoreEventScope.STORE}:${StoreEventAction.RESET}`,\n HYDRATED: `${CoreEventScope.STORE}:${StoreEventAction.HYDRATED}`,\n },\n STORAGE: {\n UPLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.UPLOADED}`,\n DOWNLOADED: `${CoreEventScope.STORAGE}:${StorageEventAction.DOWNLOADED}`,\n DELETED: `${CoreEventScope.STORAGE}:${StorageEventAction.DELETED}`,\n ERROR: `${CoreEventScope.STORAGE}:${StorageEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.STORAGE}:${StorageEventAction.HEALTH_CHECK}`,\n },\n NOTIFICATION: {\n SENT: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.SENT}`,\n FAILED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.FAILED}`,\n DELIVERED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.DELIVERED}`,\n OPENED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.OPENED}`,\n CLICKED: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.CLICKED}`,\n ERROR: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.ERROR}`,\n HEALTH_CHECK: `${CoreEventScope.NOTIFICATION}:${NotificationEventAction.HEALTH_CHECK}`,\n },\n} as const;\n\n// ─────────────────────────────────────────────────────────────────\n// Event Type Union\n// ─────────────────────────────────────────────────────────────────\n\n/** All system event types */\nexport type SystemEventType = (typeof CORE_EVENTS.SYSTEM)[keyof typeof CORE_EVENTS.SYSTEM];\n\n/** All entity event types */\nexport type EntityEventType = (typeof CORE_EVENTS.ENTITY)[keyof typeof CORE_EVENTS.ENTITY];\n\n/** All validation event types */\nexport type ValidationEventType =\n (typeof CORE_EVENTS.VALIDATION)[keyof typeof CORE_EVENTS.VALIDATION];\n\n/** All sanitization event types */\nexport type SanitizationEventType =\n (typeof CORE_EVENTS.SANITIZATION)[keyof typeof CORE_EVENTS.SANITIZATION];\n\n/** All API event types */\nexport type ApiEventType = (typeof CORE_EVENTS.API)[keyof typeof CORE_EVENTS.API];\n\n/** All cache event types */\nexport type CacheEventType = (typeof CORE_EVENTS.CACHE)[keyof typeof CORE_EVENTS.CACHE];\n\n/** All auth event types */\nexport type AuthEventType = (typeof CORE_EVENTS.AUTH)[keyof typeof CORE_EVENTS.AUTH];\n\n/** All database event types */\nexport type DatabaseEventType = (typeof CORE_EVENTS.DATABASE)[keyof typeof CORE_EVENTS.DATABASE];\n\n/** All feature flag event types */\nexport type FeatureFlagEventType =\n (typeof CORE_EVENTS.FEATURE_FLAG)[keyof typeof CORE_EVENTS.FEATURE_FLAG];\n\n/** All store event types */\nexport type StoreEventType = (typeof CORE_EVENTS.STORE)[keyof typeof CORE_EVENTS.STORE];\n\n/**\n * Union of all core event types\n */\nexport type CoreEventType =\n | SystemEventType\n | EntityEventType\n | ValidationEventType\n | SanitizationEventType\n | ApiEventType\n | CacheEventType\n | AuthEventType\n | DatabaseEventType\n | FeatureFlagEventType\n | StoreEventType;\n","/**\n * Service Keys Constants\n *\n * Centralized service key constants for service registry and dependency injection.\n * Use these constants instead of string literals for type safety and consistency.\n *\n * @example\n * ```typescript\n * import { SERVICE_KEYS } from '@plyaz/types/core/services';\n *\n * class MyService {\n * static readonly serviceKey = SERVICE_KEYS.EXAMPLE;\n * }\n *\n * // Use in service registry\n * const service = ServiceRegistry.get(SERVICE_KEYS.EXAMPLE);\n * ```\n */\n\n/**\n * Keys for all available domain services.\n * These keys are used for service registration and lookup in the ServiceRegistry.\n */\nexport const SERVICE_KEYS = {\n /** Example domain service (backend) */\n EXAMPLE: 'example',\n /** Example domain service (frontend) */\n EXAMPLE_FRONTEND: 'example-frontend',\n /** Feature flags service */\n FEATURE_FLAGS: 'featureFlags',\n} as const;\n\n/**\n * Type for service keys.\n * Ensures only valid service keys can be used.\n */\nexport type ServiceKey = (typeof SERVICE_KEYS)[keyof typeof SERVICE_KEYS];\n\n/**\n * Array of all service keys for iteration.\n * Useful for validating service configurations or iterating over all services.\n */\nexport const ALL_SERVICE_KEYS = Object.values(SERVICE_KEYS) as ServiceKey[];\n"]}
|
|
@@ -592,6 +592,13 @@ export type CoreExtractServiceInstance<T> = T extends CoreInitializableDomainSer
|
|
|
592
592
|
export interface CoreFeatureFlagInitConfig {
|
|
593
593
|
/** Whether to enable feature flags (default: true) */
|
|
594
594
|
enabled?: boolean;
|
|
595
|
+
/**
|
|
596
|
+
* Provider type for feature flags
|
|
597
|
+
* - 'memory': Flags stored in memory only (no API calls, for testing/local)
|
|
598
|
+
* - 'api': Flags fetched from API endpoint (for production)
|
|
599
|
+
* @default 'api'
|
|
600
|
+
*/
|
|
601
|
+
provider?: 'memory' | 'api';
|
|
595
602
|
/** Default flag values */
|
|
596
603
|
defaults?: Record<string, FeatureFlagValue>;
|
|
597
604
|
/** Polling configuration */
|
package/dist/index.cjs
CHANGED
|
@@ -6328,7 +6328,8 @@ var CacheEventAction = {
|
|
|
6328
6328
|
SET: "set",
|
|
6329
6329
|
DELETE: "delete",
|
|
6330
6330
|
CLEAR: "clear",
|
|
6331
|
-
EXPIRED: "expired"
|
|
6331
|
+
EXPIRED: "expired",
|
|
6332
|
+
ERROR: "error"
|
|
6332
6333
|
};
|
|
6333
6334
|
var AuthEventAction = {
|
|
6334
6335
|
LOGIN: "login",
|
|
@@ -6417,7 +6418,8 @@ var CORE_EVENTS = {
|
|
|
6417
6418
|
SET: `${CoreEventScope.CACHE}:${CacheEventAction.SET}`,
|
|
6418
6419
|
DELETE: `${CoreEventScope.CACHE}:${CacheEventAction.DELETE}`,
|
|
6419
6420
|
CLEAR: `${CoreEventScope.CACHE}:${CacheEventAction.CLEAR}`,
|
|
6420
|
-
EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}
|
|
6421
|
+
EXPIRED: `${CoreEventScope.CACHE}:${CacheEventAction.EXPIRED}`,
|
|
6422
|
+
ERROR: `${CoreEventScope.CACHE}:${CacheEventAction.ERROR}`
|
|
6421
6423
|
},
|
|
6422
6424
|
AUTH: {
|
|
6423
6425
|
LOGIN: `${CoreEventScope.AUTH}:${AuthEventAction.LOGIN}`,
|