@acontplus/ng-config 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @acontplus/ng-config
2
2
 
3
- Angular configuration library for AcontPlus applications, providing environment
4
- configuration, authentication constants, and app configuration services.
3
+ Angular configuration library providing dependency injection tokens, repository
4
+ interfaces, and configuration constants for AcontPlus applications.
5
5
 
6
6
  ## Installation
7
7
 
@@ -11,52 +11,284 @@ 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
+ - **Injection Tokens**: Type-safe DI tokens for environment, core config, and
15
+ authentication
16
+ - **Repository Interfaces**: Base repository patterns and auth token repository
17
+ contracts
18
+ - **Configuration Constants**: Authentication and application configuration
19
+ constants
20
+ - **Base Repository**: Abstract base repository with common CRUD operations
21
+ - **TypeScript Support**: Full type safety with comprehensive interfaces
23
22
 
24
- ## Usage
23
+ ## Quick Start
25
24
 
26
- ### Environment Configuration
25
+ ### 1. Provide Environment Configuration
27
26
 
28
27
  ```typescript
28
+ // app.config.ts
29
+ import { ApplicationConfig } from '@angular/core';
29
30
  import { ENVIRONMENT } from '@acontplus/ng-config';
31
+ import { Environment } from '@acontplus/core';
32
+ import { environment } from './environments/environment';
30
33
 
31
- @Component({...})
32
- export class MyComponent {
33
- constructor(@Inject(ENVIRONMENT) private environment: Environment) {
34
- console.log(this.environment.apiUrl);
34
+ export const appConfig: ApplicationConfig = {
35
+ providers: [{ provide: ENVIRONMENT, useValue: environment }],
36
+ };
37
+ ```
38
+
39
+ ```typescript
40
+ // environments/environment.ts
41
+ import { Environment } from '@acontplus/core';
42
+
43
+ export const environment: Environment = {
44
+ isProduction: false,
45
+ apiBaseUrl: 'http://localhost:3000/api/',
46
+ tokenKey: 'access_token',
47
+ refreshTokenKey: 'refresh_token',
48
+ clientId: 'my-app',
49
+ loginRoute: 'login',
50
+ };
51
+ ```
52
+
53
+ ### 2. Inject and Use Environment
54
+
55
+ ```typescript
56
+ import { inject, Injectable } from '@angular/core';
57
+ import { ENVIRONMENT } from '@acontplus/ng-config';
58
+
59
+ @Injectable({ providedIn: 'root' })
60
+ export class ApiService {
61
+ private environment = inject(ENVIRONMENT);
62
+
63
+ getApiUrl(): string {
64
+ return this.environment.apiBaseUrl;
65
+ }
66
+
67
+ isProduction(): boolean {
68
+ return this.environment.isProduction;
69
+ }
70
+ }
71
+ ```
72
+
73
+ ## API Reference
74
+
75
+ ### ENVIRONMENT Token
76
+
77
+ Injection token for environment configuration with default factory.
78
+
79
+ **Type:** `InjectionToken<Environment>`
80
+
81
+ **Default Value:**
82
+
83
+ ```typescript
84
+ {
85
+ isProduction: false,
86
+ apiBaseUrl: 'http://localhost:4200/api/',
87
+ tokenKey: 'access_token',
88
+ refreshTokenKey: 'refresh_token',
89
+ clientId: 'angular-app',
90
+ loginRoute: 'auth',
91
+ }
92
+ ```
93
+
94
+ **Environment Interface:**
95
+
96
+ ```typescript
97
+ interface Environment {
98
+ apiBaseUrl: string; // Base URL for API requests
99
+ isProduction: boolean; // Production mode flag
100
+ tokenKey: string; // Storage key for access token
101
+ refreshTokenKey: string; // Storage key for refresh token
102
+ clientId: string; // Application client identifier
103
+ loginRoute: string; // Route path for login page
104
+ }
105
+ ```
106
+
107
+ **Usage:**
108
+
109
+ ```typescript
110
+ import { inject } from '@angular/core';
111
+ import { ENVIRONMENT } from '@acontplus/ng-config';
112
+
113
+ @Injectable({ providedIn: 'root' })
114
+ export class AuthService {
115
+ private env = inject(ENVIRONMENT);
116
+
117
+ getTokenKey(): string {
118
+ return this.env.tokenKey;
119
+ }
120
+
121
+ getLoginRoute(): string {
122
+ return this.env.loginRoute;
35
123
  }
36
124
  }
37
125
  ```
