@acontplus/ng-config 1.0.4 → 1.0.6

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/README.md CHANGED
@@ -11,50 +11,225 @@ npm install @acontplus/ng-config
11
11
 
12
12
  ## Features
13
13
 
14
- - **Environment Configuration**: Type-safe environment token for dependency
15
- injection
16
- - **Authentication Constants**: Predefined constants for authentication settings
17
- - **App Configuration Service**: Service for managing application-wide
18
- configuration
19
- - **Angular Integration**: Seamless integration with Angular's dependency
20
- injection system
21
- - **TypeScript Support**: Full type safety with comprehensive TypeScript
22
- definitions
14
+ - **Environment Token**: Type-safe environment injection token
15
+ - **App Configuration Service**: Centralized application configuration
16
+ management
17
+ - **Authentication Constants**: Predefined API endpoint constants
18
+ - **Angular Integration**: Seamless dependency injection integration
19
+ - **TypeScript Support**: Full type safety with comprehensive definitions
23
20
 
24
- ## Usage
21
+ ## Quick Start
25
22
 
26
- ### Environment Configuration
23
+ ### 1. Provide Environment Configuration
27
24
 
28
25
  ```typescript
26
+ // main.ts or app.config.ts
27
+ import { bootstrapApplication } from '@angular/platform-browser';
29
28
  import { ENVIRONMENT } from '@acontplus/ng-config';
29
+ import { Environment } from '@acontplus/core';
30
+
31
+ const environment: Environment = {
32
+ isProduction: false,
33
+ apiBaseUrl: 'http://localhost:3000/api/',
34
+ tokenKey: 'access_token',
35
+ refreshTokenKey: 'refresh_token',
36
+ clientId: 'my-app',
37
+ loginRoute: 'login',
38
+ };
39
+
40
+ bootstrapApplication(AppComponent, {
41
+ providers: [
42
+ { provide: ENVIRONMENT, useValue: environment },
43
+ // other providers
44
+ ],
45
+ });
46
+ ```
30
47
 
