@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
+ * Example Validator
3
+ *
4
+ * Demonstrates extending BaseValidator for a domain entity.
5
+ * Uses schemas and types from @plyaz/types/examples.
6
+ */
7
+ import { BaseValidator } from '../../base';
8
+ import type { CreateExampleDTO, UpdateExampleDTO, PatchExampleDTO, DeleteExampleDTO, QueryExampleDTO } from '@plyaz/types/examples';
9
+ /**
10
+ * Example Validator implementation
11
+ *
12
+ * Supports all HTTP operations:
13
+ * - create (POST)
14
+ * - update (PUT)
15
+ * - patch (PATCH)
16
+ * - delete (DELETE)
17
+ * - query (GET)
18
+ */
19
+ declare class ExampleValidatorClass extends BaseValidator<CreateExampleDTO, UpdateExampleDTO, PatchExampleDTO, DeleteExampleDTO, QueryExampleDTO> {
20
+ constructor();
21
+ /**
22
+ * Custom validation: check if name is not reserved
23
+ * Use for business logic validation beyond schema validation
24
+ */
25
+ validateNameNotReserved(name: string): boolean;
26
+ /**
27
+ * Custom validation: check if amount is within budget
28
+ */
29
+ validateAmountWithinBudget(amount: number, budget: number): boolean;
30
+ }
31
+ export { ExampleValidatorClass };
32
+ export declare const ExampleValidator: ExampleValidatorClass;
33
+ //# sourceMappingURL=ExampleValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExampleValidator.d.ts","sourceRoot":"","sources":["../../../../src/domain/example/validators/ExampleValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQ3C,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;GASG;AACH,cAAM,qBAAsB,SAAQ,aAAa,CAC/C,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,CAChB;;IAWC;;;OAGG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK9C;;OAEG;IACH,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAGpE;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAGjC,eAAO,MAAM,gBAAgB,uBAA8B,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Feature Flag Domain Service (Frontend)
3
+ *
4
+ * Frontend-specific domain service for feature flag management.
5
+ * Implements FeatureFlagServiceInterface for clean dependency injection.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * // With ServiceRegistry (auto-initialization)
10
+ * await ServiceRegistry.initialize({
11
+ * services: [{ service: FeatureFlagDomainService, config: { cacheTtl: 300 } }],
12
+ * });
13
+ * const service = ServiceRegistry.get<FeatureFlagServiceInterface>('featureFlags');
14
+ *
15
+ * // Manual creation with provider
16
+ * const service = new FeatureFlagDomainService({
17
+ * provider,
18
+ * store: useFeatureFlagStore.getState(),
19
+ * });
20
+ * await service.fetchAndSyncAll({ userId: user.id });
21
+ * ```
22
+ */
23
+ import type { FeatureFlag, FeatureFlagRule, FeatureFlagContext, FeatureFlagValue, FeatureFlagEvaluation, CreateFlagRequest } from '@plyaz/types';
24
+ import { BaseFrontendDomainService } from '../base';
25
+ import type { CoreFrontendFeatureFlagEventType, CoreFeatureFlagStore, CoreFeatureFlagServiceConfig, CoreFeatureFlagServiceInitConfig, CoreFeatureFlagServiceInterface, CoreServiceCreateOptions } from '@plyaz/types/core';
26
+ /**
27
+ * Feature Flag Domain Service (Frontend)
28
+ *
29
+ * Frontend-specific domain service for feature flag management.
30
+ * Implements FeatureFlagServiceInterface for clean dependency injection.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * // With ServiceRegistry (auto-initialization)
35
+ * await ServiceRegistry.initialize({
36
+ * services: [{ service: FeatureFlagDomainService, config: { cacheTtl: 300 } }],
37
+ * });
38
+ * const service = ServiceRegistry.get<FeatureFlagServiceInterface>('featureFlags');
39
+ *
40
+ * // Manual creation with provider
41
+ * const service = new FeatureFlagDomainService({
42
+ * provider,
43
+ * store: useFeatureFlagStore.getState(),
44
+ * });
45
+ * await service.fetchAndSyncAll({ userId: user.id });
46
+ * ```
47
+ */
48
+ export declare class FrontendFeatureFlagDomainService extends BaseFrontendDomainService<CoreFeatureFlagServiceConfig, CoreFeatureFlagStore, Record<string, FeatureFlagValue>> implements CoreFeatureFlagServiceInterface {
49
+ static readonly serviceKey: "featureFlags";
50
+ /** Build API client for feature flags */
51
+ private static buildApiClient;
52
+ /** Build feature flag provider */
53
+ private static buildProvider;
54
+ /**
55
+ * Factory method for ServiceRegistry auto-initialization.
56
+ */
57
+ static create(config: CoreFeatureFlagServiceInitConfig, options?: CoreServiceCreateOptions): Promise<FrontendFeatureFlagDomainService>;
58
+ /**
59
+ * Event prefix for all events emitted by this service
60
+ * Required by BaseFrontendDomainService
61
+ */
62
+ protected eventPrefix: string;
63
+ private readonly provider;
64
+ constructor(config: CoreFeatureFlagServiceConfig);
65
+ isAvailable(): boolean;
66
+ dispose(): void;
67
+ refresh(): Promise<void>;
68
+ evaluate<TKey extends string = string>(key: TKey, context?: FeatureFlagContext): Promise<FeatureFlagEvaluation<TKey>>;
69
+ isEnabled<TKey extends string = string>(key: TKey, context?: FeatureFlagContext): Promise<boolean>;
70
+ getValue<T = FeatureFlagValue, TKey extends string = string>(key: TKey, context?: FeatureFlagContext): Promise<T>;
71
+ evaluateAll<TKey extends string = string>(context?: FeatureFlagContext): Promise<Record<string, FeatureFlagEvaluation<TKey>>>;
72
+ fetchAndSyncAll(context?: FeatureFlagContext): Promise<Record<string, FeatureFlagValue>>;
73
+ createFlag<TKey extends string = string>(data: CreateFlagRequest<TKey>): Promise<FeatureFlag<TKey>>;
74
+ updateFlag<TKey extends string = string>(key: TKey, data: Partial<CreateFlagRequest<TKey>>): Promise<FeatureFlag<TKey>>;
75
+ deleteFlag<TKey extends string = string>(key: TKey): Promise<void>;
76
+ getRules<TKey extends string = string>(key: TKey): Promise<FeatureFlagRule<TKey>[]>;
77
+ getAllRules<TKey extends string = string>(): Promise<FeatureFlagRule<TKey>[]>;
78
+ setOverride<TKey extends string = string>(key: TKey, value: FeatureFlagValue): void;
79
+ removeOverride<TKey extends string = string>(key: TKey): void;
80
+ clearOverrides(): void;
81
+ subscribe(callback: () => void): () => void;
82
+ on(event: CoreFrontendFeatureFlagEventType, handler: (data: unknown) => void): () => void;
83
+ protected syncToStores(flags: Record<string, FeatureFlagValue>, replace?: boolean): void;
84
+ private toValues;
85
+ }
86
+ //# sourceMappingURL=FrontendFeatureFlagDomainService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrontendFeatureFlagDomainService.d.ts","sourceRoot":"","sources":["../../../src/domain/featureFlags/FrontendFeatureFlagDomainService.ts"],"names":[],"mappings":"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"}
@@ -2,21 +2,25 @@
2
2
  * Feature Flags Domain - Main Exports
