@plyaz/core 1.2.0 → 1.2.1

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.
Files changed (238) hide show
  1. package/dist/adapters/index.d.ts +16 -0
  2. package/dist/adapters/index.d.ts.map +1 -0
  3. package/dist/adapters/nestjs.d.ts +79 -0
  4. package/dist/adapters/nestjs.d.ts.map +1 -0
  5. package/dist/adapters/nextjs.d.ts +28 -0
  6. package/dist/adapters/nextjs.d.ts.map +1 -0
  7. package/dist/backend/example/example.controller.d.ts +121 -0
  8. package/dist/backend/example/example.controller.d.ts.map +1 -0
  9. package/dist/backend/example/example.module.d.ts +29 -0
  10. package/dist/backend/example/example.module.d.ts.map +1 -0
  11. package/dist/backend/example/index.d.ts +8 -0
  12. package/dist/backend/example/index.d.ts.map +1 -0
  13. package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts +150 -0
  14. package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts.map +1 -0
  15. package/dist/backend/featureFlags/config/feature-flag.config.d.ts +28 -50
  16. package/dist/backend/featureFlags/config/feature-flag.config.d.ts.map +1 -1
  17. package/dist/backend/featureFlags/config/validation.d.ts +6 -6
  18. package/dist/backend/featureFlags/config/validation.d.ts.map +1 -1
  19. package/dist/backend/featureFlags/feature-flag.controller.d.ts +14 -55
  20. package/dist/backend/featureFlags/feature-flag.controller.d.ts.map +1 -1
  21. package/dist/backend/featureFlags/feature-flag.module.d.ts +36 -43
  22. package/dist/backend/featureFlags/feature-flag.module.d.ts.map +1 -1
  23. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts +16 -2
  24. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts.map +1 -1
  25. package/dist/backend/featureFlags/index.d.ts +6 -7
  26. package/dist/backend/featureFlags/index.d.ts.map +1 -1
  27. package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts.map +1 -1
  28. package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts.map +1 -1
  29. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts +6 -11
  30. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts.map +1 -1
  31. package/dist/backend/index.d.ts +5 -0
  32. package/dist/backend/index.d.ts.map +1 -1
  33. package/dist/base/cache/CacheKeyBuilder.d.ts +115 -0
  34. package/dist/base/cache/CacheKeyBuilder.d.ts.map +1 -0
  35. package/dist/base/cache/index.d.ts +1 -0
  36. package/dist/base/cache/index.d.ts.map +1 -1
  37. package/dist/base/cache/strategies/redis.d.ts.map +1 -1
  38. package/dist/base/observability/BaseAdapter.d.ts +79 -0
  39. package/dist/base/observability/BaseAdapter.d.ts.map +1 -0
  40. package/dist/base/observability/CompositeAdapter.d.ts +72 -0
  41. package/dist/base/observability/CompositeAdapter.d.ts.map +1 -0
  42. package/dist/base/observability/DatadogAdapter.d.ts +117 -0
  43. package/dist/base/observability/DatadogAdapter.d.ts.map +1 -0
  44. package/dist/base/observability/LoggerAdapter.d.ts +54 -0
  45. package/dist/base/observability/LoggerAdapter.d.ts.map +1 -0
  46. package/dist/base/observability/ObservabilityService.d.ts +160 -0
  47. package/dist/base/observability/ObservabilityService.d.ts.map +1 -0
  48. package/dist/base/observability/index.d.ts +17 -0
  49. package/dist/base/observability/index.d.ts.map +1 -0
  50. package/dist/domain/base/BaseBackendDomainService.d.ts +528 -0
  51. package/dist/domain/base/BaseBackendDomainService.d.ts.map +1 -0
  52. package/dist/domain/base/BaseDomainService.d.ts +284 -0
  53. package/dist/domain/base/BaseDomainService.d.ts.map +1 -0
  54. package/dist/domain/base/BaseFrontendDomainService.d.ts +493 -0
  55. package/dist/domain/base/BaseFrontendDomainService.d.ts.map +1 -0
  56. package/dist/domain/base/BaseMapper.d.ts +100 -0
  57. package/dist/domain/base/BaseMapper.d.ts.map +1 -0
  58. package/dist/domain/base/BaseValidator.d.ts +105 -0
  59. package/dist/domain/base/BaseValidator.d.ts.map +1 -0
  60. package/dist/domain/base/index.d.ts +10 -0
  61. package/dist/domain/base/index.d.ts.map +1 -0
  62. package/dist/domain/example/BackendExampleDomainService.d.ts +257 -0
  63. package/dist/domain/example/BackendExampleDomainService.d.ts.map +1 -0
  64. package/dist/domain/example/FrontendExampleDomainService.d.ts +164 -0
  65. package/dist/domain/example/FrontendExampleDomainService.d.ts.map +1 -0
  66. package/dist/domain/example/index.d.ts +10 -0
  67. package/dist/domain/example/index.d.ts.map +1 -0
  68. package/dist/domain/example/mappers/ExampleMapper.d.ts +67 -0
  69. package/dist/domain/example/mappers/ExampleMapper.d.ts.map +1 -0
  70. package/dist/domain/example/validators/ExampleValidator.d.ts +33 -0
  71. package/dist/domain/example/validators/ExampleValidator.d.ts.map +1 -0
  72. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts +86 -0
  73. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts.map +1 -0
  74. package/dist/domain/featureFlags/index.d.ts +10 -5
  75. package/dist/domain/featureFlags/index.d.ts.map +1 -1
  76. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts +72 -0
  77. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts.map +1 -0
  78. package/dist/domain/featureFlags/mappers/index.d.ts +8 -0
  79. package/dist/domain/featureFlags/mappers/index.d.ts.map +1 -0
  80. package/dist/domain/featureFlags/module.d.ts +20 -0
  81. package/dist/domain/featureFlags/module.d.ts.map +1 -0
  82. package/dist/domain/featureFlags/provider.d.ts +40 -1
  83. package/dist/domain/featureFlags/provider.d.ts.map +1 -1
  84. package/dist/domain/featureFlags/providers/api.d.ts +59 -34
  85. package/dist/domain/featureFlags/providers/api.d.ts.map +1 -1
  86. package/dist/domain/featureFlags/providers/database.d.ts +48 -46
  87. package/dist/domain/featureFlags/providers/database.d.ts.map +1 -1
  88. package/dist/domain/featureFlags/providers/factory.d.ts +50 -33
  89. package/dist/domain/featureFlags/providers/factory.d.ts.map +1 -1
  90. package/dist/domain/featureFlags/providers/file.d.ts +48 -1
  91. package/dist/domain/featureFlags/providers/file.d.ts.map +1 -1
  92. package/dist/domain/featureFlags/providers/memory.d.ts +32 -6
  93. package/dist/domain/featureFlags/providers/memory.d.ts.map +1 -1
  94. package/dist/domain/featureFlags/providers/redis.d.ts +6 -1
  95. package/dist/domain/featureFlags/providers/redis.d.ts.map +1 -1
  96. package/dist/domain/featureFlags/service.d.ts +112 -0
  97. package/dist/domain/featureFlags/service.d.ts.map +1 -0
  98. package/dist/domain/index.d.ts +2 -0
  99. package/dist/domain/index.d.ts.map +1 -1
  100. package/dist/engine/featureFlags/engine.d.ts +8 -0
  101. package/dist/engine/featureFlags/engine.d.ts.map +1 -1
  102. package/dist/entry-backend.d.ts +24 -0
  103. package/dist/entry-backend.d.ts.map +1 -0
  104. package/dist/entry-backend.js +15635 -0
  105. package/dist/entry-backend.js.map +1 -0
  106. package/dist/entry-backend.mjs +15506 -0
  107. package/dist/entry-backend.mjs.map +1 -0
  108. package/dist/entry-frontend.d.ts +23 -0
  109. package/dist/entry-frontend.d.ts.map +1 -0
  110. package/dist/entry-frontend.js +11152 -0
  111. package/dist/entry-frontend.js.map +1 -0
  112. package/dist/entry-frontend.mjs +11089 -0
  113. package/dist/entry-frontend.mjs.map +1 -0
  114. package/dist/events/CoreEventManager.d.ts +116 -0
  115. package/dist/events/CoreEventManager.d.ts.map +1 -0
  116. package/dist/events/index.d.ts +27 -0
  117. package/dist/events/index.d.ts.map +1 -0
  118. package/dist/frontend/base/index.d.ts +8 -0
  119. package/dist/frontend/base/index.d.ts.map +1 -0
  120. package/dist/frontend/components/InitializationError.d.ts +25 -0
  121. package/dist/frontend/components/InitializationError.d.ts.map +1 -0
  122. package/dist/frontend/components/InitializationLoading.d.ts +22 -0
  123. package/dist/frontend/components/InitializationLoading.d.ts.map +1 -0
  124. package/dist/frontend/components/index.d.ts +9 -0
  125. package/dist/frontend/components/index.d.ts.map +1 -0
  126. package/dist/frontend/example/index.d.ts +9 -0
  127. package/dist/frontend/example/index.d.ts.map +1 -0
  128. package/dist/frontend/featureFlags/index.d.ts +28 -7
  129. package/dist/frontend/featureFlags/index.d.ts.map +1 -1
  130. package/dist/frontend/index.d.ts +4 -0
  131. package/dist/frontend/index.d.ts.map +1 -1
  132. package/dist/frontend/providers/ApiProvider.d.ts +2 -2
  133. package/dist/frontend/providers/ApiProvider.d.ts.map +1 -1
  134. package/dist/frontend/providers/PlyazProvider.d.ts +305 -0
  135. package/dist/frontend/providers/PlyazProvider.d.ts.map +1 -0
  136. package/dist/frontend/providers/index.d.ts +1 -0
  137. package/dist/frontend/providers/index.d.ts.map +1 -1
  138. package/dist/frontend/store/feature-flags.d.ts +63 -0
  139. package/dist/frontend/store/feature-flags.d.ts.map +1 -0
  140. package/dist/frontend/store/index.d.ts +14 -0
  141. package/dist/frontend/store/index.d.ts.map +1 -0
  142. package/dist/frontend/store/integrations.d.ts +36 -0
  143. package/dist/frontend/store/integrations.d.ts.map +1 -0
  144. package/dist/frontend/store/service-accessors.d.ts +78 -0
  145. package/dist/frontend/store/service-accessors.d.ts.map +1 -0
  146. package/dist/index.d.ts +5 -2
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +15450 -0
  149. package/dist/index.js.map +1 -0
  150. package/dist/index.mjs +13678 -4697
  151. package/dist/index.mjs.map +1 -1
  152. package/dist/init/CoreInitializer.d.ts +582 -0
  153. package/dist/init/CoreInitializer.d.ts.map +1 -0
  154. package/dist/init/ServiceRegistry.d.ts +256 -0
  155. package/dist/init/ServiceRegistry.d.ts.map +1 -0
  156. package/dist/init/index.d.ts +14 -0
  157. package/dist/init/index.d.ts.map +1 -0
  158. package/dist/init/nestjs/CoreModule.d.ts +63 -0
  159. package/dist/init/nestjs/CoreModule.d.ts.map +1 -0
  160. package/dist/init/nestjs/index.d.ts +5 -0
  161. package/dist/init/nestjs/index.d.ts.map +1 -0
  162. package/dist/init/nestjs/index.js +9059 -0
  163. package/dist/init/nestjs/index.js.map +1 -0
  164. package/dist/init/nestjs/index.mjs +9055 -0
  165. package/dist/init/nestjs/index.mjs.map +1 -0
  166. package/dist/init/react.d.ts +33 -0
  167. package/dist/init/react.d.ts.map +1 -0
  168. package/dist/models/example/ExampleRepository.d.ts +124 -0
  169. package/dist/models/example/ExampleRepository.d.ts.map +1 -0
  170. package/dist/models/example/index.d.ts +7 -0
  171. package/dist/models/example/index.d.ts.map +1 -0
  172. package/dist/{backend/featureFlags/database/repository.d.ts → models/featureFlags/FeatureFlagRepository.d.ts} +47 -5
  173. package/dist/models/featureFlags/FeatureFlagRepository.d.ts.map +1 -0
  174. package/dist/models/featureFlags/index.d.ts +7 -0
  175. package/dist/models/featureFlags/index.d.ts.map +1 -0
  176. package/dist/models/index.d.ts +9 -0
  177. package/dist/models/index.d.ts.map +1 -0
  178. package/dist/services/ApiClientService.d.ts +92 -4
  179. package/dist/services/ApiClientService.d.ts.map +1 -1
  180. package/dist/services/CacheService.d.ts +176 -0
  181. package/dist/services/CacheService.d.ts.map +1 -0
  182. package/dist/services/DbService.d.ts +391 -0
  183. package/dist/services/DbService.d.ts.map +1 -0
  184. package/dist/services/NotificationService.d.ts +151 -0
  185. package/dist/services/NotificationService.d.ts.map +1 -0
  186. package/dist/services/StorageService.d.ts +144 -0
  187. package/dist/services/StorageService.d.ts.map +1 -0
  188. package/dist/services/index.d.ts +4 -0
  189. package/dist/services/index.d.ts.map +1 -1
  190. package/dist/utils/common/id.d.ts +83 -0
  191. package/dist/utils/common/id.d.ts.map +1 -0
  192. package/dist/utils/common/index.d.ts +2 -0
  193. package/dist/utils/common/index.d.ts.map +1 -1
  194. package/dist/utils/common/object.d.ts +70 -0
  195. package/dist/utils/common/object.d.ts.map +1 -0
  196. package/dist/utils/featureFlags/conditions.d.ts.map +1 -1
  197. package/dist/utils/featureFlags/context.d.ts +0 -1
  198. package/dist/utils/featureFlags/context.d.ts.map +1 -1
  199. package/dist/utils/index.d.ts +1 -0
  200. package/dist/utils/index.d.ts.map +1 -1
  201. package/dist/utils/mapperUtils.d.ts +38 -0
  202. package/dist/utils/mapperUtils.d.ts.map +1 -0
  203. package/dist/utils/runtime.d.ts +15 -0
  204. package/dist/utils/runtime.d.ts.map +1 -0
  205. package/dist/version.d.ts +24 -0
  206. package/dist/version.d.ts.map +1 -0
  207. package/dist/web_app/auth/add_user.d.ts +2 -2
  208. package/dist/web_app/auth/add_user.d.ts.map +1 -1
  209. package/dist/web_app/auth/update_user.d.ts +1 -1
  210. package/dist/web_app/auth/update_user.d.ts.map +1 -1
  211. package/package.json +89 -15
  212. package/dist/backend/featureFlags/database/connection.d.ts +0 -321
  213. package/dist/backend/featureFlags/database/connection.d.ts.map +0 -1
  214. package/dist/backend/featureFlags/database/repository.d.ts.map +0 -1
  215. package/dist/backend/featureFlags/feature-flag.repository.d.ts +0 -85
  216. package/dist/backend/featureFlags/feature-flag.repository.d.ts.map +0 -1
  217. package/dist/backend/featureFlags/feature-flag.service.d.ts +0 -264
  218. package/dist/backend/featureFlags/feature-flag.service.d.ts.map +0 -1
  219. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts +0 -103
  220. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts.map +0 -1
  221. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts +0 -35
  222. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts.map +0 -1
  223. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts +0 -55
  224. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts.map +0 -1
  225. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts +0 -57
  226. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts.map +0 -1
  227. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts +0 -99
  228. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts.map +0 -1
  229. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts +0 -31
  230. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts.map +0 -1
  231. package/dist/frontend/featureFlags/providers/types.d.ts +0 -21
  232. package/dist/frontend/featureFlags/providers/types.d.ts.map +0 -1
  233. package/dist/index.cjs +0 -6435
  234. package/dist/index.cjs.map +0 -1
  235. package/dist/utils/db/databaseService.d.ts +0 -6
  236. package/dist/utils/db/databaseService.d.ts.map +0 -1
  237. package/dist/utils/db/index.d.ts +0 -2
  238. package/dist/utils/db/index.d.ts.map +0 -1
