@plyaz/core 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/index.d.ts +16 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/nestjs.d.ts +79 -0
- package/dist/adapters/nestjs.d.ts.map +1 -0
- package/dist/adapters/nextjs.d.ts +28 -0
- package/dist/adapters/nextjs.d.ts.map +1 -0
- package/dist/backend/example/example.controller.d.ts +121 -0
- package/dist/backend/example/example.controller.d.ts.map +1 -0
- package/dist/backend/example/example.module.d.ts +29 -0
- package/dist/backend/example/example.module.d.ts.map +1 -0
- package/dist/backend/example/index.d.ts +8 -0
- package/dist/backend/example/index.d.ts.map +1 -0
- package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts +150 -0
- package/dist/backend/featureFlags/FeatureFlagDomainService.d.ts.map +1 -0
- package/dist/backend/featureFlags/config/feature-flag.config.d.ts +28 -50
- package/dist/backend/featureFlags/config/feature-flag.config.d.ts.map +1 -1
- package/dist/backend/featureFlags/config/validation.d.ts +6 -6
- package/dist/backend/featureFlags/config/validation.d.ts.map +1 -1
- package/dist/backend/featureFlags/feature-flag.controller.d.ts +14 -55
- package/dist/backend/featureFlags/feature-flag.controller.d.ts.map +1 -1
- package/dist/backend/featureFlags/feature-flag.module.d.ts +36 -43
- package/dist/backend/featureFlags/feature-flag.module.d.ts.map +1 -1
- package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts +16 -2
- package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts.map +1 -1
- package/dist/backend/featureFlags/index.d.ts +6 -7
- package/dist/backend/featureFlags/index.d.ts.map +1 -1
- package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts.map +1 -1
- package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts.map +1 -1
- package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts +6 -11
- package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts.map +1 -1
- package/dist/backend/index.d.ts +5 -0
- package/dist/backend/index.d.ts.map +1 -1
- package/dist/base/cache/CacheKeyBuilder.d.ts +115 -0
- package/dist/base/cache/CacheKeyBuilder.d.ts.map +1 -0
- package/dist/base/cache/index.d.ts +1 -0
- package/dist/base/cache/index.d.ts.map +1 -1
- package/dist/base/cache/strategies/redis.d.ts.map +1 -1
- package/dist/base/observability/BaseAdapter.d.ts +79 -0
- package/dist/base/observability/BaseAdapter.d.ts.map +1 -0
- package/dist/base/observability/CompositeAdapter.d.ts +72 -0
- package/dist/base/observability/CompositeAdapter.d.ts.map +1 -0
- package/dist/base/observability/DatadogAdapter.d.ts +117 -0
- package/dist/base/observability/DatadogAdapter.d.ts.map +1 -0
- package/dist/base/observability/LoggerAdapter.d.ts +54 -0
- package/dist/base/observability/LoggerAdapter.d.ts.map +1 -0
- package/dist/base/observability/ObservabilityService.d.ts +160 -0
- package/dist/base/observability/ObservabilityService.d.ts.map +1 -0
- package/dist/base/observability/index.d.ts +17 -0
- package/dist/base/observability/index.d.ts.map +1 -0
- package/dist/domain/base/BaseBackendDomainService.d.ts +528 -0
- package/dist/domain/base/BaseBackendDomainService.d.ts.map +1 -0
- package/dist/domain/base/BaseDomainService.d.ts +284 -0
- package/dist/domain/base/BaseDomainService.d.ts.map +1 -0
- package/dist/domain/base/BaseFrontendDomainService.d.ts +493 -0
- package/dist/domain/base/BaseFrontendDomainService.d.ts.map +1 -0
- package/dist/domain/base/BaseMapper.d.ts +100 -0
- package/dist/domain/base/BaseMapper.d.ts.map +1 -0
- package/dist/domain/base/BaseValidator.d.ts +105 -0
- package/dist/domain/base/BaseValidator.d.ts.map +1 -0
- package/dist/domain/base/index.d.ts +10 -0
- package/dist/domain/base/index.d.ts.map +1 -0
- package/dist/domain/example/BackendExampleDomainService.d.ts +257 -0
- package/dist/domain/example/BackendExampleDomainService.d.ts.map +1 -0
- package/dist/domain/example/FrontendExampleDomainService.d.ts +164 -0
- package/dist/domain/example/FrontendExampleDomainService.d.ts.map +1 -0
- package/dist/domain/example/index.d.ts +10 -0
- package/dist/domain/example/index.d.ts.map +1 -0
- package/dist/domain/example/mappers/ExampleMapper.d.ts +67 -0
- package/dist/domain/example/mappers/ExampleMapper.d.ts.map +1 -0
- package/dist/domain/example/validators/ExampleValidator.d.ts +33 -0
- package/dist/domain/example/validators/ExampleValidator.d.ts.map +1 -0
- package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts +86 -0
- package/dist/domain/featureFlags/FrontendFeatureFlagDomainService.d.ts.map +1 -0
- package/dist/domain/featureFlags/index.d.ts +10 -5
- package/dist/domain/featureFlags/index.d.ts.map +1 -1
- package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts +72 -0
- package/dist/domain/featureFlags/mappers/FeatureFlagMapper.d.ts.map +1 -0
- package/dist/domain/featureFlags/mappers/index.d.ts +8 -0
- package/dist/domain/featureFlags/mappers/index.d.ts.map +1 -0
- package/dist/domain/featureFlags/module.d.ts +20 -0
- package/dist/domain/featureFlags/module.d.ts.map +1 -0
- package/dist/domain/featureFlags/provider.d.ts +40 -1
- package/dist/domain/featureFlags/provider.d.ts.map +1 -1
- package/dist/domain/featureFlags/providers/api.d.ts +59 -34
- package/dist/domain/featureFlags/providers/api.d.ts.map +1 -1
- package/dist/domain/featureFlags/providers/database.d.ts +48 -46
- package/dist/domain/featureFlags/providers/database.d.ts.map +1 -1
- package/dist/domain/featureFlags/providers/factory.d.ts +50 -33
- package/dist/domain/featureFlags/providers/factory.d.ts.map +1 -1
- package/dist/domain/featureFlags/providers/file.d.ts +48 -1
- package/dist/domain/featureFlags/providers/file.d.ts.map +1 -1
- package/dist/domain/featureFlags/providers/memory.d.ts +32 -6
- package/dist/domain/featureFlags/providers/memory.d.ts.map +1 -1
- package/dist/domain/featureFlags/providers/redis.d.ts +6 -1
- package/dist/domain/featureFlags/providers/redis.d.ts.map +1 -1
- package/dist/domain/featureFlags/service.d.ts +112 -0
- package/dist/domain/featureFlags/service.d.ts.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/engine/featureFlags/engine.d.ts +8 -0
- package/dist/engine/featureFlags/engine.d.ts.map +1 -1
- package/dist/entry-backend.d.ts +24 -0
- package/dist/entry-backend.d.ts.map +1 -0
- package/dist/entry-backend.js +15635 -0
- package/dist/entry-backend.js.map +1 -0
- package/dist/entry-backend.mjs +15506 -0
- package/dist/entry-backend.mjs.map +1 -0
- package/dist/entry-frontend.d.ts +23 -0
- package/dist/entry-frontend.d.ts.map +1 -0
- package/dist/entry-frontend.js +11152 -0
- package/dist/entry-frontend.js.map +1 -0
- package/dist/entry-frontend.mjs +11089 -0
- package/dist/entry-frontend.mjs.map +1 -0
- package/dist/events/CoreEventManager.d.ts +116 -0
- package/dist/events/CoreEventManager.d.ts.map +1 -0
- package/dist/events/index.d.ts +27 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/frontend/base/index.d.ts +8 -0
- package/dist/frontend/base/index.d.ts.map +1 -0
- package/dist/frontend/components/InitializationError.d.ts +25 -0
- package/dist/frontend/components/InitializationError.d.ts.map +1 -0
- package/dist/frontend/components/InitializationLoading.d.ts +22 -0
- package/dist/frontend/components/InitializationLoading.d.ts.map +1 -0
- package/dist/frontend/components/index.d.ts +9 -0
- package/dist/frontend/components/index.d.ts.map +1 -0
- package/dist/frontend/example/index.d.ts +9 -0
- package/dist/frontend/example/index.d.ts.map +1 -0
- package/dist/frontend/featureFlags/index.d.ts +28 -7
- package/dist/frontend/featureFlags/index.d.ts.map +1 -1
- package/dist/frontend/index.d.ts +4 -0
- package/dist/frontend/index.d.ts.map +1 -1
- package/dist/frontend/providers/ApiProvider.d.ts +2 -2
- package/dist/frontend/providers/ApiProvider.d.ts.map +1 -1
- package/dist/frontend/providers/PlyazProvider.d.ts +305 -0
- package/dist/frontend/providers/PlyazProvider.d.ts.map +1 -0
- package/dist/frontend/providers/index.d.ts +1 -0
- package/dist/frontend/providers/index.d.ts.map +1 -1
- package/dist/frontend/store/feature-flags.d.ts +63 -0
- package/dist/frontend/store/feature-flags.d.ts.map +1 -0
- package/dist/frontend/store/index.d.ts +14 -0
- package/dist/frontend/store/index.d.ts.map +1 -0
- package/dist/frontend/store/integrations.d.ts +36 -0
- package/dist/frontend/store/integrations.d.ts.map +1 -0
- package/dist/frontend/store/service-accessors.d.ts +78 -0
- package/dist/frontend/store/service-accessors.d.ts.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15450 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +13678 -4697
- package/dist/index.mjs.map +1 -1
- package/dist/init/CoreInitializer.d.ts +582 -0
- package/dist/init/CoreInitializer.d.ts.map +1 -0
- package/dist/init/ServiceRegistry.d.ts +256 -0
- package/dist/init/ServiceRegistry.d.ts.map +1 -0
- package/dist/init/index.d.ts +14 -0
- package/dist/init/index.d.ts.map +1 -0
- package/dist/init/nestjs/CoreModule.d.ts +63 -0
- package/dist/init/nestjs/CoreModule.d.ts.map +1 -0
- package/dist/init/nestjs/index.d.ts +5 -0
- package/dist/init/nestjs/index.d.ts.map +1 -0
- package/dist/init/nestjs/index.js +9059 -0
- package/dist/init/nestjs/index.js.map +1 -0
- package/dist/init/nestjs/index.mjs +9055 -0
- package/dist/init/nestjs/index.mjs.map +1 -0
- package/dist/init/react.d.ts +33 -0
- package/dist/init/react.d.ts.map +1 -0
- package/dist/models/example/ExampleRepository.d.ts +124 -0
- package/dist/models/example/ExampleRepository.d.ts.map +1 -0
- package/dist/models/example/index.d.ts +7 -0
- package/dist/models/example/index.d.ts.map +1 -0
- package/dist/{backend/featureFlags/database/repository.d.ts → models/featureFlags/FeatureFlagRepository.d.ts} +47 -5
- package/dist/models/featureFlags/FeatureFlagRepository.d.ts.map +1 -0
- package/dist/models/featureFlags/index.d.ts +7 -0
- package/dist/models/featureFlags/index.d.ts.map +1 -0
- package/dist/models/index.d.ts +9 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/services/ApiClientService.d.ts +92 -4
- package/dist/services/ApiClientService.d.ts.map +1 -1
- package/dist/services/CacheService.d.ts +176 -0
- package/dist/services/CacheService.d.ts.map +1 -0
- package/dist/services/DbService.d.ts +391 -0
- package/dist/services/DbService.d.ts.map +1 -0
- package/dist/services/NotificationService.d.ts +151 -0
- package/dist/services/NotificationService.d.ts.map +1 -0
- package/dist/services/StorageService.d.ts +144 -0
- package/dist/services/StorageService.d.ts.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/utils/common/id.d.ts +83 -0
- package/dist/utils/common/id.d.ts.map +1 -0
- package/dist/utils/common/index.d.ts +2 -0
- package/dist/utils/common/index.d.ts.map +1 -1
- package/dist/utils/common/object.d.ts +70 -0
- package/dist/utils/common/object.d.ts.map +1 -0
- package/dist/utils/featureFlags/conditions.d.ts.map +1 -1
- package/dist/utils/featureFlags/context.d.ts +0 -1
- package/dist/utils/featureFlags/context.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/mapperUtils.d.ts +38 -0
- package/dist/utils/mapperUtils.d.ts.map +1 -0
- package/dist/utils/runtime.d.ts +15 -0
- package/dist/utils/runtime.d.ts.map +1 -0
- package/dist/version.d.ts +24 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/web_app/auth/add_user.d.ts +2 -2
- package/dist/web_app/auth/add_user.d.ts.map +1 -1
- package/dist/web_app/auth/update_user.d.ts +1 -1
- package/dist/web_app/auth/update_user.d.ts.map +1 -1
- package/package.json +89 -15
- package/dist/backend/featureFlags/database/connection.d.ts +0 -321
- package/dist/backend/featureFlags/database/connection.d.ts.map +0 -1
- package/dist/backend/featureFlags/database/repository.d.ts.map +0 -1
- package/dist/backend/featureFlags/feature-flag.repository.d.ts +0 -85
- package/dist/backend/featureFlags/feature-flag.repository.d.ts.map +0 -1
- package/dist/backend/featureFlags/feature-flag.service.d.ts +0 -264
- package/dist/backend/featureFlags/feature-flag.service.d.ts.map +0 -1
- package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts +0 -103
- package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts.map +0 -1
- package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts +0 -35
- package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts.map +0 -1
- package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts +0 -55
- package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts.map +0 -1
- package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts +0 -57
- package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts.map +0 -1
- package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts +0 -99
- package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts.map +0 -1
- package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts +0 -31
- package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts.map +0 -1
- package/dist/frontend/featureFlags/providers/types.d.ts +0 -21
- package/dist/frontend/featureFlags/providers/types.d.ts.map +0 -1
- package/dist/index.cjs +0 -6435
- package/dist/index.cjs.map +0 -1
- package/dist/utils/db/databaseService.d.ts +0 -6
- package/dist/utils/db/databaseService.d.ts.map +0 -1
- package/dist/utils/db/index.d.ts +0 -2
- package/dist/utils/db/index.d.ts.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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"}
|