3
3
  *
4
4
  * This module provides the main exports for the feature flags domain logic.
5
- * This will be moved to @plyaz/core when the package structure is finalized.
6
5
  *
7
6
  * @fileoverview Main feature flags domain exports
8
7
  * @version 1.0.0
9
8
  */
10
9
  import type { FeatureFlagConfig, FeatureFlagOverrides } from '@plyaz/types';
11
10
  import type { FeatureFlagKey } from '../types';
11
+ export { createFeatureFlagService, FEATURE_FLAG_SERVICE } from './module';
12
+ export { FeatureFlagService } from './service';
13
+ export { FrontendFeatureFlagDomainService } from './FrontendFeatureFlagDomainService';
14
+ export { FeatureFlagServiceFactory } from './providers/factory';
12
15
  export { FeatureFlagProvider } from './provider';
13
16
  export { FeatureFlagProviderFactory } from './providers/factory';
14
- export type { ProviderType } from './providers/factory';
15
17
  export { MemoryFeatureFlagProvider } from './providers/memory';
16
18
  export { FileFeatureFlagProvider } from './providers/file';
17
19
  export { RedisFeatureFlagProvider } from './providers/redis';
18
20
  export { ApiFeatureFlagProvider } from './providers/api';
19
21
  export { DatabaseFeatureFlagProvider } from './providers/database';