@@ -0,0 +1,33 @@
1
+ /**
2
+ * React Integration for ServiceRegistry
3
+ *
4
+ * For full React integration, use PlyazProvider directly.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * import { PlyazProvider, useService } from '@plyaz/core/frontend';
9
+ *
10
+ * function App() {
11
+ * return (
12
+ * <PlyazProvider
13
+ * config={{
14
+ * api: { baseURL: '/api' },
15
+ * services: [
16
+ * { service: FeatureFlagDomainService, config: { enabled: true } },
17
+ * { service: ExampleDomainService, config: { enabled: true } },
18
+ * ],
19
+ * }}
20
+ * >
21
+ * <MyApp />
22
+ * </PlyazProvider>
23
+ * );
24
+ * }
25
+ *
26
+ * function MyComponent() {
27
+ * const flagService = useService<FeatureFlagDomainService>('featureFlags');
28
+ * // ...
29
+ * }
30
+ * ```
31
+ */
32
+ export { PlyazProvider, usePlyaz, useApi, useApiSafe, useEvents, useFlag, useFeatureFlags, usePlyazReady, useAppContext, useEnvironment, useService, useServiceAsync, useHasService, useServiceKeys, PlyazContext, } from '../frontend/providers/PlyazProvider';
33
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/init/react.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EACL,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Example Repository
3
+ *
4
+ * Data access layer for Example entities.
5
+ * Extends BaseRepository from @plyaz/db for consistent CRUD operations.
6
+ * Falls back to in-memory dummy data when DbService is not initialized.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // With DbService initialized
11
+ * const db = DbService.getInstance().getDatabase();
12
+ * const repository = new ExampleRepository(db);
13
+ *
14
+ * // Get all entities
15
+ * const result = await repository.findMany();
16
+ * if (result.success) {
17
+ * console.log('Entities:', result.value.data);
18
+ * }
19
+ *
20
+ * // Get by ID
21
+ * const entity = await repository.findById('123');
22
+ * ```
23
+ */
24
+ import { BaseRepository } from '@plyaz/db';
25
+ import type { DatabaseResult, PaginatedResult, QueryOptions, DatabaseServiceInterface, OperationConfig } from '@plyaz/types/db';
26
+ /**
27
+ * Database row type for Example entity (snake_case for DB)
28
+ */
29
+ export interface ExampleDatabaseRow {
30
+ id: string;
31
+ name: string;
32
+ description: string | null;
33
+ amount: number;
34
+ owner_id: string;
35
+ status: string;
36
+ is_visible: boolean;
37
+ created_at: string;
38
+ updated_at: string;
39
+ deleted_at?: string | null;
40
+ [key: string]: unknown;
41
+ }
42
+ /**
43
+ * Create input for Example entity
44
+ */
45
+ export type ExampleCreateInput = Omit<ExampleDatabaseRow, 'id' | 'created_at' | 'updated_at' | 'deleted_at'>;
46
+ /**
47
+ * Update input for Example entity
48
+ */
49
+ export type ExampleUpdateInput = Partial<Omit<ExampleDatabaseRow, 'id' | 'created_at'>>;
50
+ /**
51
+ * Example Repository
52
+ *
53
+ * Extends BaseRepository for consistent data access patterns.
54
+ * When DbService is not initialized, falls back to in-memory dummy data.
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * // Create repository (auto-detects DbService availability)
59
+ * const repo = ExampleRepository.create();
60
+ *
61
+ * // Or with explicit database service
62
+ * const db = DbService.getInstance().getDatabase();
63
+ * const repo = new ExampleRepository(db);
64
+ *
65
+ * // Use CRUD operations
66
+ * const result = await repo.findById('example-001');
67
+ * ```
68
+ */
69
+ export declare class ExampleRepository extends BaseRepository<ExampleDatabaseRow> {
70
+ private readonly useDummyData;
71
+ private dummyStore;
72
+ constructor(db: DatabaseServiceInterface, useDummyData?: boolean);
73
+ /**
74
+ * Create repository instance.
75
+ * Uses DbService if initialized, otherwise creates a dummy-data repository.
76
+ */
77
+ static create(): ExampleRepository;
78
+ /**
79
+ * Find entity by ID
80
+ */
81
+ findById(id: string, config?: OperationConfig): Promise<DatabaseResult<ExampleDatabaseRow | null>>;
82
+ /**
83
+ * Find multiple entities
84
+ */
85
+ findMany(options?: QueryOptions<ExampleDatabaseRow>, config?: OperationConfig): Promise<DatabaseResult<PaginatedResult<ExampleDatabaseRow>>>;
86
+ /**
87
+ * Create new entity
88
+ */
89
+ create(data: Partial<ExampleDatabaseRow>, config?: OperationConfig): Promise<DatabaseResult<ExampleDatabaseRow>>;
90
+ /**
91
+ * Update entity
92
+ */
93
+ update(id: string, data: Partial<ExampleDatabaseRow>, config?: OperationConfig): Promise<DatabaseResult<ExampleDatabaseRow>>;
94
+ /**
95
+ * Soft delete entity
96
+ */
97
+ softDelete(id: string, config?: OperationConfig): Promise<DatabaseResult<void>>;
98
+ /**
99
+ * Hard delete entity
100
+ */
101
+ delete(id: string, config?: OperationConfig): Promise<DatabaseResult<void>>;
102
+ /**
103
+ * Find entities by status
104
+ */
105
+ findByStatus(status: string): Promise<DatabaseResult<PaginatedResult<ExampleDatabaseRow>>>;
106
+ /**
107
+ * Find entities by owner
108
+ */
109
+ findByOwner(ownerId: string): Promise<DatabaseResult<PaginatedResult<ExampleDatabaseRow>>>;
110
+ /**
111
+ * Find visible entities only
112
+ */
113
+ findVisible(): Promise<DatabaseResult<PaginatedResult<ExampleDatabaseRow>>>;
114
+ /**
115
+ * Check if entity exists by ID
116
+ */
117
+ exists(id: string, config?: OperationConfig): Promise<DatabaseResult<boolean>>;
118
+ /**
119
+ * Get the table name for this repository
120
+ * Used for transaction operations
121
+ */
122
+ getTableName(): string;
123
+ }
124
+ //# sourceMappingURL=ExampleRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExampleRepository.d.ts","sourceRoot":"","sources":["../../../src/models/example/ExampleRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Example Models/Repositories
3
+ *
4
+ * Data access layer for Example entities.
5
+ */
6
+ export { ExampleRepository, type ExampleDatabaseRow, type ExampleCreateInput, type ExampleUpdateInput, } from './ExampleRepository';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/example/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { type FeatureFlag, type FeatureFlagRule, type FeatureFlagValue, type CreateFlagRequest, type FeatureFlagContext } from '@plyaz/types';
10
10
  import type { FeatureFlagKey } from '@domain/types';
