http-request-manager 18.7.30 β†’ 18.9.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
@@ -12,12 +12,12 @@ A comprehensive Angular library providing enterprise-grade HTTP request manageme
12
12
 
13
13
  | Feature | Description | Service |
14
14
  |---------|-------------|---------|
15
- | **🌐 HTTP Request Management** | Observable-based & Signal-based HTTP services with retry logic, polling, and streaming | [`HTTPManagerService`](HTTP_MANAGER_README.md) |
16
- | **πŸ”„ State Management** | ComponentStore integration with automatic CRUD state updates | [`HTTPManagerStateService`](HTTP_STATE_MANAGER_README.md) |
17
- | **πŸ’¬ Real-Time Communication** | WebSocket messaging with channel-based architecture | [`WebSocketService`](WS_MANAGER_README.md) |
18
- | **πŸ’Ύ Data Persistence** | LocalStorage/SessionStorage with encryption & IndexedDB caching | [`LocalStorageManagerService`](LOCAL_STORAGE_README.md) |
19
- | **πŸ—„οΈ Database Management** | IndexedDB integration via Dexie.js with Observable API | [`DatabaseManagerService`](DATABASE_README.md) |
20
- | **⚑ Utility Functions** | JSON handling, encryption, headers, and validation | [`UtilsService`](UTILS_README.md) |
15
+ | **🌐 HTTP Request Management** | Observable-based & Signal-based HTTP services with retry logic, polling, and streaming | [`HTTPManagerService`](./src/docs/HTTP_MANAGER_README.md) |
16
+ | **πŸ”„ State Management** | ComponentStore integration with automatic CRUD state updates | [`HTTPManagerStateService`](./src/docs/HTTP_STATE_MANAGER_README.md) |
17
+ | **πŸ’¬ Real-Time Communication** | WebSocket messaging with channel-based architecture | [`WebSocketService`](./src/docs/WS_MANAGER_README.md) |
18
+ | **πŸ’Ύ Data Persistence** | LocalStorage/SessionStorage with encryption & IndexedDB caching | [`LocalStorageManagerService`](./src/docs/LOCAL_STORAGE_README.md) |
19
+ | **πŸ—„οΈ Database Management** | IndexedDB integration via Dexie.js with Observable API | [`DatabaseManagerService`](./src/docs/DATABASE_README.md) |
20
+ | **⚑ Utility Functions** | JSON handling, encryption, headers, and validation | [`UtilsService`](./src/docs/UTILS_README.md) |
21
21
 
22
22
  ### Key Benefits
23
23
 
@@ -89,6 +89,9 @@ import { HTTPManagerService, ApiRequest } from 'http-request-manager';
89
89
  selector: 'app-users',
90
90
  template: `
91
91
  <div *ngIf="isLoading$ | async">Loading...</div>
92
+ <div *ngIf="error$ | async as error" class="error">
93
+ Error: {{ error.message }}
94
+ </div>
92
95
  <div *ngFor="let user of data$ | async">
93
96
  {{ user.name }}
94
97
  </div>
@@ -99,6 +102,7 @@ export class UsersComponent {
99
102
 
100
103
  data$ = this.httpManager.data$;
101
104
  isLoading$ = this.httpManager.isPending$;
105
+ error$ = this.httpManager.error$;
102
106
 
103
107
  ngOnInit() {
104
108
  this.httpManager.getRequest(
@@ -212,14 +216,14 @@ export class AppModule { }
212
216
 
213
217
  | Service | Description | Use Case |
214
218
  |---------|-------------|----------|
215
- | [`HTTPManagerService`](HTTP_MANAGER_README.md) | Observable-based HTTP client | Simple API calls with loading states |
216
- | [`HTTPManagerSignalsService`](HTTP_SINGNALS_MANAGER_README.md) | Signal-based HTTP client | Modern reactive UI with Angular Signals |
217
- | [`HTTPManagerStateService`](HTTP_STATE_MANAGER_README.md) | ComponentStore with HTTP & WebSocket | CRUD operations with auto state sync |
218
- | [`WebSocketService`](WS_MANAGER_README.md) | WebSocket connection management | Real-time messaging and notifications |
219
- | [`LocalStorageManagerService`](LOCAL_STORAGE_README.md) | Secure local storage | User preferences, session data |
220
- | [`DatabaseManagerService`](DATABASE_README.md) | IndexedDB wrapper | Offline-first data access |
221
- | [`StoreStateManagerService`](STORE_STATE_MANAGER_README.md) | Persistent ComponentStore | Application state persistence |
222
- | [`UtilsService`](UTILS_README.md) | Utility functions | JSON handling, encryption, headers, and conversions |
219
+ | [`HTTPManagerService`](./src/docs/HTTP_MANAGER_README.md) | Observable-based HTTP client | Simple API calls with loading states |
220
+ | [`HTTPManagerSignalsService`](./src/docs/HTTP_SINGNALS_MANAGER_README.md) | Signal-based HTTP client | Modern reactive UI with Angular Signals |
221
+ | [`HTTPManagerStateService`](./src/docs/HTTP_STATE_MANAGER_README.md) | ComponentStore with HTTP & WebSocket | CRUD operations with auto state sync |
222
+ | [`WebSocketService`](./src/docs/WS_MANAGER_README.md) | WebSocket connection management | Real-time messaging and notifications |
223
+ | [`LocalStorageManagerService`](./src/docs/LOCAL_STORAGE_README.md) | Secure local storage | User preferences, session data |
224
+ | [`DatabaseManagerService`](./src/docs/DATABASE_README.md) | IndexedDB wrapper | Offline-first data access |
225
+ | [`StoreStateManagerService`](./src/docs/STORE_STATE_MANAGER_README.md) | Persistent ComponentStore | Application state persistence |
226
+ | [`UtilsService`](./src/docs/UTILS_README.md) | Utility functions | JSON handling, encryption, headers, and conversions |
223
227
 
224
228
  ### Common Use Cases
225
229
 
@@ -244,44 +248,44 @@ For detailed system architecture, data flows, and design patterns, see:
244
248
 
245
249
  ```