22
+ export { FeatureFlagDatabaseRepository } from '@models/featureFlags';
23
+ export * from './mappers';
20
24
  /**
21
25
  * Default configuration for feature flags.
22
26
  * Provides sensible defaults for most use cases.
@@ -31,19 +35,20 @@ export declare const DEFAULT_FEATURE_FLAG_CONFIG: {
31
35
  };
32
36
  /**
33
37
  * Feature flag system initialization for different environments.
38
+ * Returns a FeatureFlagService instance for all environments.
34
39
  */
35
40
  export declare const FeatureFlagSystem: {
36
41
  /**
37
42
  * Initialize for frontend/client applications.
38
43
  */
39
- readonly initializeForFrontend: (config?: Partial<FeatureFlagConfig<FeatureFlagKey>>) => Promise<import("@plyaz/types").FeatureFlagProvider<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB">>;
44
+ readonly initializeForFrontend: (config?: Partial<FeatureFlagConfig<FeatureFlagKey>>) => Promise<import("./service").FeatureFlagService<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB">>;
40
45
  /**
41
46
  * Initialize for backend/server applications.
42
47
  */
43
- readonly initializeForBackend: (config?: Partial<FeatureFlagConfig<FeatureFlagKey>>) => Promise<import("@plyaz/types").FeatureFlagProvider<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB">>;
48
+ readonly initializeForBackend: (config?: Partial<FeatureFlagConfig<FeatureFlagKey>>) => Promise<import("./service").FeatureFlagService<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB">>;
44
49
  /**
45
50
  * Initialize for testing environments.
46
51
  */
47
- readonly initializeForTesting: (overrides?: FeatureFlagOverrides<FeatureFlagKey>) => Promise<import("@plyaz/types").FeatureFlagProvider<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB">>;
52
+ readonly initializeForTesting: (overrides?: FeatureFlagOverrides<FeatureFlagKey>) => Promise<import("./service").FeatureFlagService<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB">>;
48
53
  };