11
+ import { type CoreFeatureFlagTableConfig } from '@plyaz/types/core';
11
12
  /**
12
13
  * Database Repository for Feature Flags
13
14
  *
@@ -15,10 +16,10 @@ import type { FeatureFlagKey } from '@domain/types';
15
16
  *
16
17
  * **EXECUTION ORDER:**
17
18
  * 1. FeatureFlagService.onModuleInit()
18
- * 2. → FeatureFlagConfigFactory.fromEnvironment()
19
- * 3. → DatabaseConnectionManager.initialize()
19
+ * 2. → FeatureFlagConfigFactory.fromOptions()
20
+ * 3. → DbService.initialize()
20
21
  * 4. → **THIS REPOSITORY USED** ← YOU ARE HERE
21
- * 5. → Database queries executed via Drizzle ORM
22
+ * 5. → Database queries executed via @plyaz/db
22
23
  *
23
24
  * **PURPOSE:**
24
25
  * - Executes optimized SQL queries using Drizzle ORM
@@ -61,7 +62,42 @@ import type { FeatureFlagKey } from '@domain/types';
61
62
  * ```
62
63
  */
63
64
  export declare class FeatureFlagDatabaseRepository<TKey extends string = FeatureFlagKey> {
64
- private connectionManager;
65
+ private readonly tableConfig;
66
+ /**
67
+ * Creates a new repository with optional custom table names.
68
+ *
69
+ * @param tableConfig - Optional custom table configuration
70
+ *
71
+ * @example Default tables
72
+ * ```typescript
73
+ * const repo = new FeatureFlagDatabaseRepository();
74
+ * // Uses: feature_flags, feature_flag_rules, feature_flag_evaluations, feature_flag_overrides
75
+ * ```
76
+ *
77
+ * @example Custom test tables
78
+ * ```typescript
79
+ * const repo = new FeatureFlagDatabaseRepository({
80
+ * flagsTable: 'test_feature_flags',
81
+ * rulesTable: 'test_feature_flag_rules',
82
+ * evaluationsTable: 'test_feature_flag_evaluations',
83
+ * overridesTable: 'test_feature_flag_overrides',
84
+ * evaluationsSchema: 'audit',
85
+ * });
86
+ * ```
87
+ */
88
+ constructor(tableConfig?: Partial<CoreFeatureFlagTableConfig>);
89
+ /**
90
+ * Gets the current table configuration.
91
+ */
92
+ getTableConfig(): CoreFeatureFlagTableConfig;
93
+ /**
94
+ * Gets the full table name including schema if needed.
95
+ */
96
+ private getEvaluationsTableName;
97
+ /**
98
+ * Gets the database service from DbService singleton
99
+ */
100
+ private getDb;
65
101
  /**
66
102
  * Retrieves all feature flags from the database with optional environment filtering
67
103
  *
@@ -209,6 +245,12 @@ export declare class FeatureFlagDatabaseRepository<TKey extends string = Feature
209
245
  *
210
246
  */
211
247
  updateFlag(key: TKey, data: Partial<CreateFlagRequest<TKey>>): Promise<FeatureFlag<TKey>>;
248
+ /**
249
+ * Infers the type of a given value as a string for the type field
250
+ * @param value Unknown value
251
+ * @returns Inferred type as string
252
+ */
253
+ private toTypeField;
212
254
  /**
213
255
  * Deletes a feature flag from the database
214
256
  *
@@ -515,4 +557,4 @@ export declare class FeatureFlagDatabaseRepository<TKey extends string = Feature
515
557
  */
516
558
  private mapToFeatureFlagRule;
517
559
  }
