http-request-manager 19.2.5 → 22.0.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 +144 -16
- package/fesm2022/http-request-manager.mjs +3993 -904
- package/fesm2022/http-request-manager.mjs.map +1 -1
- package/http-request-manager-22.0.0.tgz +0 -0
- package/package.json +17 -10
- package/types/http-request-manager.d.ts +653 -133
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
[](https://angular.io/)
|
|
7
7
|
[](https://rxjs.dev/)
|
|
8
8
|
|
|
9
|
+
> **Supported Angular:** 22.x (Angular 22 is the supported baseline. The library also retains the observable/NgRx track for older Angular 14-18 consumers and the signal track for Angular 19+ consumers, but the peer range and the toolchain target Angular 22.)
|
|
10
|
+
|
|
9
11
|
A comprehensive Angular library providing enterprise-grade HTTP request management, state management, real-time communication, and local data persistence.
|
|
10
12
|
|
|
11
13
|
This README is the main documentation hub for the library. Detailed service guides live in `src/docs/`, and this page links to the observable/ngrx services for older Angular applications and the signal-based services for newer Angular applications in parallel.
|
|
@@ -16,11 +18,13 @@ This README is the main documentation hub for the library. Detailed service guid
|
|
|
16
18
|
|
|
17
19
|
| Feature | Description | Angular 14-18 / Observable + NgRx | Angular 19+ / Signals |
|
|
18
20
|
|---------|-------------|----------------------------------|------------------------|
|
|
19
|
-
| **🌐 HTTP Request Management** | Retry, polling, streaming, file downloads | [`HTTPManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_MANAGER_README.md) | [`HTTPManagerSignalsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/
|
|
20
|
-
| **🔄 State Management** | CRUD state, persistence, derived state | [`HTTPManagerStateService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_STATE_MANAGER_README.md) and [`StoreStateManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/
|
|
21
|
-
| **💬 Real-Time Communication** | WebSocket channels, tracking, messaging | [`WebSocketManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WS_MANAGER_README.md)
|
|
21
|
+
| **🌐 HTTP Request Management** | Retry, polling, streaming, file downloads | [`HTTPManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_MANAGER_README.md) | [`HTTPManagerSignalsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_SIGNALS_MANAGER_README.md) |
|
|
22
|
+
| **🔄 State Management** | CRUD state, persistence, derived state | [`HTTPManagerStateService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_STATE_MANAGER_README.md) and [`StoreStateManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_MANAGER_README.md) | [`StoreStateManagerSignalsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_SIGNALS_README.md) |
|
|
23
|
+
| **💬 Real-Time Communication** | WebSocket channels, tracking, messaging | [`WebSocketManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WS_MANAGER_README.md), [`WebSocketMessageService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_MESSAGE_SERVICE.md), and [`MessageTrackerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_README.md) | [`WebSocketSignalsManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_SIGNALS_README.md) and [`MessageTrackerSignalsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_SIGNALS_README.md) |
|
|
22
24
|
| **💾 Data Persistence** | Local/session storage and offline caching | [`LocalStorageManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_README.md) and [`DatabaseManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/DATABASE_README.md) | [`LocalStorageSignalsManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_SIGNALS_README.md) |
|
|
23
|
-
|
|
|
25
|
+
| **🗄️ Database Queries** | MySQL-syntax SQL queries on IndexedDB — the recommended way to query data | [`DexieSqlService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/SQL_DIXIE_README.md) | Uses the same service |
|
|
26
|
+
| **⚡ Utility Functions** | JSON handling, encryption, headers, validation, logging | [`UtilsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/UTILS_README.md), [`Encryption`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ENCRYPTION_README.md), [`Logger`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOGGER_README.md) | Uses the same utility layer |
|
|
27
|
+
| **🔧 Utility Services** | Headers, path/query, merging, base request classes | [`Utility Services`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/UTILS_SERVICES_README.md) | Internal and helper services |
|
|
24
28
|
|
|
25
29
|
### Key Benefits
|
|
26
30
|
|
|
@@ -31,21 +35,46 @@ This README is the main documentation hub for the library. Detailed service guid
|
|
|
31
35
|
- ✅ **Scalable** - ComponentStore-based architecture
|
|
32
36
|
- ✅ **Flexible** - Works with Observables or Signals
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
Note on clearing persisted data:
|
|
39
|
+
|
|
40
|
+
- **Clear full DB (fire-and-forget)**: To wipe the entire IndexedDB for this library and its associated localStorage metadata, call `DatabaseManagerService.clearDatabase()`. This method subscribes internally and is intentionally fire-and-forget — callers should simply call `databaseManager.clearDatabase()` (no `.subscribe()` required). The method also clears related localStorage metadata via `LocalStorageManagerService`.
|
|
41
|
+
- **Clear a specific table (Observable)**: To remove records from a specific table, use `DatabaseManagerService.clearTableRecords(tableName)` which returns an `Observable<void>`; callers should `.subscribe()` or use RxJS operators to react to completion.
|
|
42
|
+
|
|
43
|
+
### �️ Database Access
|
|
44
|
+
|
|
45
|
+
The library provides two complementary services for working with IndexedDB data:
|
|
46
|
+
|
|
47
|
+
| Task | Service | Example |
|
|
48
|
+
|------|---------|---------|
|
|
49
|
+
| **Query data** (recommended) | `DexieSqlService` | `sql.query('SELECT * FROM orders WHERE status = "open"')` |
|
|
50
|
+
| **Create tables** | `DatabaseManagerService` | `db.createDatabaseTable(tableDef)` |
|
|
51
|
+
| **Insert / update records** | `DatabaseManagerService` | `db.createTableRecord('orders', record)` |
|
|
52
|
+
| **Delete records** | `DatabaseManagerService` | `db.deleteTableRecord('orders', id)` |
|
|
53
|
+
| **Clear / reset database** | `DatabaseManagerService` | `db.clearDatabase()` |
|
|
54
|
+
|
|
55
|
+
Use `DexieSqlService` for all read queries — it supports SELECT with WHERE, JOIN, ORDER BY, LIMIT, COUNT, DISTINCT, and more. Use `DatabaseManagerService` for table creation and write operations.
|
|
56
|
+
|
|
57
|
+
See the full SQL syntax reference: [`DexieSqlService Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/SQL_DIXIE_README.md)
|
|
58
|
+
|
|
59
|
+
### �🚀 Advanced Features
|
|
35
60
|
|
|
36
61
|
| Feature | Description | Learn More |
|
|
37
62
|
|---------|-------------|------------|
|
|
38
|
-
| **🔐 Enterprise Encryption** | AES symmetric + RSA asymmetric encryption | [`Encryption Utils`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/
|
|
63
|
+
| **🔐 Enterprise Encryption** | AES symmetric + RSA asymmetric encryption | [`Encryption Utils`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ENCRYPTION_README.md) |
|
|
64
|
+
| **🗄️ Database Queries** | MySQL-syntax SQL queries on IndexedDB — the recommended way to query data (SELECT, WHERE, JOIN, ORDER BY, LIMIT, COUNT, DISTINCT) | [`DexieSqlService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/SQL_DIXIE_README.md) |
|
|
39
65
|
| **📡 Streaming Support** | NDJSON & Server-Sent Events (SSE) | [`HTTP Manager`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_MANAGER_README.md#streaming) |
|
|
40
66
|
| **📄 File Downloads** | Progress tracking for large files | [`HTTP Manager`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_MANAGER_README.md#file-downloads) |
|
|
67
|
+
| **📤 File Uploads** | Multi-file upload with progress, validation, and form-data config | [`Upload Request`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/UPLOAD_REQUEST_README.md) |
|
|
41
68
|
| **📊 Pagination** | Built-in pagination with page tracking | [`HTTP State Manager`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_STATE_MANAGER_README.md#pagination) |
|
|
42
69
|
| **🔔 Smart Notifications** | Persistent notifications with DB storage | [`WebSocket Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ADVANCED_WEBSOCKET.md#notifications) |
|
|
43
70
|
| **👥 Presence Tracking** | Real-time user presence by channel | [`WebSocket Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ADVANCED_WEBSOCKET.md#presence) |
|
|
44
|
-
| **🔄 Message Replay** | Automatic message history on reconnect | [`WebSocket Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ADVANCED_WEBSOCKET.md#message-replay) |
|
|
71
|
+
| **🔄 Message Replay** | Automatic message history on reconnect | [`WebSocket Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ADVANCED_WEBSOCKET.md#message-replay) and [`Message Tracker`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_README.md) |
|
|
45
72
|
| **🏷️ Channel Architecture** | SYS-, PUB-, MES- channel prefixes | [`WebSocket Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ADVANCED_WEBSOCKET.md#channels) |
|
|
46
73
|
| **🔌 Singleton WebSocket** | Single connection across ALL instances | [`WebSocket Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ADVANCED_WEBSOCKET.md#singleton) |
|
|
47
74
|
| **✨ Unified Message Service** | Type-safe WebSocket messaging with auto prefixes | [`WebSocket Message Service`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_MESSAGE_SERVICE.md) |
|
|
48
75
|
| **🚀 Batch Requests** | Execute multiple HTTP requests with sequential/parallel modes | [`Batch Request Guide`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/BATCH_REQUEST_README.md) |
|
|
76
|
+
| **📝 Message Tracking** | Guaranteed delivery with gap detection | [`Message Tracker`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_README.md) |
|
|
77
|
+
| **🔍 Debug Logging** | Context-aware logging with dev/prod modes | [`Logger Service`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOGGER_README.md) |
|
|
49
78
|
|
|
50
79
|
## 📋 Table of Contents
|
|
51
80
|
|
|
@@ -128,7 +157,7 @@ export class UsersComponent {
|
|
|
128
157
|
|
|
129
158
|
ngOnInit() {
|
|
130
159
|
this.httpManager.getRequest(
|
|
131
|
-
ApiRequest.adapt({ path: ['users'] })
|
|
160
|
+
ApiRequest.adapt({ path: ['users'], displaySuccess: true, successMessage: 'Loaded users!' })
|
|
132
161
|
).subscribe();
|
|
133
162
|
}
|
|
134
163
|
}
|
|
@@ -173,6 +202,29 @@ export class UsersComponent {
|
|
|
173
202
|
}
|
|
174
203
|
```
|
|
175
204
|
|
|
205
|
+
### Request Tracking Options (Database Mode)
|
|
206
|
+
|
|
207
|
+
`HTTPManagerStateService` supports request tracking options for `fetchRecords` and `fetchStream` when database caching is configured (`DatabaseStorage` provided in the service constructor).
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
service.fetchRecords(RequestOptions.adapt({
|
|
211
|
+
path: ['ai/pagination?page=0&size=25'],
|
|
212
|
+
ignoreQueryParams: ['page', 'size'],
|
|
213
|
+
queryParamsExpiresIn: '10s'
|
|
214
|
+
}));
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Supported request options:
|
|
218
|
+
|
|
219
|
+
- `ignoreQueryParams`: Query keys to track for request-change behavior.
|
|
220
|
+
- `queryParamsExpiresIn`: Expiry window for tracked values (examples: `10s`, `5mn`, `1h`).
|
|
221
|
+
|
|
222
|
+
Behavior notes:
|
|
223
|
+
|
|
224
|
+
- Database enabled (`DatabaseStorage` configured): tracker is active, repeated identical query values are blocked until expiry, then can call API again.
|
|
225
|
+
- Database disabled: tracker is bypassed; requests call the API directly each time.
|
|
226
|
+
- `forceRefresh: true` always forces an API call.
|
|
227
|
+
|
|
176
228
|
## ⚙️ Configuration
|
|
177
229
|
|
|
178
230
|
### Module Initialization (`forRoot`)
|
|
@@ -218,6 +270,9 @@ export class AppModule { }
|
|
|
218
270
|
| `retry` | `RetryOptions` | Default retry configuration | `{ times: 0, delay: 3 }` |
|
|
219
271
|
| `stream` | `boolean` | Enable streaming by default | `false` |
|
|
220
272
|
| `displayError` | `boolean` | Show toast errors by default | `false` |
|
|
273
|
+
| `displaySuccess` | `boolean` | Show toast on success by default | `false` |
|
|
274
|
+
| `successMessage` | `string` | Custom success toast message (optional) | `undefined` |
|
|
275
|
+
| `errorMessage` | `string` | Custom error toast message (optional, overrides default) | `undefined` |
|
|
221
276
|
|
|
222
277
|
#### Local Storage Options (`LocalStorageOptions`)
|
|
223
278
|
|
|
@@ -234,6 +289,42 @@ export class AppModule { }
|
|
|
234
289
|
| `times` | `number` | Number of retry attempts | `0` |
|
|
235
290
|
| `delay` | `number` | Delay between retries (seconds) | `3` |
|
|
236
291
|
|
|
292
|
+
#### WebSocket Options (`WSOptions`)
|
|
293
|
+
|
|
294
|
+
| Option | Type | Description | Default |
|
|
295
|
+
|--------|------|-------------|---------|
|
|
296
|
+
| `id` | `string` | Channel identifier (used to construct channel names) | `''` |
|
|
297
|
+
| `wsServer` | `string` | WebSocket server URL | `''` |
|
|
298
|
+
| `jwtToken` | `string` | JWT token for authentication | `''` |
|
|
299
|
+
| `permissions` | `string[]` | Permission levels for the connection | `[]` |
|
|
300
|
+
| `channels` | `string[]` | Additional channels to subscribe to | `[]` |
|
|
301
|
+
| `user` | `any` | User information for presence tracking | `undefined` |
|
|
302
|
+
| `retry` | `RetryOptions` | Retry configuration for reconnection | `{ times: 0, delay: 3 }` |
|
|
303
|
+
|
|
304
|
+
### Injection Tokens
|
|
305
|
+
|
|
306
|
+
| Token | Type | Purpose | Required |
|
|
307
|
+
|-------|------|---------|----------|
|
|
308
|
+
| `CONFIG_SETTINGS_TOKEN` | `ConfigOptions` | Global library configuration (provided by `forRoot()`) | Yes (via `forRoot()`) |
|
|
309
|
+
| `APP_ID` | `string` | Unique application ID for encryption key generation | Yes (if using encryption) |
|
|
310
|
+
|
|
311
|
+
### Providing APP_ID
|
|
312
|
+
|
|
313
|
+
If using encryption features (localStorage encryption, AES/RSA encryption), you must provide a unique `APP_ID`:
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
import { APP_ID } from '@angular/core';
|
|
317
|
+
|
|
318
|
+
@NgModule({
|
|
319
|
+
providers: [
|
|
320
|
+
{ provide: APP_ID, useValue: 'your-unique-app-guid-here' }
|
|
321
|
+
]
|
|
322
|
+
})
|
|
323
|
+
export class AppModule { }
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
> **Important:** The `APP_ID` is used as the encryption key for `SymmetricalEncryptionService`. Use a strong, unique value per application.
|
|
327
|
+
|
|
237
328
|
## 📚 Services Overview
|
|
238
329
|
|
|
239
330
|
### Angular 14-18: Observable + NgRx Services
|
|
@@ -242,17 +333,18 @@ export class AppModule { }
|
|
|
242
333
|
|---------|-------------|----------|
|
|
243
334
|
| [`HTTPManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_MANAGER_README.md) | Observable-based HTTP client with retry, polling, streaming | Simple API calls with loading states |
|
|
244
335
|
| [`HTTPManagerStateService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_STATE_MANAGER_README.md) | ComponentStore + HTTP + WebSocket + IndexedDB | CRUD with auto state sync and real-time updates |
|
|
336
|
+
| [`StoreStateManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_MANAGER_README.md) | Persistent ComponentStore with localStorage sync | Application state persistence |
|
|
245
337
|
| [`WebSocketManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WS_MANAGER_README.md) | Singleton WebSocket connection manager | Real-time messaging and notifications |
|
|
246
338
|
| [`WebSocketMessageService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_MESSAGE_SERVICE.md) | Unified type-safe message sending service | Simplified WebSocket messaging with auto prefixes |
|
|
339
|
+
| [`MessageTrackerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_README.md) | Guaranteed message delivery with gap detection | Message tracking and reconnection sync |
|
|
247
340
|
| [`LocalStorageManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_README.md) | Secure local/session storage with encryption | User preferences and session data |
|
|
248
341
|
| [`DatabaseManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/DATABASE_README.md) | IndexedDB wrapper via Dexie.js | Offline-first data access |
|
|
249
|
-
| [`StoreStateManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/COMPLETE_API_REFERENCE.md#storestatemanagerservice) | Persistent ComponentStore with localStorage sync | Application state persistence |
|
|
250
342
|
|
|
251
343
|
### Angular 19+: Signal-Based Services
|
|
252
344
|
|
|
253
345
|
| Service | Description | Use Case |
|
|
254
346
|
|---------|-------------|----------|
|
|
255
|
-
| [`HTTPManagerSignalsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/
|
|
347
|
+
| [`HTTPManagerSignalsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_SIGNALS_MANAGER_README.md) | Signal-based HTTP client for modern reactive UI | Modern Angular with Signals |
|
|
256
348
|
| [`LocalStorageSignalsManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_SIGNALS_README.md) | Signal-based local/session storage | Reactive persisted UI state |
|
|
257
349
|
| [`StoreStateManagerSignalsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_SIGNALS_README.md) | Signal-based persistent state service | App state persistence with computed derivations |
|
|
258
350
|
| [`WebSocketSignalsManagerService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_SIGNALS_README.md) | Signal-based WebSocket manager | Signal-driven real-time dashboards and messaging |
|
|
@@ -263,6 +355,7 @@ export class AppModule { }
|
|
|
263
355
|
| Service | Description | Use Case |
|
|
264
356
|
|---------|-------------|----------|
|
|
265
357
|
| [`UtilsService`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/UTILS_README.md) | Utilities: encryption, headers, merging, path/query | Helper functions |
|
|
358
|
+
| [`Utility Services`](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/UTILS_SERVICES_README.md) | Headers, path/query, merging, base request classes | Internal and helper services |
|
|
266
359
|
|
|
267
360
|
### Common Use Cases
|
|
268
361
|
|
|
@@ -291,16 +384,18 @@ All detailed service guides live in `src/docs/`. Use this README as the entry po
|
|
|
291
384
|
| Category | Documentation |
|
|
292
385
|
|----------|---------------|
|
|
293
386
|
| HTTP | [HTTP Manager](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_MANAGER_README.md) |
|
|
294
|
-
| State | [HTTP State Manager](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_STATE_MANAGER_README.md) and [Store State
|
|
295
|
-
| Real-Time | [WebSocket Manager](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WS_MANAGER_README.md)
|
|
387
|
+
| State | [HTTP State Manager](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_STATE_MANAGER_README.md) and [Store State Manager](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_MANAGER_README.md) |
|
|
388
|
+
| Real-Time | [WebSocket Manager](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WS_MANAGER_README.md), [WebSocket Message Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_MESSAGE_SERVICE.md), and [Message Tracker](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_README.md) |
|
|
296
389
|
| Persistence | [Local Storage](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_README.md) and [Database](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/DATABASE_README.md) |
|
|
390
|
+
| Utilities | [Utils](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/UTILS_README.md), [Encryption](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ENCRYPTION_README.md), [Logger](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOGGER_README.md) |
|
|
391
|
+
| Reference | [Models](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MODELS_README.md), [Complete API Reference](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/COMPLETE_API_REFERENCE.md) |
|
|
297
392
|
|
|
298
393
|
### Angular 19+: Signal Track
|
|
299
394
|
|
|
300
395
|
| Category | Documentation |
|
|
301
396
|
|----------|---------------|
|
|
302
397
|
| Overview | [Signal Services Overview](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/SIGNAL_SERVICES_README.md) |
|
|
303
|
-
| HTTP | [HTTP Manager Signals](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/
|
|
398
|
+
| HTTP | [HTTP Manager Signals](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_SIGNALS_MANAGER_README.md) |
|
|
304
399
|
| State | [Store State Signals](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_SIGNALS_README.md) |
|
|
305
400
|
| Real-Time | [WebSocket Signals](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_SIGNALS_README.md) and [Message Tracker Signals](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_SIGNALS_README.md) |
|
|
306
401
|
| Persistence | [Local Storage Signals](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_SIGNALS_README.md) |
|
|
@@ -409,19 +504,24 @@ For in-depth documentation on each service and component, refer to the following
|
|
|
409
504
|
|---------------|-------------|
|
|
410
505
|
| 📖 [HTTP Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_MANAGER_README.md) | Observable-based HTTP client with retry, polling, streaming, and error handling |
|
|
411
506
|
| 📖 [HTTP Manager State Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_STATE_MANAGER_README.md) | ComponentStore integration with automatic CRUD state updates and WebSocket sync |
|
|
507
|
+
| 📖 [Store State Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_MANAGER_README.md) | Persistent ComponentStore synchronized with local/session storage |
|
|
412
508
|
| 📖 [WebSocket Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WS_MANAGER_README.md) | WebSocket connection management with channel-based messaging and notifications |
|
|
509
|
+
| 📖 [WebSocket Message Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_MESSAGE_SERVICE.md) | Type-safe WebSocket message sending with channel prefix helpers |
|
|
510
|
+
| 📖 [Message Tracker Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MESSAGE_TRACKER_README.md) | Guaranteed message delivery with gap detection and reconnection sync |
|
|
413
511
|
| 📖 [Local Storage Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_README.md) | Secure local/session storage with encryption and expiration |
|
|
414
512
|
| 📖 [Database Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/DATABASE_README.md) | IndexedDB wrapper via Dexie.js with Observable API for offline-first apps |
|
|
415
|
-
| 📖 [Store State Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/COMPLETE_API_REFERENCE.md#storestatemanagerservice) | Persistent ComponentStore synchronized with local/session storage |
|
|
416
|
-
| 📖 [WebSocket Message Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_MESSAGE_SERVICE.md) | Type-safe WebSocket message sending with channel prefix helpers |
|
|
417
513
|
| 🚀 [Batch Request Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/BATCH_REQUEST_README.md) | Execute multiple HTTP requests with sequential/parallel modes and configurable error handling |
|
|
514
|
+
| 📤 [Upload Request Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/UPLOAD_REQUEST_README.md) | Multi-file upload with progress tracking, validation, and form-data configuration |
|
|
515
|
+
| 🔐 [Encryption Utils](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/ENCRYPTION_README.md) | AES symmetric and RSA asymmetric encryption utilities |
|
|
516
|
+
| 📝 [Logger Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOGGER_README.md) | Context-aware logging with automatic dev/prod mode detection |
|
|
517
|
+
| 📚 [Models Reference](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/MODELS_README.md) | Complete reference for all data models and configuration interfaces |
|
|
418
518
|
|
|
419
519
|
### Detailed Docs for Angular 19+
|
|
420
520
|
|
|
421
521
|
| Documentation | Description |
|
|
422
522
|
|---------------|-------------|
|
|
423
523
|
| 📖 [Signal Services Overview](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/SIGNAL_SERVICES_README.md) | Overview of the signal-based service set and migration guidance |
|
|
424
|
-
| 📖 [HTTP Manager Signals Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/
|
|
524
|
+
| 📖 [HTTP Manager Signals Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/HTTP_SIGNALS_MANAGER_README.md) | Signal-based HTTP client for modern reactive UI with Angular Signals |
|
|
425
525
|
| 📖 [Local Storage Signals Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/LOCAL_STORAGE_SIGNALS_README.md) | Signal-based persisted storage patterns |
|
|
426
526
|
| 📖 [Store State Signals Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/STORE_STATE_SIGNALS_README.md) | Signal-based state persistence and computed state |
|
|
427
527
|
| 📖 [WebSocket Signals Manager Service](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/WEBSOCKET_SIGNALS_README.md) | Signal-driven WebSocket connection and subscription management |
|
|
@@ -634,6 +734,34 @@ All models follow the `<Name>Interface` + `<Name>Model` pattern with static `ada
|
|
|
634
734
|
For comprehensive API reference with all methods, parameters, and examples:
|
|
635
735
|
📋 **[Complete API Reference](https://github.com/micheleboni/npm-angular/tree/main/projects/http-request-manager/src/docs/COMPLETE_API_REFERENCE.md)**
|
|
636
736
|
|
|
737
|
+
## 🧩 Angular 22 Support Matrix
|
|
738
|
+
|
|
739
|
+
This library is published with Angular 22 as the supported baseline. Older Angular tracks remain documented for reference, but the peer dependency range and toolchain target Angular 22.
|
|
740
|
+
|
|
741
|
+
| Angular Version | Track | Recommended Service |
|
|
742
|
+
|-----------------|-------|---------------------|
|
|
743
|
+
| 14-18 | Observable + NgRx | `HTTPManagerService`, `HTTPManagerStateService`, `WebSocketManagerService` |
|
|
744
|
+
| 19-21 | Signals | `HTTPManagerSignalsService`, `StoreStateManagerSignalsService`, `WebSocketSignalsManagerService` |
|
|
745
|
+
| **22 (supported)** | **Signals (default) + Observable** | **All of the above — module-based bootstrap** |
|
|
746
|
+
|
|
747
|
+
### Required Toolchain
|
|
748
|
+
|
|
749
|
+
| Tool | Version |
|
|
750
|
+
|------|---------|
|
|
751
|
+
| Angular | `^22.0.1` |
|
|
752
|
+
| Angular CLI / `@angular-devkit/build-angular` | `^22.0.1` |
|
|
753
|
+
| Angular CDK | `^22.0.1` |
|
|
754
|
+
| Angular Material | `^22.0.1` |
|
|
755
|
+
| `@ngrx/component-store` | `^21.1.1` |
|
|
756
|
+
| `@ngx-translate/core` | `^17.0.0` |
|
|
757
|
+
| TypeScript | `~6.0.0` |
|
|
758
|
+
| Node.js | `>=20.19.0` (Angular 22 CLI requires `>=22.22.3` / `>=24.15.0` / `>=26.0.0`) |
|
|
759
|
+
| `ng-packagr` | `^22.0.0` |
|
|
760
|
+
| RxJS | `~7.8.0` |
|
|
761
|
+
| zone.js | `~0.16.2` |
|
|
762
|
+
|
|
763
|
+
> The library's `package.json` declares an `engines.node` of `>=20.19.0` to match the Angular 22 toolchain requirements.
|
|
764
|
+
|
|
637
765
|
## 🤝 Contributing
|
|
638
766
|
|
|
639
767
|
This library is designed to be enterprise-ready and production-safe. All features include comprehensive error handling, TypeScript support, and extensive configuration options.
|