49
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/featureFlags/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;CAOuB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;8CACmC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAUhF;;OAEG;6CACkC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAU/E;;OAEG;gDACqC,oBAAoB,CAAC,cAAc,CAAC;CAepE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/featureFlags/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAGtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAGrE,cAAc,WAAW,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;CAOuB,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;8CACmC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAQhF;;OAEG;6CACkC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAQ/E;;OAEG;gDACqC,oBAAoB,CAAC,cAAc,CAAC;CAkBpE,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Feature Flag Mapper
3
+ *
4
+ * Handles transformation between different feature flag data representations:
5
+ * - API Response (DTO) → Domain Entity
6
+ * - Domain Entity → Store State
7
+ * - Domain → API Request (DTO)
8
+ *
9
+ * @fileoverview Feature flag data mapper
10
+ * @version 1.0.0
11
+ */
12
+ import { BaseMapper } from '../../base/BaseMapper';
13
+ import type { FeatureFlag, FeatureFlagValue, FeatureFlagRule, FeatureFlagEvaluation, CreateFlagRequest, FetchFeatureFlagDataResponse, FeatureFlagStoreState, FeatureFlagResponseDTO, FeatureFlagRuleDTO, FeatureFlagEvaluationDTO, FetchAllFlagsResponseDTO } from '@plyaz/types/features';
14
+ export type { FeatureFlagResponseDTO, FeatureFlagRuleDTO, FeatureFlagEvaluationDTO, FetchAllFlagsResponseDTO, } from '@plyaz/types/features';
15
+ /**
16
+ * Feature Flag Mapper
17
+ *
18
+ * Transforms feature flag data between API, domain, and store representations.
19
+ */
20
+ export declare class FeatureFlagMapper extends BaseMapper<FeatureFlag<string>, FeatureFlagResponseDTO, unknown, unknown, Partial<unknown>, unknown, Partial<FeatureFlagStoreState>> {
21
+ /**
22
+ * Transform API response DTO to domain entity
23
+ */
24
+ toDomain(dto: FeatureFlagResponseDTO): FeatureFlag<string>;
25
+ /**
26
+ * Transform domain entity to API request DTO
27
+ */
28
+ toCreateDTO(entity: Partial<FeatureFlag<string>>): CreateFlagRequest<string>;
29
+ /**
30
+ * Transform domain entity to patch request DTO
31
+ */
32
+ toPatchDTO(entity: Partial<FeatureFlag<string>>): Partial<CreateFlagRequest<string>>;
33
+ /**
34
+ * Transform API rule DTO to domain rule
35
+ */
36
+ toRuleDomain(dto: FeatureFlagRuleDTO): FeatureFlagRule<string>;
37
+ /**
38
+ * Transform API evaluation DTO to domain evaluation
39
+ */
40
+ toEvaluationDomain(dto: FeatureFlagEvaluationDTO): FeatureFlagEvaluation<string>;
41
+ /**
42
+ * Transform API fetch response to domain response
43
+ */
44
+ toFetchDataResponse(dto: FetchAllFlagsResponseDTO): FetchFeatureFlagDataResponse<string>;
45
+ /**
46
+ * Transform single domain flag to partial store state format
47
+ * Returns partial state that can be merged with existing store state
48
+ */
49
+ toStoreState(flag: FeatureFlag<string>): Partial<FeatureFlagStoreState>;
50
+ /**
51
+ * Transform domain flags array to store state format
52
+ */
53
+ toStoreStateList(flags: FeatureFlag<string>[]): Partial<FeatureFlagStoreState>;
54
+ /**
55
+ * Transform evaluation results to store flags format
56
+ */
57
+ evaluationsToStoreFlags(evaluations: Record<string, FeatureFlagEvaluation<string>>): Record<string, FeatureFlagValue>;
58
+ /**
59
+ * Transform simple flags record to domain flags array
60
+ * (for providers that return simple key-value pairs)
61
+ */
62
+ simpleFlagsToDomain(flags: Record<string, FeatureFlagValue>, environment?: string): FeatureFlag<string>[];
63
+ /**
64
+ * Infer flag type from value
65
+ */
66
+ private inferType;
67
+ }
68
+ /**
69
+ * Singleton instance for convenience
70
+ */
71
+ export declare const featureFlagMapper: FeatureFlagMapper;
72
+ //# sourceMappingURL=FeatureFlagMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagMapper.d.ts","sourceRoot":"","sources":["../../../../src/domain/featureFlags/mappers/FeatureFlagMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EAGrB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAC/C,WAAW,CAAC,MAAM,CAAC,EACnB,sBAAsB,EACtB,OAAO,EACP,OAAO,EACP,OAAO,CAAC,OAAO,CAAC,EAChB,OAAO,EACP,OAAO,CAAC,qBAAqB,CAAC,CAC/B;IACC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,sBAAsB,GAAG,WAAW,CAAC,MAAM,CAAC;IAmB1D;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAY5E;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAapF;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC;IAkB9D;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,wBAAwB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAYhF;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,wBAAwB,GAAG,4BAA4B,CAAC,MAAM,CAAC;IAOxF;;;OAGG;IACM,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAahF;;OAEG;IACM,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsBvF;;OAEG;IACH,uBAAuB,CACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,GACzD,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAUnC;;;OAGG;IACH,mBAAmB,CACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACvC,WAAW,GAAE,MAAqB,GACjC,WAAW,CAAC,MAAM,CAAC,EAAE;IAkBxB;;OAEG;IACH,OAAO,CAAC,SAAS;CAMlB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Feature Flag Mappers
3
+ *
4
+ * @fileoverview Mapper exports for feature flags
5
+ * @version 1.0.0
6
+ */
7
+ export { FeatureFlagMapper, featureFlagMapper, type FeatureFlagResponseDTO, type FeatureFlagRuleDTO, type FeatureFlagEvaluationDTO, type FetchAllFlagsResponseDTO, } from './FeatureFlagMapper';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/featureFlags/mappers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Feature Flag Module - Shared Service Factory
3
+ *
4
+ * Provides the service factory used by the NestJS FeatureFlagModule.
5
+ * For NestJS usage, import from '@plyaz/core/backend/featureFlags'.
6
+ */
7
+ import type { CoreFeatureFlagModuleConfig } from '@plyaz/types/core';
8
+ import type { FeatureFlagService } from './service';
9
+ import type { FeatureFlagKey } from '../types';
10
+ /**
11
+ * Injection token for NestJS DI
12
+ */
13
+ export declare const FEATURE_FLAG_SERVICE = "FEATURE_FLAG_SERVICE";
14
+ /**
15
+ * Creates the FeatureFlagService
16
+ * Used by NestJS FeatureFlagModule internally
17
+ */
18
+ export declare function createFeatureFlagService(config?: CoreFeatureFlagModuleConfig): Promise<FeatureFlagService<FeatureFlagKey>>;
19
+ export { FeatureFlagService } from './service';
20
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/domain/featureFlags/module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAwG/C;;GAEG;AACH,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,GAAE,2BAA2C,GAClD,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAM7C;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * @fileoverview Core feature flag provider implementation
8
8
  * @version 1.0.0
