@esfaenza/httpservice 19.2.26 → 19.2.30

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.
@@ -105,10 +105,10 @@ class HttpServiceExtensions {
105
105
  handleException(status, text) {
106
106
  console.error("ESHttpError " + status + " " + text);
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HttpServiceExtensions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
109
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HttpServiceExtensions, providedIn: 'root' }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HttpServiceExtensions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
109
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HttpServiceExtensions, providedIn: 'root' }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HttpServiceExtensions, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HttpServiceExtensions, decorators: [{
112
112
  type: Injectable,
113
113
  args: [{ providedIn: 'root' }]
114
114
  }] });
@@ -1033,10 +1033,10 @@ class HTTPService {
1033
1033
  }
1034
1034
  return r.length > 0 ? "o:" + r.join(";") : "";
1035
1035
  }
1036
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HTTPService, deps: [{ token: HttpServiceExtensions }, { token: HTTP_INVALIDATION, optional: true }, { token: CLIENT_CACHE_DURATION_S, optional: true }, { token: CACHE_BY_USER, optional: true }, { token: HTTP_DEBUG_MODE, optional: true }, { token: i2.BaseLocalization, optional: true }, { token: i3.HttpClient }, { token: i4.CacheService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1037
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HTTPService, providedIn: 'root' }); }
1036
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HTTPService, deps: [{ token: HttpServiceExtensions }, { token: HTTP_INVALIDATION, optional: true }, { token: CLIENT_CACHE_DURATION_S, optional: true }, { token: CACHE_BY_USER, optional: true }, { token: HTTP_DEBUG_MODE, optional: true }, { token: i2.BaseLocalization, optional: true }, { token: i3.HttpClient }, { token: i4.CacheService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1037
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HTTPService, providedIn: 'root' }); }
1038
1038
  }
1039
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HTTPService, decorators: [{
1039
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HTTPService, decorators: [{
1040
1040
  type: Injectable,
1041
1041
  args: [{ providedIn: 'root' }]
1042
1042
  }], ctorParameters: () => [{ type: HttpServiceExtensions }, { type: undefined, decorators: [{
@@ -1077,11 +1077,11 @@ class HttpserviceModule {
1077
1077
  ]
1078
1078
  };
1079
1079
  }
1080
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HttpserviceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1081
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: HttpserviceModule }); }
1082
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HttpserviceModule }); }
1080
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HttpserviceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1081
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: HttpserviceModule }); }
1082
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HttpserviceModule }); }
1083
1083
  }
1084
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HttpserviceModule, decorators: [{
1084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HttpserviceModule, decorators: [{
1085
1085
  type: NgModule
1086
1086
  }] });
1087
1087
 
package/index.d.ts CHANGED
@@ -1,594 +1,5 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, ModuleWithProviders } from '@angular/core';
3
- import { HttpClient, HttpParams } from '@angular/common/http';
4
- import { CacheService } from '@esfaenza/preferences';
5
- import { BaseLocalization } from '@esfaenza/localizations';
6
- import { Subject, Observable } from 'rxjs';
7
-
8
1
  /**
9
- * Dizionario di invalidazioni delle chiamate HTTP
2
+ * Generated bundle index. Do not edit.
10
3
  */