38
126
 
39
- ### App Configuration Service
127
+ ### CORE_CONFIG Token
128
+
129
+ Injection token for core application configuration.
130
+
131
+ **Type:** `InjectionToken<CoreConfig>`
132
+
133
+ **Usage:**
40
134
 
41
135
  ```typescript
42
- import { AppConfigService } from '@acontplus/ng-config';
136
+ import { inject } from '@angular/core';
137
+ import { CORE_CONFIG } from '@acontplus/ng-config';
43
138
 
44
- @Component({...})
45
- export class MyComponent {
46
- constructor(private appConfig: AppConfigService) {
47
- const config = this.appConfig.getConfig();
139
+ @Injectable({ providedIn: 'root' })
140
+ export class ConfigService {
141
+ private config = inject(CORE_CONFIG);
142
+
143
+ getApiTimeout(): number {
144
+ return this.config.apiTimeout;
48
145
  }
49
146
  }
50
147
  ```
51
148
 
52
- ### Authentication Constants
149
+ ### AUTH_TOKEN Token
150
+
151
+ Injection token for authentication token configuration.
152
+
153
+ **Type:** `InjectionToken<string>`
154
+
155
+ **Usage:**
156
+
157
+ ```typescript
158
+ import { inject } from '@angular/core';
159
+ import { AUTH_TOKEN } from '@acontplus/ng-config';
160
+
161
+ @Injectable({ providedIn: 'root' })
162
+ export class TokenService {
163
+ private tokenKey = inject(AUTH_TOKEN);
164
+
165
+ getStorageKey(): string {
166
+ return this.tokenKey;
167
+ }
168
+ }
169
+ ```
170
+
171
+ ## Repository Interfaces
172
+
173
+ ### AuthTokenRepository
174
+
175
+ Interface for authentication token storage and retrieval.
176
+
177
+ ```typescript
178
+ export interface AuthTokenRepository {
179
+ getToken(): string | null;
180
+ setToken(token: string): void;
181
+ removeToken(): void;
182
+ getRefreshToken(): string | null;
183
+ setRefreshToken(token: string): void;
184
+ removeRefreshToken(): void;
185
+ }
186
+ ```
187
+
188
+ **Usage:**
189
+
190
+ ```typescript
191
+ import { AuthTokenRepository } from '@acontplus/ng-config';
192
+
193
+ @Injectable({ providedIn: 'root' })
194
+ export class LocalStorageTokenRepository implements AuthTokenRepository {
195
+ getToken(): string | null {
196
+ return localStorage.getItem('access_token');
197
+ }
198
+
199
+ setToken(token: string): void {
200
+ localStorage.setItem('access_token', token);
201
+ }
202
+
203
+ removeToken(): void {
204
+ localStorage.removeItem('access_token');
205
+ }
206
+
207
+ getRefreshToken(): string | null {
208
+ return localStorage.getItem('refresh_token');
209
+ }
210
+
211
+ setRefreshToken(token: string): void {
212
+ localStorage.setItem('refresh_token', token);
213
+ }
214
+
215
+ removeRefreshToken(): void {
216
+ localStorage.removeItem('refresh_token');
217
+ }
218
+ }
219
+ ```
220
+
221
+ ### BaseRepository
222
+
223
+ Abstract base repository with common CRUD operations.
53
224
 