9
9
  */
10
- import type { FeatureFlagProvider as IFeatureFlagProvider, FeatureFlagConfig, FeatureFlagContext, FeatureFlagEvaluation, FeatureFlagValue, FetchFeatureFlagDataResponse } from '@plyaz/types';
10
+ import type { FeatureFlagProvider as IFeatureFlagProvider, FeatureFlagConfig, FeatureFlagContext, FeatureFlagEvaluation, FeatureFlagValue, FetchFeatureFlagDataResponse, FeatureFlag, FeatureFlagRule, CreateFlagRequest } from '@plyaz/types';
11
11
  import { FeatureFlagEngine } from '@engine/featureFlags/engine';
12
12
  import { CacheManager } from '@base/cache/index';
13
13
  /**
@@ -134,6 +134,45 @@ export declare abstract class FeatureFlagProvider<FeatureFlagKey extends string>
134
134
  * Disposes of the provider, cleaning up resources.
135
135
  */
136
136
  dispose(): void;
137
+ /**
138
+ * Creates a new feature flag.
139
+ * Abstract - each provider implements based on its storage backend.
140
+ *
141
+ * @param data - Flag creation data
142
+ * @returns The created feature flag
143
+ */
144
+ abstract createFlag(data: CreateFlagRequest<FeatureFlagKey>): Promise<FeatureFlag<FeatureFlagKey>>;
145
+ /**
146
+ * Updates an existing feature flag.
147
+ * Abstract - each provider implements based on its storage backend.
148
+ *
149
+ * @param key - Flag key to update
150
+ * @param data - Partial flag data to update
151
+ * @returns The updated feature flag
152
+ */
153
+ abstract updateFlag(key: FeatureFlagKey, data: Partial<CreateFlagRequest<FeatureFlagKey>>): Promise<FeatureFlag<FeatureFlagKey>>;
154
+ /**
155
+ * Deletes a feature flag.
156
+ * Abstract - each provider implements based on its storage backend.
157
+ *
158
+ * @param key - Flag key to delete
159
+ */
160
+ abstract deleteFlag(key: FeatureFlagKey): Promise<void>;
161
+ /**
162
+ * Gets all rules for a specific flag.
163
+ * Abstract - each provider implements based on its storage backend.
164
+ *
165
+ * @param key - Flag key to get rules for
166
+ * @returns Array of rules for the flag
167
+ */
168
+ abstract getRules(key: FeatureFlagKey): Promise<FeatureFlagRule<FeatureFlagKey>[]>;
169
+ /**
170
+ * Gets all enabled rules across all flags.
171
+ * Abstract - each provider implements based on its storage backend.
172
+ *
173
+ * @returns Array of all enabled rules
174
+ */
175
+ abstract getAllRules(): Promise<FeatureFlagRule<FeatureFlagKey>[]>;
137
176
  /**
138
177
  * Optional method to sync features at runtime.
139
178
  * This is useful for providers that can update their features dynamically.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/domain/featureFlags/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/domain/featureFlags/provider.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,65 @@
1
1
  /**
2
- * API Feature Flag Provider (Stub)
2
+ * API Feature Flag Provider
3
3
  *
4
- * API-based provider stub that requires @plyaz/api package implementation.
5
- * This will be moved to @plyaz/core when the package structure is finalized.
4
+ * Provider adapter that uses @plyaz/api services with an injected API client
5
+ * to fetch feature flags from a remote API. This provider extends the base
6
+ * FeatureFlagProvider and implements fetchData() using the API services.
6
7
  *
7
- * @fileoverview API provider stub for feature flags
8
- * @version 1.0.0
8
+ * @fileoverview API provider adapter for feature flags
9
+ * @version 2.0.0
9
10
  */