31
- @Component({...})
32
- export class MyComponent {
33
- constructor(@Inject(ENVIRONMENT) private environment: Environment) {
34
- console.log(this.environment.apiUrl);
48
+ ### 2. Use App Configuration Service
49
+
50
+ ```typescript
51
+ import { AppConfigService } from '@acontplus/ng-config';
52
+
53
+ @Component({
54
+ selector: 'app-dashboard',
55
+ template: `
56
+ <div>API URL: {{ config.apiUrl }}</div>
57
+ <div>Production: {{ config.production }}</div>
58
+ <div>Logging: {{ config.enableLogging }}</div>
59
+ `,
60
+ })
61
+ export class DashboardComponent {
62
+ config = inject(AppConfigService);
63
+ }
64
+ ```
65
+
66
+ ## API Reference
67
+
68
+ ### ENVIRONMENT Token
69
+
70
+ Injection token for environment configuration:
71
+
72
+ ```typescript
73
+ import { ENVIRONMENT } from '@acontplus/ng-config';
74
+ import { Environment } from '@acontplus/core';
75
+
76
+ @Injectable()
77
+ export class ApiService {
78
+ private environment = inject(ENVIRONMENT);
79
+
80
+ getApiUrl(): string {
81
+ return this.environment.apiBaseUrl;
82
+ }
83
+
84
+ isProduction(): boolean {
85
+ return this.environment.isProduction;
35
86
  }
36
87
  }
37
88
  ```
38
89
 
39
- ### App Configuration Service
90
+ ### AppConfigService
91
+
92
+ Centralized configuration service:
40
93
 
41
94
  ```typescript
42
- import { AppConfigService } from '@acontplus/ng-config';
95
+ interface IAppConfig {
96
+ apiUrl: string;
97
+ apiTimeout: number;
98
+ enableLogging: boolean;
99
+ production: boolean;
100
+ }
43
101
 
44
- @Component({...})
45
- export class MyComponent {
46
- constructor(private appConfig: AppConfigService) {
47
- const config = this.appConfig.getConfig();
102
+ @Injectable({ providedIn: 'root' })
103
+ export class AppConfigService implements IAppConfig {
104
+ get apiUrl(): string;
105
+ get apiTimeout(): number;
106
+ get enableLogging(): boolean;
107
+ get production(): boolean;
108
+ }
109
+ ```
110
+
111
+ **Usage Examples:**
112
+
113
+ ```typescript
114
+ // HTTP Service Configuration
115
+ @Injectable()
116
+ export class HttpService {
117
+ private config = inject(AppConfigService);
118
+
119
+ private httpOptions = {
120
+ timeout: this.config.apiTimeout,
121
+ baseURL: this.config.apiUrl
122
+ };
123
+ }
124
+
125
+ // Conditional Logging
126
+ @Injectable()
127
+ export class LoggerService {
128
+ private config = inject(AppConfigService);
129
+
130
+ log(message: string): void {
131
+ if (this.config.enableLogging) {
132
+ console.log(message);
133
+ }
48
134
  }
49
135
  }
136
+
137
+ // Environment-based Features
138
+ @Component({...})
139
+ export class DebugPanelComponent {
140
+ private config = inject(AppConfigService);
141
+
142
+ showDebugInfo = !this.config.production;
143
+ }
50
144
  ```
51
145
 
52
- ### Authentication Constants
146
+ ### AUTH_API Constants
147
+
148
+ Predefined authentication API endpoints:
53
149
 
54
150
  ```typescript
55
151
  import { AUTH_API } from '@acontplus/ng-config';
56
152
 
57
- const authEndpoint = AUTH_API.AUTH;
153
+ @Injectable()
154
+ export class AuthService {
155
+ private baseUrl = inject(AppConfigService).apiUrl;
156
+
157
+ login(credentials: LoginCredentials): Observable<AuthResponse> {
158
+ return this.http.post<AuthResponse>(
159
+ `${this.baseUrl}${AUTH_API.AUTH}login`,
160
+ credentials,
161
+ );
162
+ }
163
+
164
+ logout(): Observable<void> {
165
+ return this.http.post<void>(`${this.baseUrl}${AUTH_API.AUTH}logout`, {});
166
+ }
167
+ }
168
+ ```
169
+
170
+ ## Configuration Patterns
171
+
172
+ ### Multi-Environment Setup
173
+
174
+ ```typescript
175
+ // environments/environment.ts
176
+ export const environment: Environment = {
177
+ isProduction: false,
178
+ apiBaseUrl: 'http://localhost:3000/api/',
179
+ tokenKey: 'dev_token',
180
+ refreshTokenKey: 'dev_refresh_token',
181
+ clientId: 'dev-app',
182
+ loginRoute: 'auth',
183
+ };
184
+
185
+ // environments/environment.prod.ts
186
+ export const environment: Environment = {
187
+ isProduction: true,
188
+ apiBaseUrl: 'https://api.myapp.com/',
189
+ tokenKey: 'prod_token',
190
+ refreshTokenKey: 'prod_refresh_token',
191
+ clientId: 'prod-app',
192
+ loginRoute: 'login',
193
+ };
194
+ ```
195
+
196
+ ### Runtime Configuration
197
+
198
+ ```typescript
199
+ // app.config.ts
200
+ export function createAppConfig(): ApplicationConfig {
201
+ return {
202
+ providers: [
203
+ {
204
+ provide: ENVIRONMENT,
205
+ useFactory: () => {
206
+ // Load from external config or detect environment
207
+ const isDev = window.location.hostname === 'localhost';
208
+ return isDev ? devEnvironment : prodEnvironment;
209
+ },
210
+ },
211
+ ],
212
+ };
213
+ }
214
+ ```
215
+
216
+ ### Feature Flags Integration
217
+
218
+ ```typescript
219
+ @Injectable()
220
+ export class FeatureService {
221
+ private config = inject(AppConfigService);
222
+
223
+ isFeatureEnabled(feature: string): boolean {
224
+ // Use configuration to enable/disable features
225
+ return !this.config.production || this.isFeatureInProd(feature);
226
+ }
227
+
228
+ private isFeatureInProd(feature: string): boolean {
229
+ // Production feature logic
230
+ return ['core-features', 'stable-features'].includes(feature);
231
+ }
232
+ }
58
233
  ```
59
234
 
60
235
  ## Running unit tests
@@ -1 +1 @@
1
- {"version":3,"file":"acontplus-ng-config.mjs","sources":["../tmp-esm2022/lib/constants/auth.constants.js","../tmp-esm2022/lib/constants/index.js","../tmp-esm2022/lib/environment.token.js","../tmp-esm2022/lib/services/app-config.service.js","../tmp-esm2022/acontplus-ng-config.js"],"sourcesContent":["// src/lib/constants/auth.constants.ts\nexport const AUTH_API = {\n AUTH: 'auth/',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvYXV0aC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixJQUFJLEVBQUUsT0FBTztDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2NvbnN0YW50cy9hdXRoLmNvbnN0YW50cy50c1xuZXhwb3J0IGNvbnN0IEFVVEhfQVBJID0ge1xuICBBVVRIOiAnYXV0aC8nLFxufSBhcyBjb25zdDtcbiJdfQ==","// src/lib/constants/index.ts\nexport * from './auth.constants';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCO0FBQzdCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2NvbnN0YW50cy9pbmRleC50c1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLmNvbnN0YW50cyc7XG4iXX0=","import { InjectionToken } from '@angular/core';\n/**\n * @const ENVIRONMENT\n * Injection token for the environment interface to be provided by the applications.\n */\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT', {\n factory: () => ({\n isProduction: false,\n apiBaseUrl: 'http://localhost:4200/api/',\n tokenKey: 'access_token',\n refreshTokenKey: 'refresh_token',\n clientId: 'angular-app',\n loginRoute: 'auth',\n }),\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9lbnZpcm9ubWVudC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBYyxhQUFhLEVBQUU7SUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsNEJBQTRCO1FBQ3hDLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLGVBQWUsRUFBRSxlQUFlO1FBQ2hDLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFVBQVUsRUFBRSxNQUFNO0tBQ25CLENBQUM7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuXG4vKipcbiAqIEBjb25zdCBFTlZJUk9OTUVOVFxuICogSW5qZWN0aW9uIHRva2VuIGZvciB0aGUgZW52aXJvbm1lbnQgaW50ZXJmYWNlIHRvIGJlIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnZpcm9ubWVudD4oJ0VOVklST05NRU5UJywge1xuICBmYWN0b3J5OiAoKSA9PiAoe1xuICAgIGlzUHJvZHVjdGlvbjogZmFsc2UsXG4gICAgYXBpQmFzZVVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMC9hcGkvJyxcbiAgICB0b2tlbktleTogJ2FjY2Vzc190b2tlbicsXG4gICAgcmVmcmVzaFRva2VuS2V5OiAncmVmcmVzaF90b2tlbicsXG4gICAgY2xpZW50SWQ6ICdhbmd1bGFyLWFwcCcsXG4gICAgbG9naW5Sb3V0ZTogJ2F1dGgnLFxuICB9KSxcbn0pO1xuIl19","import { Injectable, inject } from '@angular/core';\nimport { ENVIRONMENT } from '../environment.token';\nimport * as i0 from \"@angular/core\";\nexport class AppConfigService {\n environment = inject(ENVIRONMENT);\n defaultTimeout = 30000; // Default timeout\n get apiUrl() {\n return this.environment.apiBaseUrl;\n }\n get apiTimeout() {\n return this.defaultTimeout;\n }\n get enableLogging() {\n return !this.environment.isProduction;\n }\n get production() {\n return this.environment.isProduction;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29uZmlnL3NyYy9saWIvc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFVbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxrQkFBa0I7SUFFM0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDdkMsQ0FBQzt1R0FsQlUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi9lbnZpcm9ubWVudC50b2tlbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcENvbmZpZyB7XG4gIGFwaVVybDogc3RyaW5nO1xuICBhcGlUaW1lb3V0OiBudW1iZXI7XG4gIGVuYWJsZUxvZ2dpbmc6IGJvb2xlYW47XG4gIHByb2R1Y3Rpb246IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXBwQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElBcHBDb25maWcge1xuICBwcml2YXRlIGVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VGltZW91dCA9IDMwMDAwOyAvLyBEZWZhdWx0IHRpbWVvdXRcblxuICBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBpQmFzZVVybDtcbiAgfVxuXG4gIGdldCBhcGlUaW1lb3V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRpbWVvdXQ7XG4gIH1cblxuICBnZXQgZW5hYmxlTG9nZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW52aXJvbm1lbnQuaXNQcm9kdWN0aW9uO1xuICB9XG5cbiAgZ2V0IHByb2R1Y3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaXNQcm9kdWN0aW9uO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbmZpZy9zcmMvYWNvbnRwbHVzLW5nLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;AAAA;AACY,MAAC,QAAQ,GAAG;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB;;ACHA;;ACCA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;AAC7D,IAAI,OAAO,EAAE,OAAO;AACpB,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,UAAU,EAAE,4BAA4B;AAChD,QAAQ,QAAQ,EAAE,cAAc;AAChC,QAAQ,eAAe,EAAE,eAAe;AACxC,QAAQ,QAAQ,EAAE,aAAa;AAC/B,QAAQ,UAAU,EAAE,MAAM;AAC1B,KAAK,CAAC;AACN,CAAC;;ACXM,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU;AAC1C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY;AAC7C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY;AAC5C;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC3K,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAClJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACxBb;AACA;AACA;;;;"}
1
+ {"version":3,"file":"acontplus-ng-config.mjs","sources":["../tmp-esm2022/lib/constants/auth.constants.js","../tmp-esm2022/lib/constants/index.js","../tmp-esm2022/lib/environment.token.js","../tmp-esm2022/lib/services/app-config.service.js","../tmp-esm2022/acontplus-ng-config.js"],"sourcesContent":["// src/lib/constants/auth.constants.ts\nexport const AUTH_API = {\n AUTH: 'auth/',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvYXV0aC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixJQUFJLEVBQUUsT0FBTztDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2NvbnN0YW50cy9hdXRoLmNvbnN0YW50cy50c1xuZXhwb3J0IGNvbnN0IEFVVEhfQVBJID0ge1xuICBBVVRIOiAnYXV0aC8nLFxufSBhcyBjb25zdDtcbiJdfQ==","// src/lib/constants/index.ts\nexport * from './auth.constants';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCO0FBQzdCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2NvbnN0YW50cy9pbmRleC50c1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLmNvbnN0YW50cyc7XG4iXX0=","import { InjectionToken } from '@angular/core';\n/**\n * @const ENVIRONMENT\n * Injection token for the environment interface to be provided by the applications.\n */\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT', {\n factory: () => ({\n isProduction: false,\n apiBaseUrl: 'http://localhost:4200/api/',\n tokenKey: 'access_token',\n refreshTokenKey: 'refresh_token',\n clientId: 'angular-app',\n loginRoute: 'auth',\n }),\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9lbnZpcm9ubWVudC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBYyxhQUFhLEVBQUU7SUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixVQUFVLEVBQUUsNEJBQTRCO1FBQ3hDLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLGVBQWUsRUFBRSxlQUFlO1FBQ2hDLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFVBQVUsRUFBRSxNQUFNO0tBQ25CLENBQUM7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuXG4vKipcbiAqIEBjb25zdCBFTlZJUk9OTUVOVFxuICogSW5qZWN0aW9uIHRva2VuIGZvciB0aGUgZW52aXJvbm1lbnQgaW50ZXJmYWNlIHRvIGJlIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnZpcm9ubWVudD4oJ0VOVklST05NRU5UJywge1xuICBmYWN0b3J5OiAoKSA9PiAoe1xuICAgIGlzUHJvZHVjdGlvbjogZmFsc2UsXG4gICAgYXBpQmFzZVVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMC9hcGkvJyxcbiAgICB0b2tlbktleTogJ2FjY2Vzc190b2tlbicsXG4gICAgcmVmcmVzaFRva2VuS2V5OiAncmVmcmVzaF90b2tlbicsXG4gICAgY2xpZW50SWQ6ICdhbmd1bGFyLWFwcCcsXG4gICAgbG9naW5Sb3V0ZTogJ2F1dGgnLFxuICB9KSxcbn0pO1xuIl19","import { Injectable, inject } from '@angular/core';\nimport { ENVIRONMENT } from '../environment.token';\nimport * as i0 from \"@angular/core\";\nexport class AppConfigService {\n environment = inject(ENVIRONMENT);\n defaultTimeout = 30000; // Default timeout\n get apiUrl() {\n return this.environment.apiBaseUrl;\n }\n get apiTimeout() {\n return this.defaultTimeout;\n }\n get enableLogging() {\n return !this.environment.isProduction;\n }\n get production() {\n return this.environment.isProduction;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AppConfigService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctY29uZmlnL3NyYy9saWIvc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFVbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxrQkFBa0I7SUFFM0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDdkMsQ0FBQzt1R0FsQlUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi9lbnZpcm9ubWVudC50b2tlbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcENvbmZpZyB7XG4gIGFwaVVybDogc3RyaW5nO1xuICBhcGlUaW1lb3V0OiBudW1iZXI7XG4gIGVuYWJsZUxvZ2dpbmc6IGJvb2xlYW47XG4gIHByb2R1Y3Rpb246IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXBwQ29uZmlnU2VydmljZSBpbXBsZW1lbnRzIElBcHBDb25maWcge1xuICBwcml2YXRlIGVudmlyb25tZW50ID0gaW5qZWN0KEVOVklST05NRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VGltZW91dCA9IDMwMDAwOyAvLyBEZWZhdWx0IHRpbWVvdXRcblxuICBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBpQmFzZVVybDtcbiAgfVxuXG4gIGdldCBhcGlUaW1lb3V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRpbWVvdXQ7XG4gIH1cblxuICBnZXQgZW5hYmxlTG9nZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW52aXJvbm1lbnQuaXNQcm9kdWN0aW9uO1xuICB9XG5cbiAgZ2V0IHByb2R1Y3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaXNQcm9kdWN0aW9uO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbmZpZy9zcmMvYWNvbnRwbHVzLW5nLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;AAAA;AACY,MAAC,QAAQ,GAAG;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB;;ACHA;;ACCA;AACA;AACA;AACA;AACY,MAAC,WAAW,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;AAC7D,IAAI,OAAO,EAAE,OAAO;AACpB,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,UAAU,EAAE,4BAA4B;AAChD,QAAQ,QAAQ,EAAE,cAAc;AAChC,QAAQ,eAAe,EAAE,eAAe;AACxC,QAAQ,QAAQ,EAAE,aAAa;AAC/B,QAAQ,UAAU,EAAE,MAAM;AAC1B,KAAK,CAAC;AACN,CAAC;;ACXM,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU;AAC1C,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY;AAC7C,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY;AAC5C,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC3K,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAClJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACxBb;AACA;AACA;;;;"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acontplus/ng-config",
3
- "version": "1.0.4",
4
- "description": "Acontplus Angular Configuration library for managing application settings and environment configurations.",
3
+ "version": "1.0.6",
4
+ "description": "Angular configuration management library providing environment tokens, application settings, dependency injection patterns, and runtime configuration services for enterprise applications.",
5
5
  "peerDependencies": {
6
- "@acontplus/core": "^1.0.15",
6
+ "@acontplus/core": "^1.0.17",
7
7
  "@angular/common": "^20.3.2",
8
8
  "@angular/core": "^20.3.2"
9
9
  },
@@ -29,6 +29,10 @@
29
29
  "angular",
30
30
  "configuration",
31
31
  "environment",
32
+ "app-config",
33
+ "settings",
34
+ "tokens",
35
+ "dependency-injection",
32
36
  "typescript",
33
37
  "frontend",
34
38
  "library"