54
225
  ```typescript
55
- import { AUTH_API } from '@acontplus/ng-config';
226
+ export abstract class BaseRepository<T, ID> {
227
+ abstract findById(id: ID): Promise<T | null>;
228
+ abstract findAll(): Promise<T[]>;
229
+ abstract create(entity: Omit<T, 'id'>): Promise<T>;
230
+ abstract update(id: ID, entity: Partial<T>): Promise<T>;
231
+ abstract delete(id: ID): Promise<void>;
232
+ }
233
+ ```
234
+
235
+ **Usage:**
236
+
237
+ ```typescript
238
+ import { BaseRepository } from '@acontplus/ng-config';
239
+ import { Injectable } from '@angular/core';
240
+ import { HttpClient } from '@angular/common/http';
241
+
242
+ interface User {
243
+ id: number;
244
+ name: string;
245
+ email: string;
246
+ }
247
+
248
+ @Injectable({ providedIn: 'root' })
249
+ export class UserRepository extends BaseRepository<User, number> {
250
+ constructor(private http: HttpClient) {
251
+ super();
252
+ }
253
+
254
+ async findById(id: number): Promise<User | null> {
255
+ return this.http.get<User>(`/api/users/${id}`).toPromise() || null;
256
+ }
257
+
258
+ async findAll(): Promise<User[]> {
259
+ return this.http.get<User[]>('/api/users').toPromise() || [];
260
+ }
261
+
262
+ async create(user: Omit<User, 'id'>): Promise<User> {
263
+ return this.http
264
+ .post<User>('/api/users', user)
265
+ .toPromise() as Promise<User>;
266
+ }
56
267
 
57
- const authEndpoint = AUTH_API.AUTH;
268
+ async update(id: number, user: Partial<User>): Promise<User> {
269
+ return this.http
270
+ .put<User>(`/api/users/${id}`, user)
271
+ .toPromise() as Promise<User>;
272
+ }
273
+
274
+ async delete(id: number): Promise<void> {
275
+ await this.http.delete(`/api/users/${id}`).toPromise();
276
+ }
277
+ }
58
278
  ```
59
279
 
60
- ## Running unit tests
280
+ ## Configuration Constants
61
281
 
62
- Run `nx test ng-config` to execute the unit tests.
282
+ ### Authentication Constants
283
+
284
+ ```typescript
285
+ import { AUTH_CONSTANTS, CONFIG_CONSTANTS } from '@acontplus/ng-config';
286
+
287
+ // Authentication configuration
288
+ const tokenExpiry = AUTH_CONSTANTS.TOKEN_EXPIRY_TIME;
289
+ const refreshThreshold = AUTH_CONSTANTS.REFRESH_THRESHOLD;
290
+
291
+ // Application configuration
292
+ const apiTimeout = CONFIG_CONSTANTS.DEFAULT_API_TIMEOUT;
293
+ const retryAttempts = CONFIG_CONSTANTS.MAX_RETRY_ATTEMPTS;
294
+ ```
@@ -1,13 +1,38 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable } from '@angular/core';
1
+ import { InjectionToken } from '@angular/core';
3
2
 
4
- // src/lib/constants/auth.constants.ts
3
+ // src/lib/constants/auth.app.constants.ts
5
4
  const AUTH_API = {
6
5
  AUTH: 'auth/',
7
6
  };
8
7
 
8
+ const DEFAULT_CONFIG = {
9
+ apiBaseUrl: '',
10
+ apiTimeout: 30000,
11
+ retryAttempts: 2,
12
+ retryDelay: 1000,
13
+ enableCorrelationTracking: true,
14
+ enableRequestLogging: false,
15
+ enableErrorLogging: true,
16
+ enableToastNotifications: true,
17
+ includeAuthToken: true,
18
+ authTokenHeader: 'Authorization',
19
+ enableMultiTenancy: true,
20
+ tenantIdHeader: 'Tenant-Id',
21
+ logLevel: 'info',
22
+ enableConsoleLogging: true,
23
+ customHeaders: {},
24
+ excludeUrls: [],
25
+ excludeMethods: [],
26
+ };
27
+
9
28
  // src/lib/constants/index.ts
10
29
 
30
+ const AUTH_TOKEN = new InjectionToken('AUTH_TOKEN_PROVIDER');
31
+
32
+ const CORE_CONFIG = new InjectionToken('CORE_CONFIG', {
33
+ factory: () => DEFAULT_CONFIG,
34
+ });
35
+
11
36
  /**
12
37
  * @const ENVIRONMENT
13
38
  * Injection token for the environment interface to be provided by the applications.
@@ -23,32 +48,9 @@ const ENVIRONMENT = new InjectionToken('ENVIRONMENT', {
23
48
  }),
24
49
  });
25
50
 
26
- class AppConfigService {
27
- environment = inject(ENVIRONMENT);
28
- defaultTimeout = 30000; // Default timeout
29
- get apiUrl() {
30
- return this.environment.apiBaseUrl;
31
- }
32
- get apiTimeout() {
33
- return this.defaultTimeout;
34
- }
35
- get enableLogging() {
36
- return !this.environment.isProduction;
37
- }
38
- get production() {
39
- return this.environment.isProduction;
40
- }
41
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: AppConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: AppConfigService, providedIn: 'root' });
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: AppConfigService, decorators: [{
45
- type: Injectable,
46
- args: [{ providedIn: 'root' }]
47
- }] });
48
-
49
51
  /**
50
52
  * Generated bundle index. Do not edit.
51
53
  */