10
- import type { FeatureFlag, FeatureFlagRule, FeatureFlagConfig, FeatureFlagValue } from '@plyaz/types';
11
+ import type { FeatureFlag, FeatureFlagRule, FeatureFlagValue, CreateFlagRequest } from '@plyaz/types';
11
12
  import { FeatureFlagProvider } from '../provider';
13
+ import type { ServiceOptions } from '@plyaz/types/api';
14
+ import type { ApiFeatureFlagConfig as _ApiFeatureFlagConfig } from '@plyaz/types/features';
15
+ type ApiClientType = NonNullable<ServiceOptions['apiClient']>;
12
16
  /**
13
- * API-based feature flag provider requiring @plyaz/api implementation.
17
+ * API-based feature flag provider
18
+ *
19
+ * Uses @plyaz/api services with an injected API client to communicate with the backend.
20
+ * Pass your configured API client via the config.
14
21
  *
15
22
  * @class ApiFeatureFlagProvider
16
23
  * @extends {FeatureFlagProvider}
17
24
  *
18
25
  * @example
19
26
  * ```typescript
20
- * // This will throw an error until @plyaz/api is implemented
27
+ * // Get client from ApiClientService
28
+ * const apiClient = ApiClientService.getClient();
29
+ *
21
30
  * const provider = new ApiFeatureFlagProvider({
22
31
  * provider: 'api',
23
- * apiEndpoint: 'https://api.plyaz.co.uk',
24
- * apiKey: process.env.FEATURE_FLAG_API_KEY,
32
+ * apiClient,
25
33
  * isCacheEnabled: true,
26
34
  * cacheTtl: 300,
27
- * });
35
+ * }, FEATURES);
36
+ *
37
+ * await provider.initialize();
38
+ * const isEnabled = await provider.isEnabled('new-feature');
28
39
  * ```
29
40
  */
