@plyaz/core 1.2.0 → 1.3.0

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 (240) hide show
  1. package/README.md +248 -183
  2. package/dist/adapters/index.d.ts +16 -0
  3. package/dist/adapters/index.d.ts.map +1 -0
  4. package/dist/adapters/nestjs.d.ts +79 -0
  5. package/dist/adapters/nestjs.d.ts.map +1 -0
  6. package/dist/adapters/nextjs.d.ts +28 -0
  7. package/dist/adapters/nextjs.d.ts.map +1 -0
  8. package/dist/backend/example/example.controller.d.ts +121 -0
  9. package/dist/backend/example/example.controller.d.ts.map +1 -0
  10. package/dist/backend/example/example.module.d.ts +29 -0
  11. package/dist/backend/example/example.module.d.ts.map +1 -0
  12. package/dist/backend/example/index.d.ts +8 -0
  13. package/dist/backend/example/index.d.ts.map +1 -0
  14. package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts +150 -0
  15. package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts.map +1 -0
  16. package/dist/backend/featureFlags/config/feature-flag.config.d.ts +28 -50
  17. package/dist/backend/featureFlags/config/feature-flag.config.d.ts.map +1 -1
  18. package/dist/backend/featureFlags/config/validation.d.ts +6 -6
  19. package/dist/backend/featureFlags/config/validation.d.ts.map +1 -1
  20. package/dist/backend/featureFlags/feature-flag.controller.d.ts +14 -55
  21. package/dist/backend/featureFlags/feature-flag.controller.d.ts.map +1 -1
  22. package/dist/backend/featureFlags/feature-flag.module.d.ts +36 -43
  23. package/dist/backend/featureFlags/feature-flag.module.d.ts.map +1 -1
  24. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts +16 -2
  25. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts.map +1 -1
  26. package/dist/backend/featureFlags/index.d.ts +6 -7
  27. package/dist/backend/featureFlags/index.d.ts.map +1 -1
  28. package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts.map +1 -1
  29. package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts.map +1 -1
  30. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts +6 -11
  31. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts.map +1 -1
  32. package/dist/backend/index.d.ts +5 -0
  33. package/dist/backend/index.d.ts.map +1 -1
  34. package/dist/base/cache/CacheKeyBuilder.d.ts +115 -0
  35. package/dist/base/cache/CacheKeyBuilder.d.ts.map +1 -0
  36. package/dist/base/cache/index.d.ts +1 -0
  37. package/dist/base/cache/index.d.ts.map +1 -1
  38. package/dist/base/cache/strategies/redis.d.ts.map +1 -1
  39. package/dist/base/observability/BaseAdapter.d.ts +79 -0
  40. package/dist/base/observability/BaseAdapter.d.ts.map +1 -0
  41. package/dist/base/observability/CompositeAdapter.d.ts +72 -0
  42. package/dist/base/observability/CompositeAdapter.d.ts.map +1 -0
  43. package/dist/base/observability/DatadogAdapter.d.ts +117 -0
  44. package/dist/base/observability/DatadogAdapter.d.ts.map +1 -0
  45. package/dist/base/observability/LoggerAdapter.d.ts +54 -0
  46. package/dist/base/observability/LoggerAdapter.d.ts.map +1 -0
  47. package/dist/base/observability/ObservabilityService.d.ts +160 -0
  48. package/dist/base/observability/ObservabilityService.d.ts.map +1 -0
  49. package/dist/base/observability/index.d.ts +17 -0
  50. package/dist/base/observability/index.d.ts.map +1 -0
  51. package/dist/domain/base/BaseBackendDomainService.d.ts +528 -0
  52. package/dist/domain/base/BaseBackendDomainService.d.ts.map +1 -0
  53. package/dist/domain/base/BaseDomainService.d.ts +284 -0
  54. package/dist/domain/base/BaseDomainService.d.ts.map +1 -0
  55. package/dist/domain/base/BaseFrontendDomainService.d.ts +493 -0
  56. package/dist/domain/base/BaseFrontendDomainService.d.ts.map +1 -0
  57. package/dist/domain/base/BaseMapper.d.ts +100 -0
  58. package/dist/domain/base/BaseMapper.d.ts.map +1 -0
  59. package/dist/domain/base/BaseValidator.d.ts +105 -0
  60. package/dist/domain/base/BaseValidator.d.ts.map +1 -0
  61. package/dist/domain/base/index.d.ts +10 -0
  62. package/dist/domain/base/index.d.ts.map +1 -0
  63. package/dist/domain/example/BackendExampleDomainService.d.ts +257 -0
  64. package/dist/domain/example/BackendExampleDomainService.d.ts.map +1 -0
  65. package/dist/domain/example/FrontendExampleDomainService.d.ts +164 -0
  66. package/dist/domain/example/FrontendExampleDomainService.d.ts.map +1 -0
  67. package/dist/domain/example/index.d.ts +10 -0
  68. package/dist/domain/example/index.d.ts.map +1 -0
  69. package/dist/domain/example/mappers/ExampleMapper.d.ts +67 -0
  70. package/dist/domain/example/mappers/ExampleMapper.d.ts.map +1 -0
  71. package/dist/domain/example/validators/ExampleValidator.d.ts +33 -0
  72. package/dist/domain/example/validators/ExampleValidator.d.ts.map +1 -0
  73. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts +86 -0
  74. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts.map +1 -0
  75. package/dist/domain/featureFlags/index.d.ts +10 -5
  76. package/dist/domain/featureFlags/index.d.ts.map +1 -1
  77. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts +72 -0
  78. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts.map +1 -0
  79. package/dist/domain/featureFlags/mappers/index.d.ts +8 -0
  80. package/dist/domain/featureFlags/mappers/index.d.ts.map +1 -0
  81. package/dist/domain/featureFlags/module.d.ts +20 -0
  82. package/dist/domain/featureFlags/module.d.ts.map +1 -0
  83. package/dist/domain/featureFlags/provider.d.ts +40 -1
  84. package/dist/domain/featureFlags/provider.d.ts.map +1 -1
  85. package/dist/domain/featureFlags/providers/api.d.ts +59 -34
  86. package/dist/domain/featureFlags/providers/api.d.ts.map +1 -1
  87. package/dist/domain/featureFlags/providers/database.d.ts +54 -47
  88. package/dist/domain/featureFlags/providers/database.d.ts.map +1 -1
  89. package/dist/domain/featureFlags/providers/factory.d.ts +50 -33
  90. package/dist/domain/featureFlags/providers/factory.d.ts.map +1 -1
  91. package/dist/domain/featureFlags/providers/file.d.ts +48 -1
  92. package/dist/domain/featureFlags/providers/file.d.ts.map +1 -1
  93. package/dist/domain/featureFlags/providers/memory.d.ts +32 -6
  94. package/dist/domain/featureFlags/providers/memory.d.ts.map +1 -1
  95. package/dist/domain/featureFlags/providers/redis.d.ts +6 -1
  96. package/dist/domain/featureFlags/providers/redis.d.ts.map +1 -1
  97. package/dist/domain/featureFlags/service.d.ts +112 -0
  98. package/dist/domain/featureFlags/service.d.ts.map +1 -0
  99. package/dist/domain/index.d.ts +2 -0
  100. package/dist/domain/index.d.ts.map +1 -1
  101. package/dist/engine/featureFlags/engine.d.ts +8 -0
  102. package/dist/engine/featureFlags/engine.d.ts.map +1 -1
  103. package/dist/entry-backend.d.ts +26 -0
  104. package/dist/entry-backend.d.ts.map +1 -0
  105. package/dist/entry-backend.js +15455 -0
  106. package/dist/entry-backend.js.map +1 -0
  107. package/dist/entry-backend.mjs +15339 -0
  108. package/dist/entry-backend.mjs.map +1 -0
  109. package/dist/entry-frontend.d.ts +23 -0
  110. package/dist/entry-frontend.d.ts.map +1 -0
  111. package/dist/entry-frontend.js +11340 -0
  112. package/dist/entry-frontend.js.map +1 -0
  113. package/dist/entry-frontend.mjs +11278 -0
  114. package/dist/entry-frontend.mjs.map +1 -0
  115. package/dist/events/CoreEventManager.d.ts +116 -0
  116. package/dist/events/CoreEventManager.d.ts.map +1 -0
  117. package/dist/events/index.d.ts +27 -0
  118. package/dist/events/index.d.ts.map +1 -0
  119. package/dist/frontend/base/index.d.ts +8 -0
  120. package/dist/frontend/base/index.d.ts.map +1 -0
  121. package/dist/frontend/components/InitializationError.d.ts +25 -0
  122. package/dist/frontend/components/InitializationError.d.ts.map +1 -0
  123. package/dist/frontend/components/InitializationLoading.d.ts +22 -0
  124. package/dist/frontend/components/InitializationLoading.d.ts.map +1 -0
  125. package/dist/frontend/components/index.d.ts +9 -0
  126. package/dist/frontend/components/index.d.ts.map +1 -0
  127. package/dist/frontend/example/index.d.ts +9 -0
  128. package/dist/frontend/example/index.d.ts.map +1 -0
  129. package/dist/frontend/featureFlags/index.d.ts +28 -7
  130. package/dist/frontend/featureFlags/index.d.ts.map +1 -1
  131. package/dist/frontend/index.d.ts +4 -0
  132. package/dist/frontend/index.d.ts.map +1 -1
  133. package/dist/frontend/providers/ApiProvider.d.ts +2 -2
  134. package/dist/frontend/providers/ApiProvider.d.ts.map +1 -1
  135. package/dist/frontend/providers/PlyazProvider.d.ts +305 -0
  136. package/dist/frontend/providers/PlyazProvider.d.ts.map +1 -0
  137. package/dist/frontend/providers/index.d.ts +1 -0
  138. package/dist/frontend/providers/index.d.ts.map +1 -1
  139. package/dist/frontend/store/feature-flags.d.ts +63 -0
  140. package/dist/frontend/store/feature-flags.d.ts.map +1 -0
  141. package/dist/frontend/store/index.d.ts +14 -0
  142. package/dist/frontend/store/index.d.ts.map +1 -0
  143. package/dist/frontend/store/integrations.d.ts +36 -0
  144. package/dist/frontend/store/integrations.d.ts.map +1 -0
  145. package/dist/frontend/store/service-accessors.d.ts +78 -0
  146. package/dist/frontend/store/service-accessors.d.ts.map +1 -0
  147. package/dist/index.d.ts +5 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +15262 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/index.mjs +13667 -4861
  152. package/dist/index.mjs.map +1 -1
  153. package/dist/init/CoreInitializer.d.ts +583 -0
  154. package/dist/init/CoreInitializer.d.ts.map +1 -0
  155. package/dist/init/ServiceRegistry.d.ts +256 -0
  156. package/dist/init/ServiceRegistry.d.ts.map +1 -0
  157. package/dist/init/index.d.ts +14 -0
  158. package/dist/init/index.d.ts.map +1 -0
  159. package/dist/init/nestjs/CoreModule.d.ts +63 -0
  160. package/dist/init/nestjs/CoreModule.d.ts.map +1 -0
  161. package/dist/init/nestjs/index.d.ts +5 -0
  162. package/dist/init/nestjs/index.d.ts.map +1 -0
  163. package/dist/init/nestjs/index.js +9234 -0
  164. package/dist/init/nestjs/index.js.map +1 -0
  165. package/dist/init/nestjs/index.mjs +9230 -0
  166. package/dist/init/nestjs/index.mjs.map +1 -0
  167. package/dist/init/react.d.ts +33 -0
  168. package/dist/init/react.d.ts.map +1 -0
  169. package/dist/models/example/ExampleRepository.d.ts +166 -0
  170. package/dist/models/example/ExampleRepository.d.ts.map +1 -0
  171. package/dist/models/example/index.d.ts +7 -0
  172. package/dist/models/example/index.d.ts.map +1 -0
  173. package/dist/models/featureFlags/FeatureFlagRepository.d.ts +161 -0
  174. package/dist/models/featureFlags/FeatureFlagRepository.d.ts.map +1 -0
  175. package/dist/models/featureFlags/index.d.ts +7 -0
  176. package/dist/models/featureFlags/index.d.ts.map +1 -0
  177. package/dist/models/index.d.ts +9 -0
  178. package/dist/models/index.d.ts.map +1 -0
  179. package/dist/services/ApiClientService.d.ts +92 -4
  180. package/dist/services/ApiClientService.d.ts.map +1 -1
  181. package/dist/services/CacheService.d.ts +176 -0
  182. package/dist/services/CacheService.d.ts.map +1 -0
  183. package/dist/services/DbService.d.ts +393 -0
  184. package/dist/services/DbService.d.ts.map +1 -0
  185. package/dist/services/NotificationService.d.ts +153 -0
  186. package/dist/services/NotificationService.d.ts.map +1 -0
  187. package/dist/services/StorageService.d.ts +146 -0
  188. package/dist/services/StorageService.d.ts.map +1 -0
  189. package/dist/services/index.d.ts +4 -0
  190. package/dist/services/index.d.ts.map +1 -1
  191. package/dist/utils/common/id.d.ts +83 -0
  192. package/dist/utils/common/id.d.ts.map +1 -0
  193. package/dist/utils/common/index.d.ts +2 -0
  194. package/dist/utils/common/index.d.ts.map +1 -1
  195. package/dist/utils/common/object.d.ts +70 -0
  196. package/dist/utils/common/object.d.ts.map +1 -0
  197. package/dist/utils/featureFlags/conditions.d.ts.map +1 -1
  198. package/dist/utils/featureFlags/context.d.ts +0 -1
  199. package/dist/utils/featureFlags/context.d.ts.map +1 -1
  200. package/dist/utils/index.d.ts +1 -0
  201. package/dist/utils/index.d.ts.map +1 -1
  202. package/dist/utils/mapperUtils.d.ts +38 -0
  203. package/dist/utils/mapperUtils.d.ts.map +1 -0
  204. package/dist/utils/runtime.d.ts +15 -0
  205. package/dist/utils/runtime.d.ts.map +1 -0
  206. package/dist/version.d.ts +24 -0
  207. package/dist/version.d.ts.map +1 -0
  208. package/dist/web_app/auth/add_user.d.ts +2 -2
  209. package/dist/web_app/auth/add_user.d.ts.map +1 -1
  210. package/dist/web_app/auth/update_user.d.ts +1 -1
  211. package/dist/web_app/auth/update_user.d.ts.map +1 -1
  212. package/package.json +89 -15
  213. package/dist/backend/featureFlags/database/connection.d.ts +0 -321
  214. package/dist/backend/featureFlags/database/connection.d.ts.map +0 -1
  215. package/dist/backend/featureFlags/database/repository.d.ts +0 -518
  216. package/dist/backend/featureFlags/database/repository.d.ts.map +0 -1
  217. package/dist/backend/featureFlags/feature-flag.repository.d.ts +0 -85
  218. package/dist/backend/featureFlags/feature-flag.repository.d.ts.map +0 -1
  219. package/dist/backend/featureFlags/feature-flag.service.d.ts +0 -264
  220. package/dist/backend/featureFlags/feature-flag.service.d.ts.map +0 -1
  221. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts +0 -103
  222. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts.map +0 -1
  223. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts +0 -35
  224. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts.map +0 -1
  225. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts +0 -55
  226. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts.map +0 -1
  227. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts +0 -57
  228. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts.map +0 -1
  229. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts +0 -99
  230. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts.map +0 -1
  231. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts +0 -31
  232. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts.map +0 -1
  233. package/dist/frontend/featureFlags/providers/types.d.ts +0 -21
  234. package/dist/frontend/featureFlags/providers/types.d.ts.map +0 -1
  235. package/dist/index.cjs +0 -6435
  236. package/dist/index.cjs.map +0 -1
  237. package/dist/utils/db/databaseService.d.ts +0 -6
  238. package/dist/utils/db/databaseService.d.ts.map +0 -1
  239. package/dist/utils/db/index.d.ts +0 -2
  240. 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,166 @@
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 using fluent QueryBuilder
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const result = await repo.findByStatus('active');
108
+ * ```
109
+ */
110
+ findByStatus(status: string): Promise<DatabaseResult<PaginatedResult<ExampleDatabaseRow>>>;
111
+ /**
112
+ * Find entities by owner using fluent QueryBuilder
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const result = await repo.findByOwner('user-001');
117
+ * ```
118
+ */
119
+ findByOwner(ownerId: string): Promise<DatabaseResult<PaginatedResult<ExampleDatabaseRow>>>;
120
+ /**
121
+ * Find visible entities only using fluent QueryBuilder
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const result = await repo.findVisible();
126
+ * ```
127
+ */
128
+ findVisible(): Promise<DatabaseResult<PaginatedResult<ExampleDatabaseRow>>>;
129
+ /**
130
+ * Find active and visible entities using complex QueryBuilder
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * const items = await repo.findActiveAndVisible();
135
+ * ```
136
+ */
137
+ findActiveAndVisible(): Promise<ExampleDatabaseRow[]>;
138
+ /**
139
+ * Find entities by owner with status filter using QueryBuilder
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const items = await repo.findByOwnerWithStatus('user-001', 'active');
144
+ * ```
145
+ */
146
+ findByOwnerWithStatus(ownerId: string, status: string): Promise<ExampleDatabaseRow[]>;
147
+ /**
148
+ * Count entities by status using QueryBuilder
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const count = await repo.countByStatus('active');
153
+ * ```
154
+ */
155
+ countByStatus(status: string): Promise<number>;
156
+ /**
157
+ * Check if entity exists by ID
158
+ */
159
+ exists(id: string, config?: OperationConfig): Promise<DatabaseResult<boolean>>;
160
+ /**
161
+ * Get the table name for this repository
162
+ * Used for transaction operations
163
+ */
164
+ getTableName(): string;
165
+ }
166
+ //# 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"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Database Repository Implementation
3
+ *
4
+ * Database adapter integration with @plyaz/db for feature flag storage.
5
+ * Extends BaseRepository for consistent CRUD operations and QueryBuilder support.
6
+ *
7
+ * @fileoverview Database repository for feature flags
8
+ */
9
+ import { BaseRepository } from '@plyaz/db';
10
+ import { type FeatureFlag, type FeatureFlagRule, type FeatureFlagValue, type CreateFlagRequest, type FeatureFlagContext } from '@plyaz/types';
11
+ import type { FeatureFlagKey } from '@domain/types';
12
+ import { type CoreDatabaseFeatureFlagRow, type CoreFeatureFlagTableConfig } from '@plyaz/types/core';
13
+ import type { DatabaseServiceInterface } from '@plyaz/types/db';
14
+ /**
15
+ * Extended row type with index signature for BaseRepository compatibility
16
+ */
17
+ type FeatureFlagRow = CoreDatabaseFeatureFlagRow & Record<string, unknown>;
18
+ /**
19
+ * Database Repository for Feature Flags
20
+ *
21
+ * Extends BaseRepository for consistent CRUD operations and QueryBuilder support.
22
+ * Manages feature flags, rules, evaluations, and overrides across multiple tables.
23
+ *
24
+ * @template TKey - Feature flag key type (extends string)
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Create repository
29
+ * const repository = FeatureFlagDatabaseRepository.create();
30
+ *
31
+ * // Use QueryBuilder for complex queries
32
+ * const enabledFlags = await repository.query()
33
+ * .where('is_enabled', 'eq', true)
34
+ * .orderByAsc('key')
35
+ * .getMany();
36
+ *
37
+ * // Get all flags with environment filter
38
+ * const prodFlags = await repository.getAllFlags('production');
39
+ * ```
40
+ */
41
+ export declare class FeatureFlagDatabaseRepository<TKey extends string = FeatureFlagKey> extends BaseRepository<FeatureFlagRow> {
42
+ private readonly tableConfig;
43
+ private readonly logger;
44
+ /**
45
+ * Creates a new repository with optional custom table names.
46
+ *
47
+ * @param db - Database service interface
48
+ * @param tableConfig - Optional custom table configuration
49
+ */
50
+ constructor(db: DatabaseServiceInterface, tableConfig?: Partial<CoreFeatureFlagTableConfig>);
51
+ /**
52
+ * Factory method to create repository instance.
53
+ * Uses DbService singleton if initialized.
54
+ */
55
+ static create<TKey extends string = FeatureFlagKey>(tableConfig?: Partial<CoreFeatureFlagTableConfig>): FeatureFlagDatabaseRepository<TKey>;
56
+ /**
57
+ * Gets the current table configuration.
58
+ */
59
+ getTableConfig(): CoreFeatureFlagTableConfig;
60
+ /**
61
+ * Gets the full table name including schema if needed.
62
+ */
63
+ private getEvaluationsTableName;
64
+ /**
65
+ * Retrieves all feature flags with optional environment filtering.
66
+ * Uses QueryBuilder fluent API for the query.
67
+ *
68
+ * @param environment - Optional environment filter
69
+ * @returns Array of feature flags
70
+ */
71
+ getAllFlags(environment?: string): Promise<FeatureFlag<TKey>[]>;
72
+ /**
73
+ * Retrieves a specific feature flag by its key.
74
+ * Uses findById with 'key' as the ID column.
75
+ *
76
+ * @param key - The feature flag key
77
+ * @returns The feature flag or null
78
+ */
79
+ getFlag(key: TKey): Promise<FeatureFlag<TKey> | null>;
80
+ /**
81
+ * Find flags by enabled status using QueryBuilder.
82
+ *
83
+ * @param isEnabled - Filter by enabled status
84
+ * @returns Array of matching flags
85
+ */
86
+ findByEnabled(isEnabled: boolean): Promise<FeatureFlag<TKey>[]>;
87
+ /**
88
+ * Count flags by enabled status using QueryBuilder.
89
+ */
90
+ countByEnabled(isEnabled: boolean): Promise<number>;
91
+ /**
92
+ * Creates a new feature flag.
93
+ *
94
+ * @param data - Flag creation data
95
+ * @returns The created flag
96
+ */
97
+ createFlag(data: CreateFlagRequest<TKey>): Promise<FeatureFlag<TKey>>;
98
+ /**
99
+ * Updates an existing feature flag.
100
+ *
101
+ * @param key - Flag key to update
102
+ * @param data - Partial update data
103
+ * @returns The updated flag
104
+ */
105
+ updateFlag(key: TKey, data: Partial<CreateFlagRequest<TKey>>): Promise<FeatureFlag<TKey>>;
106
+ /**
107
+ * Deletes a feature flag.
108
+ *
109
+ * @param key - Flag key to delete
110
+ */
111
+ deleteFlag(key: TKey): Promise<void>;
112
+ /**
113
+ * Retrieves rules for a specific flag using direct db query.
114
+ * Rules are in a separate table, so we use the underlying db service.
115
+ *
116
+ * @param key - Flag key to get rules for
117
+ * @returns Array of rules
118
+ */
119
+ getFlagRules(key: TKey): Promise<FeatureFlagRule<TKey>[]>;
120
+ /**
121
+ * Retrieves all enabled rules across all flags.
122
+ *
123
+ * @returns Array of all enabled rules
124
+ */
125
+ getAllRules(): Promise<FeatureFlagRule<TKey>[]>;
126
+ /**
127
+ * Logs a feature flag evaluation for audit purposes.
128
+ */
129
+ logEvaluation(params: {
130
+ flagKey: TKey;
131
+ userId?: string;
132
+ context?: FeatureFlagContext;
133
+ result: FeatureFlagValue;
134
+ }): Promise<void>;
135
+ /**
136
+ * Sets a user-specific override for a feature flag.
137
+ */
138
+ setOverride(flagKey: TKey, userId: string, value: FeatureFlagValue, expiresAt?: Date): Promise<void>;
139
+ /**
140
+ * Retrieves a user-specific override for a feature flag.
141
+ */
142
+ getOverride(flagKey: TKey, userId: string): Promise<FeatureFlagValue | null>;
143
+ /**
144
+ * Removes user-specific overrides for a feature flag.
145
+ */
146
+ removeOverride(flagKey: TKey, userId: string): Promise<void>;
147
+ /**
148
+ * Infers the type of a value for the type field.
149
+ */
150
+ private toTypeField;
151
+ /**
152
+ * Maps a database row to a FeatureFlag object.
153
+ */
154
+ private mapToFeatureFlag;
155
+ /**
156
+ * Maps a database row to a FeatureFlagRule object.
157
+ */
158
+ private mapToFeatureFlagRule;
159
+ }
160
+ export {};
161
+ //# sourceMappingURL=FeatureFlagRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagRepository.d.ts","sourceRoot":"","sources":["../../../src/models/featureFlags/FeatureFlagRepository.ts"],"names":[],"mappings":"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"}
@@ -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"}