@plyaz/core 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/README.md +248 -183
  2. package/dist/adapters/index.d.ts +16 -0
  3. package/dist/adapters/index.d.ts.map +1 -0
  4. package/dist/adapters/nestjs.d.ts +79 -0
  5. package/dist/adapters/nestjs.d.ts.map +1 -0
  6. package/dist/adapters/nextjs.d.ts +28 -0
  7. package/dist/adapters/nextjs.d.ts.map +1 -0
  8. package/dist/backend/example/example.controller.d.ts +121 -0
  9. package/dist/backend/example/example.controller.d.ts.map +1 -0
  10. package/dist/backend/example/example.module.d.ts +29 -0
  11. package/dist/backend/example/example.module.d.ts.map +1 -0
  12. package/dist/backend/example/index.d.ts +8 -0
  13. package/dist/backend/example/index.d.ts.map +1 -0
  14. package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts +150 -0
  15. package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts.map +1 -0
  16. package/dist/backend/featureFlags/config/feature-flag.config.d.ts +28 -50
  17. package/dist/backend/featureFlags/config/feature-flag.config.d.ts.map +1 -1
  18. package/dist/backend/featureFlags/config/validation.d.ts +6 -6
  19. package/dist/backend/featureFlags/config/validation.d.ts.map +1 -1
  20. package/dist/backend/featureFlags/feature-flag.controller.d.ts +14 -55
  21. package/dist/backend/featureFlags/feature-flag.controller.d.ts.map +1 -1
  22. package/dist/backend/featureFlags/feature-flag.module.d.ts +36 -43
  23. package/dist/backend/featureFlags/feature-flag.module.d.ts.map +1 -1
  24. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts +16 -2
  25. package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts.map +1 -1
  26. package/dist/backend/featureFlags/index.d.ts +6 -7
  27. package/dist/backend/featureFlags/index.d.ts.map +1 -1
  28. package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts.map +1 -1
  29. package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts.map +1 -1
  30. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts +6 -11
  31. package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts.map +1 -1
  32. package/dist/backend/index.d.ts +5 -0
  33. package/dist/backend/index.d.ts.map +1 -1
  34. package/dist/base/cache/CacheKeyBuilder.d.ts +115 -0
  35. package/dist/base/cache/CacheKeyBuilder.d.ts.map +1 -0
  36. package/dist/base/cache/index.d.ts +1 -0
  37. package/dist/base/cache/index.d.ts.map +1 -1
  38. package/dist/base/cache/strategies/redis.d.ts.map +1 -1
  39. package/dist/base/observability/BaseAdapter.d.ts +79 -0
  40. package/dist/base/observability/BaseAdapter.d.ts.map +1 -0
  41. package/dist/base/observability/CompositeAdapter.d.ts +72 -0
  42. package/dist/base/observability/CompositeAdapter.d.ts.map +1 -0
  43. package/dist/base/observability/DatadogAdapter.d.ts +117 -0
  44. package/dist/base/observability/DatadogAdapter.d.ts.map +1 -0
  45. package/dist/base/observability/LoggerAdapter.d.ts +54 -0
  46. package/dist/base/observability/LoggerAdapter.d.ts.map +1 -0
  47. package/dist/base/observability/ObservabilityService.d.ts +160 -0
  48. package/dist/base/observability/ObservabilityService.d.ts.map +1 -0
  49. package/dist/base/observability/index.d.ts +17 -0
  50. package/dist/base/observability/index.d.ts.map +1 -0
  51. package/dist/domain/base/BaseBackendDomainService.d.ts +528 -0
  52. package/dist/domain/base/BaseBackendDomainService.d.ts.map +1 -0
  53. package/dist/domain/base/BaseDomainService.d.ts +284 -0
  54. package/dist/domain/base/BaseDomainService.d.ts.map +1 -0
  55. package/dist/domain/base/BaseFrontendDomainService.d.ts +493 -0
  56. package/dist/domain/base/BaseFrontendDomainService.d.ts.map +1 -0
  57. package/dist/domain/base/BaseMapper.d.ts +100 -0
  58. package/dist/domain/base/BaseMapper.d.ts.map +1 -0
  59. package/dist/domain/base/BaseValidator.d.ts +105 -0
  60. package/dist/domain/base/BaseValidator.d.ts.map +1 -0
  61. package/dist/domain/base/index.d.ts +10 -0
  62. package/dist/domain/base/index.d.ts.map +1 -0
  63. package/dist/domain/example/BackendExampleDomainService.d.ts +257 -0
  64. package/dist/domain/example/BackendExampleDomainService.d.ts.map +1 -0
  65. package/dist/domain/example/FrontendExampleDomainService.d.ts +164 -0
  66. package/dist/domain/example/FrontendExampleDomainService.d.ts.map +1 -0
  67. package/dist/domain/example/index.d.ts +10 -0
  68. package/dist/domain/example/index.d.ts.map +1 -0
  69. package/dist/domain/example/mappers/ExampleMapper.d.ts +67 -0
  70. package/dist/domain/example/mappers/ExampleMapper.d.ts.map +1 -0
  71. package/dist/domain/example/validators/ExampleValidator.d.ts +33 -0
  72. package/dist/domain/example/validators/ExampleValidator.d.ts.map +1 -0
  73. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts +86 -0
  74. package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts.map +1 -0
  75. package/dist/domain/featureFlags/index.d.ts +10 -5
  76. package/dist/domain/featureFlags/index.d.ts.map +1 -1
  77. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts +72 -0
  78. package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts.map +1 -0
  79. package/dist/domain/featureFlags/mappers/index.d.ts +8 -0
  80. package/dist/domain/featureFlags/mappers/index.d.ts.map +1 -0
  81. package/dist/domain/featureFlags/module.d.ts +20 -0
  82. package/dist/domain/featureFlags/module.d.ts.map +1 -0
  83. package/dist/domain/featureFlags/provider.d.ts +40 -1
  84. package/dist/domain/featureFlags/provider.d.ts.map +1 -1
  85. package/dist/domain/featureFlags/providers/api.d.ts +59 -34
  86. package/dist/domain/featureFlags/providers/api.d.ts.map +1 -1
  87. package/dist/domain/featureFlags/providers/database.d.ts +54 -47
  88. package/dist/domain/featureFlags/providers/database.d.ts.map +1 -1
  89. package/dist/domain/featureFlags/providers/factory.d.ts +50 -33
  90. package/dist/domain/featureFlags/providers/factory.d.ts.map +1 -1
  91. package/dist/domain/featureFlags/providers/file.d.ts +48 -1
  92. package/dist/domain/featureFlags/providers/file.d.ts.map +1 -1
  93. package/dist/domain/featureFlags/providers/memory.d.ts +32 -6
  94. package/dist/domain/featureFlags/providers/memory.d.ts.map +1 -1
  95. package/dist/domain/featureFlags/providers/redis.d.ts +6 -1
  96. package/dist/domain/featureFlags/providers/redis.d.ts.map +1 -1
  97. package/dist/domain/featureFlags/service.d.ts +112 -0
  98. package/dist/domain/featureFlags/service.d.ts.map +1 -0
  99. package/dist/domain/index.d.ts +2 -0
  100. package/dist/domain/index.d.ts.map +1 -1
  101. package/dist/engine/featureFlags/engine.d.ts +8 -0
  102. package/dist/engine/featureFlags/engine.d.ts.map +1 -1
  103. package/dist/entry-backend.d.ts +26 -0
  104. package/dist/entry-backend.d.ts.map +1 -0
  105. package/dist/entry-backend.js +15455 -0
  106. package/dist/entry-backend.js.map +1 -0
  107. package/dist/entry-backend.mjs +15339 -0
  108. package/dist/entry-backend.mjs.map +1 -0
  109. package/dist/entry-frontend.d.ts +23 -0
  110. package/dist/entry-frontend.d.ts.map +1 -0
  111. package/dist/entry-frontend.js +11340 -0
  112. package/dist/entry-frontend.js.map +1 -0
  113. package/dist/entry-frontend.mjs +11278 -0
  114. package/dist/entry-frontend.mjs.map +1 -0
  115. package/dist/events/CoreEventManager.d.ts +116 -0
  116. package/dist/events/CoreEventManager.d.ts.map +1 -0
  117. package/dist/events/index.d.ts +27 -0
  118. package/dist/events/index.d.ts.map +1 -0
  119. package/dist/frontend/base/index.d.ts +8 -0
  120. package/dist/frontend/base/index.d.ts.map +1 -0
  121. package/dist/frontend/components/InitializationError.d.ts +25 -0
  122. package/dist/frontend/components/InitializationError.d.ts.map +1 -0
  123. package/dist/frontend/components/InitializationLoading.d.ts +22 -0
  124. package/dist/frontend/components/InitializationLoading.d.ts.map +1 -0
  125. package/dist/frontend/components/index.d.ts +9 -0
  126. package/dist/frontend/components/index.d.ts.map +1 -0
  127. package/dist/frontend/example/index.d.ts +9 -0
  128. package/dist/frontend/example/index.d.ts.map +1 -0
  129. package/dist/frontend/featureFlags/index.d.ts +28 -7
  130. package/dist/frontend/featureFlags/index.d.ts.map +1 -1
  131. package/dist/frontend/index.d.ts +4 -0
  132. package/dist/frontend/index.d.ts.map +1 -1
  133. package/dist/frontend/providers/ApiProvider.d.ts +2 -2
  134. package/dist/frontend/providers/ApiProvider.d.ts.map +1 -1
  135. package/dist/frontend/providers/PlyazProvider.d.ts +305 -0
  136. package/dist/frontend/providers/PlyazProvider.d.ts.map +1 -0
  137. package/dist/frontend/providers/index.d.ts +1 -0
  138. package/dist/frontend/providers/index.d.ts.map +1 -1
  139. package/dist/frontend/store/feature-flags.d.ts +63 -0
  140. package/dist/frontend/store/feature-flags.d.ts.map +1 -0
  141. package/dist/frontend/store/index.d.ts +14 -0
  142. package/dist/frontend/store/index.d.ts.map +1 -0
  143. package/dist/frontend/store/integrations.d.ts +36 -0
  144. package/dist/frontend/store/integrations.d.ts.map +1 -0
  145. package/dist/frontend/store/service-accessors.d.ts +78 -0
  146. package/dist/frontend/store/service-accessors.d.ts.map +1 -0
  147. package/dist/index.d.ts +5 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +15262 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/index.mjs +13667 -4861
  152. package/dist/index.mjs.map +1 -1
  153. package/dist/init/CoreInitializer.d.ts +583 -0
  154. package/dist/init/CoreInitializer.d.ts.map +1 -0
  155. package/dist/init/ServiceRegistry.d.ts +256 -0
  156. package/dist/init/ServiceRegistry.d.ts.map +1 -0
  157. package/dist/init/index.d.ts +14 -0
  158. package/dist/init/index.d.ts.map +1 -0
  159. package/dist/init/nestjs/CoreModule.d.ts +63 -0
  160. package/dist/init/nestjs/CoreModule.d.ts.map +1 -0
  161. package/dist/init/nestjs/index.d.ts +5 -0
  162. package/dist/init/nestjs/index.d.ts.map +1 -0
  163. package/dist/init/nestjs/index.js +9234 -0
  164. package/dist/init/nestjs/index.js.map +1 -0
  165. package/dist/init/nestjs/index.mjs +9230 -0
  166. package/dist/init/nestjs/index.mjs.map +1 -0
  167. package/dist/init/react.d.ts +33 -0
  168. package/dist/init/react.d.ts.map +1 -0
  169. package/dist/models/example/ExampleRepository.d.ts +166 -0
  170. package/dist/models/example/ExampleRepository.d.ts.map +1 -0
  171. package/dist/models/example/index.d.ts +7 -0
  172. package/dist/models/example/index.d.ts.map +1 -0
  173. package/dist/models/featureFlags/FeatureFlagRepository.d.ts +161 -0
  174. package/dist/models/featureFlags/FeatureFlagRepository.d.ts.map +1 -0
  175. package/dist/models/featureFlags/index.d.ts +7 -0
  176. package/dist/models/featureFlags/index.d.ts.map +1 -0
  177. package/dist/models/index.d.ts +9 -0
  178. package/dist/models/index.d.ts.map +1 -0
  179. package/dist/services/ApiClientService.d.ts +92 -4
  180. package/dist/services/ApiClientService.d.ts.map +1 -1
  181. package/dist/services/CacheService.d.ts +176 -0
  182. package/dist/services/CacheService.d.ts.map +1 -0
  183. package/dist/services/DbService.d.ts +393 -0
  184. package/dist/services/DbService.d.ts.map +1 -0
  185. package/dist/services/NotificationService.d.ts +153 -0
  186. package/dist/services/NotificationService.d.ts.map +1 -0
  187. package/dist/services/StorageService.d.ts +146 -0
  188. package/dist/services/StorageService.d.ts.map +1 -0
  189. package/dist/services/index.d.ts +4 -0
  190. package/dist/services/index.d.ts.map +1 -1
  191. package/dist/utils/common/id.d.ts +83 -0
  192. package/dist/utils/common/id.d.ts.map +1 -0
  193. package/dist/utils/common/index.d.ts +2 -0
  194. package/dist/utils/common/index.d.ts.map +1 -1
  195. package/dist/utils/common/object.d.ts +70 -0
  196. package/dist/utils/common/object.d.ts.map +1 -0
  197. package/dist/utils/featureFlags/conditions.d.ts.map +1 -1
  198. package/dist/utils/featureFlags/context.d.ts +0 -1
  199. package/dist/utils/featureFlags/context.d.ts.map +1 -1
  200. package/dist/utils/index.d.ts +1 -0
  201. package/dist/utils/index.d.ts.map +1 -1
  202. package/dist/utils/mapperUtils.d.ts +38 -0
  203. package/dist/utils/mapperUtils.d.ts.map +1 -0
  204. package/dist/utils/runtime.d.ts +15 -0
  205. package/dist/utils/runtime.d.ts.map +1 -0
  206. package/dist/version.d.ts +24 -0
  207. package/dist/version.d.ts.map +1 -0
  208. package/dist/web_app/auth/add_user.d.ts +2 -2
  209. package/dist/web_app/auth/add_user.d.ts.map +1 -1
  210. package/dist/web_app/auth/update_user.d.ts +1 -1
  211. package/dist/web_app/auth/update_user.d.ts.map +1 -1
  212. package/package.json +89 -15
  213. package/dist/backend/featureFlags/database/connection.d.ts +0 -321
  214. package/dist/backend/featureFlags/database/connection.d.ts.map +0 -1
  215. package/dist/backend/featureFlags/database/repository.d.ts +0 -518
  216. package/dist/backend/featureFlags/database/repository.d.ts.map +0 -1
  217. package/dist/backend/featureFlags/feature-flag.repository.d.ts +0 -85
  218. package/dist/backend/featureFlags/feature-flag.repository.d.ts.map +0 -1
  219. package/dist/backend/featureFlags/feature-flag.service.d.ts +0 -264
  220. package/dist/backend/featureFlags/feature-flag.service.d.ts.map +0 -1
  221. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts +0 -103
  222. package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts.map +0 -1
  223. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts +0 -35
  224. package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts.map +0 -1
  225. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts +0 -55
  226. package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts.map +0 -1
  227. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts +0 -57
  228. package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts.map +0 -1
  229. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts +0 -99
  230. package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts.map +0 -1
  231. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts +0 -31
  232. package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts.map +0 -1
  233. package/dist/frontend/featureFlags/providers/types.d.ts +0 -21
  234. package/dist/frontend/featureFlags/providers/types.d.ts.map +0 -1
  235. package/dist/index.cjs +0 -6435
  236. package/dist/index.cjs.map +0 -1
  237. package/dist/utils/db/databaseService.d.ts +0 -6
  238. package/dist/utils/db/databaseService.d.ts.map +0 -1
  239. package/dist/utils/db/index.d.ts +0 -2
  240. package/dist/utils/db/index.d.ts.map +0 -1