518
- //# sourceMappingURL=repository.d.ts.map
560
+ //# sourceMappingURL=FeatureFlagRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagRepository.d.ts","sourceRoot":"","sources":["../../../src/models/featureFlags/FeatureFlagRepository.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAUL,KAAK,0BAA0B,EAChC,MAAM,mBAAmB,CAAC;AAqB3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBAAa,6BAA6B,CAAC,IAAI,SAAS,MAAM,GAAG,cAAc;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD;;;;;;;;;;;;;;;;;;;;;OAqBG;gBACS,WAAW,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC;IAO7D;;OAEG;IACH,cAAc,IAAI,0BAA0B;IAI5C;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;IAiCrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAoB3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACG,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IA0B3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IAEG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAyC/F;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,UAAU,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAiC/D;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IA+BrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACG,aAAa,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,IAAI,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,MAAM,EAAE,gBAAgB,CAAC;KAC1B,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,WAAW,CACf,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,EACvB,SAAS,CAAC,EAAE,IAAI,GACf,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA8BlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;CAW7B"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Feature Flags Models/Repositories
3
+ *
4
+ * Data access layer for feature flags.
5
+ */
6
+ export { FeatureFlagDatabaseRepository } from './FeatureFlagRepository';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/featureFlags/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Models/Repositories
3
+ *
4
+ * Centralized data access layer organized by domain.
5
+ * Repositories use DbService when initialized, fall back to dummy data otherwise.
6
+ */
7
+ export * from './example';
8
+ export * from './featureFlags';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import type { ApiClientWithEvents, ApiClientOptions } from '@plyaz/types/api';
11
11
  import { type ClientEventManager, type EndpointsList } from '@plyaz/api';
