@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,284 @@
1
+ /**
2
+ * Base Domain Service
3
+ *
4
+ * Abstract base class for all domain services in @plyaz/core.
5
+ * Follows the same pattern as BaseAdapter in @plyaz/notifications.
6
+ *
7
+ * Provides:
8
+ * - API client initialization via constructor config
9
+ * - Automatic mapper/validator instantiation
10
+ * - Service enabled/disabled state management
11
+ * - Default values handling
12
+ * - Runtime context detection
13
+ * - Lazy logger initialization
14
+ *
15
+ * Subclasses must implement:
16
+ * - isAvailable() - Check if service is configured and ready
17
+ * - dispose() - Cleanup resources
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * interface MyServiceConfig extends BaseDomainServiceConfig {
22
+ * apiBasePath?: string;
23
+ * }
24
+ *
25
+ * class MyDomainService extends BaseDomainService<
26
+ * MyServiceConfig,
27
+ * MyMapper,
28
+ * MyValidator
29
+ * > {
30
+ * constructor(config: MyServiceConfig) {
31
+ * super({
32
+ * serviceName: 'MyDomainService',
33
+ * supportedRuntimes: ['universal'],
34
+ * serviceConfig: config,
35
+ * apiClientConfig: {
36
+ * baseURL: config.apiBasePath ?? '/api',
37
+ * },
38
+ * MapperClass: MyMapperClass,
39
+ * ValidatorClass: MyValidatorClass,
40
+ * });
41
+ * }
42
+ *
43
+ * isAvailable(): boolean {
44
+ * return this.config.enabled !== false;
45
+ * }
46
+ *
47
+ * dispose(): void {
48
+ * // Cleanup
49
+ * }
50
+ *
51
+ * async create(data: unknown): Promise<MyEntity> {
52
+ * this.assertReady();
53
+ * const validated = this.validator.validateCreateOrThrow(data);
54
+ * const dto = this.mapper.toCreateDTO(validated);
55
+ * const response = await this.apiClient.post('/entities', dto);
56
+ * return this.mapper.toDomain(response.data);
57
+ * }
58
+ * }
59
+ *
60
+ * // Usage
61
+ * const service = new MyDomainService({ enabled: true, apiBasePath: '/api/v1' });
62
+ * await service.ensureApiClientInitialized();
63
+ * const entity = await service.create({ name: 'Test' });
64
+ * ```
65
+ */
66
+ import { PackageLogger } from '@plyaz/logger';
67
+ import type { CoreBaseMapperInstance, CoreBaseValidatorInstance, CoreServiceRuntime } from '@plyaz/types/core';
68
+ import type { FeatureFlagValue } from '@plyaz/types/features';
69
+ import { createApiClient } from '@plyaz/api';
70
+ import type { CoreBaseDomainServiceConfig, CoreBaseServiceConfig } from '@plyaz/types/core';
71
+ import type { DatabaseServiceInterface } from '@plyaz/types/db';
72
+ import type { CacheManager } from '@/base/cache';
73
+ import type { ObservabilityAdapter, Span } from '@plyaz/types/observability';
74
+ /**
75
+ * API client type (from @plyaz/api)
76
+ */
77
+ export type ApiClient = Awaited<ReturnType<typeof createApiClient>>;
78
+ /**
79
+ * Abstract base class for domain services
80
+ *
81
+ * Uses generics for strong typing:
82
+ * - TConfig: Service configuration type
83
+ * - TMapper: Mapper instance type
84
+ * - TValidator: Validator instance type
85
+ *
86
+ * Subclasses use the super({...}) pattern:
87
+ * ```typescript
88
+ * class MyService extends BaseDomainService<MyConfig, MyMapper, MyValidator> {
89
+ * constructor(config: MyConfig) {
90
+ * super({
91
+ * serviceName: 'MyService',
92
+ * supportedRuntimes: ['universal'],
93
+ * serviceConfig: config,
94
+ * apiClientConfig: { baseURL: '/api' },
95
+ * MapperClass: MyMapperClass,
96
+ * ValidatorClass: MyValidatorClass,
97
+ * });
98
+ * }
99
+ * }
100
+ * ```
101
+ */
102
+ export declare abstract class BaseDomainService<TConfig extends CoreBaseDomainServiceConfig = CoreBaseDomainServiceConfig, TMapper extends CoreBaseMapperInstance<unknown, unknown> = CoreBaseMapperInstance<unknown, unknown>, TValidator extends CoreBaseValidatorInstance = CoreBaseValidatorInstance> {
103
+ /** Service name for logging and error messages */
104
+ readonly serviceName: string;
105
+ /** Supported runtimes for this service */
106
+ readonly supportedRuntimes: readonly CoreServiceRuntime[];
107
+ /** Service configuration */
108
+ protected readonly config: TConfig;
109
+ /** Logger instance */
110
+ protected readonly logger: PackageLogger;
111
+ /** Initialization state */
112
+ protected _initialized: boolean;
113
+ private _apiClient;
114
+ private _clientInitPromise;
115
+ private readonly _apiClientConfig?;
116
+ private readonly _setAsDefaultClient;
117
+ protected readonly cacheManager?: CacheManager;
118
+ protected readonly dbService?: DatabaseServiceInterface;
119
+ protected readonly apiService?: ApiClient;
120
+ protected readonly observabilityService?: ObservabilityAdapter;
121
+ /**
122
+ * Cache prefix for namespacing cache keys (e.g., 'example', 'user', 'product').
123
+ * Subclasses can override by defining as a property.
124
+ * If not overridden, defaults to serviceName.toLowerCase().
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * protected cachePrefix = 'my-service'; // Override default
129
+ * ```
130
+ */
131
+ protected cachePrefix: string;
132
+ private _mapperInstance;
133
+ private _validatorInstance;
134
+ private readonly _MapperClass?;
135
+ private readonly _ValidatorClass?;
136
+ /**
137
+ * Create a new domain service instance
138
+ *
139
+ * @param config - Base service configuration (passed via super({...}))
140
+ */
141
+ constructor(config: CoreBaseServiceConfig<TConfig, TMapper, TValidator>);
142
+ /**
143
+ * Check if the service is enabled
144
+ * Service is enabled by default unless explicitly disabled
145
+ */
146
+ get isServiceEnabled(): boolean;
147
+ /**
148
+ * Check if the service is initialized (API client ready)
149
+ */
150
+ get isInitialized(): boolean;
151
+ /**
152
+ * Check if mapper is available
153
+ */
154
+ get hasMapper(): boolean;
155
+ /**
156
+ * Check if validator is available
157
+ */
158
+ get hasValidator(): boolean;
159
+ /**
160
+ * Get the mapper instance (lazy initialization)
161
+ * @throws CorePackageError if MapperClass was not provided
162
+ */
163
+ get mapper(): TMapper;
164
+ /**
165
+ * Set the mapper instance
166
+ * Allows subclasses to override mapper initialization
167
+ */
168
+ set mapper(value: TMapper);
169
+ /**
170
+ * Get the validator instance (lazy initialization)
171
+ * @throws CorePackageError if ValidatorClass was not provided
172
+ */
173
+ get validator(): TValidator;
174
+ /**
175
+ * Set the validator instance
176
+ * Allows subclasses to override validator initialization
177
+ */
178
+ set validator(value: TValidator);
179
+ /**
180
+ * Get the API client (after initialization)
181
+ * @throws CorePackageError if API client was not configured or not initialized
182
+ */
183
+ get apiClient(): ApiClient;
184
+ /**
185
+ * Get the observability adapter (if injected)
186
+ * Returns undefined if observability is not enabled
187
+ */
188
+ get observability(): ObservabilityAdapter | undefined;
189
+ /**
190
+ * Check if observability is available
191
+ */
192
+ get hasObservability(): boolean;
193
+ /**
194
+ * Initialize API client asynchronously
195
+ * Called from constructor if apiClientConfig is provided
196
+ */
197
+ private initializeApiClient;
198
+ /**
199
+ * Ensure API client is initialized before use.
200
+ * Call this from methods that need the API client.
201
+ * Also called by ServiceRegistry.create() for services with async initialization.
202
+ */
203
+ ensureApiClientInitialized(): Promise<void>;
204
+ /**
205
+ * Get current configuration (immutable copy)
206
+ */
207
+ getConfig(): Readonly<TConfig>;
208
+ /**
209
+ * Get a default value
210
+ * @param key - The key to get the default for
211
+ */
212
+ getDefault<T = FeatureFlagValue>(key: string): T | undefined;
213
+ /**
214
+ * Set a default value (mutates config.defaults)
215
+ * @param key - The key to set the default for
216
+ * @param value - The default value
217
+ */
218
+ setDefault(key: string, value: FeatureFlagValue): void;
219
+ /**
220
+ * Set multiple default values
221
+ * @param defaults - Record of default values
222
+ */
223
+ setDefaults(defaults: Record<string, FeatureFlagValue>): void;
224
+ /**
225
+ * Assert that the service is available (configured and ready)
226
+ * @throws CorePackageError if not available
227
+ */
228
+ protected assertAvailable(): void;
229
+ /**
230
+ * Assert that the service is enabled
231
+ * @throws CorePackageError if disabled
232
+ */
233
+ protected assertEnabled(): void;
234
+ /**
235
+ * Assert that the service is ready (enabled AND available)
236
+ * @throws CorePackageError if not ready
237
+ */
238
+ protected assertReady(): void;
239
+ /**
240
+ * Check if service is available (configured and ready)
241
+ * Subclasses must implement this to check credentials, config, etc.
242
+ *
243
+ * @returns true if available
244
+ */
245
+ abstract isAvailable(): boolean;
246
+ /**
247
+ * Dispose/cleanup the service
248
+ * Subclasses must implement to release resources
249
+ */
250
+ abstract dispose(): void;
251
+ /**
252
+ * Log debug message with service context
253
+ */
254
+ protected logDebug(message: string, data?: Record<string, unknown>): void;
255
+ /**
256
+ * Log info message with service context
257
+ */
258
+ protected logInfo(message: string, data?: Record<string, unknown>): void;
259
+ /**
260
+ * Log warning message with service context
261
+ */
262
+ protected logWarn(message: string, data?: Record<string, unknown>): void;
263
+ /**
264
+ * Log error message with service context
265
+ */
266
+ protected logError(message: string, data?: Record<string, unknown>): void;
267
+ /**
268
+ * Record a metric (no-op if observability not available)
269
+ */
270
+ protected recordMetric(name: string, value: number, tags?: Record<string, string>): Promise<void>;
271
+ /**
272
+ * Increment a counter (no-op if observability not available)
273
+ */
274
+ protected incrementCounter(name: string, value?: number, tags?: Record<string, string>): Promise<void>;
275
+ /**
276
+ * Start a span for tracing (returns noop span if observability not available)
277
+ */
278
+ protected startSpan(name: string, attributes?: Record<string, string | number | boolean>): Span;
279
+ /**
280
+ * Execute a function within a traced span
281
+ */
282
+ protected withSpan<T>(name: string, fn: (span: Span) => Promise<T>, attributes?: Record<string, string | number | boolean>): Promise<T>;
283
+ }
284
+ //# sourceMappingURL=BaseDomainService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseDomainService.d.ts","sourceRoot":"","sources":["../../../src/domain/base/BaseDomainService.ts"],"names":[],"mappings":"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"}