@@ -0,0 +1,583 @@
1
+ /**
2
+ * CoreInitializer - Unified initialization for @plyaz/core
3
+ *
4
+ * Provides a single entry point to initialize all core services with
5
+ * environment-aware configuration. Works across all JavaScript runtimes.
6
+ *
7
+ * @example Backend with full config
8
+ * ```typescript
9
+ * import { Core } from '@plyaz/core';
10
+ *
11
+ * await Core.initialize({
12
+ * envPath: '.env',
13
+ * db: { adapter: 'drizzle' },
14
+ * api: {
15
+ * env: 'production',
16
+ * baseURL: 'https://api.example.com',
17
+ * },
18
+ * });
19
+ *
20
+ * // Access services
21
+ * const db = Core.db;
22
+ * const api = Core.api;
23
+ * ```
24
+ *
25
+ * @example Frontend (Nuxt/Next.js)
26
+ * ```typescript
27
+ * import { Core } from '@plyaz/core';
28
+ *
29
+ * await Core.initialize({
30
+ * skipDb: true,
31
+ * api: { baseURL: 'https://api.example.com' },
32
+ * });
33
+ *
34
+ * const api = Core.api;
35
+ * ```
36
+ *
37
+ * @example NestJS with DI
38
+ * ```typescript
39
+ * // app.module.ts
40
+ * import { CoreModule } from '@plyaz/core/adapters';
41
+ * import { FeatureFlagModule } from '@plyaz/core/backend/featureFlags';
42
+ *
43
+ * @Module({
44
+ * imports: [
45
+ * CoreModule.forRoot({ envPath: '.env', db: { adapter: 'drizzle' } }),
46
+ * FeatureFlagModule.forRoot({ provider: 'database' }),
47
+ * ],
48
+ * })
49
+ * export class AppModule {}
50
+ * ```
51
+ */
52
+ import type { CoreDbServiceConfig, DbServiceInstance } from '../services/DbService';
53
+ import { DEFAULT_ENCRYPTION_FIELDS } from '../services/DbService';
54
+ import { ApiClientService } from '../services/ApiClientService';
55
+ import { CacheService } from '../services/CacheService';
56
+ import type { CoreStorageConfig, StorageServiceInstance } from '../services/StorageService';
57
+ import type { CoreNotificationConfig, NotificationServiceInstance } from '../services/NotificationService';
58
+ import { CoreEventManager } from '../events/CoreEventManager';
59
+ import type { CoreRuntimeEnvironment, CoreRuntimeContext, CoreEnvVars, CoreAppContext, CoreApiInitOptions, CoreServiceRuntime, CoreInitOptions as BaseCoreInitOptions, CoreServicesResultBase, CoreServiceEntry, CoreDomainServiceInstance, CoreFeatureFlagInitConfig, CoreErrorHandlerInitConfig, CoreCacheConfig, CoreObservabilityConfig } from '@plyaz/types/core';
60
+ import type { ObservabilityAdapter } from '@plyaz/types/observability';
61
+ import type { FeatureFlagStoreSlice } from '@plyaz/types/features';
62
+ import type { ErrorStoreActions } from '@plyaz/types/errors';
63
+ import { type StoreKey } from '@plyaz/store';
64
+ import type { RootStoreSlice } from '@plyaz/types/store';
65
+ import type { StoreApi } from 'zustand/vanilla';
66
+ /**
67
+ * Core initialization options with specific types for this package
68
+ */
69
+ export interface CoreInitOptions extends Omit<BaseCoreInitOptions<Partial<CoreDbServiceConfig>, CoreApiInitOptions, CoreCacheConfig, CoreStorageConfig, CoreNotificationConfig>, 'observability' | 'skipObservability'> {
70
+ /** Observability configuration */
71
+ observability?: CoreObservabilityConfig;
72
+ /** Skip observability initialization */
73
+ skipObservability?: boolean;
74
+ /**
75
+ * Global error handler configuration.
76
+ * Auto-initializes by default to catch all uncaught errors.
77
+ * Set `enabled: false` to disable if you want to use your own error handling.
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * await Core.initialize({
82
+ * errorHandler: {
83
+ * enabled: true,
84
+ * logToConsole: true,
85
+ * maxErrors: 200,
86
+ * filter: (error) => error instanceof MyError,
87
+ * },
88
+ * });
89
+ * ```
90
+ */
91
+ errorHandler?: CoreErrorHandlerInitConfig;
92
+ /** Feature flags configuration */
93
+ featureFlags?: CoreFeatureFlagInitConfig;
94
+ /**
95
+ * Domain services to auto-initialize (frontend pattern).
96
+ * Uses ServiceRegistry for automatic initialization.
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * await Core.initialize({
101
+ * services: [
102
+ * { service: FeatureFlagDomainService, config: { enabled: true } },
103
+ * { service: ExampleDomainService, config: { enabled: true, useRealApi: true } },
104
+ * ],
105
+ * });
106
+ *
107
+ * // Access via ServiceRegistry
108
+ * const flags = ServiceRegistry.get<FeatureFlagDomainService>('featureFlags');
109
+ * ```
110
+ */
111
+ services?: CoreServiceEntry[];
112
+ }
113
+ /**
114
+ * Core initialization result with specific types for this package
115
+ */
116
+ export type CoreServicesResult = CoreServicesResultBase<DbServiceInstance, typeof ApiClientService, CacheService, ObservabilityAdapter, StorageServiceInstance, NotificationServiceInstance>;
117
+ /**
118
+ * Default service configurations for auto-initialization
119
+ * These services are always initialized unless explicitly disabled
120
+ */
121
+ declare const CORE_DOMAIN_SERVICES: CoreServiceEntry[];
122
+ export declare class Core {
123
+ private static initialized;
124
+ private static _coreServices;
125
+ /**
126
+ * Logger for Core initialization (created lazily)
127
+ */
128
+ private static _logger;
129
+ /**
130
+ * Get or create the Core logger
131
+ */
132
+ private static get logger();
133
+ /**
134
+ * Log a message during initialization.
135
+ * Uses PackageLogger, respects verbose flag.
136
+ */
137
+ private static log;
138
+ /**
139
+ * Log a debug message during initialization.
140
+ */
141
+ private static logDebug;
142
+ /**
143
+ * Observability configuration
144
+ */
145
+ private static _observabilityConfig;
146
+ /**
147
+ * Global error handler instance
148
+ */
149
+ private static _errorHandler;
150
+ /**
151
+ * Error handler configuration
152
+ */
153
+ private static _errorConfig;
154
+ /**
155
+ * HTTP error handler/middleware based on runtime.
156
+ * Auto-created during initialization.
157
+ */
158
+ private static _httpErrorHandler;
159
+ /**
160
+ * Event listener cleanup functions
161
+ */
162
+ private static _eventCleanupFns;
163
+ /**
164
+ * Feature flag configuration
165
+ */
166
+ private static _flagConfig;
167
+ /**
168
+ * Root store instance (contains errors, feature flags, and all other slices)
169
+ * Initialized during Core.initialize() - frontend uses React hook store, backend uses vanilla store
170
+ * All store access should go through Core.rootStore - no separate stores needed
171
+ */
172
+ private static _rootStore;
173
+ /**
174
+ * Setup environment and context
175
+ */
176
+ private static setupEnvironment;
177
+ /**
178
+ * Initialize a service with error handling
179
+ */
180
+ private static initService;
181
+ /** Initialize error handler if enabled */
182
+ private static initErrorHandlerIfEnabled;
183
+ /** Initialize API client if not skipped */
184
+ private static initApiIfEnabled;
185
+ /** Initialize cache service if not skipped */
186
+ private static initCacheIfEnabled;
187
+ /** Initialize observability if not skipped */
188
+ private static initObservabilityIfEnabled;
189
+ /** Initialize storage service if not skipped (backend-only) */
190
+ private static initStorageIfEnabled;
191
+ /** Initialize notifications service if not skipped (backend-only) */
192
+ private static initNotificationsIfEnabled;
193
+ /**
194
+ * Initialize domain services
195
+ *
196
+ * Always initializes CORE_DOMAIN_SERVICES (like BackendExampleService),
197
+ * then merges with any user-provided services.
198
+ * User-provided service configs override core defaults.
199
+ */
200
+ private static initDomainServicesIfConfigured;
201
+ /**
202
+ * Initialize all core services
203
+ */
204
+ static initialize(options?: CoreInitOptions): Promise<CoreServicesResult>;
205
+ /**
206
+ * Domain services for business logic
207
+ * @example Core.services.ExampleService.create(data)
208
+ */
209
+ static get services(): typeof CORE_DOMAIN_SERVICES;
210
+ /**
211
+ * All stores - unified access to ALL slices from single root store
212
+ * All stores (global + domain) are slices of ONE Zustand store instance.
213
+ *
214
+ * **Auto-generated from STORE_KEYS** - No manual registration needed!
215
+ *
216
+ * **Benefits:**
217
+ * - ✅ Access without hooks (store.getState())
218
+ * - ✅ Cross-slice subscriptions work automatically
219
+ * - ✅ Single source of truth
220
+ * - ✅ Automatically scales with new stores
221
+ *
222
+ * @example
223
+ * const errorStore = Core.stores.error; // Global slice
224
+ * const flagsStore = Core.stores.featureFlags; // Global slice
225
+ * const exampleStore = Core.stores.example; // Domain slice
226
+ */
227
+ static get stores(): Record<StoreKey, RootStoreSlice | undefined>;
228
+ /**
229
+ * Get a specific store slice by key (for ServiceRegistry injection).
230
+ * Returns the actual slice from the namespaced root store.
231
+ *
232
+ * @param key - Store key (type-safe: 'example' | 'errors' | 'featureFlags')
233
+ * @returns Specific store slice or undefined
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * const exampleSlice = Core.getDomainStore('example'); // ✅ Returns ExampleFrontendStoreSlice
238
+ * const errorSlice = Core.getDomainStore('errors'); // ✅ Returns ErrorStoreSlice
239
+ * const invalid = Core.getDomainStore('invalid'); // ❌ TypeScript error!
240
+ * ```
241
+ */
242
+ static getDomainStore<K extends keyof RootStoreSlice>(key: K): RootStoreSlice[K] | undefined;
243
+ static getDomainStore<T = RootStoreSlice>(): T | undefined;
244
+ /**
245
+ * Event manager for subscribing to domain events
246
+ * @example Core.events.on('example:created', handler)
247
+ */
248
+ static get events(): typeof CoreEventManager;
249
+ /**
250
+ * Get database service instance
251
+ * @throws Error if not initialized
252
+ */
253
+ static get db(): DbServiceInstance;
254
+ /**
255
+ * Get API client service
256
+ */
257
+ static get api(): typeof ApiClientService;
258
+ /**
259
+ * Get cache service instance
260
+ * @throws Error if not initialized
261
+ */
262
+ static get cache(): CacheService;
263
+ /**
264
+ * Get observability adapter instance
265
+ * @throws Error if not initialized
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * // Record a metric
270
+ * await Core.observability.recordMetric({
271
+ * type: 'counter',
272
+ * name: 'api.requests',
273
+ * value: 1,
274
+ * tags: { endpoint: '/users' },
275
+ * });
276
+ *
277
+ * // Start a span
278
+ * const span = Core.observability.startSpan({ name: 'processOrder' });
279
+ * try {
280
+ * // ... do work
281
+ * span.setStatus('ok');
282
+ * } catch (e) {
283
+ * span.recordException(e);
284
+ * span.setStatus('error');
285
+ * } finally {
286
+ * span.end();
287
+ * }
288
+ * ```
289
+ */
290
+ static get observability(): ObservabilityAdapter;
291
+ /**
292
+ * Check if observability is initialized
293
+ */
294
+ static get isObservabilityInitialized(): boolean;
295
+ /**
296
+ * Get observability configuration
297
+ */
298
+ static get observabilityConfig(): CoreObservabilityConfig;
299
+ /**
300
+ * Get storage service instance (backend-only)
301
+ * @throws Error if not initialized
302
+ *
303
+ * @example
304
+ * ```typescript
305
+ * const storage = Core.storage.getStorage();
306
+ * await storage.uploadFile({ file, filename: 'doc.pdf' });
307
+ * ```
308
+ */
309
+ static get storage(): StorageServiceInstance;
310
+ /**
311
+ * Check if storage is initialized
312
+ */
313
+ static get isStorageInitialized(): boolean;
314
+ /**
315
+ * Get notifications service instance (backend-only)
316
+ * @throws Error if not initialized
317
+ *
318
+ * @example
319
+ * ```typescript
320
+ * const notifications = Core.notifications.getNotifications();
321
+ * await notifications.sendEmail({ to: 'user@example.com', templateId: 'welcome' });
322
+ * ```
323
+ */
324
+ static get notifications(): NotificationServiceInstance;
325
+ /**
326
+ * Check if notifications is initialized
327
+ */
328
+ static get isNotificationsInitialized(): boolean;
329
+ /**
330
+ * Get root store (contains all slices: errors, feature flags, etc.)
331
+ * Use this to access the full store state and all slice actions globally.
332
+ *
333
+ * @example
334
+ * ```typescript
335
+ * // Access error actions
336
+ * const state = Core.rootStore.getState();
337
+ * state.addError({ ... });
338
+ *
339
+ * // Access flags
340
+ * console.log(state.flags);
341
+ *
342
+ * // Subscribe to store changes
343
+ * Core.rootStore.subscribe((state) => {
344
+ * console.log('Errors:', state.errors);
345
+ * console.log('Flags:', state.flags);
346
+ * });
347
+ * ```
348
+ */
349
+ static get rootStore(): StoreApi<RootStoreSlice>;
350
+ /**
351
+ * Get global error store actions.
352
+ * Provides access to the error store for querying and managing errors.
353
+ *
354
+ * @example
355
+ * ```typescript
356
+ * // Get all errors
357
+ * const allErrors = useErrorStore.getState().errors;
358
+ *
359
+ * // Clear all errors
360
+ * Core.errors.clearErrors();
361
+ *
362
+ * // Dismiss an error
363
+ * Core.errors.dismissError(errorId);
364
+ * ```
365
+ */
366
+ static get errors(): ErrorStoreActions;
367
+ /**
368
+ * Get feature flags store
369
+ * Provides synchronous access to feature flag values from the store.
370
+ *
371
+ * @example
372
+ * ```typescript
373
+ * // Check if a flag is enabled
374
+ * const isEnabled = Core.flags.isEnabled('NEW_FEATURE');
375
+ *
376
+ * // Get a flag value
377
+ * const provider = Core.flags.getValue<string>('PAYMENT_PROVIDER');
378
+ *
379
+ * // Refresh flags from source
380
+ * await Core.flags.refresh();
381
+ * ```
382
+ */
383
+ static get flags(): FeatureFlagStoreSlice;
384
+ /**
385
+ * Check if error handler is initialized
386
+ */
387
+ static get isErrorHandlerInitialized(): boolean;
388
+ /**
389
+ * Get the HTTP error handler/middleware based on runtime.
390
+ * Returns different types based on detected runtime:
391
+ *
392
+ * - **Express**: Error handler middleware function
393
+ * ```typescript
394
+ * app.use(Core.httpErrorHandler);
395
+ * ```
396
+ *
397
+ * - **NestJS**: Exception filter class
398
+ * ```typescript
399
+ * app.useGlobalFilters(new (Core.httpErrorHandler)());
400
+ * ```
401
+ *
402
+ * - **Next.js**: Object with App Router and Pages Router handlers
403
+ * ```typescript
404
+ * // App Router
405
+ * export const GET = Core.httpErrorHandler.withErrorHandler(handler);
406
+ * // Pages Router
407
+ * export default Core.httpErrorHandler.createNextApiErrorHandler()(handler);
408
+ * ```
409
+ *
410
+ * - **Node.js/Bun/Deno**: Object with handleError and createMiddleware
411
+ * ```typescript
412
+ * Core.httpErrorHandler.handleError(error, req, res);
413
+ * ```
414
+ *
415
+ * - **Browser**: null (no HTTP handler needed)
416
+ *
417
+ * @returns The HTTP error handler for the current runtime
418
+ */
419
+ static get httpErrorHandler(): unknown;
420
+ /**
421
+ * Check if feature flags are initialized
422
+ */
423
+ static get isFlagsInitialized(): boolean;
424
+ /**
425
+ * Get error handler configuration
426
+ */
427
+ static get errorConfig(): CoreErrorHandlerInitConfig;
428
+ /**
429
+ * Get feature flag configuration
430
+ */
431
+ static get flagConfig(): CoreFeatureFlagInitConfig;
432
+ /**
433
+ * Get loaded environment variables
434
+ */
435
+ static get env(): CoreEnvVars;
436
+ /**
437
+ * Get detected runtime environment
438
+ */
439
+ static get runtime(): CoreRuntimeEnvironment;
440
+ /**
441
+ * Get current app context
442
+ */
443
+ static get appContext(): CoreAppContext;
444
+ /**
445
+ * Check if Core is initialized
446
+ */
447
+ static get isInitialized(): boolean;
448
+ /**
449
+ * Check if running on a backend runtime
450
+ */
451
+ static get isBackend(): boolean;
452
+ /**
453
+ * Check if running on a frontend runtime
454
+ */
455
+ static get isFrontend(): boolean;
456
+ /**
457
+ * Get runtime context (backend, frontend, or universal)
458
+ * Universal means the runtime can be either (SSR frameworks like Next.js, Nuxt, Edge)
459
+ */
460
+ static getRuntimeContext(): CoreRuntimeContext;
461
+ /**
462
+ * Assert that the current runtime matches the expected runtime(s)
463
+ * Throws an error if the runtime doesn't match
464
+ *
465
+ * @param expected - Expected runtime(s) to check against
466
+ * @param serviceName - Name of the service for error message
467
+ * @throws CorePackageError if runtime doesn't match
468
+ *
469
+ * @example
470
+ * ```typescript
471
+ * // Assert backend-only
472
+ * Core.assertRuntime('backend', 'DatabaseService');
473
+ *
474
+ * // Assert multiple runtimes
475
+ * Core.assertRuntime(['backend', 'universal'], 'CacheService');
476
+ * ```
477
+ */
478
+ static assertRuntime(expected: CoreServiceRuntime | readonly CoreServiceRuntime[], serviceName: string): void;
479
+ /**
480
+ * Check if a service runtime is compatible with current runtime
481
+ * Returns true/false instead of throwing
482
+ *
483
+ * @param expected - Expected runtime(s) to check against
484
+ */
485
+ static isRuntimeCompatible(expected: CoreServiceRuntime | readonly CoreServiceRuntime[]): boolean;
486
+ /**
487
+ * Get a registered domain service by key.
488
+ * Convenience method that wraps ServiceRegistry.get().
489
+ *
490
+ * @param key - Service key (e.g., 'featureFlags', 'example')
491
+ * @returns The service instance
492
+ *
493
+ * @example
494
+ * ```typescript
495
+ * const flags = Core.getService<FeatureFlagDomainService>('featureFlags');
496
+ * const isEnabled = await flags.isEnabled('my-flag');
497
+ * ```
498
+ */
499
+ static getService<T extends CoreDomainServiceInstance = CoreDomainServiceInstance>(key: string): T;
500
+ /**
501
+ * Get a registered domain service by key with async initialization if needed.
502
+ * Convenience method that wraps ServiceRegistry.getAsync().
503
+ *
504
+ * @param key - Service key
505
+ * @returns Promise resolving to the service instance
506
+ */
507
+ static getServiceAsync<T extends CoreDomainServiceInstance = CoreDomainServiceInstance>(key: string): Promise<T>;
508
+ /**
509
+ * Check if a domain service is registered.
510
+ */
511
+ static hasService(key: string): boolean;
512
+ /**
513
+ * Reset Core (useful for testing)
514
+ */
515
+ static reset(): Promise<void>;
516
+ /**
517
+ * Determines whether to skip DbService initialization.
518
+ *
519
+ * DbService is backend-only and should never be initialized on frontend runtimes.
520
+ * This method:
521
+ * - Returns true (skip) if skipDb was explicitly set to true
522
+ * - Returns true (skip) if running on frontend, with a warning
523
+ * - Warns if someone explicitly tried to init DbService on frontend (skipDb: false)
524
+ *
525
+ * @param skipDb - User-provided skipDb option
526
+ * @param verbose - Enable verbose logging
527
+ * @returns true if DbService should be skipped
528
+ */
529
+ private static shouldSkipDbService;
530
+ /**
531
+ * Initialize database service
532
+ * Config validation is handled by DbService
533
+ */
534
+ private static initializeDb;
535
+ /**
536
+ * Initialize API client service
537
+ * Config validation is handled by ApiClientService
538
+ */
539
+ private static initializeApi;
540
+ /**
541
+ * Initialize cache service
542
+ * Config validation is handled by CacheService
543
+ */
544
+ private static initializeCache;
545
+ /**
546
+ * Initialize observability service based on config.
547
+ * Always includes LoggerAdapter as failover for console output.
548
+ */
549
+ private static initializeObservability;
550
+ /**
551
+ * Initialize global error handler
552
+ */
553
+ /** Create and initialize root store (includes error store + all other slices) */
554
+ private static initializeRootStore;
555
+ /** Get error store actions from root store */
556
+ private static getErrorStoreActions;
557
+ /** Build global error handler config */
558
+ private static buildErrorHandlerConfig;
559
+ private static initializeErrorHandler;
560
+ /**
561
+ * Create HTTP error handler based on detected runtime.
562
+ * Stores the handler in Core._httpErrorHandler for access via Core.httpErrorHandler
563
+ */
564
+ private static createHttpErrorHandler;
565
+ /**
566
+ * Subscribe to CoreEventManager error events
567
+ * Forwards system, entity, API, validation, database, and auth errors to the global error handler.
568
+ *
569
+ * Note: Database errors (DATABASE.ERROR) are only subscribed on backend runtimes since
570
+ * DbService is backend-only (skipDb: true on frontend).
571
+ */
572
+ private static subscribeToErrorEvents;
573
+ /** Handle fetch flags error and return empty flags */
574
+ private static handleFetchFlagsError;
575
+ /** Create fetch flags function */
576
+ private static createFetchFlagsFn;
577
+ /**
578
+ * Initialize feature flags slice within root store
579
+ */
580
+ private static initializeFeatureFlags;
581
+ }
582
+ export { ApiClientService, CacheService, DEFAULT_ENCRYPTION_FIELDS };
583
+ //# sourceMappingURL=CoreInitializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreInitializer.d.ts","sourceRoot":"","sources":["../../src/init/CoreInitializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EAEX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,IAAI,mBAAmB,EACtC,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EAEzB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AASrF,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD;;GAEG;AACH,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,mBAAmB,CACjB,OAAO,CAAC,mBAAmB,CAAC,EAC5B,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,CACvB,EACD,eAAe,GAAG,mBAAmB,CACtC;IACD,kCAAkC;IAClC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAE1C,kCAAkC;IAClC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAEzC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CACrD,iBAAiB,EACjB,OAAO,gBAAgB,EACvB,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,CAC5B,CAAC;AAKF;;;GAGG;AACH,QAAA,MAAM,oBAAoB,EAAE,gBAAgB,EAI3C,CAAC;AAEF,qBAAa,IAAI;IACf,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IACnC,OAAO,CAAC,MAAM,CAAC,aAAa,CAU1B;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAA8B;IAEpD;;OAEG;IACH,OAAO,CAAC,MAAM,KAAK,MAAM,GAMxB;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,GAAG;IASlB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;IAavB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA+B;IAElE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAAmC;IAE/D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY,CAAkC;IAE7D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAiB;IAEjD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAsB;IAErD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW,CAAiC;IAE3D;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAAyC;IAElE;;OAEG;mBACkB,gBAAgB;IAmBrC;;OAEG;mBACkB,WAAW;IAchC,0CAA0C;mBACrB,yBAAyB;IAgB9C,2CAA2C;mBACtB,gBAAgB;IAmBrC,8CAA8C;mBACzB,kBAAkB;IAwBvC,8CAA8C;mBACzB,0BAA0B;IAuB/C,+DAA+D;mBAC1C,oBAAoB;IAiCzC,qEAAqE;mBAChD,0BAA0B;IAiC/C;;;;;;OAMG;mBACkB,8BAA8B;IA6DnD;;OAEG;WAEU,UAAU,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6CnF;;;OAGG;IACH,MAAM,KAAK,QAAQ,IAAI,OAAO,oBAAoB,CAEjD;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC,CAchE;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,GAAG,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS;IAC5F,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,cAAc,KAAK,CAAC,GAAG,SAAS;IAc1D;;;OAGG;IACH,MAAM,KAAK,MAAM,IAAI,OAAO,gBAAgB,CAE3C;IAED;;;OAGG;IACH,MAAM,KAAK,EAAE,IAAI,iBAAiB,CAQjC;IAED;;OAEG;IACH,MAAM,KAAK,GAAG,IAAI,OAAO,gBAAgB,CAQxC;IAED;;;OAGG;IACH,MAAM,KAAK,KAAK,IAAI,YAAY,CAQ/B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,KAAK,aAAa,IAAI,oBAAoB,CAQ/C;IAED;;OAEG;IACH,MAAM,KAAK,0BAA0B,IAAI,OAAO,CAE/C;IAED;;OAEG;IACH,MAAM,KAAK,mBAAmB,IAAI,uBAAuB,CAExD;IAED;;;;;;;;;OASG;IACH,MAAM,KAAK,OAAO,IAAI,sBAAsB,CAQ3C;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,IAAI,OAAO,CAEzC;IAED;;;;;;;;;OASG;IACH,MAAM,KAAK,aAAa,IAAI,2BAA2B,CAQtD;IAED;;OAEG;IACH,MAAM,KAAK,0BAA0B,IAAI,OAAO,CAE/C;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC,CAQ/C;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,KAAK,MAAM,IAAI,iBAAiB,CAQrC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,KAAK,KAAK,IAAI,qBAAqB,CAUxC;IAED;;OAEG;IACH,MAAM,KAAK,yBAAyB,IAAI,OAAO,CAE9C;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,KAAK,gBAAgB,IAAI,OAAO,CAErC;IAED;;OAEG;IACH,MAAM,KAAK,kBAAkB,IAAI,OAAO,CAEvC;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,IAAI,0BAA0B,CAEnD;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,IAAI,yBAAyB,CAEjD;IAED;;OAEG;IACH,MAAM,KAAK,GAAG,IAAI,WAAW,CAE5B;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,IAAI,sBAAsB,CAE3C;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,IAAI,cAAc,CAEtC;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,IAAI,OAAO,CAElC;IAED;;OAEG;IACH,MAAM,KAAK,SAAS,IAAI,OAAO,CAE9B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,IAAI,OAAO,CAE/B;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB,IAAI,kBAAkB;IAU9C;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,aAAa,CAClB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,kBAAkB,EAAE,EAC5D,WAAW,EAAE,MAAM,GAClB,IAAI;IAuBP;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CACxB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,kBAAkB,EAAE,GAC3D,OAAO;IAYV;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,EAC/E,GAAG,EAAE,MAAM,GACV,CAAC;IAIJ;;;;;;OAMG;WACU,eAAe,CAAC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,EAC1F,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;WAEU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4EnC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAiClC;;;OAGG;mBACkB,YAAY;IAcjC;;;OAGG;mBACkB,aAAa;IAmBlC;;;OAGG;mBACkB,eAAe;IAMpC;;;OAGG;mBACkB,uBAAuB;IA2D5C;;OAEG;IACH,iFAAiF;IACjF,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAsClC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAUnC,wCAAwC;IAExC,OAAO,CAAC,MAAM,CAAC,uBAAuB;mBAajB,sBAAsB;IAkE3C;;;OAGG;IAEH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA2ErC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAuGrC,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoBpC,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAyBjC;;OAEG;mBAEkB,sBAAsB;CA+B5C;AAGD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,yBAAyB,EAAE,CAAC"}