246
250
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
247
- β”‚ Angular Application β”‚
251
+ β”‚ Angular Application β”‚
248
252
  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
249
- β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
250
- β”‚ β”‚ Components β”‚ β”‚ Components β”‚ β”‚ Components β”‚ β”‚
251
- β”‚ β”‚ (Signals) β”‚ β”‚ (Observables) β”‚ β”‚ (State Store) β”‚ β”‚
252
- β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
253
- β”‚ β”‚ β”‚ β”‚ β”‚
254
- β”‚ β–Ό β–Ό β–Ό β”‚
255
- β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
256
- β”‚ β”‚HTTPManager β”‚ β”‚HTTPManager β”‚ β”‚HTTPManager β”‚ β”‚
257
- β”‚ β”‚SignalsServiceβ”‚ β”‚Service β”‚ β”‚StateService β”‚ β”‚
258
- β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
259
- β”‚ β”‚ β”‚ β”‚ β”‚
260
- β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
261
- β”‚ β”‚ β”‚
262
- β”‚ β–Ό β”‚
253
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
254
+ β”‚ β”‚ Components β”‚ β”‚ Components β”‚ β”‚ Components β”‚ β”‚
255
+ β”‚ β”‚ (Signals) β”‚ β”‚ (Observables) β”‚ β”‚ (State Store) β”‚ β”‚
256
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
257
+ β”‚ β”‚ β”‚ β”‚ β”‚
258
+ β”‚ β–Ό β–Ό β–Ό β”‚
259
+ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
260
+ β”‚ β”‚HTTPManager β”‚ β”‚HTTPManager β”‚ β”‚HTTPManager β”‚ β”‚
261
+ β”‚ β”‚SignalsServiceβ”‚ β”‚Service β”‚ β”‚StateService β”‚ β”‚
262
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
263
+ β”‚ β”‚ β”‚ β”‚ β”‚
264
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
265
+ β”‚ β”‚ β”‚
266
+ β”‚ β–Ό β”‚
263
267
  β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
264
268
  β”‚ β”‚ HttpClient β”‚ β”‚
265
269
  β”‚ β”‚ (Angular) β”‚ β”‚
266
270
  β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
267
- β”‚ β”‚ β”‚
268
- β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
269
- β”‚ β”‚ β”‚
271
+ β”‚ β”‚ β”‚
272
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
273
+ β”‚ β”‚ β”‚
270
274
  β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
271
275
  β”‚ β”‚ Storage Layer β”‚ β”‚
272
276
  β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚
273
- β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚ β”‚
274
- β”‚ β”‚ β”‚LocalStorage β”‚ β”‚ β”‚IndexedDB β”‚β”‚ β”‚
275
- β”‚ β”‚ β”‚Manager Service β”‚ β”‚ β”‚(Dexie.js) β”‚β”‚ β”‚
276
- β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚ β”‚
277
+ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
278
+ β”‚ β”‚ β”‚LocalStorage β”‚ β”‚ β”‚IndexedDB β”‚ β”‚ β”‚
279
+ β”‚ β”‚ β”‚Manager Service β”‚ β”‚ β”‚(Dexie.js) β”‚ β”‚ β”‚
280
+ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
277
281
  β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
278
- β”‚ β”‚ β”‚
282
+ β”‚ β”‚ β”‚
279
283
  β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
280
284
  β”‚ β”‚ WebSocket Layer β”‚ β”‚
281
285
  β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚
282
- β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
283
- β”‚ β”‚ β”‚ WebsocketService β”‚ β”‚ β”‚
284
- β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
286
+ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚
287
+ β”‚ β”‚ β”‚ WebsocketService β”‚ β”‚ β”‚
288
+ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚
285
289
  β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
286
290
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
287
291
  ```
@@ -290,7 +294,7 @@ For detailed system architecture, data flows, and design patterns, see:
290
294
 
291
295
  The library provides several HTTP interceptors that are automatically configured:
292
296
 
293
- πŸ“‹ **[Interceptors Documentation](INTERCEPTOR_README.md)**
297
+ πŸ“‹ **[Interceptors Documentation](./src/docs/INTERCEPTOR_README.md)**
294
298
 
295
299
  ### Available Interceptors
296
300