30
41
  export declare class ApiFeatureFlagProvider<FeatureFlagKey extends string> extends FeatureFlagProvider<FeatureFlagKey> {
42
+ protected readonly apiClient: ApiClientType;
31
43
  /**
32
44
  * Creates a new API feature flag provider.
33
45
  *
34
- * @param config - Provider configuration with API settings
35
- * @throws Error indicating that @plyaz/api implementation is required
46
+ * @param config - Provider configuration with API client
47
+ * @param features - Record of feature flag keys to default values
48
+ */
49
+ constructor(config: _ApiFeatureFlagConfig<FeatureFlagKey>, features: Record<FeatureFlagKey, FeatureFlagValue>);
50
+ /**
51
+ * Get service options with injected client
36
52
  */
37
- constructor(config: FeatureFlagConfig<FeatureFlagKey>, features: Record<FeatureFlagKey, FeatureFlagValue>);
53
+ private getServiceOptions;
54
+ /** Wrap error in CorePackageError if not already a package error */
55
+ private wrapError;
56
+ /** Transform API response to flags/rules */
57
+ private transformResponse;
38
58
  /**
39
- * Fetches flags and rules from the API endpoint.
40
- * Currently throws an error as the API implementation is not ready.
59
+ * Fetches flags and rules from the API endpoint using @plyaz/api services.
41
60
  *
42
61
  * @protected
43
- * @returns Promise that rejects with implementation error
44
- * @throws Error indicating missing API implementation
62
+ * @returns Promise resolving to flags and rules data
45
63
  */
46
64
  protected fetchData(): Promise<{
47
65
  flags: FeatureFlag<FeatureFlagKey>[];
@@ -51,28 +69,35 @@ export declare class ApiFeatureFlagProvider<FeatureFlagKey extends string> exten
51
69
  * Validates the API provider configuration.
52
70
  *
53
71
  * @private
54
- * @throws Error if configuration is invalid or incomplete
55
72
  */
56
73
  private validateConfig;
57
- /**
58
- * Validates URL format.
59
- *
60
- * @private
61
- * @param url - URL to validate
62
- * @returns True if valid URL
63
- */
64
- private isValidUrl;
65
74
  /**
66
75
  * Gets API provider status and configuration info.
67
- *
68
- * @returns API provider status information
69
76
  */
70
77
  getApiInfo(): {
71
- endpoint?: string;
72
- hasApiKey: boolean;
73
- isImplemented: boolean;
74
- requiredPackages: string[];
75
- documentationPath: string;
78
+ hasApiClient: boolean;
76
79
  };
80
+ /**
81
+ * Creates a new feature flag via API
82
+ */
83
+ createFlag(data: CreateFlagRequest<FeatureFlagKey>): Promise<FeatureFlag<FeatureFlagKey>>;
84
+ /**
85
+ * Updates a feature flag via API
86
+ */
87
+ updateFlag(key: FeatureFlagKey, data: Partial<CreateFlagRequest<FeatureFlagKey>>): Promise<FeatureFlag<FeatureFlagKey>>;
88
+ /**
89
+ * Deletes a feature flag via API
90
+ */
91
+ deleteFlag(key: FeatureFlagKey): Promise<void>;
92
+ /**
93
+ * Gets rules for a specific flag via API
94
+ */
95
+ getRules(key: FeatureFlagKey): Promise<FeatureFlagRule<FeatureFlagKey>[]>;
96
+ /**
97
+ * Gets all rules via API
98
+ * Note: This requires fetching rules for all flags individually or a dedicated endpoint
99
+ */
100
+ getAllRules(): Promise<FeatureFlagRule<FeatureFlagKey>[]>;
77
101
  }
102
+ export {};
78
103
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/domain/featureFlags/providers/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,sBAAsB,CACjC,cAAc,SAAS,MAAM,CAC7B,SAAQ,mBAAmB,CAAC,cAAc,CAAC;IAC3C;;;;;OAKG;gBAED,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACzC,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAOpD;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC;QACnC,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,KAAK,EAAE,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;KAC1C,CAAC;IA6BF;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAmCtB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACH,UAAU,IAAI;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,iBAAiB,EAAE,MAAM,CAAC;KAC3B;CASF"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/domain/featureFlags/providers/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG3F,KAAK,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;AAU9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAsB,CACjC,cAAc,SAAS,MAAM,CAC7B,SAAQ,mBAAmB,CAAC,cAAc,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5C;;;;;OAKG;gBAED,MAAM,EAAE,qBAAqB,CAAC,cAAc,CAAC,EAC7C,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAepD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB,oEAAoE;IACpE,OAAO,CAAC,SAAS;IAajB,4CAA4C;IAC5C,OAAO,CAAC,iBAAiB;IAUzB;;;;;OAKG;cACa,SAAS,IAAI,OAAO,CAAC;QACnC,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,KAAK,EAAE,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;KAC1C,CAAC;IAsBF;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,UAAU,IAAI;QACZ,YAAY,EAAE,OAAO,CAAC;KACvB;IAUD;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAoB/F;;OAEG;IACG,UAAU,CACd,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,GAC/C,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAcvC;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;IAa/E;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;CAKhE"}