52
54
 
53
- export { AUTH_API, AppConfigService, ENVIRONMENT };
55
+ export { AUTH_API, AUTH_TOKEN, CORE_CONFIG, DEFAULT_CONFIG, ENVIRONMENT };
54
56
  //# sourceMappingURL=acontplus-ng-config.mjs.map
@@ -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/config.constants.js","../tmp-esm2022/lib/constants/index.js","../tmp-esm2022/lib/tokens/auth-token.js","../tmp-esm2022/lib/tokens/core-config-token.js","../tmp-esm2022/lib/tokens/environment-token.js","../tmp-esm2022/acontplus-ng-config.js"],"sourcesContent":["// src/lib/constants/auth.app.constants.ts\nexport const AUTH_API = {\n AUTH: 'auth/',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvYXV0aC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQzFDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixJQUFJLEVBQUUsT0FBTztDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2NvbnN0YW50cy9hdXRoLmFwcC5jb25zdGFudHMudHNcbmV4cG9ydCBjb25zdCBBVVRIX0FQSSA9IHtcbiAgQVVUSDogJ2F1dGgvJyxcbn0gYXMgY29uc3Q7XG4iXX0=","export const DEFAULT_CONFIG = {\n apiBaseUrl: '',\n apiTimeout: 30000,\n retryAttempts: 2,\n retryDelay: 1000,\n enableCorrelationTracking: true,\n enableRequestLogging: false,\n enableErrorLogging: true,\n enableToastNotifications: true,\n includeAuthToken: true,\n authTokenHeader: 'Authorization',\n enableMultiTenancy: true,\n tenantIdHeader: 'Tenant-Id',\n logLevel: 'info',\n enableConsoleLogging: true,\n customHeaders: {},\n excludeUrls: [],\n excludeMethods: [],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbmZpZy9zcmMvbGliL2NvbnN0YW50cy9jb25maWcuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBeUI7SUFDbEQsVUFBVSxFQUFFLEVBQUU7SUFDZCxVQUFVLEVBQUUsS0FBSztJQUNqQixhQUFhLEVBQUUsQ0FBQztJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQix5QkFBeUIsRUFBRSxJQUFJO0lBQy9CLG9CQUFvQixFQUFFLEtBQUs7SUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtJQUN4Qix3QkFBd0IsRUFBRSxJQUFJO0lBQzlCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsZUFBZSxFQUFFLGVBQWU7SUFDaEMsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixjQUFjLEVBQUUsV0FBVztJQUMzQixRQUFRLEVBQUUsTUFBTTtJQUNoQixvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsY0FBYyxFQUFFLEVBQUU7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVDb25maWcgfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUc6IFJlcXVpcmVkPENvcmVDb25maWc+ID0ge1xuICBhcGlCYXNlVXJsOiAnJyxcbiAgYXBpVGltZW91dDogMzAwMDAsXG4gIHJldHJ5QXR0ZW1wdHM6IDIsXG4gIHJldHJ5RGVsYXk6IDEwMDAsXG4gIGVuYWJsZUNvcnJlbGF0aW9uVHJhY2tpbmc6IHRydWUsXG4gIGVuYWJsZVJlcXVlc3RMb2dnaW5nOiBmYWxzZSxcbiAgZW5hYmxlRXJyb3JMb2dnaW5nOiB0cnVlLFxuICBlbmFibGVUb2FzdE5vdGlmaWNhdGlvbnM6IHRydWUsXG4gIGluY2x1ZGVBdXRoVG9rZW46IHRydWUsXG4gIGF1dGhUb2tlbkhlYWRlcjogJ0F1dGhvcml6YXRpb24nLFxuICBlbmFibGVNdWx0aVRlbmFuY3k6IHRydWUsXG4gIHRlbmFudElkSGVhZGVyOiAnVGVuYW50LUlkJyxcbiAgbG9nTGV2ZWw6ICdpbmZvJyxcbiAgZW5hYmxlQ29uc29sZUxvZ2dpbmc6IHRydWUsXG4gIGN1c3RvbUhlYWRlcnM6IHt9LFxuICBleGNsdWRlVXJsczogW10sXG4gIGV4Y2x1ZGVNZXRob2RzOiBbXSxcbn07XG4iXX0=","// src/lib/constants/index.ts\nexport * from './auth.constants';\nexport * from './config.constants';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvY29uc3RhbnRzL2luZGV4LnRzXG5leHBvcnQgKiBmcm9tICcuL2F1dGguY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLmNvbnN0YW50cyc7XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const AUTH_TOKEN = new InjectionToken('AUTH_TOKEN_PROVIDER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWNvbmZpZy9zcmMvbGliL3Rva2Vucy9hdXRoLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhUb2tlblJlcG9zaXRvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3JpZXMnO1xuXG5leHBvcnQgY29uc3QgQVVUSF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBdXRoVG9rZW5SZXBvc2l0b3J5PignQVVUSF9UT0tFTl9QUk9WSURFUicpO1xuIl19","import { InjectionToken } from '@angular/core';\nimport { DEFAULT_CONFIG } from '../constants';\nexport const CORE_CONFIG = new InjectionToken('CORE_CONFIG', {\n factory: () => DEFAULT_CONFIG,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb25maWctdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi90b2tlbnMvY29yZS1jb25maWctdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBYSxhQUFhLEVBQUU7SUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQWM7Q0FDOUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVDb25maWcgfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuaW1wb3J0IHsgREVGQVVMVF9DT05GSUcgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgQ09SRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29yZUNvbmZpZz4oJ0NPUkVfQ09ORklHJywge1xuICBmYWN0b3J5OiAoKSA9PiBERUZBVUxUX0NPTkZJRyxcbn0pO1xuIl19","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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1jb25maWcvc3JjL2xpYi90b2tlbnMvZW52aXJvbm1lbnQtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWMsYUFBYSxFQUFFO0lBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2QsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLDRCQUE0QjtRQUN4QyxRQUFRLEVBQUUsY0FBYztRQUN4QixlQUFlLEVBQUUsZUFBZTtRQUNoQyxRQUFRLEVBQUUsYUFBYTtRQUN2QixVQUFVLEVBQUUsTUFBTTtLQUNuQixDQUFDO0NBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnQGFjb250cGx1cy9jb3JlJztcblxuLyoqXG4gKiBAY29uc3QgRU5WSVJPTk1FTlRcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgdGhlIGVudmlyb25tZW50IGludGVyZmFjZSB0byBiZSBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb25zLlxuICovXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48RW52aXJvbm1lbnQ+KCdFTlZJUk9OTUVOVCcsIHtcbiAgZmFjdG9yeTogKCkgPT4gKHtcbiAgICBpc1Byb2R1Y3Rpb246IGZhbHNlLFxuICAgIGFwaUJhc2VVcmw6ICdodHRwOi8vbG9jYWxob3N0OjQyMDAvYXBpLycsXG4gICAgdG9rZW5LZXk6ICdhY2Nlc3NfdG9rZW4nLFxuICAgIHJlZnJlc2hUb2tlbktleTogJ3JlZnJlc2hfdG9rZW4nLFxuICAgIGNsaWVudElkOiAnYW5ndWxhci1hcHAnLFxuICAgIGxvZ2luUm91dGU6ICdhdXRoJyxcbiAgfSksXG59KTtcbiJdfQ==","/**\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;;ACHY,MAAC,cAAc,GAAG;AAC9B,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,UAAU,EAAE,KAAK;AACrB,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,yBAAyB,EAAE,IAAI;AACnC,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,kBAAkB,EAAE,IAAI;AAC5B,IAAI,wBAAwB,EAAE,IAAI;AAClC,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,eAAe,EAAE,eAAe;AACpC,IAAI,kBAAkB,EAAE,IAAI;AAC5B,IAAI,cAAc,EAAE,WAAW;AAC/B,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,oBAAoB,EAAE,IAAI;AAC9B,IAAI,aAAa,EAAE,EAAE;AACrB,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,cAAc,EAAE,EAAE;AACtB;;AClBA;;ACCY,MAAC,UAAU,GAAG,IAAI,cAAc,CAAC,qBAAqB;;ACCtD,MAAC,WAAW,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;AAC7D,IAAI,OAAO,EAAE,MAAM,cAAc;AACjC,CAAC;;ACHD;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;;ACdD;AACA;AACA;;;;"}
package/index.d.ts CHANGED
@@ -1,33 +1,40 @@
1
- import * as i0 from '@angular/core';
1
+ import { CoreConfig, UserData, PaginationParams, PagedResult, Environment } from '@acontplus/core';
2
+ import { Observable } from 'rxjs';
2
3
  import { InjectionToken } from '@angular/core';