12
- import type { ApiEnvironmentConfig } from '@plyaz/types/core';
12
+ import type { CoreApiEnvironmentConfig } from '@plyaz/types/core';
13
13
  /**
14
14
  * API Client Singleton Service
15
15
  * Manages API client instance lifecycle with environment-specific configurations
@@ -55,7 +55,7 @@ export declare class ApiClientService {
55
55
  * @param apiConfig - API configuration (baseURL, encryption, timeout, event handlers, etc.)
56
56
  * @returns Promise that resolves to the initialized client
57
57
  */
58
- static init(envConfig: ApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>): Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
58
+ static init(envConfig: CoreApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>): Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
59
59
  /**
60
60
  * Internal initialization logic
61
61
  * Merges environment-specific defaults with API configuration
@@ -79,12 +79,100 @@ export declare class ApiClientService {
79
79
  /**
80
80
  * Reinitialize with new config and options
81
81
  */
82
- static reinitialize(envConfig: ApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>): Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
82
+ static reinitialize(envConfig: CoreApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>): Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
83
83
  /**
84
84
  * Dispose of the client instance
85
85
  */
86
86
  static dispose(): void;
87
+ /**
88
+ * Emits an API error event via CoreEventManager.
89
+ * Called when API operations fail to integrate with global error handling.
90
+ *
91
+ * **CRITICAL**: This event emission triggers automatic error state updates.
92
+ * The global error store MUST subscribe to CORE_EVENTS.API.REQUEST_ERROR to:
93
+ * 1. Capture all API errors automatically
94
+ * 2. Update global error state for UI display
95
+ * 3. Ensure individual domain stores remain error-free (only domain data)
96
+ *
97
+ * This is the unified error hook that:
98
+ * - On frontend: Emits event that global error store subscribes to
99
+ * - On backend: Emits event for logging/monitoring (can be configured to rethrow)
100
+ *
101
+ * @param error - The error that occurred
102
+ * @param options - Additional context for the error
103
+ * @param options.method - HTTP method (GET, POST, etc.)
104
+ * @param options.url - Request URL
105
+ * @param options.requestId - Unique request identifier
106
+ * @param options.status - HTTP status code (if available)
107
+ * @param options.duration - Request duration in ms
108
+ * @param options.rethrow - Whether to rethrow the error after emitting (default: false)
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * // Global error store setup (in @plyaz/store)
113
+ * CoreEventManager.on(CORE_EVENTS.API.REQUEST_ERROR, (payload) => {
114
+ * errorStore.setError({
115
+ * message: payload.error.message,
116
+ * status: payload.status,
117
+ * url: payload.url,
118
+ * requestId: payload.requestId,
119
+ * });
120
+ * });
121
+ *
122
+ * // Frontend usage - emit to store
123
+ * ApiClientService.emitApiError(error, {
124
+ * method: 'GET',
125
+ * url: '/api/users',
126
+ * requestId: '123',
127
+ * duration: 500,
128
+ * });
129
+ *
130
+ * // Backend usage - emit and rethrow
131
+ * ApiClientService.emitApiError(error, {
132
+ * method: 'POST',
133
+ * url: '/api/orders',
134
+ * requestId: '456',
135
+ * duration: 1200,
136
+ * rethrow: true,
137
+ * });
138
+ * ```
139
+ */
140
+ static emitApiError(error: unknown, options: {
141
+ method: string;
142
+ url: string;
143
+ requestId: string;
144
+ status?: number;
145
+ duration: number;
146
+ rethrow?: boolean;
147
+ }): void;
148
+ /**
149
+ * Create a dedicated API client instance (NOT the singleton)
150
+ *
151
+ * Use this when you need an isolated client with its own configuration
152
+ * that doesn't affect or get affected by the shared singleton instance.
153
+ *
154
+ * @param envConfig - Environment metadata (env, apiKey)
155
+ * @param apiConfig - API configuration (baseURL, encryption, timeout, etc.)
156
+ * @returns Promise that resolves to a new dedicated client instance
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * // Create a dedicated client for feature flags service
161
+ * const flagsClient = await ApiClientService.createInstance(
162
+ * { env: 'production' },
163
+ * {
164
+ * baseURL: 'https://flags.example.com',
165
+ * timeout: 5000,
166
+ * }
167
+ * );
168
+ *
169
+ * // This client is independent from ApiClientService.getClient()
170
+ * flagsClient.updateConfig({ timeout: 3000 }); // Only affects this instance
171
+ * ```
172
+ */
173
+ static createInstance(envConfig: CoreApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>): Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
87
174
  }
