@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
@@ -1,103 +0,0 @@
1
- /**
2
- * useFeatureFlag Hook
3
- *
4
- * React hook for accessing individual feature flags with caching and real-time updates.
5
- * This will be moved to @plyaz/core when the package structure is finalized.
6
- *
7
- * @fileoverview React hook for feature flag access
8
- * @version 1.0.0
9
- */
10
- import type { FeatureFlagValue, FeatureFlagHook, UseFeatureFlagOptions } from '@plyaz/types';
11
- /**
12
- * React hook for accessing a single feature flag.
13
- * Provides real-time updates and automatic caching.
14
- *
15
- * @template T - Expected type of the flag value
16
- * @param key - Feature flag key to evaluate
17
- * @param options - Hook configuration options
18
- * @returns Feature flag hook state
19
- *
20
- * @example
21
- * ```typescript
22
- * // Basic usage
23
- * const { value: isEnabled, isLoading, error } = useFeatureFlag<FeatureFlagKey>('AUTH_GOOGLE');
24
- *
25
- * // With context and type safety
26
- * const { value, isLoading, refresh } = useFeatureFlag<FeatureFlagKey, number>(
27
- * 'ROLLOUT_PERCENTAGE',
28
- * {
29
- * context: { userId: 'user123', environment: 'production' },
30
- * defaultValue: 0
31
- * }
32
- * );
33
- *
34
- * // With auto-refresh disabled
35
- * const { value, refresh } = useFeatureFlag<FeatureFlagKey>('BETA_FEATURE', {
36
- * autoRefresh: false,
37
- * defaultValue: false
38
- * });
39
- * ```
40
- */
41
- export declare function useFeatureFlag<FeatureFlagKey extends string, T extends FeatureFlagValue = boolean>(key: FeatureFlagKey, options?: UseFeatureFlagOptions): FeatureFlagHook<T>;
42
- /**
43
- * Hook for checking if a feature flag is enabled.
44
- * Simplified version of useFeatureFlag that returns only boolean state.
45
- *
46
- * @param key - Feature flag key to check
47
- * @param options - Hook configuration options
48
- * @returns Boolean indicating if flag is enabled
49
- *
50
- * @example
51
- * ```typescript
52
- * const isGoogleAuthEnabled = useFeatureFlagEnabled<FeatureFlagKey>('AUTH_GOOGLE');
53
- * const isBetaEnabled = useFeatureFlagEnabled<FeatureFlagKey>('BETA_FEATURE', {
54
- * context: { userId: 'user123', environment: 'production' }
55
- * });
56
- * ```
57
- */
58
- export declare function useFeatureFlagEnabled<FeatureFlagKey extends string>(key: FeatureFlagKey, options?: UseFeatureFlagOptions): boolean;
59
- /**
60
- * Hook for getting a feature flag value with type safety.
61
- * Provides the raw value without the loading state wrapper.
62
- *
63
- * @template T - Expected type of the flag value
64
- * @param key - Feature flag key to get value for
65
- * @param options - Hook configuration options
66
- * @returns The flag value with type safety
67
- *
68
- * @example
69
- * ```typescript
70
- * const rolloutPercentage = useFeatureFlagValue<FeatureFlagKey, number>('ROLLOUT_PERCENTAGE', {
71
- * defaultValue: 0
72
- * });
73
- *
74
- * const theme = useFeatureFlagValue<FeatureFlagKey, 'light' | 'dark'>('UI_THEME', {
75
- * defaultValue: 'light'
76
- * });
77
- * ```
78
- */
79
- export declare function useFeatureFlagValue<FeatureFlagKey extends string, T extends FeatureFlagValue = FeatureFlagValue>(key: FeatureFlagKey, options?: UseFeatureFlagOptions): T;
80
- /**
81
- * Hook for evaluating multiple feature flags at once.
82
- * Useful for loading multiple flags with a single provider call.
83
- *
84
- * @param keys - Array of feature flag keys to evaluate
85
- * @param options - Hook configuration options
86
- * @returns Map of flag keys to their hook states
87
- *
88
- * @example
89
- * ```typescript
90
- * const flags = useMultipleFeatureFlags<FeatureFlagKey>([
91
- * 'AUTH_GOOGLE',
92
- * 'AUTH_GITHUB',
93
- * 'BETA_FEATURE'
94
- * ], {
95
- * context: { userId: 'user123', environment: 'production' }
96
- * });
97
- *
98
- * const isGoogleEnabled = flags.AUTH_GOOGLE.value;
99
- * const isGithubEnabled = flags.AUTH_GITHUB.value;
100
- * ```
101
- */
102
- export declare function useMultipleFeatureFlags<FeatureFlagKey extends string>(keys: FeatureFlagKey[], options?: UseFeatureFlagOptions): Record<FeatureFlagKey, FeatureFlagHook<FeatureFlagValue>>;
103
- //# sourceMappingURL=useFeatureFlag.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeatureFlag.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/hooks/useFeatureFlag.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAO7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,cAAc,SAAS,MAAM,EAAE,CAAC,SAAS,gBAAgB,GAAG,OAAO,EAChG,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,qBAA0B,GAClC,eAAe,CAAC,CAAC,CAAC,CA8CpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,SAAS,MAAM,EACjE,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAOT;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,SAAS,MAAM,EAC7B,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,EAC7C,GAAG,EAAE,cAAc,EAAE,OAAO,GAAE,qBAA0B,GAAG,CAAC,CAG7D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,SAAS,MAAM,EACnE,IAAI,EAAE,cAAc,EAAE,EACtB,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAuB3D"}
@@ -1,35 +0,0 @@
1
- /**
2
- * useFeatureFlagHelpers Hook
3
- *
4
- * React hook providing helper functions for feature flag management.
5
- * This will be moved to @plyaz/core when the package structure is finalized.
6
- *
7
- * @fileoverview Helper functions hook for feature flags
8
- * @version 1.0.0
9
- */
10
- import type { FeatureFlagHelpers } from '@plyaz/types';
11
- /**
12
- * Hook that provides helper functions for feature flag operations.
13
- * Includes override management, bulk operations, and conditional execution.
14
- *
15
- * @returns Object containing helper functions
16
- *
17
- * @example
18
- * ```typescript
19
- * const helpers = useFeatureFlagHelpers<FeatureFlagKey>();
20
- *
21
- * // Set override
22
- * helpers.setOverride('AUTH_GOOGLE', true);
23
- *
24
- * // Check multiple flags
25
- * const anyEnabled = await helpers.isAnyEnabled(['AUTH_GOOGLE', 'AUTH_GITHUB']);
26
- *
27
- * // Conditional execution
28
- * const result = await helpers.whenEnabled('BETA_FEATURE',
29
- * () => console.log('Beta feature is enabled'),
30
- * () => console.log('Beta feature is disabled')
31
- * );
32
- * ```
33
- */
34
- export declare function useFeatureFlagHelpers<FeatureFlagKey extends string>(): FeatureFlagHelpers<FeatureFlagKey>;
35
- //# sourceMappingURL=useFeatureFlagActions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeatureFlagActions.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/hooks/useFeatureFlagActions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAwC,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG7F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,SAAS,MAAM,KAC1B,kBAAkB,CAAC,cAAc,CAAC,CAsGtC"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Feature Flag Hook Helpers
3
- *
4
- * Helper functions for feature flag hooks to reduce function complexity.
5
- *
6
- * @fileoverview Helper functions for feature flag hooks
7
- * @version 1.0.0
8
- */
9
- import type * as React from 'react';
10
- import type { FeatureFlagValue, FeatureFlagContext, FeatureFlagHook, FeatureFlagProvider, FeatureFlagState } from '@plyaz/types';
11
- /**
12
- * Creates evaluation function for a feature flag.
13
- *
14
- * @template FeatureFlagKey - The type of feature flag keys
15
- * @template T - The expected type of the flag value
16
- * @param params - Evaluation parameters
17
- * @param params.provider - Feature flag provider instance
18
- * @param params.key - Feature flag key to evaluate
19
- * @param params.context - Optional evaluation context
20
- * @param params.defaultValue - Default value if evaluation fails
21
- * @param setState - React state setter for flag state
22
- * @returns Async function that evaluates the flag
23
- */
24
- export declare function createEvaluationFunction<FeatureFlagKey extends string, T extends FeatureFlagValue = string | number | boolean | Record<string, unknown>>(params: {
25
- provider: FeatureFlagProvider<FeatureFlagKey> | null;
26
- key: FeatureFlagKey;
27
- context: FeatureFlagContext | undefined;
28
- defaultValue: T | undefined;
29
- }, setState: React.Dispatch<React.SetStateAction<FeatureFlagState<FeatureFlagKey, T>>>): () => Promise<void>;
30
- /**
31
- * Custom hook for managing feature flag evaluation logic.
32
- * Handles loading state, error management, and automatic evaluation.
33
- *
34
- * @template FeatureFlagKey - The type of feature flag keys
35
- * @template T - The expected type of the flag value
36
- * @param key - Feature flag key to evaluate
37
- * @param context - Optional evaluation context
38
- * @param defaultValue - Default value if evaluation fails
39
- * @param provider - Feature flag provider instance
40
- * @returns Feature flag hook state with value, loading, error, and refresh function
41
- */
42
- export declare function useFeatureFlagEvaluation<FeatureFlagKey extends string, T extends FeatureFlagValue = boolean>(key: FeatureFlagKey, context: FeatureFlagContext | undefined, defaultValue: T | undefined, provider: FeatureFlagProvider<FeatureFlagKey> | null): FeatureFlagHook<T>;
43
- /**
44
- * Custom hook for managing multiple feature flags evaluation.
45
- * Returns a record of flag states for multiple flags.
46
- *
47
- * @template FeatureFlagKey - The type of feature flag keys
48
- * @param keys - Array of feature flag keys to evaluate
49
- * @param context - Optional evaluation context
50
- * @param defaultValue - Default value for all flags if evaluation fails
51
- * @param provider - Feature flag provider instance
52
- * @returns Record mapping flag keys to their hook states
53
- */
54
- export declare function useMultipleFeatureFlagsEvaluation<FeatureFlagKey extends string>(keys: FeatureFlagKey[], context: FeatureFlagContext | undefined, defaultValue: FeatureFlagValue, provider: FeatureFlagProvider<FeatureFlagKey> | null): Record<string, FeatureFlagHook<FeatureFlagValue>>;
55
- //# sourceMappingURL=useFeatureFlagHelpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeatureFlagHelpers.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/hooks/useFeatureFlagHelpers.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,SAAS,MAAM,EAC7B,CAAC,SAAS,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhF,MAAM,EAAE;IACN,QAAQ,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACrD,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACxC,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;CAC7B,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,GAClF,MAAM,OAAO,CAAC,IAAI,CAAC,CA0BrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,SAAS,MAAM,EAC7B,CAAC,SAAS,gBAAgB,GAAG,OAAO,EAEpC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,YAAY,EAAE,CAAC,GAAG,SAAS,EAC3B,QAAQ,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,GACnD,eAAe,CAAC,CAAC,CAAC,CA+BpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,cAAc,SAAS,MAAM,EAC7E,IAAI,EAAE,cAAc,EAAE,EACtB,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,GACnD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,CA6InD"}
@@ -1,57 +0,0 @@
1
- /**
2
- * useFeatureFlagProvider Hook
3
- *
4
- * React hook for accessing the feature flag provider from context.
5
- * This will be moved to @plyaz/core when the package structure is finalized.
6
- *
7
- * @fileoverview Provider access hook for feature flags
8
- * @version 1.0.0
9
- */
10
- import type { FeatureFlagProvider } from '@plyaz/types';
11
- /**
12
- * Hook for accessing the feature flag provider from React context.
13
- * Must be used within a FeatureFlagProvider component.
14
- *
15
- * @returns Feature flag provider instance
16
- * @throws Error if used outside of FeatureFlagProvider
17
- *
18
- * @example
19
- * ```typescript
20
- * function MyComponent() {
21
- * const provider = useFeatureFlagProvider<FeatureFlagKey>();
22
- *
23
- * const handleRefresh = async () => {
24
- * await provider.refresh();
25
- * };
26
- *
27
- * return <button onClick={handleRefresh}>Refresh Flags</button>;
28
- * }
29
- * ```
30
- */
31
- export declare function useFeatureFlagProvider<FeatureFlagKey extends string>(): FeatureFlagProvider<FeatureFlagKey>;
32
- /**
33
- * Hook for accessing the feature flag provider status.
34
- * Provides information about provider initialization and health.
35
- *
36
- * @returns Provider status information
37
- *
38
- * @example
39
- * ```typescript
40
- * function StatusComponent() {
41
- * const { isInitialized, isLoading, error } = useFeatureFlagProviderStatus<FeatureFlagKey>();
42
- *
43
- * if (isLoading) return <div>Loading feature flags...</div>;
44
- * if (error) return <div>Error: {error.message}</div>;
45
- * if (!isInitialized) return <div>Initializing...</div>;
46
- *
47
- * return <div>Feature flags ready!</div>;
48
- * }
49
- * ```
50
- */
51
- export declare function useFeatureFlagProviderStatus<FeatureFlagKey extends string>(): {
52
- isInitialized: boolean;
53
- isLoading: boolean;
54
- error: Error | null;
55
- lastUpdated: Date | null | undefined;
56
- };
57
- //# sourceMappingURL=useFeatureFlagProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeatureFlagProvider.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/hooks/useFeatureFlagProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAA2B,MAAM,cAAc,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,SAAS,MAAM,KAC1B,mBAAmB,CAAC,cAAc,CAAC,CAWvC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,SAAS,MAAM,KAAK;IAC7E,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC,CAgBA"}
@@ -1,99 +0,0 @@
1
- /**
2
- * Feature Flag Provider Component
3
- *
4
- * React context provider for feature flags system.
5
- * This will be moved to @plyaz/core when the package structure is finalized.
6
- *
7
- * @fileoverview React provider for feature flag context
8
- * @version 1.0.0
9
- */
10
- import React from 'react';
11
- import type { FeatureFlagConfig, FeatureFlagContextValue, FeatureFlagProviderProps, FeatureFlagValue } from '@plyaz/types';
12
- import type { FeatureFlagKey } from '@domain/types';
13
- /**
14
- * React context for feature flag provider.
15
- * Using string as the base type to support any feature flag key.
16
- */
17
- export declare const FeatureFlagContext: React.Context<FeatureFlagContextValue<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB"> | null>;
18
- /**
19
- * Feature Flag Provider component that manages the feature flag system.
20
- * Provides context for accessing feature flags throughout the React component tree.
21
- *
22
- * @param props - Provider configuration and options
23
- * @returns JSX element providing feature flag context
24
- *
25
- * @example
26
- * ```typescript
27
- * // Basic usage
28
- * function App() {
29
- * return (
30
- * <FeatureFlagAppProvider
31
- * config={{
32
- * provider: 'memory',
33
- * isCacheEnabled: true,
34
- * cacheTtl: 300,
35
- * }}
36
- * features={FEATURES}
37
- * >
38
- * <MyApplication />
39
- * </FeatureFlagAppProvider>
40
- * );
41
- * }
42
- *
43
- * // With custom context and callbacks
44
- * function App() {
45
- * const featureFlagConfig = {
46
- * provider: 'api' as const,
47
- * apiEndpoint: 'https://api.example.com',
48
- * apiKey: process.env.REACT_APP_FF_API_KEY,
49
- * isCacheEnabled: true,
50
- * cacheTtl: 300,
51
- * };
52
- *
53
- * const defaultContext = {
54
- * environment: 'production' as const,
55
- * userId: getCurrentUserId(),
56
- * userRole: getCurrentUserRole(),
57
- * };
58
- *
59
- * return (
60
- * <FeatureFlagAppProvider
61
- * config={featureFlagConfig}
62
- * features={FEATURES}
63
- * defaultContext={defaultContext}
64
- * onReady={(provider) => console.log('Feature flags ready!')}
65
- * onError={(error) => console.error('Feature flag error:', error)}
66
- * showLoading
67
- * >
68
- * <MyApplication />
69
- * </FeatureFlagAppProvider>
70
- * );
71
- * }
72
- * ```
73
- */
74
- export declare function FeatureFlagAppProvider<FeatureFlags extends Record<FeatureFlagKey, FeatureFlagValue>>({ config, children, features, onReady, onError, isShowLoading, loadingComponent, errorComponent, }: FeatureFlagProviderProps<FeatureFlagKey, FeatureFlags>): React.ReactElement;
75
- export declare namespace FeatureFlagAppProvider {
76
- var displayName: string;
77
- }
78
- /**
79
- * Higher-order component for providing feature flag context.
80
- * Alternative to using the FeatureFlagAppProvider component directly.
81
- *
82
- * @param config - Feature flag configuration
83
- * @param options - Additional provider options
84
- * @returns HOC function that wraps components with feature flag provider
85
- *
86
- * @example
87
- * ```typescript
88
- * const withFeatureFlags = createFeatureFlagProvider({
89
- * provider: 'memory',
90
- * isCacheEnabled: true,
91
- * }, {
92
- * features: FEATURES
93
- * });
94
- *
95
- * const AppWithFeatureFlags = withFeatureFlags(App);
96
- * ```
97
- */
98
- export declare function createFeatureFlagProvider<FeatureFlags extends Record<FeatureFlagKey, FeatureFlagValue>>(config: FeatureFlagConfig<FeatureFlagKey>, options?: Pick<FeatureFlagProviderProps<FeatureFlagKey, FeatureFlags>, 'defaultContext' | 'onReady' | 'onError' | 'features'>): <P extends object>(component: React.ComponentType<P>) => React.ComponentType<P>;
99
- //# sourceMappingURL=FeatureFlagProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeatureFlagProvider.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/providers/FeatureFlagProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAEV,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iHAE9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,wBAAgB,sBAAsB,CACpC,YAAY,SAAS,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAC7D,EACA,MAAM,EAEN,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,aAAqB,EACrB,gBAAgB,EAChB,cAAc,GACf,EAAE,wBAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CA0J7E;yBAtKe,sBAAsB;;;AA2KtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,SAAS,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAE7D,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACzC,OAAO,CAAC,EAAE,IAAI,CACZ,wBAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,EACtD,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CACtD,IAEgC,CAAC,SAAS,MAAM,EAC/C,WAAW,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAChC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAe1B"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Feature Flag Provider Helpers
3
- *
4
- * Helper functions for the FeatureFlagProvider component to reduce complexity.
5
- *
6
- * @fileoverview Helper functions for FeatureFlagProvider
7
- * @version 1.0.0
8
- */
9
- import React from 'react';
10
- import type { FeatureFlagConfig } from '@plyaz/types';
11
- import type { ProviderState, UseFeatureFlagProviderState } from './types';
12
- /**
13
- * Hook for managing feature flag provider state and initialization.
14
- */
15
- export declare function useFeatureFlagProviderState<FeatureFlagKey extends string>(config: FeatureFlagConfig<FeatureFlagKey>, onReady?: () => void, onError?: (error: Error) => void): UseFeatureFlagProviderState<FeatureFlagKey>;
16
- /**
17
- * Hook for setting up provider subscription and cleanup.
18
- */
19
- export declare function useProviderSubscription<FeatureFlagKey extends string>(state: ProviderState<FeatureFlagKey>, setState: React.Dispatch<React.SetStateAction<ProviderState<FeatureFlagKey>>>): void;
20
- /**
21
- * Renders loading state component.
22
- */
23
- export declare function renderLoadingState(isShowLoading: boolean, isLoading: boolean, loadingComponent?: React.ComponentType): React.ReactElement | null;
24
- /**
25
- * Renders error state component.
26
- */
27
- export declare function renderErrorState(error: Error | null, errorComponent?: React.ComponentType<{
28
- error: Error;
29
- retry: () => void;
30
- }>, retry?: () => void): React.ReactElement | null;
31
- //# sourceMappingURL=FeatureFlagProviderHelpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeatureFlagProviderHelpers.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/providers/FeatureFlagProviderHelpers.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE1E;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,SAAS,MAAM,EACvE,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACzC,OAAO,CAAC,EAAE,MAAM,IAAI,EACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,2BAA2B,CAAC,cAAc,CAAC,CA8C7C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,SAAS,MAAM,EACnE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,GAC5E,IAAI,CAeN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,GACrC,KAAK,CAAC,YAAY,GAAG,IAAI,CAW3B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,EACzE,KAAK,CAAC,EAAE,MAAM,IAAI,GACjB,KAAK,CAAC,YAAY,GAAG,IAAI,CAO3B"}
@@ -1,21 +0,0 @@
1
- import type React from 'react';
2
- import type { FeatureFlagProvider as IFeatureFlagProvider } from '@plyaz/types';
3
- /**
4
- * Provider state interface.
5
- */
6
- export interface ProviderState<FeatureFlagKey extends string> {
7
- provider: IFeatureFlagProvider<FeatureFlagKey> | null;
8
- isInitialized: boolean;
9
- isLoading: boolean;
10
- error: Error | null;
11
- lastUpdated: Date | null;
12
- }
13
- /**
14
- * Hook for managing feature flag provider state and initialization.
15
- */
16
- export interface UseFeatureFlagProviderState<FeatureFlagKey extends string> {
17
- state: ProviderState<FeatureFlagKey>;
18
- setState: React.Dispatch<React.SetStateAction<ProviderState<FeatureFlagKey>>>;
19
- initializeProvider: () => Promise<void>;
20
- }
21
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,IAAI,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,cAAc,SAAS,MAAM;IAC1D,QAAQ,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACtD,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B,CAAC,cAAc,SAAS,MAAM;IACxE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9E,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC"}