@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.
- 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 +89 -0
- package/dist/backend/featureFlags/config/feature-flag.config.d.ts.map +1 -0
- package/dist/backend/featureFlags/config/validation.d.ts +181 -0
- package/dist/backend/featureFlags/config/validation.d.ts.map +1 -0
- package/dist/backend/featureFlags/decorators/feature-disabled.decorator.d.ts +6 -0
- package/dist/backend/featureFlags/decorators/feature-disabled.decorator.d.ts.map +1 -0
- package/dist/backend/featureFlags/decorators/feature-enabled.decorator.d.ts +8 -0
- package/dist/backend/featureFlags/decorators/feature-enabled.decorator.d.ts.map +1 -0
- package/dist/backend/featureFlags/decorators/feature-flag.decorator.d.ts +11 -0
- package/dist/backend/featureFlags/decorators/feature-flag.decorator.d.ts.map +1 -0
- package/dist/backend/featureFlags/feature-flag.controller.d.ts +14 -56
- package/dist/backend/featureFlags/feature-flag.controller.d.ts.map +1 -1
- package/dist/backend/featureFlags/feature-flag.module.d.ts +36 -44
- package/dist/backend/featureFlags/feature-flag.module.d.ts.map +1 -1
- package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts +33 -0
- package/dist/backend/featureFlags/guards/feature-flag.guard.d.ts.map +1 -0
- package/dist/backend/featureFlags/index.d.ts +14 -41
- package/dist/backend/featureFlags/index.d.ts.map +1 -1
- package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts +16 -0
- package/dist/backend/featureFlags/interceptors/error-handling-interceptor.d.ts.map +1 -0
- package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts +18 -0
- package/dist/backend/featureFlags/interceptors/feature-flag-logging-interceptor.d.ts.map +1 -0
- package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts +162 -0
- package/dist/backend/featureFlags/middleware/feature-flag-middleware.d.ts.map +1 -0
- 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/feature/caching.d.ts +16 -0
- package/dist/base/cache/feature/caching.d.ts.map +1 -0
- package/dist/base/cache/index.d.ts +2 -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 +59 -52
- 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 +5 -0
- package/dist/frontend/index.d.ts.map +1 -1
- package/dist/frontend/providers/ApiProvider.d.ts +41 -0
- package/dist/frontend/providers/ApiProvider.d.ts.map +1 -0
- 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 +8 -0
- package/dist/frontend/providers/index.d.ts.map +1 -0
- 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 +6 -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 +13461 -2440
- 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/models/featureFlags/FeatureFlagRepository.d.ts +560 -0
- 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 +178 -0
- package/dist/services/ApiClientService.d.ts.map +1 -0
- 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 +12 -0
- package/dist/services/index.d.ts.map +1 -0
- 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 +3 -1
- 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/common/validation.d.ts +20 -0
- package/dist/utils/common/validation.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 +3 -0
- package/dist/web_app/auth/add_user.d.ts.map +1 -0
- package/dist/web_app/auth/update_user.d.ts +2 -0
- package/dist/web_app/auth/update_user.d.ts.map +1 -0
- package/package.json +102 -15
- 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 -123
- 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 -4383
- package/dist/index.cjs.map +0 -1
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Registry - Frontend Service Auto-Initialization
|
|
3
|
+
*
|
|
4
|
+
* Provides a generic, scalable pattern for initializing domain services.
|
|
5
|
+
* Services implement the InitializableDomainService interface and are
|
|
6
|
+
* initialized automatically without hardcoded switch statements.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { ServiceRegistry } from '@plyaz/core';
|
|
11
|
+
* import { FeatureFlagDomainService } from '@plyaz/core/frontend';
|
|
12
|
+
* import { ExampleDomainService } from '@plyaz/core/domain';
|
|
13
|
+
*
|
|
14
|
+
* // Initialize services
|
|
15
|
+
* await ServiceRegistry.initialize({
|
|
16
|
+
* apiClient: { baseURL: '/api' },
|
|
17
|
+
* services: [
|
|
18
|
+
* { service: FeatureFlagDomainService, config: { enabled: true } },
|
|
19
|
+
* { service: ExampleDomainService, config: { enabled: true, useRealApi: false } },
|
|
20
|
+
* ],
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Access services by key
|
|
24
|
+
* const flags = ServiceRegistry.get('featureFlags');
|
|
25
|
+
* const isEnabled = await flags.isEnabled('my-flag');
|
|
26
|
+
*
|
|
27
|
+
* // Or get with type safety
|
|
28
|
+
* const example = ServiceRegistry.get<ExampleDomainService>('example');
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
import type { CoreDomainServiceInstance, CoreServiceEntry, CoreServiceInitConfig, CoreServiceRegistryConfig } from '@plyaz/types/core';
|
|
32
|
+
import type { ObservabilityAdapter } from '@plyaz/types/observability';
|
|
33
|
+
/**
|
|
34
|
+
* Service Registry
|
|
35
|
+
*
|
|
36
|
+
* Manages frontend domain service instances with auto-initialization.
|
|
37
|
+
* Supports immediate, lazy, and conditional initialization.
|
|
38
|
+
*
|
|
39
|
+
* Key features:
|
|
40
|
+
* - Generic: No switch statements, services implement common interface
|
|
41
|
+
* - Scalable: Add new services without modifying registry code
|
|
42
|
+
* - Flexible: Immediate, lazy, or conditional initialization
|
|
43
|
+
* - Type-safe: Get services with proper typing
|
|
44
|
+
*/
|
|
45
|
+
export declare class ServiceRegistry {
|
|
46
|
+
private static readonly logger;
|
|
47
|
+
/** Initialized singleton service instances by key */
|
|
48
|
+
private static _services;
|
|
49
|
+
/** Pending services for lazy initialization */
|
|
50
|
+
private static _pending;
|
|
51
|
+
/** Service metadata (config, singleton flag) by key */
|
|
52
|
+
private static _metadata;
|
|
53
|
+
/** Global environment */
|
|
54
|
+
private static _environment;
|
|
55
|
+
/** Runtime environment (node, browser, bun, etc.) */
|
|
56
|
+
private static _runtime;
|
|
57
|
+
/** Global API client options */
|
|
58
|
+
private static _apiClientOptions;
|
|
59
|
+
/** Global database config */
|
|
60
|
+
private static _dbConfig;
|
|
61
|
+
/** Global cache config */
|
|
62
|
+
private static _cacheConfig;
|
|
63
|
+
/** Global observability config */
|
|
64
|
+
private static _observabilityConfig;
|
|
65
|
+
/** Global observability adapter instance */
|
|
66
|
+
private static _observabilityInstance;
|
|
67
|
+
/** Global storage config */
|
|
68
|
+
private static _storageConfig;
|
|
69
|
+
/** Global notifications config */
|
|
70
|
+
private static _notificationsConfig;
|
|
71
|
+
/** Store registry interface from Core (type-safe) */
|
|
72
|
+
private static _storeRegistry;
|
|
73
|
+
/** Initialization promises (for concurrent access during lazy init) */
|
|
74
|
+
private static _initPromises;
|
|
75
|
+
/**
|
|
76
|
+
* Initialize the service registry with the provided configuration.
|
|
77
|
+
*
|
|
78
|
+
* @param config - Registry configuration with services to initialize
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* await ServiceRegistry.initialize({
|
|
83
|
+
* apiClient: { baseURL: '/api' },
|
|
84
|
+
* services: [
|
|
85
|
+
* { service: FeatureFlagDomainService, config: { enabled: true } },
|
|
86
|
+
* { service: ExampleDomainService, config: { enabled: true, initWhen: 'lazy' } },
|
|
87
|
+
* ],
|
|
88
|
+
* });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
static initialize(config: CoreServiceRegistryConfig): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Get a singleton service instance by key (synchronous).
|
|
94
|
+
* Throws if the service is not initialized or is non-singleton.
|
|
95
|
+
*
|
|
96
|
+
* @param key - Service key (e.g., 'featureFlags', 'example')
|
|
97
|
+
* @returns The service instance
|
|
98
|
+
* @throws CorePackageError if service not found, not initialized, or non-singleton
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const flags = ServiceRegistry.get<FeatureFlagDomainService>('featureFlags');
|
|
103
|
+
* const isEnabled = await flags.isEnabled('my-flag');
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
static get<T extends CoreDomainServiceInstance = CoreDomainServiceInstance>(key: string): T;
|
|
107
|
+
/**
|
|
108
|
+
* Create a new instance of a service.
|
|
109
|
+
* Use this for non-singleton services or when you need a fresh instance.
|
|
110
|
+
*
|
|
111
|
+
* Note: The caller is responsible for disposing the returned instance.
|
|
112
|
+
*
|
|
113
|
+
* @param key - Service key
|
|
114
|
+
* @param configOverrides - Optional config overrides for this instance
|
|
115
|
+
* @returns Promise resolving to a new service instance
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* // Non-singleton service - always creates new instance
|
|
120
|
+
* const instance1 = await ServiceRegistry.create<WorkerService>('worker');
|
|
121
|
+
* const instance2 = await ServiceRegistry.create<WorkerService>('worker');
|
|
122
|
+
* instance1 !== instance2; // true
|
|
123
|
+
*
|
|
124
|
+
* // With config overrides
|
|
125
|
+
* const customWorker = await ServiceRegistry.create<WorkerService>('worker', {
|
|
126
|
+
* apiClient: { baseURL: 'https://custom-api.com' },
|
|
127
|
+
* });
|
|
128
|
+
*
|
|
129
|
+
* // Don't forget to dispose when done!
|
|
130
|
+
* instance1.dispose();
|
|
131
|
+
* instance2.dispose();
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
static create<T extends CoreDomainServiceInstance = CoreDomainServiceInstance>(key: string, configOverrides?: Partial<CoreServiceInitConfig>): Promise<T>;
|
|
135
|
+
/**
|
|
136
|
+
* Get a service instance by key with async initialization if needed.
|
|
137
|
+
* Use this for lazy-initialized services.
|
|
138
|
+
*
|
|
139
|
+
* @param key - Service key
|
|
140
|
+
* @returns Promise resolving to the service instance
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```typescript
|
|
144
|
+
* const example = await ServiceRegistry.getAsync<ExampleDomainService>('example');
|
|
145
|
+
* const entities = await example.getAll();
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
static getAsync<T extends CoreDomainServiceInstance = CoreDomainServiceInstance>(key: string): Promise<T>;
|
|
149
|
+
/**
|
|
150
|
+
* Check if a service is registered (either initialized or pending).
|
|
151
|
+
*
|
|
152
|
+
* @param key - Service key
|
|
153
|
+
*/
|
|
154
|
+
static has(key: string): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Check if a service is initialized and ready.
|
|
157
|
+
*
|
|
158
|
+
* @param key - Service key
|
|
159
|
+
*/
|
|
160
|
+
static isInitialized(key: string): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Get all initialized service keys.
|
|
163
|
+
*/
|
|
164
|
+
static getInitializedKeys(): string[];
|
|
165
|
+
/**
|
|
166
|
+
* Get all pending (lazy) service keys.
|
|
167
|
+
*/
|
|
168
|
+
static getPendingKeys(): string[];
|
|
169
|
+
/** Build API client options and instance for service */
|
|
170
|
+
private static buildApiClientOptions;
|
|
171
|
+
/** Build DB config and instance for service with runtime validation */
|
|
172
|
+
private static buildDbConfig;
|
|
173
|
+
/** Build cache config and instance for service with runtime validation */
|
|
174
|
+
private static buildCacheConfig;
|
|
175
|
+
/** Build observability config and instance for service */
|
|
176
|
+
private static buildObservabilityConfig;
|
|
177
|
+
/** Build storage config and instance for service with runtime validation (backend-only) */
|
|
178
|
+
private static buildStorageConfig;
|
|
179
|
+
/** Build notifications config and instance for service with runtime validation (backend-only) */
|
|
180
|
+
private static buildNotificationsConfig;
|
|
181
|
+
/**
|
|
182
|
+
* Create a dedicated ObservabilityService instance for a service.
|
|
183
|
+
* Uses the same adapter pattern as global observability but with service-specific config.
|
|
184
|
+
*/
|
|
185
|
+
private static createDedicatedObservability;
|
|
186
|
+
/**
|
|
187
|
+
* Set the global observability adapter instance.
|
|
188
|
+
* Called by Core.initialize() after creating the adapter.
|
|
189
|
+
*/
|
|
190
|
+
static setObservabilityInstance(instance: ObservabilityAdapter): void;
|
|
191
|
+
/**
|
|
192
|
+
* Get the global observability adapter instance.
|
|
193
|
+
*/
|
|
194
|
+
static getObservabilityInstance(): ObservabilityAdapter | null;
|
|
195
|
+
/**
|
|
196
|
+
* Initialize a single service from an entry.
|
|
197
|
+
* Uses the service class's static create() method.
|
|
198
|
+
* Merges per-service config with global config.
|
|
199
|
+
*/
|
|
200
|
+
private static initializeService;
|
|
201
|
+
/** Build stores for service injection */
|
|
202
|
+
private static buildStoresForService;
|
|
203
|
+
/** Perform the actual service initialization */
|
|
204
|
+
private static doInitializeService;
|
|
205
|
+
/**
|
|
206
|
+
* Dispose a specific service by key.
|
|
207
|
+
*
|
|
208
|
+
* @param key - Service key to dispose
|
|
209
|
+
*/
|
|
210
|
+
static dispose(key: string): void;
|
|
211
|
+
/**
|
|
212
|
+
* Dispose all services and clear the registry.
|
|
213
|
+
*/
|
|
214
|
+
static disposeAll(): void;
|
|
215
|
+
/**
|
|
216
|
+
* Check if a service is configured as singleton.
|
|
217
|
+
*
|
|
218
|
+
* @param key - Service key
|
|
219
|
+
* @returns true if singleton (default), false if non-singleton
|
|
220
|
+
*/
|
|
221
|
+
static isSingleton(key: string): boolean;
|
|
222
|
+
/**
|
|
223
|
+
* Get all non-singleton service keys.
|
|
224
|
+
* These services must be created via `create()` method.
|
|
225
|
+
*/
|
|
226
|
+
static getNonSingletonKeys(): string[];
|
|
227
|
+
/**
|
|
228
|
+
* Register a new service dynamically after initialization.
|
|
229
|
+
*
|
|
230
|
+
* @param entry - Service entry to register
|
|
231
|
+
* @param initNow - Whether to initialize immediately (default: true)
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```typescript
|
|
235
|
+
* // Register and initialize immediately
|
|
236
|
+
* await ServiceRegistry.register({
|
|
237
|
+
* service: NewDomainService,
|
|
238
|
+
* config: { enabled: true },
|
|
239
|
+
* });
|
|
240
|
+
*
|
|
241
|
+
* // Register for lazy initialization
|
|
242
|
+
* ServiceRegistry.register({
|
|
243
|
+
* service: LazyService,
|
|
244
|
+
* config: { enabled: true, initWhen: 'lazy' },
|
|
245
|
+
* }, false);
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
static register(entry: CoreServiceEntry, initNow?: boolean): Promise<void>;
|
|
249
|
+
/**
|
|
250
|
+
* Unregister a service (dispose if initialized).
|
|
251
|
+
*
|
|
252
|
+
* @param key - Service key to unregister
|
|
253
|
+
*/
|
|
254
|
+
static unregister(key: string): void;
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=ServiceRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceRegistry.d.ts","sourceRoot":"","sources":["../../src/init/ServiceRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core initialization exports
|
|
3
|
+
*
|
|
4
|
+
* Import runtime types directly from '@plyaz/types/core':
|
|
5
|
+
* - CoreRuntimeEnvironment, CoreRuntimeContext
|
|
6
|
+
* - BACKEND_RUNTIMES, FRONTEND_RUNTIMES, UNIVERSAL_RUNTIMES
|
|
7
|
+
*/
|
|
8
|
+
export { Core, DEFAULT_ENCRYPTION_FIELDS } from './CoreInitializer';
|
|
9
|
+
export type { CoreInitOptions, CoreServicesResult } from './CoreInitializer';
|
|
10
|
+
export type { CoreEnvVars, CoreFeatureFlagInitConfig, CoreErrorHandlerInitConfig, } from '@plyaz/types/core';
|
|
11
|
+
export { ServiceRegistry } from './ServiceRegistry';
|
|
12
|
+
export { DbService } from '../services/DbService';
|
|
13
|
+
export { ApiClientService } from '../services/ApiClientService';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG7E,YAAY,EACV,WAAW,EACX,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NestJS Module for @plyaz/core
|
|
3
|
+
*
|
|
4
|
+
* Provides dependency injection integration for NestJS applications.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // app.module.ts
|
|
9
|
+
* import { CoreModule } from '@plyaz/core/nestjs';
|
|
10
|
+
*
|
|
11
|
+
* @Module({
|
|
12
|
+
* imports: [
|
|
13
|
+
* CoreModule.forRoot({
|
|
14
|
+
* envPath: '.env',
|
|
15
|
+
* db: { adapter: 'sql' },
|
|
16
|
+
* }),
|
|
17
|
+
* ],
|
|
18
|
+
* })
|
|
19
|
+
* export class AppModule {}
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example Async configuration
|
|
23
|
+
* ```typescript
|
|
24
|
+
* CoreModule.forRootAsync({
|
|
25
|
+
* imports: [ConfigModule],
|
|
26
|
+
* useFactory: (config: ConfigService) => ({
|
|
27
|
+
* db: {
|
|
28
|
+
* adapter: 'sql',
|
|
29
|
+
* sql: { connectionString: config.get('DATABASE_URL') },
|
|
30
|
+
* },
|
|
31
|
+
* }),
|
|
32
|
+
* inject: [ConfigService],
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
import type { DynamicModule } from '@nestjs/common';
|
|
37
|
+
import { type CoreInitOptions } from '../CoreInitializer';
|
|
38
|
+
import type { CoreNestJsCoreModuleAsyncOptions } from '@plyaz/types/core';
|
|
39
|
+
/**
|
|
40
|
+
* Injection tokens for Core services
|
|
41
|
+
*/
|
|
42
|
+
export declare const CORE_OPTIONS: unique symbol;
|
|
43
|
+
export declare const DB_SERVICE: unique symbol;
|
|
44
|
+
/**
|
|
45
|
+
* Async configuration options for CoreModule
|
|
46
|
+
* Uses CoreInitOptions for type safety with Core.initialize()
|
|
47
|
+
*/
|
|
48
|
+
type CoreModuleAsyncOptions = CoreNestJsCoreModuleAsyncOptions;
|
|
49
|
+
/**
|
|
50
|
+
* CoreModule - NestJS DI module for @plyaz/core
|
|
51
|
+
*/
|
|
52
|
+
export declare class CoreModule {
|
|
53
|
+
/**
|
|
54
|
+
* Register CoreModule with static configuration
|
|
55
|
+
*/
|
|
56
|
+
static forRoot(options?: CoreInitOptions): DynamicModule;
|
|
57
|
+
/**
|
|
58
|
+
* Register CoreModule with async configuration
|
|
59
|
+
*/
|
|
60
|
+
static forRootAsync(options: CoreModuleAsyncOptions): DynamicModule;
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=CoreModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoreModule.d.ts","sourceRoot":"","sources":["../../../src/init/nestjs/CoreModule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAQ,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,eAAO,MAAM,UAAU,eAAuB,CAAC;AAE/C;;;GAGG;AACH,KAAK,sBAAsB,GAAG,gCAAgC,CAAC;AAE/D;;GAEG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,eAAoB,GAAG,aAAa;IA8B5D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa;CAiCpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/init/nestjs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|