3
- import { Environment } from '@acontplus/core';
4
4
 
5
5
  declare const AUTH_API: {
6
6
  readonly AUTH: "auth/";
7
7
  };
8
8
 
9
+ declare const DEFAULT_CONFIG: Required<CoreConfig>;
10
+
11
+ interface AuthTokenRepository {
12
+ getToken(): string | null;
13
+ isAuthenticated(): boolean;
14
+ getRefreshToken?(): string | null;
15
+ getUserData(): UserData | null;
16
+ }
17
+
18
+ interface BaseRepository<TEntity = any, TId = number> {
19
+ getById?(id: TId): Observable<TEntity>;
20
+ getAll?(pagination?: PaginationParams): Observable<PagedResult<TEntity>>;
21
+ create?(entity: Partial<TEntity>): Observable<TEntity>;
22
+ update?(id: TId, entity: Partial<TEntity>): Observable<TEntity>;
23
+ remove?(id: TId): Observable<void>;
24
+ }
25
+ interface SearchableRepository<TEntity = any, TId = number> extends BaseRepository<TEntity, TId> {
26
+ search?(query: string, pagination: PaginationParams): Observable<PagedResult<TEntity>>;
27
+ }
28
+
29
+ declare const AUTH_TOKEN: InjectionToken<AuthTokenRepository>;
30
+
31
+ declare const CORE_CONFIG: InjectionToken<CoreConfig>;
32
+
9
33
  /**
10
34
  * @const ENVIRONMENT
11
35
  * Injection token for the environment interface to be provided by the applications.
12
36
  */