88
175
  export declare const getApiClient: () => ApiClientWithEvents<ClientEventManager, EndpointsList>;
89
- export declare const initApiClient: (envConfig: ApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>) => Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
176
+ export declare const initApiClient: (envConfig: CoreApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>) => Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
177
+ export declare const createApiClientInstance: (envConfig: CoreApiEnvironmentConfig, apiConfig?: Partial<ApiClientOptions>) => Promise<ApiClientWithEvents<ClientEventManager, EndpointsList>>;
90
178
  //# sourceMappingURL=ApiClientService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiClientService.d.ts","sourceRoot":"","sources":["../../src/services/ApiClientService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAa,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAmB,MAAM,YAAY,CAAC;AAG1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AA2c9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuE;IAC9F,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IACtC,OAAO,CAAC,MAAM,CAAC,WAAW,CAA8B;IAExD;;;;;;OAMG;WACU,IAAI,CACf,SAAS,EAAE,oBAAoB,EAC/B,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IA4BlE;;;;;;;;OAQG;mBACkB,YAAY;IA6CjC;;;;OAIG;IACH,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAmB1E;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,OAAO;IAI/B;;OAEG;WACU,YAAY,CACvB,SAAS,EAAE,oBAAoB,EAC/B,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAKlE;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;CAQvB;AAGD,eAAO,MAAM,YAAY,QAAO,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CACvD,CAAC;AAE/B,eAAO,MAAM,aAAa,GACxB,WAAW,oBAAoB,EAC/B,YAAY,OAAO,CAAC,gBAAgB,CAAC,KACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CACpB,CAAC"}
