@plyaz/core 1.1.1 → 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 (243) 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 +89 -0
  16. package/dist/backend/featureFlags/config/feature-flag.config.d.ts.map +1 -0
  17. package/dist/backend/featureFlags/config/validation.d.ts +181 -0
  18. package/dist/backend/featureFlags/config/validation.d.ts.map +1 -0
  19. package/dist/backend/featureFlags/decorators/feature-disabled.decorator.d.ts +6 -0
  20. package/dist/backend/featureFlags/decorators/feature-disabled.decorator.d.ts.map +1 -0
  21. package/dist/backend/featureFlags/decorators/feature-enabled.decorator.d.ts +8 -0
  22. package/dist/backend/featureFlags/decorators/feature-enabled.decorator.d.ts.map +1 -0
  23. package/dist/backend/featureFlags/decorators/feature-flag.decorator.d.ts +11 -0
  24. package/dist/backend/featureFlags/decorators/feature-flag.decorator.d.ts.map +1 -0
  25. package/dist/backend/featureFlags/feature-flag.controller.d.ts +14 -56
  26. package/dist/backend/featureFlags/feature-flag.controller.d.ts.map +1 -1
  27. package/dist/backend/featureFlags/feature-flag.module.d.ts +36 -44
  28. package/dist/backend/featureFlags/feature-flag.module.d.ts.map +1 -1
  29. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts +33 -0
  30. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts.map +1 -0
  31. package/dist/backend/featureFlags/index.d.ts +14 -41
  32. package/dist/backend/featureFlags/index.d.ts.map +1 -1
  33. package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts +16 -0
  34. package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts.map +1 -0
  35. package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts +18 -0
  36. package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts.map +1 -0
  37. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts +162 -0
  38. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts.map +1 -0
  39. package/dist/backend/index.d.ts +5 -0
  40. package/dist/backend/index.d.ts.map +1 -1
  41. package/dist/base/cache/CacheKeyBuilder.d.ts +115 -0
  42. package/dist/base/cache/CacheKeyBuilder.d.ts.map +1 -0
  43. package/dist/base/cache/feature/caching.d.ts +16 -0
  44. package/dist/base/cache/feature/caching.d.ts.map +1 -0
  45. package/dist/base/cache/index.d.ts +2 -0
  46. package/dist/base/cache/index.d.ts.map +1 -1
  47. package/dist/base/cache/strategies/redis.d.ts.map +1 -1
  48. package/dist/base/observability/BaseAdapter.d.ts +79 -0
  49. package/dist/base/observability/BaseAdapter.d.ts.map +1 -0
  50. package/dist/base/observability/CompositeAdapter.d.ts +72 -0
  51. package/dist/base/observability/CompositeAdapter.d.ts.map +1 -0
  52. package/dist/base/observability/DatadogAdapter.d.ts +117 -0
  53. package/dist/base/observability/DatadogAdapter.d.ts.map +1 -0
  54. package/dist/base/observability/LoggerAdapter.d.ts +54 -0
  55. package/dist/base/observability/LoggerAdapter.d.ts.map +1 -0
  56. package/dist/base/observability/ObservabilityService.d.ts +160 -0
  57. package/dist/base/observability/ObservabilityService.d.ts.map +1 -0
  58. package/dist/base/observability/index.d.ts +17 -0
  59. package/dist/base/observability/index.d.ts.map +1 -0
  60. package/dist/domain/base/BaseBackendDomainService.d.ts +528 -0
  61. package/dist/domain/base/BaseBackendDomainService.d.ts.map +1 -0
  62. package/dist/domain/base/BaseDomainService.d.ts +284 -0
  63. package/dist/domain/base/BaseDomainService.d.ts.map +1 -0
  64. package/dist/domain/base/BaseFrontendDomainService.d.ts +493 -0
  65. package/dist/domain/base/BaseFrontendDomainService.d.ts.map +1 -0
  66. package/dist/domain/base/BaseMapper.d.ts +100 -0
  67. package/dist/domain/base/BaseMapper.d.ts.map +1 -0
  68. package/dist/domain/base/BaseValidator.d.ts +105 -0
  69. package/dist/domain/base/BaseValidator.d.ts.map +1 -0
  70. package/dist/domain/base/index.d.ts +10 -0
  71. package/dist/domain/base/index.d.ts.map +1 -0
  72. package/dist/domain/example/BackendExampleDomainService.d.ts +257 -0
  73. package/dist/domain/example/BackendExampleDomainService.d.ts.map +1 -0
  74. package/dist/domain/example/FrontendExampleDomainService.d.ts +164 -0
  75. package/dist/domain/example/FrontendExampleDomainService.d.ts.map +1 -0
  76. package/dist/domain/example/index.d.ts +10 -0
  77. package/dist/domain/example/index.d.ts.map +1 -0
  78. package/dist/domain/example/mappers/ExampleMapper.d.ts +67 -0
  79. package/dist/domain/example/mappers/ExampleMapper.d.ts.map +1 -0
  80. package/dist/domain/example/validators/ExampleValidator.d.ts +33 -0
  81. package/dist/domain/example/validators/ExampleValidator.d.ts.map +1 -0
  82. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts +86 -0
  83. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts.map +1 -0
  84. package/dist/domain/featureFlags/index.d.ts +10 -5
  85. package/dist/domain/featureFlags/index.d.ts.map +1 -1
  86. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts +72 -0
  87. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts.map +1 -0
  88. package/dist/domain/featureFlags/mappers/index.d.ts +8 -0
  89. package/dist/domain/featureFlags/mappers/index.d.ts.map +1 -0
  90. package/dist/domain/featureFlags/module.d.ts +20 -0
  91. package/dist/domain/featureFlags/module.d.ts.map +1 -0
  92. package/dist/domain/featureFlags/provider.d.ts +40 -1
  93. package/dist/domain/featureFlags/provider.d.ts.map +1 -1
  94. package/dist/domain/featureFlags/providers/api.d.ts +59 -34
  95. package/dist/domain/featureFlags/providers/api.d.ts.map +1 -1
  96. package/dist/domain/featureFlags/providers/database.d.ts +59 -52
  97. package/dist/domain/featureFlags/providers/database.d.ts.map +1 -1
  98. package/dist/domain/featureFlags/providers/factory.d.ts +50 -33
  99. package/dist/domain/featureFlags/providers/factory.d.ts.map +1 -1
  100. package/dist/domain/featureFlags/providers/file.d.ts +48 -1
  101. package/dist/domain/featureFlags/providers/file.d.ts.map +1 -1
  102. package/dist/domain/featureFlags/providers/memory.d.ts +32 -6
  103. package/dist/domain/featureFlags/providers/memory.d.ts.map +1 -1
  104. package/dist/domain/featureFlags/providers/redis.d.ts +6 -1
  105. package/dist/domain/featureFlags/providers/redis.d.ts.map +1 -1
  106. package/dist/domain/featureFlags/service.d.ts +112 -0
  107. package/dist/domain/featureFlags/service.d.ts.map +1 -0
  108. package/dist/domain/index.d.ts +2 -0
  109. package/dist/domain/index.d.ts.map +1 -1
  110. package/dist/engine/featureFlags/engine.d.ts +8 -0
  111. package/dist/engine/featureFlags/engine.d.ts.map +1 -1
  112. package/dist/entry-backend.d.ts +24 -0
  113. package/dist/entry-backend.d.ts.map +1 -0
  114. package/dist/entry-backend.js +15635 -0
  115. package/dist/entry-backend.js.map +1 -0
  116. package/dist/entry-backend.mjs +15506 -0
  117. package/dist/entry-backend.mjs.map +1 -0
  118. package/dist/entry-frontend.d.ts +23 -0
  119. package/dist/entry-frontend.d.ts.map +1 -0
  120. package/dist/entry-frontend.js +11152 -0
  121. package/dist/entry-frontend.js.map +1 -0
  122. package/dist/entry-frontend.mjs +11089 -0
  123. package/dist/entry-frontend.mjs.map +1 -0
  124. package/dist/events/CoreEventManager.d.ts +116 -0
  125. package/dist/events/CoreEventManager.d.ts.map +1 -0
  126. package/dist/events/index.d.ts +27 -0
  127. package/dist/events/index.d.ts.map +1 -0
  128. package/dist/frontend/base/index.d.ts +8 -0
  129. package/dist/frontend/base/index.d.ts.map +1 -0
  130. package/dist/frontend/components/InitializationError.d.ts +25 -0
  131. package/dist/frontend/components/InitializationError.d.ts.map +1 -0
  132. package/dist/frontend/components/InitializationLoading.d.ts +22 -0
  133. package/dist/frontend/components/InitializationLoading.d.ts.map +1 -0
  134. package/dist/frontend/components/index.d.ts +9 -0
  135. package/dist/frontend/components/index.d.ts.map +1 -0
  136. package/dist/frontend/example/index.d.ts +9 -0
  137. package/dist/frontend/example/index.d.ts.map +1 -0
  138. package/dist/frontend/featureFlags/index.d.ts +28 -7
  139. package/dist/frontend/featureFlags/index.d.ts.map +1 -1
  140. package/dist/frontend/index.d.ts +5 -0
  141. package/dist/frontend/index.d.ts.map +1 -1
  142. package/dist/frontend/providers/ApiProvider.d.ts +41 -0
  143. package/dist/frontend/providers/ApiProvider.d.ts.map +1 -0
  144. package/dist/frontend/providers/PlyazProvider.d.ts +305 -0
  145. package/dist/frontend/providers/PlyazProvider.d.ts.map +1 -0
  146. package/dist/frontend/providers/index.d.ts +8 -0
  147. package/dist/frontend/providers/index.d.ts.map +1 -0
  148. package/dist/frontend/store/feature-flags.d.ts +63 -0
  149. package/dist/frontend/store/feature-flags.d.ts.map +1 -0
  150. package/dist/frontend/store/index.d.ts +14 -0
  151. package/dist/frontend/store/index.d.ts.map +1 -0
  152. package/dist/frontend/store/integrations.d.ts +36 -0
  153. package/dist/frontend/store/integrations.d.ts.map +1 -0
  154. package/dist/frontend/store/service-accessors.d.ts +78 -0
  155. package/dist/frontend/store/service-accessors.d.ts.map +1 -0
  156. package/dist/index.d.ts +6 -2
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +15450 -0
  159. package/dist/index.js.map +1 -0
  160. package/dist/index.mjs +13461 -2440
  161. package/dist/index.mjs.map +1 -1
  162. package/dist/init/CoreInitializer.d.ts +582 -0
  163. package/dist/init/CoreInitializer.d.ts.map +1 -0
  164. package/dist/init/ServiceRegistry.d.ts +256 -0
  165. package/dist/init/ServiceRegistry.d.ts.map +1 -0
  166. package/dist/init/index.d.ts +14 -0
  167. package/dist/init/index.d.ts.map +1 -0
  168. package/dist/init/nestjs/CoreModule.d.ts +63 -0
  169. package/dist/init/nestjs/CoreModule.d.ts.map +1 -0
  170. package/dist/init/nestjs/index.d.ts +5 -0
  171. package/dist/init/nestjs/index.d.ts.map +1 -0
  172. package/dist/init/nestjs/index.js +9059 -0
  173. package/dist/init/nestjs/index.js.map +1 -0
  174. package/dist/init/nestjs/index.mjs +9055 -0
  175. package/dist/init/nestjs/index.mjs.map +1 -0
  176. package/dist/init/react.d.ts +33 -0
  177. package/dist/init/react.d.ts.map +1 -0
  178. package/dist/models/example/ExampleRepository.d.ts +124 -0
  179. package/dist/models/example/ExampleRepository.d.ts.map +1 -0
  180. package/dist/models/example/index.d.ts +7 -0
  181. package/dist/models/example/index.d.ts.map +1 -0
  182. package/dist/models/featureFlags/FeatureFlagRepository.d.ts +560 -0
  183. package/dist/models/featureFlags/FeatureFlagRepository.d.ts.map +1 -0
  184. package/dist/models/featureFlags/index.d.ts +7 -0
  185. package/dist/models/featureFlags/index.d.ts.map +1 -0
  186. package/dist/models/index.d.ts +9 -0
  187. package/dist/models/index.d.ts.map +1 -0
  188. package/dist/services/ApiClientService.d.ts +178 -0
  189. package/dist/services/ApiClientService.d.ts.map +1 -0
  190. package/dist/services/CacheService.d.ts +176 -0
  191. package/dist/services/CacheService.d.ts.map +1 -0
  192. package/dist/services/DbService.d.ts +391 -0
  193. package/dist/services/DbService.d.ts.map +1 -0
  194. package/dist/services/NotificationService.d.ts +151 -0
  195. package/dist/services/NotificationService.d.ts.map +1 -0
  196. package/dist/services/StorageService.d.ts +144 -0
  197. package/dist/services/StorageService.d.ts.map +1 -0
  198. package/dist/services/index.d.ts +12 -0
  199. package/dist/services/index.d.ts.map +1 -0
  200. package/dist/utils/common/id.d.ts +83 -0
  201. package/dist/utils/common/id.d.ts.map +1 -0
  202. package/dist/utils/common/index.d.ts +3 -1
  203. package/dist/utils/common/index.d.ts.map +1 -1
  204. package/dist/utils/common/object.d.ts +70 -0
  205. package/dist/utils/common/object.d.ts.map +1 -0
  206. package/dist/utils/common/validation.d.ts +20 -0
  207. package/dist/utils/common/validation.d.ts.map +1 -0
  208. package/dist/utils/featureFlags/conditions.d.ts.map +1 -1
  209. package/dist/utils/featureFlags/context.d.ts +0 -1
  210. package/dist/utils/featureFlags/context.d.ts.map +1 -1
  211. package/dist/utils/index.d.ts +1 -0
  212. package/dist/utils/index.d.ts.map +1 -1
  213. package/dist/utils/mapperUtils.d.ts +38 -0
  214. package/dist/utils/mapperUtils.d.ts.map +1 -0
  215. package/dist/utils/runtime.d.ts +15 -0
  216. package/dist/utils/runtime.d.ts.map +1 -0
  217. package/dist/version.d.ts +24 -0
  218. package/dist/version.d.ts.map +1 -0
  219. package/dist/web_app/auth/add_user.d.ts +3 -0
  220. package/dist/web_app/auth/add_user.d.ts.map +1 -0
  221. package/dist/web_app/auth/update_user.d.ts +2 -0
  222. package/dist/web_app/auth/update_user.d.ts.map +1 -0
  223. package/package.json +102 -15
  224. package/dist/backend/featureFlags/feature-flag.repository.d.ts +0 -85
  225. package/dist/backend/featureFlags/feature-flag.repository.d.ts.map +0 -1
  226. package/dist/backend/featureFlags/feature-flag.service.d.ts +0 -123
  227. package/dist/backend/featureFlags/feature-flag.service.d.ts.map +0 -1
  228. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts +0 -103
  229. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts.map +0 -1
  230. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts +0 -35
  231. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts.map +0 -1
  232. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts +0 -55
  233. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts.map +0 -1
  234. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts +0 -57
  235. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts.map +0 -1
  236. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts +0 -99
  237. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts.map +0 -1
  238. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts +0 -31
  239. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts.map +0 -1
  240. package/dist/frontend/featureFlags/providers/types.d.ts +0 -21
  241. package/dist/frontend/featureFlags/providers/types.d.ts.map +0 -1
  242. package/dist/index.cjs +0 -4383
  243. package/dist/index.cjs.map +0 -1
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Core Event Manager
3
+ *
4
+ * Type-safe event system for the Plyaz ecosystem.
5
+ * Services emit events → Store, API cache, and UI subscribe independently.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { CoreEventManager, CORE_EVENTS } from '@plyaz/core/events';
10
+ *
11
+ * // Type-safe emission (using CORE_EVENTS constants)
12
+ * CoreEventManager.emit(CORE_EVENTS.API.REQUEST_ERROR, {
13
+ * method: 'GET',
14
+ * url: '/api/users',
15
+ * requestId: '123',
16
+ * error: new Error('Failed'),
17
+ * duration: 500,
18
+ * });
19
+ *
20
+ * // Type-safe subscription
21
+ * CoreEventManager.on(CORE_EVENTS.AUTH.LOGIN, (event) => {
22
+ * console.log(event.data.userId); // Typed!
23
+ * });
24
+ *
25
+ * // Custom events (with generic type)
26
+ * CoreEventManager.emit<MyPayload>('custom:event', { custom: 'data' });
27
+ * ```
28
+ */
29
+ import type { CoreEventPayloadMap, CoreEventScopeType, CoreEvent } from '@plyaz/types/core';
30
+ declare class CoreEventManagerClass {
31
+ private emitter;
32
+ private subscriptions;
33
+ constructor();
34
+ /**
35
+ * Emit an event
36
+ *
37
+ * @param eventType - Event type from CORE_EVENTS or custom string
38
+ * @param data - Event payload (type-safe when using CORE_EVENTS)
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * // Type-safe with CORE_EVENTS
43
+ * CoreEventManager.emit(CORE_EVENTS.AUTH.LOGIN, { userId: '123', method: 'email' });
44
+ *
45
+ * // Custom event
46
+ * CoreEventManager.emit<MyPayload>('custom:event', { custom: 'data' });
47
+ * ```
48
+ */
49
+ emit<T extends keyof CoreEventPayloadMap>(eventType: T, data: CoreEventPayloadMap[T]): boolean;
50
+ emit<TData = unknown>(eventType: string, data?: TData): boolean;
51
+ /**
52
+ * Subscribe to an event
53
+ *
54
+ * @param eventType - Event type from CORE_EVENTS or custom string
55
+ * @param handler - Event handler (type-safe when using CORE_EVENTS)
56
+ * @returns Unsubscribe function
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Type-safe with CORE_EVENTS
61
+ * const unsub = CoreEventManager.on(CORE_EVENTS.AUTH.LOGIN, (event) => {
62
+ * console.log(event.data.userId); // Typed!
63
+ * });
64
+ *
65
+ * // Custom event
66
+ * CoreEventManager.on<MyPayload>('custom:event', (event) => {
67
+ * console.log(event.data.custom);
68
+ * });
69
+ * ```
70
+ */
71
+ on<T extends keyof CoreEventPayloadMap>(eventType: T, handler: (event: CoreEvent<CoreEventPayloadMap[T], CoreEventScopeType>) => void): () => void;
72
+ on<TData = unknown, TScope extends string = string>(eventType: string, handler: (event: CoreEvent<TData, TScope>) => void): () => void;
73
+ /**
74
+ * Subscribe once to an event
75
+ *
76
+ * @param eventType - Event type from CORE_EVENTS or custom string
77
+ * @param handler - Event handler
78
+ * @returns Unsubscribe function
79
+ */
80
+ once<T extends keyof CoreEventPayloadMap>(eventType: T, handler: (event: CoreEvent<CoreEventPayloadMap[T], CoreEventScopeType>) => void): () => void;
81
+ once<TData = unknown, TScope extends string = string>(eventType: string, handler: (event: CoreEvent<TData, TScope>) => void): () => void;
82
+ /**
83
+ * Subscribe to all events in a scope
84
+ *
85
+ * @param scope - Event scope to listen to (e.g., CoreEventScope.AUTH)
86
+ * @param handler - Event handler
87
+ * @returns Unsubscribe function
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * CoreEventManager.onScope(CoreEventScope.AUTH, (event) => {
92
+ * // Handles auth:login, auth:logout, auth:tokenRefresh, etc.
93
+ * console.log(`Auth event: ${event.type}`, event.data);
94
+ * });
95
+ * ```
96
+ */
97
+ onScope<TScope extends string = string, TData = unknown>(scope: TScope, handler: (event: CoreEvent<TData, TScope>) => void): () => void;
98
+ /**
99
+ * Remove a specific handler from an event
100
+ *
101
+ * @param eventType - Event type
102
+ * @param handler - Handler to remove
103
+ */
104
+ off<TData = unknown, TScope extends string = string>(eventType: string, handler: (event: CoreEvent<TData, TScope>) => void): void;
105
+ /**
106
+ * Dispose all subscriptions
107
+ */
108
+ dispose(): void;
109
+ /**
110
+ * Generate correlation ID for event tracing
111
+ */
112
+ private getCorrelationId;
113
+ }
114
+ export declare const CoreEventManager: CoreEventManagerClass;
115
+ export {};
116
+ //# sourceMappingURL=CoreEventManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreEventManager.d.ts","sourceRoot":"","sources":["../../src/events/CoreEventManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAoC5F,cAAM,qBAAqB;IACzB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,CAAuE;;IAO5F;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO;IAC9F,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO;IAoB/D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACpC,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,IAAI,GAC9E,MAAM,IAAI;IACb,EAAE,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,EAChD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GACjD,MAAM,IAAI;IAsBb;;;;;;OAMG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACtC,SAAS,EAAE,CAAC,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,IAAI,GAC9E,MAAM,IAAI;IACb,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,EAClD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GACjD,MAAM,IAAI;IAgCb;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO,EACrD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GACjD,MAAM,IAAI;IASb;;;;;OAKG;IACH,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,EACjD,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GACjD,IAAI;IAOP;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAGzB;AAGD,eAAO,MAAM,gBAAgB,uBAA8B,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Events Module Exports
3
+ *
4
+ * Type-safe event system with enums, constants, and typed payloads.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { CoreEventManager, CORE_EVENTS, CoreEventScope } from '@plyaz/core/events';
9
+ *
10
+ * // Type-safe emission (automatic with CORE_EVENTS)
11
+ * CoreEventManager.emit(CORE_EVENTS.AUTH.LOGIN, {
12
+ * userId: '123',
13
+ * method: 'email',
14
+ * });
15
+ *
16
+ * // Type-safe subscription (automatic with CORE_EVENTS)
17
+ * CoreEventManager.on(CORE_EVENTS.AUTH.LOGIN, (event) => {
18
+ * console.log(event.data.userId); // Typed!
19
+ * });
20
+ *
21
+ * // Custom events with explicit type
22
+ * CoreEventManager.emit<MyPayload>('custom:event', { custom: 'data' });
23
+ * ```
24
+ */
25
+ export { CoreEventManager } from './CoreEventManager';
26
+ export type { CoreEventPayloadMap, CoreEventType, CoreEventScopeType, CoreSystemInitializedPayload, CoreSystemReadyPayload, CoreSystemShutdownPayload, CoreSystemErrorPayload, CoreSystemWarningPayload, CoreApiRequestStartPayload, CoreApiRequestSuccessPayload, CoreApiRequestErrorPayload, CoreApiRetryPayload, CoreApiTimeoutPayload, CoreCacheHitPayload, CoreCacheMissPayload, CoreCacheSetPayload, CoreCacheDeletePayload, CoreCacheClearPayload, CoreCacheExpiredPayload, CoreAuthLoginPayload, CoreAuthLogoutPayload, CoreAuthTokenRefreshPayload, CoreAuthSessionExpiredPayload, CoreAuthUnauthorizedPayload, CoreFeatureFlagChangedPayload, CoreFeatureFlagEvaluatedPayload, CoreFeatureFlagRefreshedPayload, CoreStoreUpdatedPayload, CoreStoreResetPayload, CoreStoreHydratedPayload, CoreEntityCreatedPayload, CoreEntityUpdatedPayload, CoreEntityDeletedPayload, CoreValidationStartedPayload, CoreValidationSuccessPayload, CoreValidationFailedPayload, } from '@plyaz/types/core';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAElB,4BAA4B,EAC5B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Frontend Base Classes
3
+ *
4
+ * Base classes and interfaces for frontend domain services.
5
+ * Re-exports from domain/base for backward compatibility.
6
+ */
7
+ export { BaseFrontendDomainService } from '../../domain/base';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frontend/base/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * InitializationError Component
3
+ *
4
+ * Default error display when Plyaz initialization fails.
5
+ * Can be overridden via the `error` prop on PlyazProvider.
6
+ */
7
+ import type { ReactElement } from 'react';
8
+ import type { CoreInitializationErrorProps as InitializationErrorProps } from '@plyaz/types/core';
9
+ /**
10
+ * Renders an initialization error state.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * // Using default error display
15
+ * <InitializationError error={new Error('Failed to connect')} />
16
+ *
17
+ * // Using custom error component
18
+ * <InitializationError
19
+ * error={error}
20
+ * errorComponent={(err) => <CustomErrorBoundary error={err} />}
21
+ * />
22
+ * ```
23
+ */
24
+ export declare function InitializationError({ error, errorComponent, }: InitializationErrorProps): ReactElement;
25
+ //# sourceMappingURL=InitializationError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitializationError.d.ts","sourceRoot":"","sources":["../../../src/frontend/components/InitializationError.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,4BAA4B,IAAI,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AA4BlG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,cAAc,GACf,EAAE,wBAAwB,GAAG,YAAY,CAWzC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * InitializationLoading Component
3
+ *
4
+ * Default loading display while Plyaz is initializing.
5
+ * Can be overridden via the `loading` prop on PlyazProvider.
6
+ */
7
+ import type { ReactElement } from 'react';
8
+ import type { CoreInitializationLoadingProps as InitializationLoadingProps } from '@plyaz/types/core';
9
+ /**
10
+ * Renders an initialization loading state.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * // Using default loading display
15
+ * <InitializationLoading />
16
+ *
17
+ * // Using custom loading component
18
+ * <InitializationLoading loading={<Skeleton />} />
19
+ * ```
20
+ */
21
+ export declare function InitializationLoading({ loading }: InitializationLoadingProps): ReactElement;
22
+ //# sourceMappingURL=InitializationLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitializationLoading.d.ts","sourceRoot":"","sources":["../../../src/frontend/components/InitializationLoading.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,8BAA8B,IAAI,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAmBtG;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,0BAA0B,GAAG,YAAY,CAU3F"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Frontend Components
3
+ *
4
+ * Reusable React components for Plyaz frontend.
5
+ * Component props types are available from @plyaz/types/core
6
+ */
7
+ export { InitializationError } from './InitializationError';
8
+ export { InitializationLoading } from './InitializationLoading';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frontend/components/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Frontend Example Exports
3
+ *
4
+ * Re-exports from domain/example.
5
+ *
6
+ * NOTE: Example store has been moved to @plyaz/store/domains/examples
7
+ */
8
+ export { FrontendExampleDomainService, type ExampleFrontendStoreSlice, type ExampleFrontendStoreData, type ExampleFrontendServiceConfig, type ExampleFrontendEventType, } from '../../domain/example';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frontend/example/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAC"}
@@ -1,14 +1,35 @@
1
1
  /**
2
2
  * Frontend Feature Flags - Main Exports
3
3
  *
4
- * React-specific exports for feature flag integration.
5
- * This will be moved to @plyaz/core when the package structure is finalized.
4
+ * Service-based feature flag integration for frontend.
5
+ * Use PlyazProvider hooks (useFlag, useFeatureFlags, useService) for React components.
6
+
7
+ * @example
8
+ * ```tsx
9
+ * import { useFlag, useService, PlyazProvider } from '@plyaz/core/frontend';
10
+ * import { FeatureFlagDomainService } from '@plyaz/core/frontend/featureFlags';
11
+ *
12
+ * // Using useFlag hook (simple boolean check)
13
+ * function MyComponent() {
14
+ * const isDarkMode = useFlag('DARK_MODE');
15
+ * return <div className={isDarkMode ? 'dark' : 'light'}>...</div>;
16
+ * }
17
+ *
18
+ * // Using FeatureFlagDomainService (full service access)
19
+ * function AdvancedComponent() {
20
+ * const flagService = useService<FeatureFlagDomainService>('featureFlags');
21
+ *
22
+ * const handleEvaluate = async () => {
23
+ * const result = await flagService.evaluate('FEATURE_X', { userId: '123' });
24
+ * console.log('Evaluation:', result);
25
+ * };
26
+ *
27
+ * return <button onClick={handleEvaluate}>Evaluate Flag</button>;
28
+ * }
29
+ * ```
6
30
  *
7
31
  * @fileoverview Frontend feature flags exports
8
- * @version 1.0.0
32
+ * @version 2.0.0
9
33
  */