13
37
  declare const ENVIRONMENT: InjectionToken<Environment>;
14
38
 
15
- interface IAppConfig {
16
- apiUrl: string;
17
- apiTimeout: number;
18
- enableLogging: boolean;
19
- production: boolean;
20
- }
21
- declare class AppConfigService implements IAppConfig {
22
- private environment;
23
- private readonly defaultTimeout;
24
- get apiUrl(): string;
25
- get apiTimeout(): number;
26
- get enableLogging(): boolean;
27
- get production(): boolean;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<AppConfigService, never>;
29
- static ɵprov: i0.ɵɵInjectableDeclaration<AppConfigService>;
30
- }
31
-
32
- export { AUTH_API, AppConfigService, ENVIRONMENT };
33
- export type { IAppConfig };
39
+ export { AUTH_API, AUTH_TOKEN, CORE_CONFIG, DEFAULT_CONFIG, ENVIRONMENT };
40
+ export type { AuthTokenRepository, BaseRepository, SearchableRepository };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acontplus/ng-config",
3
- "version": "1.0.5",
4
- "description": "Acontplus Angular Configuration library for managing application settings and environment configurations.",
3
+ "version": "1.1.0",
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.16",
6
+ "@acontplus/core": "^1.1.0",
7
7
  "@angular/common": "^20.3.2",
8
8
  "@angular/core": "^20.3.2"
9
9
  },
@@ -28,10 +28,17 @@
28
28
  "acontplus",
29
29
  "angular",
30
30
  "configuration",
31
- "environment",
31
+ "environment-tokens",
32
+ "app-config",
33
+ "runtime-configuration",
34
+ "settings-management",
35
+ "injection-tokens",
36
+ "dependency-injection",
37
+ "config-services",
38
+ "environment-management",
32
39
  "typescript",
33
- "frontend",
34
- "library"
40
+ "enterprise",
41
+ "frontend"
35
42
  ],
36
43
  "author": "Ivan Paz <ifer343@gmail.com>",
37
44
  "license": "MIT",