11
- declare const HTTP_INVALIDATION: InjectionToken<Record<string, string[]>>;
12
- /**
13
- * Durata della cache lato libreria dopo il quale la cache verrà ripulita
14
- */
15
- declare const CLIENT_CACHE_DURATION_S: InjectionToken<number>;
16
- /**
17
- * Nome dell'APP utilizzato per creare le chiavi delle cache specifiche per l'applicazione corrente
18
- */
19
- declare const APP_NAME: InjectionToken<string>;
20
- /**
21
- * Indica se utilizzare l'identificativo utente nella cache
22
- */
23
- declare const CACHE_BY_USER: InjectionToken<boolean>;
24
- /**
25
- * Indica se fare log nella console ad ogni azione significativa
26
- */
27
- declare const HTTP_DEBUG_MODE: InjectionToken<boolean>;
28
-
29
- /**
30
- * Interfaccia per la classe d'estensione che permette di modificare il comportamento della libreria negli hook definiti da interfaccia, in modo da poterla adattare
31
- * con un certo grado di customizzazione a qualsiasi struttura di frontend
32
- */
33
- interface IHttpServiceExtensions {
34
- /**
35
- * Hook per recuperare l'access token con cui effettuare le chiamate HTTP
36
- */
37
- retrieveAccessToken(): string;
38
- /**
39
- * Hook per recuperare l'Identity corrente in un oggetto generico con le informazioni di User e Tenant
40
- */
41
- retrieveIdentity(): {
42
- IdUser: string;
43
- Idtenant: string;
44
- };
45
- /**
46
- * Hook per leggere dallo stato dell'applicazione se stiamo già venendo ridirezionati al login, in modo da non tentare di effettuare
47
- * 10 redirect contemporaneamente qualora molte API fallissero allo stesso tempo nell'autenticazione
48
- */
49
- readRedirectingToLogin(): boolean;
50
- /**
51
- * Hook per scrivere nello stato dell'applicazione se stiamo effettuando un redirect al login o meno
52
- */
53
- writeRedirectingToLogin(status: boolean): any;
54
- /**
55
- * Hook per effettuare il redirect al login
56
- */
57
- redirectToLogin(): void;
58
- /**
59
- * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un errore, in modo da non tentare di gestire
60
- * N errori contemporaneamente qualora molte API fallissero allo stesso tempo
61
- */
62
- readHandlingErrorStatus(): boolean;
63
- /**
64
- * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un errore o meno
65
- */
66
- writeHandlingErrorStatus(status: boolean): any;
67
- /**
68
- * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un redirect, in modo da non tentare di gestire
69
- * N redirect contemporaneamente qualora molte API lo richiedessero allo stesso tempo
70
- */
71
- readRedirectionStatus(): boolean;
72
- /**
73
- * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un redirect o meno
74
- */
75
- writeRedirectionStatus(status: boolean): void;
76
- /**
77
- * Hook per indicare se l'applicazione può gestire eccezioni del tipo "NotConfigured" (444). Qualora l'applicazione che lo implementa dichiari di gestirle verrà chiamata
78
- * la funzione **handleBlockingException** per ognuno di questi errori
79
- */
80
- handleNotConfiguredException(): boolean;
81
- /**
82
- * Hook per la gestione di un qualsiasi errore bloccante per l'operazione attuale, ma non fatale (Generalmente gestibile da dialog di avviso)
83
- */
84
- handleBlockingException(status: number, text: string): any;
85
- /**
86
- * Hook per la gestione di un qualsiasi errore fatale (Generalmente gestibile tramite navigazione a una pagina di errore custom per l'applicativo)
87
- */
88
- handleException(status: number, text: string): any;
89
- }
90
-
91
- /**
92
- * Classe d'estensione che permette di modificare il comportamento della libreria negli hook definiti da interfaccia, in modo da poterla adattare
93
- * con un certo grado di customizzazione a qualsiasi struttura di frontend
94
- */
95
- declare class HttpServiceExtensions implements IHttpServiceExtensions {
96
- /**
97
- * Hook per recuperare l'access token con cui effettuare le chiamate HTTP
98
- */
99
- retrieveAccessToken(): string;
100
- /**
101
- * Hook per recuperare l'Identity corrente in un oggetto generico con le informazioni di User e Tenant
102
- */
103
- retrieveIdentity(): {
104
- IdUser: string;
105
- Idtenant: string;
106
- };
107
- /**
108
- * Hook per leggere dallo stato dell'applicazione se stiamo già venendo ridirezionati al login, in modo da non tentare di effettuare
109
- * N redirect contemporaneamente qualora molte API fallissero allo stesso tempo nell'autenticazione
110
- */
111
- readRedirectingToLogin(): boolean;
112
- /**
113
- * Hook per scrivere nello stato dell'applicazione se stiamo effettuando un redirect al login o meno
114
- */
115
- writeRedirectingToLogin(status: boolean): void;
116
- /**
117
- * Hook per effettuare il redirect al login
118
- */
119
- redirectToLogin(): void;
120
- /**
121
- * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un errore, in modo da non tentare di gestire
122
- * N errori contemporaneamente qualora molte API fallissero allo stesso tempo
123
- */
124
- readHandlingErrorStatus(): boolean;
125
- /**
126
- * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un errore o meno
127
- */
128
- writeHandlingErrorStatus(status: boolean): void;
129
- /**
130
- * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un redirect, in modo da non tentare di gestire
131
- * N redirect contemporaneamente qualora molte API lo richiedessero allo stesso tempo
132
- */
133
- readRedirectionStatus(): boolean;
134
- /**
135
- * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un redirect o meno
136
- */
137
- writeRedirectionStatus(status: boolean): void;
138
- /**
139
- * Hook per indicare se l'applicazione può gestire eccezioni del tipo "NotConfigured" (444). Qualora l'applicazione che lo implementa dichiari di gestirle verrà chiamata
140
- * la funzione **handleBlockingException** per ognuno di questi errori
141
- */
142
- handleNotConfiguredException(): boolean;
143
- /**
144
- * Hook per la gestione di un qualsiasi errore bloccante per l'operazione attuale, ma non fatale (Generalmente gestibile da dialog di avviso)
145
- */
146
- handleBlockingException(status: number, text: string): void;
147
- /**
148
- * Hook per la gestione di un qualsiasi errore fatale (Generalmente gestibile tramite navigazione a una pagina di errore custom per l'applicativo)
149
- */
150
- handleException(status: number | string, text: string): void;
151
- static ɵfac: i0.ɵɵFactoryDeclaration<HttpServiceExtensions, never>;
152
- static ɵprov: i0.ɵɵInjectableDeclaration<HttpServiceExtensions>;
153
- }
154
-
155
- declare class Download {
156
- state: 'PENDING' | 'IN_PROGRESS' | 'DONE';
157
- progress: number;
158
- content: Blob | null;
159
- }
160
-
161
- /**
162
- * Servizio utilizzato per effettuare qualsiasi tipo di chiamata HTTP dall'applicazione, gestisce errori e cache delle risposte nativamente e ne può essere
163
- * esteso/modificato il comportamento implementando la classe di "hook" **IHttpServiceExtensions** e registrandola nel provider della classe **HttpServiceExtensions**
164
- */
165
- declare class HTTPService {
166
- private EXTENSION_CLASS;
167
- private HTTP_INVALIDATION;
168
- private CLIENT_CACHE_DURATION_S;
169
- private CACHE_BY_USER;
170
- private HTTP_DEBUG_MODE;
171
- private bc;
172
- private http;
173
- private localStorage;
174
- /** Cache dello stato delle chiamate HTTP attualmente effettuate. Ogni chiamata è rappresentata da un GUID e lo status assume valore **false** solo sugli errori */
175
- private callStatus;
176
- /** Nome della cache in cui vengono storicizzate le informazioni sulle risposte delle chiamate sotto forma di dictionary */
177
- private localStorageHttpCacheKey;
178
- /** Nome della cache in cui vengono storicizzate le informazioni sulle risposte delle chiamate sotto forma di dictionary, solo per le chiamate con un tempo definito di caching */
179
- private localStorageHttpTimedCacheKey;
180
- /** Nome della cache in cui vengono storicizzate le informazioni sullo scadere della cache stessa */
181
- private localStorageHttpCacheExpireKey;
182
- /** Identità collegata al token di autenticazione da usare, richiesta al programma che utilizza la libreria attraverso l'hook **retrieveIdentity** della **HttpServiceExtensions** */
183
- private me;
184
- /** Indica che la cache a tempo dev'essere persistita il prima possibile */
185
- private PersistTimedCacheASAP;
186
- /** Indica che la cache senza limiti di tempo dev'essere persistita il prima possibile */
187
- private PersistUntimedCacheASAP;
188
- /** Subject emesso quando il servizio http si stabilizza, cioè quando non c'è nessuna chiamata pending o in corso da qualche istante */
189
- Stabilized: Subject<true>;
190
- /**
191
- * Implementazione della classe di estensione per collegare i comportamenti della libreria all'applicazione in cui è usata.
192
- *
193
- * Se è stato effettuato il provide della classe **HttpServiceExtensions** verrà usato quel provider, altrimenti verrà creata una nuova istanza di default
194
- */
195
- private ExtensionsImpl;
196
- /** Lista delle ultime 3 chiamate completate con successo in ordine di completamento (in posizione 0 c'è l'ultima completata eccetera...) */
197
- LastThreeCompletedCalls: {
198
- api: string;
199
- requestJson: string;
200
- responseJson: any;
201
- }[];
202
- private CacheInitialized;
203
- /**
204
- * @ignore
205
- */
206
- constructor(EXTENSION_CLASS: HttpServiceExtensions, HTTP_INVALIDATION: any, CLIENT_CACHE_DURATION_S: any, CACHE_BY_USER: boolean, HTTP_DEBUG_MODE: boolean, bc: BaseLocalization, http: HttpClient, localStorage: CacheService);
207
- setAppConfig(myconfig: {
208
- AppData: {
209
- ModuleId: string;
210
- ModuleDefId: number;
211
- ComponentEnvironment: string;
212
- ComponentVersion: string;
213
- ModuleDescription: string;
214
- };
215
- }): void;
216
- /**
217
- * Se vedo che ci sono elementi salvati nel localStorage provo a toglierli e a risalvarli via preference.
218
- * Nel caso migliore li sposto dal localStorage al DB di preference, nel caso peggiore li tolgo e li risalvo nel localStorage
219
- */
220
- private adjustOldStorageSystem;
221
- getlocaleObservable(): Observable<string>;
222
- /**
223
- * Esecuzione di una GET HTTP con eventualmente la gestione della cache qualora la chiamata termini con la convenzione "#cache"
224
- *
225
- * @param {string} url URL su cui effettuare la chiamata
226
- * @param {HttpParams} params Parametri della chiamata
227
- * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
228
- * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
229
- * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
230
- * @param {Function} errorCallback Callback chiamato in caso di errore
231
- *
232
- * @returns {Observable<T>} Observable che contiene il risultato della chiamata
233
- */
234
- get<T>(url: string, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean, errorCallback?: Function): Observable<T>;
235
- /**
236
- * Esecuzione di una GET HTTP con eventualmente la gestione della cache qualora la chiamata termini con la convenzione "#cache"
237
- *
238
- * Caso specifico di chiamata che deve restituire un Blob o un ArrayBuffer nativo da elaborare
239
- *
240
- * @param {string} url URL su cui effettuare la chiamata
241
- * @param {HttpParams} params Parametri della chiamata
242
- * @param {"arraybuffer"| "blob"} type Tipo di ritorno richiesto
243
- * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
244
- * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
245
- * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
246
- * @param {Function} errorCallback Callback chiamato in caso di errore
247
- *
248
- * @returns {Observable<Blob | ArrayBuffer>} Observable che contiene il risultato della chiamata
249
- */
250
- getRaw(url: string, params?: HttpParams, type?: "arraybuffer" | "blob", transaction?: string, succesfulResultMandatory?: boolean, errorCallback?: any): Observable<Blob | ArrayBuffer>;
251
- /**
252
- * Esecuzione di una POST HTTP
253
- *
254
- * @param {string} url URL su cui effettuare la chiamata
255
- * @param {any} bodyData DTO per la chiamata
256
- * @param {HttpParams} params Parametri della chiamata
257
- * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
258
- * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
259
- * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
260
- *
261
- * @returns {Observable<T>} Observable che contiene il risultato della chiamata
262
- */
263
- post<T>(url: string, bodyData: any, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean): Observable<T>;
264
- /**
265
- * Esecuzione di una DELETE HTTP
266
- *
267
- * @param {string} url URL su cui effettuare la chiamata
268
- * @param {HttpParams} params Parametri della chiamata
269
- * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
270
- * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
271
- * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
272
- *
273
- * @returns {Observable<T>} Observable che contiene il risultato della chiamata
274
- */
275
- delete<T>(url: string, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean): Observable<T>;
276
- /**
277
- * Esecuzione di una PUT HTTP
278
- *
279
- * @param {string} url URL su cui effettuare la chiamata
280
- * @param {any} bodyData DTO per la chiamata
281
- * @param {HttpParams} params Parametri della chiamata
282
- * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
283
- * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
284
- * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
285
- *
286
- * @returns {Observable<T>} Observable che contiene il risultato della chiamata
287
- */
288
- put<T>(url: string, bodyData: any, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean): Observable<T>;
289
- /**
290
- * Esecuzione di una POST HTTP
291
- *
292
- * Casistica particolare in cui bisogna anche inviare dei File
293
- *
294
- * @param {string} url URL su cui effettuare la chiamata
295
- * @param {any} bodyData DTO per la chiamata
296
- * @param {File[] | File} fileArrayOrFile Singolo file o lista di file da inviare. Il tipo **File** è quello nativo del Javascript
297
- *
298
- * @returns {Observable<T>} Observable che contiene il risultato della chiamata
299
- */
300
- postwithFiles<T>(url: string, bodyData: any, fileArrayOrFile: File[] | File, params?: HttpParams, succesfulResultMandatory?: boolean, onError?: () => void): Observable<T>;
301
- /**
302
- * Esecuzione di una POST HTTP
303
- *
304
- * Casistica particolare in cui viene restituito un file gestito come ObjectURL il cui URL si può gestire dal parametro di callback **getFileCallback**.
305
- * La chiamata non ha un tipo restituito in quanto il risultato dev'essere gestito attraverso la callback **getFileCallback**
306
- *
307
- * @param {string} url URL su cui effettuare la chiamata
308
- * @param {K} bodyData DTO per la chiamata
309
- * @param {string} filename Nome del file che si sta richiedendo, rimane lato Frontend e serve per assegnare arbitrariamente un nome al file restituito, se vuoto viene utilizzata la Content-Disposition della risposta
310
- * @param {Function} getFileCallback Callback a due parametri (url: string, filename: string) per gestire il risultato del file richiesto. **Utilizzare UtilityService.fileDownload** di @esfaenza/extensions
311
- * @param {Function} afterGetFile Callback da chiamare dopo aver gestito la risposta del **getFileCallback**, in caso **handleError** fosse **false** verrà richiamato anche in caso di errore
312
- * @param {boolean} handleError Indica se di default gli errori devono essere gestiti dalla libreria o se devono essere ignorati
313
- */
314
- postGetFile<K>(url: string, bodyData: K, filename: string, getFileCallback: (url: string, filename: string) => any, afterGetFile?: () => any, handleError?: boolean, pars?: HttpParams): Promise<void>;
315
- /**
316
- * Esecuzione di una GET HTTP
317
- *
318
- * Casistica particolare in cui viene restituito un file gestito come ObjectURL il cui URL si può gestire dal parametro di callback **getFileCallback**.
319
- * La chiamata non ha un tipo restituito in quanto il risultato dev'essere gestito attraverso la callback **getFileCallback**
320
- *
321
- * @param {string} url URL su cui effettuare la chiamata
322
- * @param {HttpParams} params Parametri della chiamata
323
- * @param {string} filename Nome del file che si sta richiedendo, rimane lato Frontend e serve per assegnare arbitrariamente un nome al file restituito, se vuoto viene utilizzata la Content-Disposition della risposta
324
- * @param {Function} getFileCallback Callback a due parametri (url: string, filename: string) per gestire il risultato del file richiesto. **Utilizzare UtilityService.fileDownload** di @esfaenza/extensions
325
- * @param {Function} afterGetFile Callback da chiamare dopo aver gestito la risposta del **getFileCallback**, in caso **handleError** fosse **false** verrà richiamato anche in caso di errore
326
- * @param {boolean} handleError Indica se di default gli errori devono essere gestiti dalla libreria o se devono essere ignorati
327
- */
328
- getFile(url: string, params: HttpParams, filename: string, getFileCallback: (url: string, filename: string) => any, afterGetFile?: () => any, handleError?: boolean): Promise<void>;
329
- /**
330
- * Download nativo di un file. Internamente utilizza il pattern **window.location.href = "..."**
331
- *
332
- * @param {string} url URL su cui effettuare la chiamata
333
- * @param {HttpParams} params Parametri della chiamata
334
- */
335
- getFileNative(url: string, params?: HttpParams): void;
336
- /**
337
- * Esecuzione di una GET di un file che emette i vari eventi di progresso di download.
338
- * Utilizzarla per overridare la dialog nativa di progress del browser e sostituirla con qualcosa tipo quello che fa MEGA.
339
- *
340
- * In caso si voglia ottenere il risultato nativo del browser del download utilizzare **getFileNative(url, pars)**
341
- *
342
- * @param {string} url URL su cui effettuare la chiamata
343
- * @param {HttpParams} params Parametri della chiamata
344
- * @param {Function} getFileCallback Callback a due parametri (url: string, filename: string) per gestire il risultato del file richiesto. **Utilizzare UtilityService.fileDownload** di @esfaenza/extensions
345
- *
346
- * @returns {Observable<Download>} Observable dei vari step di progresso del download
347
- */
348
- getFileWithProgress(url: string, params: HttpParams, getFileCallback: (url: string, filename: string) => any): Observable<Download>;
349
- /**
350
- * Riconosce se l'evento HTTP è di tipo **HttpResponse** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
351
- */
352
- private isHttpResponse;
353
- /**
354
- * Riconosce se l'evento HTTP è di tipo **HttpProgressEvent** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
355
- */
356
- private isHttpProgressEvent;
357
- /**
358
- * Gestione dell'inizio di una chiamata ad un certo URL, viene generato un GUID da assegnarci, controllata la scadenza della cache,
359
- * e eventualmente loggato il fatto che sta per essere effettuata una chiamata HTTP
360
- *
361
- * @param {string} url Url a cui effettuare la chiamata
362
- * @returns {string} GUID assegnato alla chiamata
363
- */
364
- private defaultStartCall;
365
- /**
366
- * Dato un url vengono controllate le informazioni su tutti gli url da invalidare collegati all'url chiamato e, se presenti in cache, invalidati
367
- *
368
- * @param {string} url URL per cui controllare se ci sono chiamate in cache da invalidare
369
- */
370
- private checkCacheInvalidation;
371
- /**
372
- * Finalizzazione di una chiamata
373
- *
374
- * @param {string} guid GUID collegato alla chiamata appena terminata
375
- * @param {boolean} persistCacheIfIdle Effettua il persist della cache HTTP solo se non ci sono altre chiamate in corso, per evitare
376
- * che mi cambi sotto l'oggetto di cache mentre sto salvando le informazioni
377
- */
378
- private tryFinalizeByGuid;
379
- /**
380
- * Helper che dato un unico File o una lista di File crea un oggetto FormData che può essere inviato comodamente
381
- * ad un backend ASP.NET da cui si potrà accedere a Request.Form.Files
382
- *
383
- * @param {File | File[]} fileArrayOrFile Singolo File o lista di File. N.B: nella firma della funzione viene considerato **any** per fare test sulle proprietà
384
- * invece che fare test con l'**istanceof**
385
- *
386
- * @returns {FormData} FormData contenente tutti i file passati
387
- */
388
- private getFilesFormData;
389
- /**
390
- * Helper che in base ai parametri disponibili genera gli Header HTTP per la chiamata da effettuare
391
- *
392
- * @param {string} contentType Indica se aggiungere agli header "Content-Type", valorizzato al valore del parametro
393
- * @param {string} accept Indica se aggiungere agli header "Accept", valorizzato al valore del parametro
394
- * @param {boolean} includeAuth Indica se aggiungere agli header "Authorization", valorizzato col token recuperato dall'hook **retrieveAccessToken** della classe di estensione
395
- * @param {string} transactionId Indica se aggiungere agli header "X-TX-ID", valorizzato al valore del parametro
396
- *
397
- * @returns {HttpHeaders} Header generati in base ai parametri
398
- */
399
- private getHeaders;
400
- /**
401
- * Gestione di default degli errori
402
- *
403
- * @param {any} res Risultato della chiamata effettuata
404
- * @param {string} guid Identificativo GUID della chiamata effettuata
405
- */
406
- private onError;
407
- /**
408
- * Dato un errore restituisce una promise con la stringa finale dell'errore in modo da poter fare un await
409
- *
410
- * @param {any} err Errore da controllare
411
- *
412
- * @returns {Promise<string>} Promise che risolve con la stringa finale dell'errore
413
- */
414
- private getHttpErrorText;
415
- /**
416
- * Riconosce se l'oggetto è di tipo **CallResult** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
417
- *
418
- * @param {any} err Errore da controllare
419
- */
420
- private isCallResult;
421
- /**
422
- * Riconosce se l'errore è di tipo **HttpErrorResponse** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
423
- *
424
- * @param {any} err Errore da controllare
425
- */
426
- private isHttpErrorResponse;
427
- /**
428
- * Riconosce se l'errore è di tipo **TypeError** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
429
- *
430
- * @param {any} err Errore da controllare
431
- */
432
- private isTypeError;
433
- /**
434
- * Come dice il nome, registra un errore e restituisce un Observable vuoto come risultato della chiamata
435
- *
436
- * @param {any} res Risultato della chiamata effettuata
437
- * @param {string} guid Identificativo GUID della chiamata effettuata
438
- * @param {boolean} handleError Indica se gestire l'errore via libreria o se limitarsi a restituire l'Observable vuoto
439
- *
440
- * @returns {Observable<any>} Observable vuoto
441
- */
442
- private registerErrorAndReturnEmptyObservable;
443
- /**
444
- * Dato un Url e dei parametri cerca di recuperare l'eventuale oggetto già salvato in cache con le informazioni base della cache stessa
445
- *
446
- * @param {string} url URL su cui effettuare la chiamata
447
- * @param {HttpParams} params Parametri della chiamata (nulli in caso di POST)
448
- *
449
- * @returns {CacheInfos} Oggetto contenente le informazioni sulla cache per l'oggetto specificato
450
- */
451
- private tryGetCacheInformations;
452
- /**
453
- * Inserisce un oggetto nella cache appropriata in base alle informazioni contenute nel parametro **cacheInfos**
454
- *
455
- * @param {T} item Oggetto da inserire nella cache
456
- * @param {CacheInfos} cacheInfos Informazioni sulla cache recuperate da una chiamata precedente a **tryGetCacheInformations**
457
- */
458
- private cacheResponse;
459
- /**
460
- * Controlla se la cache per le chiamate senza expire time è scaduta
461
- *
462
- * @returns {boolean} **true** se la cache è scaduta e dev'essere ripulita, **false** altrimenti
463
- */
464
- private untimedCacheExpired;
465
- /**
466
- * Controlla se la cache per una chiamata che ha un tempo di vita ben definito è scaduta o meno
467
- *
468
- * @param {any} item Oggetto recuperato dalla cache a cui ho aggiunto la chiave interna __expire
469
- *
470
- * @returns {boolean} **true** se la cache è scaduta e dev'essere ripulita, **false** altrimenti
471
- */
472
- private timedCacheItemExpired;
473
- /**
474
- * Ripulisce la cache e imposta la prossima scadenza ad adesso + **CLIENT_CACHE_DURATION_S** (token valorizzato in fase di configurazione dalla proprietà **clientCacheDurationS** della classe **HttpServiceModuleConfig**)
475
- */
476
- resetHttpUntimedCacheStorage(): Promise<void>;
477
- /**
478
- * Ripulisce la cache delle chiamate con un tempo di expire definito
479
- */
480
- resetHttpTimedCacheStorage(): Promise<void>;
481
- /**
482
- * Genera una chiave per la cache delle chiamate in base ad URL e Parametri HTTP
483
- *
484
- * @param {string} url URL su cui effettuare la chiamata
485
- * @param {HttpParams} params Parametri della chiamata
486
- *
487
- * @returns {string} Chiave che rappresenta in maniera univoca la chiamata
488
- */
489
- private makeCacheKey;
490
- /**
491
- * Generazione GUID
492
- *
493
- * @returns {string} Nuovo GUID generato in maniera casuale
494
- */
495
- private getGUID;
496
- /**
497
- * Metodo per scrivere log a console qualora **DEBUG_MODE** risultasse **true**
498
- *
499
- * @param {string} message Messaggio di log
500
- */
501
- private log;
502
- /**
503
- * Helper per la localizzazione dei messaggi
504
- *
505
- * @param {string} message Messaggio da localizzare
506
- *
507
- * @returns {string} Messaggio localizzato
508
- */
509
- private loc;
510
- /**
511
- * Helper per lanciare la selezione di tutto quello che è relativo a un api di ricerca con AppSearch (di cui non utilizzo il tipo vero per ridurre le dipendenze)
512
- */
513
- getAll<T>(view: {
514
- items: T[];
515
- page: number;
516
- itemsperpageoverride: number;
517
- selection: {
518
- exclusions: T[];
519
- all: boolean;
520
- items: T[];
521
- };
522
- }, api: string, pars?: HttpParams, transaction?: string): Observable<T[]>;
523
- private hashObject;
524
- /*****************************************************************************************************************************************
525
- ***************************************************** TRANSACTION HELPERS ***************************************************************
526
- *****************************************************************************************************************************************/
527
- private GET_Trans_BeginTrans;
528
- private GET_Trans_CheckExecution;
529
- private GET_Trans_EndTrans;
530
- beginTransaction(executionKey: string, secondsTimeout?: number): Observable<string>;
531
- checkTransaction(executionKey: string): Observable<number>;
532
- endTransaction(transactionKey: string, transactionResult: boolean): Observable<string>;
533
- /*****************************************************************************************************************************************
534
- ***************************************************** ROBA PER HASHING ******************************************************************
535
- *****************************************************************************************************************************************/
536
- /**
537
- * Blacklist dei tipi da ignorare quando si effettua l'hashing degli oggetti
538
- */
539
- private objBlacklist;
540
- /**
541
- * Hash più semplice e più veloce dell'md5, ma meno sicuro
542
- *
543
- * Vedi https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
544
- *
545
- * @param {string} str Stringa di cui calcolare l'hash
546
- */
547
- private simpleHash;
548
- /**
549
- * Genera una stringa che identifica univocamente l'oggetto in questione
550
- *
551
- * @param {any} o Oggetto di cui calcolare la stringa univoca
552
- * @param {number} level Livello di ricorsione nel caso venga effettuato l'hash di un oggetto che contiene altri oggetti
553
- * @param {boolean} navigateFullDepth Indica se navigare l'oggetto per l'intera lunghezza. In caso contrario si ferma al secondo livello
554
- */
555
- private stringify;
556
- static ɵfac: i0.ɵɵFactoryDeclaration<HTTPService, [null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, null, { optional: true; }]>;
557
- static ɵprov: i0.ɵɵInjectableDeclaration<HTTPService>;
558
- }
559
-
560
- /**
561
- * Classe di configurazione per il Modulo della libreria
562
- */
563
- declare class HttpServiceModuleConfig {
564
- /**
565
- * Indica quali chiamate vengono invalidate da quali chiamate quando viene utilizzata una cache sulle risposte
566
- */
567
- httpInvalidation?: Record<string, string[]>;
568
- /**
569
- * Indica la durata della cache lato client (Browser), se utilizzata
570
- */
571
- clientCacheDurationS?: number;
572
- /**
573
- * Nome dell'applicazione che sta utilizzando la libreria, utilizzato per creare chiavi di cache specifiche per app
574
- */
575
- appName?: string;
576
- /**
577
- * Indica se la cache deve basarsi non solo sull'applicazione ma anche sull'utente connesso
578
- */
579
- cacheByUser?: boolean;
580
- /**
581
- * Abilita o disabilità la modalità di debug (Log a console)
582
- */
583
- debugMode?: boolean;
584
- }
585
-
586
- declare class HttpserviceModule {
587
- static forRoot(config?: HttpServiceModuleConfig): ModuleWithProviders<HttpserviceModule>;
588
- static ɵfac: i0.ɵɵFactoryDeclaration<HttpserviceModule, never>;
589
- static ɵmod: i0.ɵɵNgModuleDeclaration<HttpserviceModule, never, never, never>;
590
- static ɵinj: i0.ɵɵInjectorDeclaration<HttpserviceModule>;
591
- }
592
-
593
- export { APP_NAME, CACHE_BY_USER, CLIENT_CACHE_DURATION_S, Download, HTTPService, HTTP_DEBUG_MODE, HTTP_INVALIDATION, HttpServiceExtensions, HttpServiceModuleConfig, HttpserviceModule };
594
- export type { IHttpServiceExtensions };
4
+ /// <amd-module name="@esfaenza/httpservice" />
5
+ export * from './public-api';
@@ -0,0 +1,65 @@
1
+ import { IHttpServiceExtensions } from './IHttpServiceExtensions';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Classe d'estensione che permette di modificare il comportamento della libreria negli hook definiti da interfaccia, in modo da poterla adattare
5
+ * con un certo grado di customizzazione a qualsiasi struttura di frontend
6
+ */
7
+ export declare class HttpServiceExtensions implements IHttpServiceExtensions {
8
+ /**
9
+ * Hook per recuperare l'access token con cui effettuare le chiamate HTTP
10
+ */
11
+ retrieveAccessToken(): string;
12
+ /**
13
+ * Hook per recuperare l'Identity corrente in un oggetto generico con le informazioni di User e Tenant
14
+ */
15
+ retrieveIdentity(): {
16
+ IdUser: string;
17
+ Idtenant: string;
18
+ };
19
+ /**
20
+ * Hook per leggere dallo stato dell'applicazione se stiamo già venendo ridirezionati al login, in modo da non tentare di effettuare
21
+ * N redirect contemporaneamente qualora molte API fallissero allo stesso tempo nell'autenticazione
22
+ */
23
+ readRedirectingToLogin(): boolean;
24
+ /**
25
+ * Hook per scrivere nello stato dell'applicazione se stiamo effettuando un redirect al login o meno
26
+ */
27
+ writeRedirectingToLogin(status: boolean): void;
28
+ /**
29
+ * Hook per effettuare il redirect al login
30
+ */
31
+ redirectToLogin(): void;
32
+ /**
33
+ * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un errore, in modo da non tentare di gestire
34
+ * N errori contemporaneamente qualora molte API fallissero allo stesso tempo
35
+ */
36
+ readHandlingErrorStatus(): boolean;
37
+ /**
38
+ * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un errore o meno
39
+ */
40
+ writeHandlingErrorStatus(status: boolean): void;
41
+ /**
42
+ * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un redirect, in modo da non tentare di gestire
43
+ * N redirect contemporaneamente qualora molte API lo richiedessero allo stesso tempo
44
+ */
45
+ readRedirectionStatus(): boolean;
46
+ /**
47
+ * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un redirect o meno
48
+ */
49
+ writeRedirectionStatus(status: boolean): void;
50
+ /**
51
+ * Hook per indicare se l'applicazione può gestire eccezioni del tipo "NotConfigured" (444). Qualora l'applicazione che lo implementa dichiari di gestirle verrà chiamata
52
+ * la funzione **handleBlockingException** per ognuno di questi errori
53
+ */
54
+ handleNotConfiguredException(): boolean;
55
+ /**
56
+ * Hook per la gestione di un qualsiasi errore bloccante per l'operazione attuale, ma non fatale (Generalmente gestibile da dialog di avviso)
57
+ */
58
+ handleBlockingException(status: number, text: string): void;
59
+ /**
60
+ * Hook per la gestione di un qualsiasi errore fatale (Generalmente gestibile tramite navigazione a una pagina di errore custom per l'applicativo)
61
+ */
62
+ handleException(status: number | string, text: string): void;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<HttpServiceExtensions, never>;
64
+ static ɵprov: i0.ɵɵInjectableDeclaration<HttpServiceExtensions>;
65
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Classe di configurazione per il Modulo della libreria
3
+ */
4
+ export declare class HttpServiceModuleConfig {
5
+ /**
6
+ * Indica quali chiamate vengono invalidate da quali chiamate quando viene utilizzata una cache sulle risposte
7
+ */
8
+ httpInvalidation?: Record<string, string[]>;
9
+ /**
10
+ * Indica la durata della cache lato client (Browser), se utilizzata
11
+ */
12
+ clientCacheDurationS?: number;
13
+ /**
14
+ * Nome dell'applicazione che sta utilizzando la libreria, utilizzato per creare chiavi di cache specifiche per app
15
+ */
16
+ appName?: string;
17
+ /**
18
+ * Indica se la cache deve basarsi non solo sull'applicazione ma anche sull'utente connesso
19
+ */
20
+ cacheByUser?: boolean;
21
+ /**
22
+ * Abilita o disabilità la modalità di debug (Log a console)
23
+ */
24
+ debugMode?: boolean;
25
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Interfaccia per la classe d'estensione che permette di modificare il comportamento della libreria negli hook definiti da interfaccia, in modo da poterla adattare
3
+ * con un certo grado di customizzazione a qualsiasi struttura di frontend
4
+ */
5
+ export interface IHttpServiceExtensions {
6
+ /**
7
+ * Hook per recuperare l'access token con cui effettuare le chiamate HTTP
8
+ */
9
+ retrieveAccessToken(): string;
10
+ /**
11
+ * Hook per recuperare l'Identity corrente in un oggetto generico con le informazioni di User e Tenant
12
+ */
13
+ retrieveIdentity(): {
14
+ IdUser: string;
15
+ Idtenant: string;
16
+ };
17
+ /**
18
+ * Hook per leggere dallo stato dell'applicazione se stiamo già venendo ridirezionati al login, in modo da non tentare di effettuare
19
+ * 10 redirect contemporaneamente qualora molte API fallissero allo stesso tempo nell'autenticazione
20
+ */
21
+ readRedirectingToLogin(): boolean;
22
+ /**
23
+ * Hook per scrivere nello stato dell'applicazione se stiamo effettuando un redirect al login o meno
24
+ */
25
+ writeRedirectingToLogin(status: boolean): any;
26
+ /**
27
+ * Hook per effettuare il redirect al login
28
+ */
29
+ redirectToLogin(): void;
30
+ /**
31
+ * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un errore, in modo da non tentare di gestire
32
+ * N errori contemporaneamente qualora molte API fallissero allo stesso tempo
33
+ */
34
+ readHandlingErrorStatus(): boolean;
35
+ /**
36
+ * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un errore o meno
37
+ */
38
+ writeHandlingErrorStatus(status: boolean): any;
39
+ /**
40
+ * Hook per leggere dallo stato dell'applicazione se stiamo già gestendo un redirect, in modo da non tentare di gestire
41
+ * N redirect contemporaneamente qualora molte API lo richiedessero allo stesso tempo
42
+ */
43
+ readRedirectionStatus(): boolean;
44
+ /**
45
+ * Hook per scrivere nello stato dell'applicazione se stiamo gestendo un redirect o meno
46
+ */
47
+ writeRedirectionStatus(status: boolean): void;
48
+ /**
49
+ * Hook per indicare se l'applicazione può gestire eccezioni del tipo "NotConfigured" (444). Qualora l'applicazione che lo implementa dichiari di gestirle verrà chiamata
50
+ * la funzione **handleBlockingException** per ognuno di questi errori
51
+ */
52
+ handleNotConfiguredException(): boolean;
53
+ /**
54
+ * Hook per la gestione di un qualsiasi errore bloccante per l'operazione attuale, ma non fatale (Generalmente gestibile da dialog di avviso)
55
+ */
56
+ handleBlockingException(status: number, text: string): any;
57
+ /**
58
+ * Hook per la gestione di un qualsiasi errore fatale (Generalmente gestibile tramite navigazione a una pagina di errore custom per l'applicativo)
59
+ */
60
+ handleException(status: number, text: string): any;
61
+ }
@@ -0,0 +1,9 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { HttpServiceModuleConfig } from './config/HttpServiceModuleConfig';
3
+ import * as i0 from "@angular/core";
4
+ export declare class HttpserviceModule {
5
+ static forRoot(config?: HttpServiceModuleConfig): ModuleWithProviders<HttpserviceModule>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<HttpserviceModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<HttpserviceModule, never, never, never>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<HttpserviceModule>;
9
+ }
@@ -0,0 +1,405 @@
1
+ import { HttpClient, HttpParams } from "@angular/common/http";
2
+ import { CacheService } from "@esfaenza/preferences";
3
+ import { BaseLocalization } from "@esfaenza/localizations";
4
+ import { Observable, Subject } from "rxjs";
5
+ import { HttpServiceExtensions } from './config/HttpServiceExtensions';
6
+ import { Download } from './models/Download';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Servizio utilizzato per effettuare qualsiasi tipo di chiamata HTTP dall'applicazione, gestisce errori e cache delle risposte nativamente e ne può essere
10
+ * esteso/modificato il comportamento implementando la classe di "hook" **IHttpServiceExtensions** e registrandola nel provider della classe **HttpServiceExtensions**
11
+ */
12
+ export declare class HTTPService {
13
+ private EXTENSION_CLASS;
14
+ private HTTP_INVALIDATION;
15
+ private CLIENT_CACHE_DURATION_S;
16
+ private CACHE_BY_USER;
17
+ private HTTP_DEBUG_MODE;
18
+ private bc;
19
+ private http;
20
+ private localStorage;
21
+ /** Cache dello stato delle chiamate HTTP attualmente effettuate. Ogni chiamata è rappresentata da un GUID e lo status assume valore **false** solo sugli errori */
22
+ private callStatus;
23
+ /** Nome della cache in cui vengono storicizzate le informazioni sulle risposte delle chiamate sotto forma di dictionary */
24
+ private localStorageHttpCacheKey;
25
+ /** Nome della cache in cui vengono storicizzate le informazioni sulle risposte delle chiamate sotto forma di dictionary, solo per le chiamate con un tempo definito di caching */
26
+ private localStorageHttpTimedCacheKey;
27
+ /** Nome della cache in cui vengono storicizzate le informazioni sullo scadere della cache stessa */
28
+ private localStorageHttpCacheExpireKey;
29
+ /** Identità collegata al token di autenticazione da usare, richiesta al programma che utilizza la libreria attraverso l'hook **retrieveIdentity** della **HttpServiceExtensions** */
30
+ private me;
31
+ /** Indica che la cache a tempo dev'essere persistita il prima possibile */
32
+ private PersistTimedCacheASAP;
33
+ /** Indica che la cache senza limiti di tempo dev'essere persistita il prima possibile */
34
+ private PersistUntimedCacheASAP;
35
+ /** Subject emesso quando il servizio http si stabilizza, cioè quando non c'è nessuna chiamata pending o in corso da qualche istante */
36
+ Stabilized: Subject<true>;
37
+ /**
38
+ * Implementazione della classe di estensione per collegare i comportamenti della libreria all'applicazione in cui è usata.
39
+ *
40
+ * Se è stato effettuato il provide della classe **HttpServiceExtensions** verrà usato quel provider, altrimenti verrà creata una nuova istanza di default
41
+ */
42
+ private ExtensionsImpl;
43
+ /** Lista delle ultime 3 chiamate completate con successo in ordine di completamento (in posizione 0 c'è l'ultima completata eccetera...) */
44
+ LastThreeCompletedCalls: {
45
+ api: string;
46
+ requestJson: string;
47
+ responseJson: any;
48
+ }[];
49
+ private CacheInitialized;
50
+ /**
51
+ * @ignore
52
+ */
53
+ constructor(EXTENSION_CLASS: HttpServiceExtensions, HTTP_INVALIDATION: any, CLIENT_CACHE_DURATION_S: any, CACHE_BY_USER: boolean, HTTP_DEBUG_MODE: boolean, bc: BaseLocalization, http: HttpClient, localStorage: CacheService);
54
+ setAppConfig(myconfig: {
55
+ AppData: {
56
+ ModuleId: string;
57
+ ModuleDefId: number;
58
+ ComponentEnvironment: string;
59
+ ComponentVersion: string;
60
+ ModuleDescription: string;
61
+ };
62
+ }): void;
63
+ /**
64
+ * Se vedo che ci sono elementi salvati nel localStorage provo a toglierli e a risalvarli via preference.
65
+ * Nel caso migliore li sposto dal localStorage al DB di preference, nel caso peggiore li tolgo e li risalvo nel localStorage
66
+ */
67
+ private adjustOldStorageSystem;
68
+ getlocaleObservable(): Observable<string>;
69
+ /**
70
+ * Esecuzione di una GET HTTP con eventualmente la gestione della cache qualora la chiamata termini con la convenzione "#cache"
71
+ *
72
+ * @param {string} url URL su cui effettuare la chiamata
73
+ * @param {HttpParams} params Parametri della chiamata
74
+ * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
75
+ * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
76
+ * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
77
+ * @param {Function} errorCallback Callback chiamato in caso di errore
78
+ *
79
+ * @returns {Observable<T>} Observable che contiene il risultato della chiamata
80
+ */
81
+ get<T>(url: string, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean, errorCallback?: Function): Observable<T>;
82
+ /**
83
+ * Esecuzione di una GET HTTP con eventualmente la gestione della cache qualora la chiamata termini con la convenzione "#cache"
84
+ *
85
+ * Caso specifico di chiamata che deve restituire un Blob o un ArrayBuffer nativo da elaborare
86
+ *
87
+ * @param {string} url URL su cui effettuare la chiamata
88
+ * @param {HttpParams} params Parametri della chiamata
89
+ * @param {"arraybuffer"| "blob"} type Tipo di ritorno richiesto
90
+ * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
91
+ * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
92
+ * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
93
+ * @param {Function} errorCallback Callback chiamato in caso di errore
94
+ *
95
+ * @returns {Observable<Blob | ArrayBuffer>} Observable che contiene il risultato della chiamata
96
+ */
97
+ getRaw(url: string, params?: HttpParams, type?: "arraybuffer" | "blob", transaction?: string, succesfulResultMandatory?: boolean, errorCallback?: any): Observable<Blob | ArrayBuffer>;
98
+ /**
99
+ * Esecuzione di una POST HTTP
100
+ *
101
+ * @param {string} url URL su cui effettuare la chiamata
102
+ * @param {any} bodyData DTO per la chiamata
103
+ * @param {HttpParams} params Parametri della chiamata
104
+ * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
105
+ * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
106
+ * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
107
+ *
108
+ * @returns {Observable<T>} Observable che contiene il risultato della chiamata
109
+ */
110
+ post<T>(url: string, bodyData: any, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean): Observable<T>;
111
+ /**
112
+ * Esecuzione di una DELETE HTTP
113
+ *
114
+ * @param {string} url URL su cui effettuare la chiamata
115
+ * @param {HttpParams} params Parametri della chiamata
116
+ * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
117
+ * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
118
+ * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
119
+ *
120
+ * @returns {Observable<T>} Observable che contiene il risultato della chiamata
121
+ */
122
+ delete<T>(url: string, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean): Observable<T>;
123
+ /**
124
+ * Esecuzione di una PUT HTTP
125
+ *
126
+ * @param {string} url URL su cui effettuare la chiamata
127
+ * @param {any} bodyData DTO per la chiamata
128
+ * @param {HttpParams} params Parametri della chiamata
129
+ * @param {string} transaction Codice transazione collegato a questa chiamata. Viene inserito nell'Header "X-TX-ID" e lato Backend dovrà essere gestito di conseguenza
130
+ * @param {boolean} succesfulResultMandatory Indica che questa chiamata deve assolutamente andare bene. In caso contrario viene fisicamente fatto il throw che può essere
131
+ * raccolto da chi usa la libreria nella pipe "onError" dell'Observable restituito ed essere gestito in maniera non standard
132
+ *
133
+ * @returns {Observable<T>} Observable che contiene il risultato della chiamata
134
+ */
135
+ put<T>(url: string, bodyData: any, params?: HttpParams, transaction?: string, succesfulResultMandatory?: boolean): Observable<T>;
136
+ /**
137
+ * Esecuzione di una POST HTTP
138
+ *
139
+ * Casistica particolare in cui bisogna anche inviare dei File
140
+ *
141
+ * @param {string} url URL su cui effettuare la chiamata
142
+ * @param {any} bodyData DTO per la chiamata
143
+ * @param {File[] | File} fileArrayOrFile Singolo file o lista di file da inviare. Il tipo **File** è quello nativo del Javascript
144
+ *
145
+ * @returns {Observable<T>} Observable che contiene il risultato della chiamata
146
+ */
147
+ postwithFiles<T>(url: string, bodyData: any, fileArrayOrFile: File[] | File, params?: HttpParams, succesfulResultMandatory?: boolean, onError?: () => void): Observable<T>;
148
+ /**
149
+ * Esecuzione di una POST HTTP
150
+ *
151
+ * Casistica particolare in cui viene restituito un file gestito come ObjectURL il cui URL si può gestire dal parametro di callback **getFileCallback**.
152
+ * La chiamata non ha un tipo restituito in quanto il risultato dev'essere gestito attraverso la callback **getFileCallback**
153
+ *
154
+ * @param {string} url URL su cui effettuare la chiamata
155
+ * @param {K} bodyData DTO per la chiamata
156
+ * @param {string} filename Nome del file che si sta richiedendo, rimane lato Frontend e serve per assegnare arbitrariamente un nome al file restituito, se vuoto viene utilizzata la Content-Disposition della risposta
157
+ * @param {Function} getFileCallback Callback a due parametri (url: string, filename: string) per gestire il risultato del file richiesto. **Utilizzare UtilityService.fileDownload** di @esfaenza/extensions
158
+ * @param {Function} afterGetFile Callback da chiamare dopo aver gestito la risposta del **getFileCallback**, in caso **handleError** fosse **false** verrà richiamato anche in caso di errore
159
+ * @param {boolean} handleError Indica se di default gli errori devono essere gestiti dalla libreria o se devono essere ignorati
160
+ */
161
+ postGetFile<K>(url: string, bodyData: K, filename: string, getFileCallback: (url: string, filename: string) => any, afterGetFile?: () => any, handleError?: boolean, pars?: HttpParams): Promise<void>;
162
+ /**
163
+ * Esecuzione di una GET HTTP
164
+ *
165
+ * Casistica particolare in cui viene restituito un file gestito come ObjectURL il cui URL si può gestire dal parametro di callback **getFileCallback**.
166
+ * La chiamata non ha un tipo restituito in quanto il risultato dev'essere gestito attraverso la callback **getFileCallback**
167
+ *
168
+ * @param {string} url URL su cui effettuare la chiamata
169
+ * @param {HttpParams} params Parametri della chiamata
170
+ * @param {string} filename Nome del file che si sta richiedendo, rimane lato Frontend e serve per assegnare arbitrariamente un nome al file restituito, se vuoto viene utilizzata la Content-Disposition della risposta
171
+ * @param {Function} getFileCallback Callback a due parametri (url: string, filename: string) per gestire il risultato del file richiesto. **Utilizzare UtilityService.fileDownload** di @esfaenza/extensions
172
+ * @param {Function} afterGetFile Callback da chiamare dopo aver gestito la risposta del **getFileCallback**, in caso **handleError** fosse **false** verrà richiamato anche in caso di errore
173
+ * @param {boolean} handleError Indica se di default gli errori devono essere gestiti dalla libreria o se devono essere ignorati
174
+ */
175
+ getFile(url: string, params: HttpParams, filename: string, getFileCallback: (url: string, filename: string) => any, afterGetFile?: () => any, handleError?: boolean): Promise<void>;
176
+ /**
177
+ * Download nativo di un file. Internamente utilizza il pattern **window.location.href = "..."**
178
+ *
179
+ * @param {string} url URL su cui effettuare la chiamata
180
+ * @param {HttpParams} params Parametri della chiamata
181
+ */
182
+ getFileNative(url: string, params?: HttpParams): void;
183
+ /**
184
+ * Esecuzione di una GET di un file che emette i vari eventi di progresso di download.
185
+ * Utilizzarla per overridare la dialog nativa di progress del browser e sostituirla con qualcosa tipo quello che fa MEGA.
186
+ *
187
+ * In caso si voglia ottenere il risultato nativo del browser del download utilizzare **getFileNative(url, pars)**
188
+ *
189
+ * @param {string} url URL su cui effettuare la chiamata
190
+ * @param {HttpParams} params Parametri della chiamata
191
+ * @param {Function} getFileCallback Callback a due parametri (url: string, filename: string) per gestire il risultato del file richiesto. **Utilizzare UtilityService.fileDownload** di @esfaenza/extensions
192
+ *
193
+ * @returns {Observable<Download>} Observable dei vari step di progresso del download
194
+ */
195
+ getFileWithProgress(url: string, params: HttpParams, getFileCallback: (url: string, filename: string) => any): Observable<Download>;
196
+ /**
197
+ * Riconosce se l'evento HTTP è di tipo **HttpResponse** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
198
+ */
199
+ private isHttpResponse;
200
+ /**
201
+ * Riconosce se l'evento HTTP è di tipo **HttpProgressEvent** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
202
+ */
203
+ private isHttpProgressEvent;
204
+ /**
205
+ * Gestione dell'inizio di una chiamata ad un certo URL, viene generato un GUID da assegnarci, controllata la scadenza della cache,
206
+ * e eventualmente loggato il fatto che sta per essere effettuata una chiamata HTTP
207
+ *
208
+ * @param {string} url Url a cui effettuare la chiamata
209
+ * @returns {string} GUID assegnato alla chiamata
210
+ */
211
+ private defaultStartCall;
212
+ /**
213
+ * Dato un url vengono controllate le informazioni su tutti gli url da invalidare collegati all'url chiamato e, se presenti in cache, invalidati
214
+ *
215
+ * @param {string} url URL per cui controllare se ci sono chiamate in cache da invalidare
216
+ */
217
+ private checkCacheInvalidation;
218
+ /**
219
+ * Finalizzazione di una chiamata
220
+ *
221
+ * @param {string} guid GUID collegato alla chiamata appena terminata
222
+ * @param {boolean} persistCacheIfIdle Effettua il persist della cache HTTP solo se non ci sono altre chiamate in corso, per evitare
223
+ * che mi cambi sotto l'oggetto di cache mentre sto salvando le informazioni
224
+ */
225
+ private tryFinalizeByGuid;
226
+ /**
227
+ * Helper che dato un unico File o una lista di File crea un oggetto FormData che può essere inviato comodamente
228
+ * ad un backend ASP.NET da cui si potrà accedere a Request.Form.Files
229
+ *
230
+ * @param {File | File[]} fileArrayOrFile Singolo File o lista di File. N.B: nella firma della funzione viene considerato **any** per fare test sulle proprietà
231
+ * invece che fare test con l'**istanceof**
232
+ *
233
+ * @returns {FormData} FormData contenente tutti i file passati
234
+ */
235
+ private getFilesFormData;
236
+ /**
237
+ * Helper che in base ai parametri disponibili genera gli Header HTTP per la chiamata da effettuare
238
+ *
239
+ * @param {string} contentType Indica se aggiungere agli header "Content-Type", valorizzato al valore del parametro
240
+ * @param {string} accept Indica se aggiungere agli header "Accept", valorizzato al valore del parametro
241
+ * @param {boolean} includeAuth Indica se aggiungere agli header "Authorization", valorizzato col token recuperato dall'hook **retrieveAccessToken** della classe di estensione
242
+ * @param {string} transactionId Indica se aggiungere agli header "X-TX-ID", valorizzato al valore del parametro
243
+ *
244
+ * @returns {HttpHeaders} Header generati in base ai parametri
245
+ */
246
+ private getHeaders;
247
+ /**
248
+ * Gestione di default degli errori
249
+ *
250
+ * @param {any} res Risultato della chiamata effettuata
251
+ * @param {string} guid Identificativo GUID della chiamata effettuata
252
+ */
253
+ private onError;
254
+ /**
255
+ * Dato un errore restituisce una promise con la stringa finale dell'errore in modo da poter fare un await
256
+ *
257
+ * @param {any} err Errore da controllare
258
+ *
259
+ * @returns {Promise<string>} Promise che risolve con la stringa finale dell'errore
260
+ */
261
+ private getHttpErrorText;
262
+ /**
263
+ * Riconosce se l'oggetto è di tipo **CallResult** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
264
+ *
265
+ * @param {any} err Errore da controllare
266
+ */
267
+ private isCallResult;
268
+ /**
269
+ * Riconosce se l'errore è di tipo **HttpErrorResponse** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
270
+ *
271
+ * @param {any} err Errore da controllare
272
+ */
273
+ private isHttpErrorResponse;
274
+ /**
275
+ * Riconosce se l'errore è di tipo **TypeError** e, se sì, lo casta al tipo corretto per essere utilizzato correttamente nel blocco di codice successivo
276
+ *
277
+ * @param {any} err Errore da controllare
278
+ */
279
+ private isTypeError;
280
+ /**
281
+ * Come dice il nome, registra un errore e restituisce un Observable vuoto come risultato della chiamata
282
+ *
283
+ * @param {any} res Risultato della chiamata effettuata
284
+ * @param {string} guid Identificativo GUID della chiamata effettuata
285
+ * @param {boolean} handleError Indica se gestire l'errore via libreria o se limitarsi a restituire l'Observable vuoto
286
+ *
287
+ * @returns {Observable<any>} Observable vuoto
288
+ */
289
+ private registerErrorAndReturnEmptyObservable;
290
+ /**
291
+ * Dato un Url e dei parametri cerca di recuperare l'eventuale oggetto già salvato in cache con le informazioni base della cache stessa
292
+ *
293
+ * @param {string} url URL su cui effettuare la chiamata
294
+ * @param {HttpParams} params Parametri della chiamata (nulli in caso di POST)
295
+ *
296
+ * @returns {CacheInfos} Oggetto contenente le informazioni sulla cache per l'oggetto specificato
297
+ */
298
+ private tryGetCacheInformations;
299
+ /**
300
+ * Inserisce un oggetto nella cache appropriata in base alle informazioni contenute nel parametro **cacheInfos**
301
+ *
302
+ * @param {T} item Oggetto da inserire nella cache
303
+ * @param {CacheInfos} cacheInfos Informazioni sulla cache recuperate da una chiamata precedente a **tryGetCacheInformations**
304
+ */
305
+ private cacheResponse;
306
+ /**
307
+ * Controlla se la cache per le chiamate senza expire time è scaduta
308
+ *
309
+ * @returns {boolean} **true** se la cache è scaduta e dev'essere ripulita, **false** altrimenti
310
+ */
311
+ private untimedCacheExpired;
312
+ /**
313
+ * Controlla se la cache per una chiamata che ha un tempo di vita ben definito è scaduta o meno
314
+ *
315
+ * @param {any} item Oggetto recuperato dalla cache a cui ho aggiunto la chiave interna __expire
316
+ *
317
+ * @returns {boolean} **true** se la cache è scaduta e dev'essere ripulita, **false** altrimenti
318
+ */
319
+ private timedCacheItemExpired;
320
+ /**
321
+ * Ripulisce la cache e imposta la prossima scadenza ad adesso + **CLIENT_CACHE_DURATION_S** (token valorizzato in fase di configurazione dalla proprietà **clientCacheDurationS** della classe **HttpServiceModuleConfig**)
322
+ */
323
+ resetHttpUntimedCacheStorage(): Promise<void>;
324
+ /**
325
+ * Ripulisce la cache delle chiamate con un tempo di expire definito
326
+ */
327
+ resetHttpTimedCacheStorage(): Promise<void>;
328
+ /**
329
+ * Genera una chiave per la cache delle chiamate in base ad URL e Parametri HTTP
330
+ *
331
+ * @param {string} url URL su cui effettuare la chiamata
332
+ * @param {HttpParams} params Parametri della chiamata
333
+ *
334
+ * @returns {string} Chiave che rappresenta in maniera univoca la chiamata
335
+ */
336
+ private makeCacheKey;
337
+ /**
338
+ * Generazione GUID
339
+ *
340
+ * @returns {string} Nuovo GUID generato in maniera casuale
341
+ */
342
+ private getGUID;
343
+ /**
344
+ * Metodo per scrivere log a console qualora **DEBUG_MODE** risultasse **true**
345
+ *
346
+ * @param {string} message Messaggio di log
347
+ */
348
+ private log;
349
+ /**
350
+ * Helper per la localizzazione dei messaggi
351
+ *
352
+ * @param {string} message Messaggio da localizzare
353
+ *
354
+ * @returns {string} Messaggio localizzato
355
+ */
356
+ private loc;
357
+ /**
358
+ * Helper per lanciare la selezione di tutto quello che è relativo a un api di ricerca con AppSearch (di cui non utilizzo il tipo vero per ridurre le dipendenze)
359
+ */
360
+ getAll<T>(view: {
361
+ items: T[];
362
+ page: number;
363
+ itemsperpageoverride: number;
364
+ selection: {
365
+ exclusions: T[];
366
+ all: boolean;
367
+ items: T[];
368
+ };
369
+ }, api: string, pars?: HttpParams, transaction?: string): Observable<T[]>;
370
+ private hashObject;
371
+ /*****************************************************************************************************************************************
372
+ ***************************************************** TRANSACTION HELPERS ***************************************************************
373
+ *****************************************************************************************************************************************/
374
+ private GET_Trans_BeginTrans;
375
+ private GET_Trans_CheckExecution;
376
+ private GET_Trans_EndTrans;
377
+ beginTransaction(executionKey: string, secondsTimeout?: number): Observable<string>;
378
+ checkTransaction(executionKey: string): Observable<number>;
379
+ endTransaction(transactionKey: string, transactionResult: boolean): Observable<string>;
380
+ /*****************************************************************************************************************************************
381
+ ***************************************************** ROBA PER HASHING ******************************************************************
382
+ *****************************************************************************************************************************************/
383
+ /**
384
+ * Blacklist dei tipi da ignorare quando si effettua l'hashing degli oggetti
385
+ */
386
+ private objBlacklist;
387
+ /**
388
+ * Hash più semplice e più veloce dell'md5, ma meno sicuro
389
+ *
390
+ * Vedi https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
391
+ *
392
+ * @param {string} str Stringa di cui calcolare l'hash
393
+ */
394
+ private simpleHash;
395
+ /**
396
+ * Genera una stringa che identifica univocamente l'oggetto in questione
397
+ *
398
+ * @param {any} o Oggetto di cui calcolare la stringa univoca
399
+ * @param {number} level Livello di ricorsione nel caso venga effettuato l'hash di un oggetto che contiene altri oggetti
400
+ * @param {boolean} navigateFullDepth Indica se navigare l'oggetto per l'intera lunghezza. In caso contrario si ferma al secondo livello
401
+ */
402
+ private stringify;
403
+ static ɵfac: i0.ɵɵFactoryDeclaration<HTTPService, [null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, null, { optional: true; }]>;
404
+ static ɵprov: i0.ɵɵInjectableDeclaration<HTTPService>;
405
+ }
@@ -0,0 +1,8 @@
1
+ export declare class CacheInfos {
2
+ finalUrl: string;
3
+ cache: boolean;
4
+ cacheKey: string;
5
+ cacheTime: string;
6
+ cacheItem: any;
7
+ constructor(finalUrl: string, cache: boolean, cacheKey: string, cacheTime: string, cacheItem: any);
8
+ }
@@ -0,0 +1,5 @@
1
+ export declare class Download {
2
+ state: 'PENDING' | 'IN_PROGRESS' | 'DONE';
3
+ progress: number;
4
+ content: Blob | null;
5
+ }
@@ -0,0 +1,21 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Dizionario di invalidazioni delle chiamate HTTP
4
+ */
5
+ export declare const HTTP_INVALIDATION: InjectionToken<Record<string, string[]>>;
6
+ /**
7
+ * Durata della cache lato libreria dopo il quale la cache verrà ripulita
8
+ */
9
+ export declare const CLIENT_CACHE_DURATION_S: InjectionToken<number>;
10
+ /**
11
+ * Nome dell'APP utilizzato per creare le chiavi delle cache specifiche per l'applicazione corrente
12
+ */
13
+ export declare const APP_NAME: InjectionToken<string>;
14
+ /**
15
+ * Indica se utilizzare l'identificativo utente nella cache
16
+ */
17
+ export declare const CACHE_BY_USER: InjectionToken<boolean>;
18
+ /**
19
+ * Indica se fare log nella console ad ogni azione significativa
20
+ */
21
+ export declare const HTTP_DEBUG_MODE: InjectionToken<boolean>;
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@esfaenza/httpservice",
3
- "version": "19.2.26",
3
+ "version": "19.2.30",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
7
7
  "peerDependencies": {
8
- "@angular/common": "^19.2.15",
9
- "@angular/core": "^19.2.15",
10
- "@esfaenza/localizations": "^19.2.23",
11
- "@esfaenza/preferences": "^19.2.18"
8
+ "@angular/common": "^19.2.25",
9
+ "@angular/core": "^19.2.25",
10
+ "@esfaenza/localizations": "^19.2.28",
11
+ "@esfaenza/preferences": "^19.2.24"
12
12
  },
13
13
  "module": "fesm2022/esfaenza-httpservice.mjs",
14
14
  "typings": "index.d.ts",
@@ -0,0 +1,7 @@
1
+ export * from './lib/tokens';
2
+ export * from './lib/httpservice.service';
3
+ export * from './lib/httpservice.module';
4
+ export * from './lib/config/HttpServiceModuleConfig';
5
+ export * from './lib/config/IHttpServiceExtensions';
6
+ export * from './lib/config/HttpServiceExtensions';
7
+ export * from './lib/models/Download';