10
- export { FeatureFlagContext, FeatureFlagAppProvider, createFeatureFlagProvider, } from './providers/FeatureFlagProvider';
11
- export { useFeatureFlag, useFeatureFlagEnabled, useFeatureFlagValue, useMultipleFeatureFlags, } from './hooks/useFeatureFlag';
12
- export { useFeatureFlagProvider, useFeatureFlagProviderStatus, } from './hooks/useFeatureFlagProvider';
13
- export { useFeatureFlagHelpers } from './hooks/useFeatureFlagActions';
34
+ export { FrontendFeatureFlagDomainService } from '../../domain/featureFlags';
14
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frontend/featureFlags/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frontend/featureFlags/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,2 +1,7 @@
1
+ export * from './base';
2
+ export * from './components';
3
+ export * from './example';
1
4
  export * from './featureFlags';
5
+ export * from './providers';
6
+ export * from './store';
2
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * API Provider Component for React/Next.js
3
+ * Initializes the API client service with environment configuration and event handlers
4
+ *
5
+ * @module frontend/providers/ApiProvider
6
+ */
7
+ import { type ReactElement } from 'react';
8
+ import type { CoreApiProviderProps } from '@plyaz/types/core';
9
+ /**
10
+ * API Provider Component
11
+ * IMPORTANT: For client components, pass sensitive config from server-side props/actions
12
+ * Initializes the API client service for React/Next.js applications
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * // In your app layout or _app.tsx
17
+ * import { ApiProvider } from '@plyaz/core';
18
+ *
19
+ * export default function RootLayout({ children }) {
20
+ * const envConfig = {
21
+ * env: process.env.NODE_ENV as 'production',
22
+ * apiKey: process.env.API_KEY,
23
+ * };
24
+ *
25
+ * const apiConfig = {
26
+ * baseURL: process.env.API_URL!,
27
+ * clientEvents: {
28
+ * onRequestStart: (event) => console.log('Request started:', event),
29
+ * },
30
+ * };
31
+ *
32
+ * return (
33
+ * <ApiProvider envConfig={envConfig} apiConfig={apiConfig}>
34
+ * {children}
35
+ * </ApiProvider>
36
+ * );
37
+ * }
38
+ * ```
39
+ */
40
+ export declare function ApiProvider({ children, envConfig, apiConfig, loadingComponent, errorComponent, onInitialized, onError, }: CoreApiProviderProps): ReactElement;
41
+ //# sourceMappingURL=ApiProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiProvider.d.ts","sourceRoot":"","sources":["../../../src/frontend/providers/ApiProvider.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,OAAO,GACR,EAAE,oBAAoB,GAAG,YAAY,CAsDrC"}
@@ -0,0 +1,305 @@
1
+ /**
2
+ * PlyazProvider - Unified React Provider for Plyaz Core Services
3
+ *
4
+ * A single provider that initializes and provides access to all frontend-safe
5
+ * Plyaz services. Designed for ease of use without unnecessary limitations.
6
+ *
7
+ * @module frontend/providers/PlyazProvider
8
+ *
9
+ * @example Basic usage
10
+ * ```tsx
11
+ * import { PlyazProvider } from '@plyaz/core/frontend';
12
+ *
13
+ * export default function App({ children }) {
14
+ * return (
15
+ * <PlyazProvider
16
+ * config={{
17
+ * api: {
18
+ * baseURL: process.env.NEXT_PUBLIC_API_URL!,
19
+ * env: 'production',
20
+ * },
21
+ * }}
22
+ * >
23
+ * {children}
24
+ * </PlyazProvider>
25
+ * );
26
+ * }
27
+ * ```
28
+ *
29
+ * @example With all options
30
+ * ```tsx
31
+ * <PlyazProvider
32
+ * config={{
33
+ * api: {
34
+ * baseURL: 'https://api.example.com',
35
+ * env: 'production',
36
+ * apiKey: process.env.NEXT_PUBLIC_API_KEY,
37
+ * },
38
+ * featureFlags: {
39
+ * provider: 'api',
40
+ * refreshInterval: 60000,
41
+ * },
42
+ * appContext: 'webapp',
43
+ * verbose: process.env.NODE_ENV === 'development',
44
+ * }}
45
+ * onReady={(services) => console.log('Services ready:', services)}
46
+ * onError={(error) => Sentry.captureException(error)}
47
+ * loading={<Skeleton />}
48
+ * error={(err) => <ErrorBoundary error={err} />}
49
+ * >
50
+ * {children}
51
+ * </PlyazProvider>
52
+ * ```
53
+ *
54
+ * @example Accessing services in components
55
+ * ```tsx
56
+ * import { usePlyaz, useApi, useEvents, useFeatureFlag } from '@plyaz/core/frontend';
57
+ *
58
+ * function MyComponent() {
59
+ * // Full access to all services
60
+ * const { api, events, isReady } = usePlyaz();
61
+ *
62
+ * // Or use specific hooks
63
+ * const apiClient = useApi();
64
+ * const events = useEvents();
65
+ * const { value: darkMode } = useFeatureFlag('DARK_MODE');
66
+ *
67
+ * // Make API calls
68
+ * const fetchData = async () => {
69
+ * const response = await apiClient.get('/users');
70
+ * return response.data;
71
+ * };
72
+ *
73
+ * // Subscribe to events
74
+ * useEffect(() => {
75
+ * const unsubscribe = events.on('user:updated', (event) => {
76
+ * console.log('User updated:', event.data);
77
+ * });
78
+ * return unsubscribe;
79
+ * }, [events]);
80
+ *
81
+ * return <div>...</div>;
82
+ * }
83
+ * ```
84
+ */
85
+ import { type ReactElement } from 'react';
86
+ import { Core } from '../../init/CoreInitializer';
87
+ import { ApiClientService } from '../../services/ApiClientService';
88
+ import { CoreEventManager } from '../../events/CoreEventManager';
89
+ import type { CoreAppContext, CoreAppEnvironment, CorePlyazContextValue, CorePlyazProviderProps as PlyazProviderProps, CoreDomainServiceInstance } from '@plyaz/types/core';
90
+ /**
91
+ * Implementation-specific context value.
92
+ * Extends CorePlyazContextValue with concrete implementation references.
93
+ */
94
+ interface PlyazContextValue extends Omit<CorePlyazContextValue, 'api' | 'events' | 'core'> {
95
+ /** API client for making HTTP requests */
96
+ api: typeof ApiClientService | null;
97
+ /** Event manager for pub/sub */
98
+ events: typeof CoreEventManager;
99
+ /** Core initializer reference */
100
+ core: typeof Core;
101
+ }
102
+ declare const PlyazContext: import("react").Context<PlyazContextValue | null>;
103
+ export declare function PlyazProvider({ children, config, loading, error: errorComponent, onReady, onError, skipLoadingState, }: PlyazProviderProps): ReactElement;
104
+ /**
105
+ * Access all Plyaz services
106
+ *
107
+ * @example
108
+ * ```tsx
109
+ * function MyComponent() {
110
+ * const { api, events, isReady, featureFlags } = usePlyaz();
111
+ *
112
+ * if (!isReady) return <Loading />;
113
+ *
114
+ * const handleClick = async () => {
115
+ * const response = await api.getClient().get('/data');
116
+ * events.emit('data:fetched', { data: response.data });
117
+ * };
118
+ *
119
+ * return <button onClick={handleClick}>Fetch</button>;
120
+ * }
121
+ * ```
122
+ */
123
+ export declare function usePlyaz(): PlyazContextValue;
124
+ /**
125
+ * Access API client directly
126
+ *
127
+ * @example
128
+ * ```tsx
129
+ * function UserList() {
130
+ * const api = useApi();
131
+ * const [users, setUsers] = useState([]);
132
+ *
133
+ * useEffect(() => {
134
+ * api.getClient().get('/users').then(res => setUsers(res.data));
135
+ * }, [api]);
136
+ *
137
+ * return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
138
+ * }
139
+ * ```
140
+ */
141
+ export declare function useApi(): typeof ApiClientService;
142
+ /**
143
+ * Access API client safely (returns null if not ready)
144
+ */
145
+ export declare function useApiSafe(): typeof ApiClientService | null;
146
+ /**
147
+ * Access event manager
148
+ *
149
+ * @example
150
+ * ```tsx
151
+ * function NotificationListener() {
152
+ * const events = useEvents();
153
+ *
154
+ * useEffect(() => {
155
+ * const unsubscribe = events.on('notification:received', (event) => {
156
+ * toast.show(event.data.message);
157
+ * });
158
+ * return unsubscribe;
159
+ * }, [events]);
160
+ *
161
+ * return null;
162
+ * }
163
+ * ```
164
+ */
165
+ export declare function useEvents(): typeof CoreEventManager;
166
+ /**
167
+ * Check if a feature flag is enabled
168
+ *
169
+ * @example
170
+ * ```tsx
171
+ * function FeatureComponent() {
172
+ * const isEnabled = useFlag('NEW_DASHBOARD');
173
+ *
174
+ * if (!isEnabled) return null;
175
+ * return <NewDashboard />;
176
+ * }
177
+ * ```
178
+ */
179
+ export declare function useFlag(key: string, defaultValue?: boolean): boolean;
180
+ /**
181
+ * Access feature flag utilities
182
+ *
183
+ * @example
184
+ * ```tsx
185
+ * function FlagManager() {
186
+ * const flags = useFeatureFlags();
187
+ * const allFlags = flags.getAll();
188
+ *
189
+ * return (
190
+ * <div>
191
+ * <pre>{JSON.stringify(allFlags, null, 2)}</pre>
192
+ * <button onClick={flags.refresh}>Refresh Flags</button>
193
+ * </div>
194
+ * );
195
+ * }
196
+ * ```
197
+ */
198
+ export declare function useFeatureFlags(): PlyazContextValue['featureFlags'];
199
+ /**
200
+ * Check if Plyaz services are ready
201
+ *
202
+ * @example
203
+ * ```tsx
204
+ * function LoadingAwareComponent() {
205
+ * const isReady = usePlyazReady();
206
+ *
207
+ * if (!isReady) return <Skeleton />;
208
+ * return <ActualContent />;
209
+ * }
210
+ * ```
211
+ */
212
+ export declare function usePlyazReady(): boolean;
213
+ /**
214
+ * Get current app context
215
+ */
216
+ export declare function useAppContext(): CoreAppContext;
217
+ /**
218
+ * Get current environment
219
+ */
220
+ export declare function useEnvironment(): CoreAppEnvironment;
221
+ /**
222
+ * Get a domain service by key.
223
+ * Services must be registered in the `services` config.
224
+ *
225
+ * @param key - Service key (e.g., 'featureFlags', 'example')
226
+ * @returns The service instance
227
+ * @throws If service is not initialized or not found
228
+ *
229
+ * @example
230
+ * ```tsx
231
+ * function MyComponent() {
232
+ * const flagService = useService<FeatureFlagDomainService>('featureFlags');
233
+ *
234
+ * useEffect(() => {
235
+ * flagService.isEnabled('my-flag').then(console.log);
236
+ * }, [flagService]);
237
+ *
238
+ * return <div>...</div>;
239
+ * }
240
+ * ```
241
+ */
242
+ export declare function useService<T extends CoreDomainServiceInstance = CoreDomainServiceInstance>(key: string): T;
243
+ /**
244
+ * Get a domain service by key with loading state.
245
+ * Useful for lazy-initialized services.
246
+ *
247
+ * @param key - Service key
248
+ * @returns Object with service, loading state, and error
249
+ *
250
+ * @example
251
+ * ```tsx
252
+ * function MyComponent() {
253
+ * const { service, isLoading, error } = useServiceAsync<ExampleDomainService>('example');
254
+ *
255
+ * if (isLoading) return <Spinner />;
256
+ * if (error) return <Error message={error.message} />;
257
+ *
258
+ * return <div>{service?.serviceName}</div>;
259
+ * }
260
+ * ```
261
+ */
262
+ export declare function useServiceAsync<T extends CoreDomainServiceInstance = CoreDomainServiceInstance>(key: string): {
263
+ service: T | null;
264
+ isLoading: boolean;
265
+ error: Error | null;
266
+ };
267
+ /**
268
+ * Check if a service is registered and available
269
+ *
270
+ * @example
271
+ * ```tsx
272
+ * function MyComponent() {
273
+ * const hasFlags = useHasService('featureFlags');
274
+ *
275
+ * if (!hasFlags) {
276
+ * return <div>Feature flags not configured</div>;
277
+ * }
278
+ *
279
+ * return <FeatureFlagUI />;
280
+ * }
281
+ * ```
282
+ */
283
+ export declare function useHasService(key: string): boolean;
284
+ /**
285
+ * Get all initialized service keys
286
+ *
287
+ * @example
288
+ * ```tsx
289
+ * function DebugPanel() {
290
+ * const serviceKeys = useServiceKeys();
291
+ *
292
+ * return (
293
+ * <div>
294
+ * <h3>Loaded Services:</h3>
295
+ * <ul>
296
+ * {serviceKeys.map(key => <li key={key}>{key}</li>)}
297
+ * </ul>
298
+ * </div>
299
+ * );
300
+ * }
301
+ * ```
302
+ */
303
+ export declare function useServiceKeys(): string[];
304
+ export { PlyazContext };
305
+ //# sourceMappingURL=PlyazProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlyazProvider.d.ts","sourceRoot":"","sources":["../../../src/frontend/providers/PlyazProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AAIH,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAIlB,qBAAqB,EACrB,sBAAsB,IAAI,kBAAkB,EAC5C,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAU3B;;;GAGG;AACH,UAAU,iBAAkB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxF,0CAA0C;IAC1C,GAAG,EAAE,OAAO,gBAAgB,GAAG,IAAI,CAAC;IACpC,gCAAgC;IAChC,MAAM,EAAE,OAAO,gBAAgB,CAAC;IAChC,iCAAiC;IACjC,IAAI,EAAE,OAAO,IAAI,CAAC;CACnB;AAkBD,QAAA,MAAM,YAAY,mDAAgD,CAAC;AA+LnE,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,KAAK,EAAE,cAAc,EACrB,OAAO,EACP,OAAO,EACP,gBAAwB,GACzB,EAAE,kBAAkB,GAAG,YAAY,CA4FnC;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAS5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,IAAI,OAAO,gBAAgB,CAMhD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,gBAAgB,GAAG,IAAI,CAG3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,IAAI,OAAO,gBAAgB,CAGnD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAGlE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAGnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAGvC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,cAAc,CAG9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,kBAAkB,CAGnD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,EACxF,GAAG,EAAE,MAAM,GACV,CAAC,CAQH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,EAC7F,GAAG,EAAE,MAAM,GACV;IAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAmChE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAGzC;AAMD,OAAO,EAAE,YAAY,EAAE,CAAC"}