1
+ {"version":3,"file":"ApiClientService.d.ts","sourceRoot":"","sources":["../../src/services/ApiClientService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAa,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAmB,MAAM,YAAY,CAAC;AAW1F,OAAO,KAAK,EAA8B,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AA+c9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuE;IAC9F,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IACtC,OAAO,CAAC,MAAM,CAAC,WAAW,CAA8B;IAExD;;;;;;OAMG;WACU,IAAI,CACf,SAAS,EAAE,wBAAwB,EACnC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IA4BlE;;;;;;;;OAQG;mBAEkB,YAAY;IAuIjC;;;;OAIG;IACH,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC;IAmB1E;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,OAAO;IAI/B;;OAEG;WACU,YAAY,CACvB,SAAS,EAAE,wBAAwB,EACnC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAKlE;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAStB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,MAAM,CAAC,YAAY,CACjB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GACA,IAAI;IAkBP;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;WACU,cAAc,CACzB,SAAS,EAAE,wBAAwB,EACnC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;CA2CnE;AAGD,eAAO,MAAM,YAAY,QAAO,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CACvD,CAAC;AAE/B,eAAO,MAAM,aAAa,GACxB,WAAW,wBAAwB,EACnC,YAAY,OAAO,CAAC,gBAAgB,CAAC,KACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CACpB,CAAC;AAE9C,eAAO,MAAM,uBAAuB,GAClC,WAAW,wBAAwB,EACnC,YAAY,OAAO,CAAC,gBAAgB,CAAC,KACpC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CACV,CAAC"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * CacheService - Singleton Cache Manager
3
+ *
4
+ * @description Manages cache instance for the entire application using a singleton pattern.
5
+ * This service wraps the CacheManager from @plyaz/core/base/cache and provides a centralized
6
+ * way to initialize and access caching across all backend services.
7
+ *
8
+ * **Architecture:**
9
+ * - Supports multiple strategies: Memory (in-process), Redis (distributed)
10
+ * - Configurable TTL, key prefixing, and strategy-specific options
11
+ * - Singleton pattern ensures single cache instance across application
12
+ *
13
+ * **Strategy Configuration:**
14
+ * - **Memory**: In-process LRU cache, no external dependencies
15
+ * - **Redis**: Distributed cache using ioredis, requires Redis server
16
+ *
17
+ * **Required Environment Variables (Redis):**
18
+ * - REDIS_URL: Redis connection string (e.g., redis://localhost:6379)
19
+ * - Or REDIS_HOST, REDIS_PORT, REDIS_PASSWORD for individual config
20
+ *
21
+ * @example Using with Core.initialize() (Recommended)
22
+ * ```typescript
23
+ * import { Core } from '@plyaz/core';
24
+ *
25
+ * await Core.initialize({
26
+ * envPath: '.env',
27
+ * cache: {
28
+ * strategy: 'memory',
29
+ * isEnabled: true,
30
+ * ttl: 300, // 5 minutes default
31
+ * },
32
+ * });
33
+ *
34
+ * // Access via Core.cache
35
+ * const cache = Core.cache.getCacheManager();
36
+ * await cache.set('user:123', userData, 600); // 10 minutes TTL
37
+ * const cached = await cache.get('user:123');
38
+ * ```
39
+ *
40
+ * @example With Redis Strategy
41
+ * ```typescript
42
+ * await Core.initialize({
43
+ * envPath: '.env',
44
+ * cache: {
45
+ * strategy: 'redis',
46
+ * isEnabled: true,
47
+ * ttl: 300,
48
+ * prefix: 'myapp',
49
+ * redis: {
50
+ * url: process.env.REDIS_URL,
51
+ * // Or individual options:
52
+ * // host: process.env.REDIS_HOST,
53
+ * // port: parseInt(process.env.REDIS_PORT),
54
+ * // password: process.env.REDIS_PASSWORD,
55
+ * },
56
+ * },
57
+ * });
58
+ * ```
59
+ *
60
+ * @example Direct Usage
61
+ * ```typescript
62
+ * import { CacheService } from '@plyaz/core/services';
63
+ *
64
+ * await CacheService.initialize({
65
+ * strategy: 'memory',
66
+ * isEnabled: true,
67
+ * ttl: 300,
68
+ * });
69
+ *
70
+ * const cache = CacheService.getInstance().getCacheManager();
71
+ * await cache.set('key', value);
72
+ * ```
73
+ *
74
+ * @example Skip Cache (Disable Caching)
75
+ * ```typescript
76
+ * await Core.initialize({
77
+ * skipCache: true, // Cache will not be initialized
78
+ * });
79
+ * ```
80
+ *
81
+ * @fileoverview Cache service singleton
82
+ * @module services/CacheService
83
+ */
84
+ import { CacheManager } from '../base/cache';
85
+ import type { CoreCacheConfig } from '@plyaz/types/core';
86
+ /**
87
+ * Singleton service for managing application-wide cache
88
+ *
89
+ * Provides centralized access to cache functionality across all backend services.
90
+ * Automatically integrates with BaseBackendDomainService when initialized.
91
+ */
92
+ export declare class CacheService {
93
+ /** Singleton instance */
94
+ private static instance;
95
+ /** Cache manager instance */
96
+ private cacheManager;
97
+ /** Configuration used to initialize cache */
98
+ private config;
99
+ /** Logger instance */
100
+ private logger;
101
+ /** Private constructor to enforce singleton */
102
+ private constructor();
103
+ /**
104
+ * Initialize the cache service with configuration
105
+ *
106
+ * @param config - Cache configuration
107
+ * @throws {CorePackageError} If already initialized or config is invalid
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * await CacheService.initialize({
112
+ * strategy: 'redis',
113
+ * isEnabled: true,
114
+ * ttl: 300,
115
+ * prefix: 'app',
116
+ * redis: { url: process.env.REDIS_URL },
117
+ * });
118
+ * ```
119
+ */
120
+ static initialize(config: CoreCacheConfig): Promise<void>;
121
+ /**
122
+ * Get the singleton instance
123
+ *
124
+ * @throws {CorePackageError} If not initialized
125
+ * @returns CacheService singleton instance
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const cacheService = CacheService.getInstance();
130
+ * const cache = cacheService.getCacheManager();
131
+ * ```
132
+ */
133
+ static getInstance(): CacheService;
134
+ /**
135
+ * Get the cache manager instance
136
+ *
137
+ * @throws {CorePackageError} If cache not initialized
138
+ * @returns CacheManager instance
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * const cache = CacheService.getInstance().getCacheManager();
143
+ * await cache.set('user:123', userData);
144
+ * const user = await cache.get('user:123');
145
+ * ```
146
+ */
147
+ getCacheManager(): CacheManager;
148
+ /**
149
+ * Get current cache configuration
150
+ *
151
+ * @returns Current cache configuration or null if not initialized
152
+ */
153
+ getConfig(): CoreCacheConfig | null;
154
+ /**
155
+ * Check if cache is initialized and enabled
156
+ *
157
+ * @returns True if cache is ready to use
158
+ */
159
+ isInitialized(): boolean;
160
+ /**
161
+ * Reset the cache service (useful for testing)
162
+ *
163
+ * @internal
164
+ */
165
+ static reset(): void;
166
+ /**
167
+ * Validate cache configuration
168
+ *
169
+ * @param config - Configuration to validate
170
+ * @throws {CorePackageError} If configuration is invalid
171
+ * @private
172
+ */
173
+ private validateConfig;
174
+ }
175
+ export declare const getCacheService: () => CacheService;
176
+ //# sourceMappingURL=CacheService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheService.d.ts","sourceRoot":"","sources":["../../src/services/CacheService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMzD;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IAEpD,6BAA6B;IAC7B,OAAO,CAAC,YAAY,CAA6B;IAEjD,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAgC;IAE9C,sBAAsB;IACtB,OAAO,CAAC,MAAM,CAA+C;IAE7D,+CAA+C;IAC/C,OAAO;IAEP;;;;;;;;;;;;;;;;OAgBG;WACU,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C/D;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,WAAW,IAAI,YAAY;IAUlC;;;;;;;;;;;;OAYG;IACH,eAAe,IAAI,YAAY;IAU/B;;;;OAIG;IACH,SAAS,IAAI,eAAe,GAAG,IAAI;IAInC;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;OAIG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAWpB;;;;;;OAMG;IAEH,OAAO,CAAC,cAAc;CA6BvB;AAGD,eAAO,MAAM,eAAe,QAAO,YAA0C,CAAC"}