@esfaenza/httpservice 11.2.32 → 11.2.36

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.
@@ -18,6 +18,11 @@ export const Loc = {
18
18
  "Redirecting to Login, ignoring HTTP error on call": { "en-US": "Redirecting to Login, ignoring HTTP error on call", "it-IT": "Redireziono al login ignorando errori sulla chiamata", },
19
19
  "Already Handling an error, ignoring HTTP error on call": { "en-US": "Already Handling an error, ignoring HTTP error on call", "it-IT": "sto già gestendo un errore, ignoro quello corrente per la chiamata HTTP", },
20
20
  "Error 444 on call": { "en-US": "Error 444 on call", "it-IT": "Errore 444 su chiamata" },
21
- "Resource not found": { "en-US": "Resource not found", "it-IT": "Risorsa non trovata" }
21
+ "Resource not found": { "en-US": "Resource not found", "it-IT": "Risorsa non trovata" },
22
+ "Converted old storage system to new one": { "en-US": "Converted old storage system to new one", "it-IT": "Convertito il vecchio sistema di storicizzazione al nuovo" },
23
+ "Marking cache to be persisted as soon as possible": { "en-US": "Marking cache to be persisted as soon as possible", "it-IT": "Marco cache da persistere il prima possibile" },
24
+ "No more HTTP calls to be executed, entering idle state and persisting modified caches": { "en-US": "No more HTTP calls to be executed, entering idle state and persisting modified caches", "it-IT": "Nessun'altra chiamata HTTP dev'essere eseguita, entro in stato IDLE e persisto le cache modificate" },
25
+ "Caches succesfully persisted": { "en-US": "Caches succesfully persisted", "it-IT": "Le cache sono state persistite con successo" },
26
+ "Errors persisting modified caches": { "en-US": "Errors persisting modified caches", "it-IT": "Errori nella persistizione delle cache (esiste persistizione? boh...)" },
22
27
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cHNlcnZpY2Uuc2VydmljZS5sb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwc2VydmljZS9zcmMvbGliL2h0dHBzZXJ2aWNlLnNlcnZpY2UubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFFO0lBQ2QsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxHQUFHO0lBQ2xFLHNCQUFzQixFQUFFLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSx3QkFBd0IsR0FBRztJQUMvRixtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEdBQUc7SUFDL0YsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEdBQUc7SUFDN0UsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxHQUFHO0lBQ3BELDZCQUE2QixFQUFFLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE9BQU8sRUFBRSwrQkFBK0IsR0FBRztJQUNwSCxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEdBQUc7SUFDakYsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsV0FBVyxHQUFHO0lBQ2hFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsR0FBRztJQUN4RCxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEdBQUc7SUFDekQsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixHQUFHO0lBQ3pGLHdEQUF3RCxFQUFFLEVBQUUsT0FBTyxFQUFFLHdEQUF3RCxFQUFFLE9BQU8sRUFBRSwrQ0FBK0MsR0FBRztJQUMxTCxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEdBQUc7SUFDN0YsbURBQW1ELEVBQUUsRUFBRSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsT0FBTyxFQUFFLHNEQUFzRCxHQUFHO0lBQ3ZMLHdEQUF3RCxFQUFFLEVBQUUsT0FBTyxFQUFFLHdEQUF3RCxFQUFFLE9BQU8sRUFBRSx5RUFBeUUsR0FBRztJQUNwTixtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7SUFDeEYsb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFO0NBQzFGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogT2dnZXR0byBzdGF0aWNvIGRpIGxvY2FsaXp6YXppb25lIHBlciBpIG1lc3NhZ2dpXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTG9jID17XHJcbiAgICBcIlJlc3VsdCBmb3JcIjogeyBcImVuLVVTXCI6IFwiUmVzdWx0IGZvclwiLCBcIml0LUlUXCI6IFwiUmlzdWx0YXRvIHBlclwiLCB9LFxyXG4gICAgXCJyZXRyaWV2ZWQgZnJvbSBjYWNoZVwiOiB7IFwiZW4tVVNcIjogXCJyZXRyaWV2ZWQgZnJvbSBjYWNoZVwiLCBcIml0LUlUXCI6IFwicmVjdXBlcmF0byBkYWxsYSBjYWNoZVwiLCB9LFxyXG4gICAgXCJDYWNoZWQgcmVzdWx0IGZvclwiOiB7IFwiZW4tVVNcIjogXCJDYWNoZWQgcmVzdWx0IGZvclwiLCBcIml0LUlUXCI6IFwiTWVzc28gaW4gY2FjaGUgcmlzdWx0YXRvIHBlclwiLCB9LFxyXG4gICAgXCJTdGFydGluZyBjYWxsXCI6IHsgXCJlbi1VU1wiOiBcIlN0YXJ0aW5nIGNhbGxcIiwgXCJpdC1JVFwiOiBcIkluaXppbyBsYSBjaGlhbWF0YVwiLCB9LFxyXG4gICAgXCJhdCBVUkxcIjogeyBcImVuLVVTXCI6IFwiYXQgVVJMXCIsIFwiaXQtSVRcIjogXCJhbGwnVVJMXCIsIH0sXHJcbiAgICBcIkludmxhbGlkYXRpbmcgY2FjaGUgZWxlbWVudFwiOiB7IFwiZW4tVVNcIjogXCJJbnZsYWxpZGF0aW5nIGNhY2hlIGVsZW1lbnRcIiwgXCJpdC1JVFwiOiBcIkludmFsaWRvIGVsZW1lbnRvIGRlbGxhIGNhY2hlXCIsIH0sXHJcbiAgICBcIkZpbmFsaXppbmcgY2FsbFwiOiB7IFwiZW4tVVNcIjogXCJGaW5hbGl6aW5nIGNhbGxcIiwgXCJpdC1JVFwiOiBcIkZpbmFsaXp6byBjaGlhbWF0YVwiLCB9LFxyXG4gICAgXCJ3aXRoIHN0YXR1c1wiOiB7IFwiZW4tVVNcIjogXCJ3aXRoIHN0YXR1c1wiLCBcIml0LUlUXCI6IFwiY29uIHN0YXRvXCIsIH0sXHJcbiAgICBcIlN1Y2Nlc3NcIjogeyBcImVuLVVTXCI6IFwiU3VjY2Vzc1wiLCBcIml0LUlUXCI6IFwiU3VjY2Vzc3NvXCIsIH0sXHJcbiAgICBcIkZhaWx1cmVcIjogeyBcImVuLVVTXCI6IFwiRmFpbHVyZVwiLCBcIml0LUlUXCI6IFwiRmFsbGltZW50b1wiLCB9LFxyXG4gICAgXCJFcnJvciA0MDEgb24gY2FsbFwiOiB7IFwiZW4tVVNcIjogXCJFcnJvciA0MDEgb24gY2FsbFwiLCBcIml0LUlUXCI6IFwiRXJyb3JlIDQwMSBzdSBjaGlhbWF0YVwiLCB9LFxyXG4gICAgXCJ3aXRoIHJlZGlyZWN0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuIElnbm9yaW5nIHRoaXMgZXZlbnRcIjogeyBcImVuLVVTXCI6IFwid2l0aCByZWRpcmVjdCBhbHJlYWR5IGluIHByb2dyZXNzLiBJZ25vcmluZyB0aGlzIGV2ZW50XCIsIFwiaXQtSVRcIjogXCJjb24gcmVkaXJlemlvbmUgZ2nDoCBpbiBjb3Jzby4gSWdub3JvIGwnZXZlbnRvXCIsIH0sXHJcbiAgICBcInJlZGlyZWN0aW5nIHRvIGxvZ2luXCI6IHsgXCJlbi1VU1wiOiBcInJlZGlyZWN0aW5nIHRvIGxvZ2luXCIsIFwiaXQtSVRcIjogXCJyZWRpcmV6aW9ubyBhbCBsb2dpblwiLCB9LFxyXG4gICAgXCJSZWRpcmVjdGluZyB0byBMb2dpbiwgaWdub3JpbmcgSFRUUCBlcnJvciBvbiBjYWxsXCI6IHsgXCJlbi1VU1wiOiBcIlJlZGlyZWN0aW5nIHRvIExvZ2luLCBpZ25vcmluZyBIVFRQIGVycm9yIG9uIGNhbGxcIiwgXCJpdC1JVFwiOiBcIlJlZGlyZXppb25vIGFsIGxvZ2luIGlnbm9yYW5kbyBlcnJvcmkgc3VsbGEgY2hpYW1hdGFcIiwgfSxcclxuICAgIFwiQWxyZWFkeSBIYW5kbGluZyBhbiBlcnJvciwgaWdub3JpbmcgSFRUUCBlcnJvciBvbiBjYWxsXCI6IHsgXCJlbi1VU1wiOiBcIkFscmVhZHkgSGFuZGxpbmcgYW4gZXJyb3IsIGlnbm9yaW5nIEhUVFAgZXJyb3Igb24gY2FsbFwiLCBcIml0LUlUXCI6IFwic3RvIGdpw6AgZ2VzdGVuZG8gdW4gZXJyb3JlLCBpZ25vcm8gcXVlbGxvIGNvcnJlbnRlIHBlciBsYSBjaGlhbWF0YSBIVFRQXCIsIH0sXHJcbiAgICBcIkVycm9yIDQ0NCBvbiBjYWxsXCI6IHsgXCJlbi1VU1wiOiBcIkVycm9yIDQ0NCBvbiBjYWxsXCIsIFwiaXQtSVRcIjogXCJFcnJvcmUgNDQ0IHN1IGNoaWFtYXRhXCIgfSxcclxuICAgIFwiUmVzb3VyY2Ugbm90IGZvdW5kXCI6IHsgXCJlbi1VU1wiOiBcIlJlc291cmNlIG5vdCBmb3VuZFwiLCBcIml0LUlUXCI6IFwiUmlzb3JzYSBub24gdHJvdmF0YVwiIH1cclxufSJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cHNlcnZpY2Uuc2VydmljZS5sb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwc2VydmljZS9zcmMvbGliL2h0dHBzZXJ2aWNlLnNlcnZpY2UubG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFFO0lBQ2QsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxHQUFHO0lBQ2xFLHNCQUFzQixFQUFFLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSx3QkFBd0IsR0FBRztJQUMvRixtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEdBQUc7SUFDL0YsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEdBQUc7SUFDN0UsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxHQUFHO0lBQ3BELDZCQUE2QixFQUFFLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE9BQU8sRUFBRSwrQkFBK0IsR0FBRztJQUNwSCxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEdBQUc7SUFDakYsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsV0FBVyxHQUFHO0lBQ2hFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsR0FBRztJQUN4RCxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEdBQUc7SUFDekQsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixHQUFHO0lBQ3pGLHdEQUF3RCxFQUFFLEVBQUUsT0FBTyxFQUFFLHdEQUF3RCxFQUFFLE9BQU8sRUFBRSwrQ0FBK0MsR0FBRztJQUMxTCxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEdBQUc7SUFDN0YsbURBQW1ELEVBQUUsRUFBRSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsT0FBTyxFQUFFLHNEQUFzRCxHQUFHO0lBQ3ZMLHdEQUF3RCxFQUFFLEVBQUUsT0FBTyxFQUFFLHdEQUF3RCxFQUFFLE9BQU8sRUFBRSx5RUFBeUUsR0FBRztJQUNwTixtQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7SUFDeEYsb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFO0lBQ3ZGLHlDQUF5QyxFQUFFLEVBQUUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE9BQU8sRUFBRSwyREFBMkQsRUFBRTtJQUN2SyxtREFBbUQsRUFBRSxFQUFFLE9BQU8sRUFBRSxtREFBbUQsRUFBRSxPQUFPLEVBQUUsOENBQThDLEVBQUU7SUFDOUssdUZBQXVGLEVBQUUsRUFBRSxPQUFPLEVBQUUsdUZBQXVGLEVBQUUsT0FBTyxFQUFFLG9HQUFvRyxFQUFFO0lBQzVTLDhCQUE4QixFQUFFLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRTtJQUNuSSxtQ0FBbUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxPQUFPLEVBQUUsdUVBQXVFLEVBQUU7Q0FDMUssQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBPZ2dldHRvIHN0YXRpY28gZGkgbG9jYWxpenphemlvbmUgcGVyIGkgbWVzc2FnZ2lcclxuICovXHJcbmV4cG9ydCBjb25zdCBMb2MgPXtcclxuICAgIFwiUmVzdWx0IGZvclwiOiB7IFwiZW4tVVNcIjogXCJSZXN1bHQgZm9yXCIsIFwiaXQtSVRcIjogXCJSaXN1bHRhdG8gcGVyXCIsIH0sXHJcbiAgICBcInJldHJpZXZlZCBmcm9tIGNhY2hlXCI6IHsgXCJlbi1VU1wiOiBcInJldHJpZXZlZCBmcm9tIGNhY2hlXCIsIFwiaXQtSVRcIjogXCJyZWN1cGVyYXRvIGRhbGxhIGNhY2hlXCIsIH0sXHJcbiAgICBcIkNhY2hlZCByZXN1bHQgZm9yXCI6IHsgXCJlbi1VU1wiOiBcIkNhY2hlZCByZXN1bHQgZm9yXCIsIFwiaXQtSVRcIjogXCJNZXNzbyBpbiBjYWNoZSByaXN1bHRhdG8gcGVyXCIsIH0sXHJcbiAgICBcIlN0YXJ0aW5nIGNhbGxcIjogeyBcImVuLVVTXCI6IFwiU3RhcnRpbmcgY2FsbFwiLCBcIml0LUlUXCI6IFwiSW5pemlvIGxhIGNoaWFtYXRhXCIsIH0sXHJcbiAgICBcImF0IFVSTFwiOiB7IFwiZW4tVVNcIjogXCJhdCBVUkxcIiwgXCJpdC1JVFwiOiBcImFsbCdVUkxcIiwgfSxcclxuICAgIFwiSW52bGFsaWRhdGluZyBjYWNoZSBlbGVtZW50XCI6IHsgXCJlbi1VU1wiOiBcIkludmxhbGlkYXRpbmcgY2FjaGUgZWxlbWVudFwiLCBcIml0LUlUXCI6IFwiSW52YWxpZG8gZWxlbWVudG8gZGVsbGEgY2FjaGVcIiwgfSxcclxuICAgIFwiRmluYWxpemluZyBjYWxsXCI6IHsgXCJlbi1VU1wiOiBcIkZpbmFsaXppbmcgY2FsbFwiLCBcIml0LUlUXCI6IFwiRmluYWxpenpvIGNoaWFtYXRhXCIsIH0sXHJcbiAgICBcIndpdGggc3RhdHVzXCI6IHsgXCJlbi1VU1wiOiBcIndpdGggc3RhdHVzXCIsIFwiaXQtSVRcIjogXCJjb24gc3RhdG9cIiwgfSxcclxuICAgIFwiU3VjY2Vzc1wiOiB7IFwiZW4tVVNcIjogXCJTdWNjZXNzXCIsIFwiaXQtSVRcIjogXCJTdWNjZXNzc29cIiwgfSxcclxuICAgIFwiRmFpbHVyZVwiOiB7IFwiZW4tVVNcIjogXCJGYWlsdXJlXCIsIFwiaXQtSVRcIjogXCJGYWxsaW1lbnRvXCIsIH0sXHJcbiAgICBcIkVycm9yIDQwMSBvbiBjYWxsXCI6IHsgXCJlbi1VU1wiOiBcIkVycm9yIDQwMSBvbiBjYWxsXCIsIFwiaXQtSVRcIjogXCJFcnJvcmUgNDAxIHN1IGNoaWFtYXRhXCIsIH0sXHJcbiAgICBcIndpdGggcmVkaXJlY3QgYWxyZWFkeSBpbiBwcm9ncmVzcy4gSWdub3JpbmcgdGhpcyBldmVudFwiOiB7IFwiZW4tVVNcIjogXCJ3aXRoIHJlZGlyZWN0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuIElnbm9yaW5nIHRoaXMgZXZlbnRcIiwgXCJpdC1JVFwiOiBcImNvbiByZWRpcmV6aW9uZSBnacOgIGluIGNvcnNvLiBJZ25vcm8gbCdldmVudG9cIiwgfSxcclxuICAgIFwicmVkaXJlY3RpbmcgdG8gbG9naW5cIjogeyBcImVuLVVTXCI6IFwicmVkaXJlY3RpbmcgdG8gbG9naW5cIiwgXCJpdC1JVFwiOiBcInJlZGlyZXppb25vIGFsIGxvZ2luXCIsIH0sXHJcbiAgICBcIlJlZGlyZWN0aW5nIHRvIExvZ2luLCBpZ25vcmluZyBIVFRQIGVycm9yIG9uIGNhbGxcIjogeyBcImVuLVVTXCI6IFwiUmVkaXJlY3RpbmcgdG8gTG9naW4sIGlnbm9yaW5nIEhUVFAgZXJyb3Igb24gY2FsbFwiLCBcIml0LUlUXCI6IFwiUmVkaXJlemlvbm8gYWwgbG9naW4gaWdub3JhbmRvIGVycm9yaSBzdWxsYSBjaGlhbWF0YVwiLCB9LFxyXG4gICAgXCJBbHJlYWR5IEhhbmRsaW5nIGFuIGVycm9yLCBpZ25vcmluZyBIVFRQIGVycm9yIG9uIGNhbGxcIjogeyBcImVuLVVTXCI6IFwiQWxyZWFkeSBIYW5kbGluZyBhbiBlcnJvciwgaWdub3JpbmcgSFRUUCBlcnJvciBvbiBjYWxsXCIsIFwiaXQtSVRcIjogXCJzdG8gZ2nDoCBnZXN0ZW5kbyB1biBlcnJvcmUsIGlnbm9ybyBxdWVsbG8gY29ycmVudGUgcGVyIGxhIGNoaWFtYXRhIEhUVFBcIiwgfSxcclxuICAgIFwiRXJyb3IgNDQ0IG9uIGNhbGxcIjogeyBcImVuLVVTXCI6IFwiRXJyb3IgNDQ0IG9uIGNhbGxcIiwgXCJpdC1JVFwiOiBcIkVycm9yZSA0NDQgc3UgY2hpYW1hdGFcIiB9LFxyXG4gICAgXCJSZXNvdXJjZSBub3QgZm91bmRcIjogeyBcImVuLVVTXCI6IFwiUmVzb3VyY2Ugbm90IGZvdW5kXCIsIFwiaXQtSVRcIjogXCJSaXNvcnNhIG5vbiB0cm92YXRhXCIgfSxcclxuICAgIFwiQ29udmVydGVkIG9sZCBzdG9yYWdlIHN5c3RlbSB0byBuZXcgb25lXCI6IHsgXCJlbi1VU1wiOiBcIkNvbnZlcnRlZCBvbGQgc3RvcmFnZSBzeXN0ZW0gdG8gbmV3IG9uZVwiLCBcIml0LUlUXCI6IFwiQ29udmVydGl0byBpbCB2ZWNjaGlvIHNpc3RlbWEgZGkgc3RvcmljaXp6YXppb25lIGFsIG51b3ZvXCIgfSxcclxuICAgIFwiTWFya2luZyBjYWNoZSB0byBiZSBwZXJzaXN0ZWQgYXMgc29vbiBhcyBwb3NzaWJsZVwiOiB7IFwiZW4tVVNcIjogXCJNYXJraW5nIGNhY2hlIHRvIGJlIHBlcnNpc3RlZCBhcyBzb29uIGFzIHBvc3NpYmxlXCIsIFwiaXQtSVRcIjogXCJNYXJjbyBjYWNoZSBkYSBwZXJzaXN0ZXJlIGlsIHByaW1hIHBvc3NpYmlsZVwiIH0sXHJcbiAgICBcIk5vIG1vcmUgSFRUUCBjYWxscyB0byBiZSBleGVjdXRlZCwgZW50ZXJpbmcgaWRsZSBzdGF0ZSBhbmQgcGVyc2lzdGluZyBtb2RpZmllZCBjYWNoZXNcIjogeyBcImVuLVVTXCI6IFwiTm8gbW9yZSBIVFRQIGNhbGxzIHRvIGJlIGV4ZWN1dGVkLCBlbnRlcmluZyBpZGxlIHN0YXRlIGFuZCBwZXJzaXN0aW5nIG1vZGlmaWVkIGNhY2hlc1wiLCBcIml0LUlUXCI6IFwiTmVzc3VuJ2FsdHJhIGNoaWFtYXRhIEhUVFAgZGV2J2Vzc2VyZSBlc2VndWl0YSwgZW50cm8gaW4gc3RhdG8gSURMRSBlIHBlcnNpc3RvIGxlIGNhY2hlIG1vZGlmaWNhdGVcIiB9LFxyXG4gICAgXCJDYWNoZXMgc3VjY2VzZnVsbHkgcGVyc2lzdGVkXCI6IHsgXCJlbi1VU1wiOiBcIkNhY2hlcyBzdWNjZXNmdWxseSBwZXJzaXN0ZWRcIiwgXCJpdC1JVFwiOiBcIkxlIGNhY2hlIHNvbm8gc3RhdGUgcGVyc2lzdGl0ZSBjb24gc3VjY2Vzc29cIiB9LFxyXG4gICAgXCJFcnJvcnMgcGVyc2lzdGluZyBtb2RpZmllZCBjYWNoZXNcIjogeyBcImVuLVVTXCI6IFwiRXJyb3JzIHBlcnNpc3RpbmcgbW9kaWZpZWQgY2FjaGVzXCIsIFwiaXQtSVRcIjogXCJFcnJvcmkgbmVsbGEgcGVyc2lzdGl6aW9uZSBkZWxsZSBjYWNoZSAoZXNpc3RlIHBlcnNpc3RpemlvbmU/IGJvaC4uLilcIiB9LFxyXG59Il19
@@ -0,0 +1,10 @@
1
+ export class CacheInfos {
2
+ constructor(finalUrl, cache, cacheKey, cacheTime, cacheItem) {
3
+ this.finalUrl = finalUrl;
4
+ this.cache = cache;
5
+ this.cacheKey = cacheKey;
6
+ this.cacheTime = cacheTime;
7
+ this.cacheItem = cacheItem;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGVJbmZvcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHBzZXJ2aWNlL3NyYy9saWIvbW9kZWxzL0NhY2hlSW5mb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFVBQVU7SUFDbkIsWUFBbUIsUUFBZ0IsRUFBUyxLQUFjLEVBQVMsUUFBZ0IsRUFBUyxTQUFpQixFQUFTLFNBQWM7UUFBakgsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVM7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQUs7SUFBSSxDQUFDO0NBQzVJIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENhY2hlSW5mb3Mge1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGZpbmFsVXJsOiBzdHJpbmcsIHB1YmxpYyBjYWNoZTogYm9vbGVhbiwgcHVibGljIGNhY2hlS2V5OiBzdHJpbmcsIHB1YmxpYyBjYWNoZVRpbWU6IHN0cmluZywgcHVibGljIGNhY2hlSXRlbTogYW55KSB7IH1cclxufSJdfQ==
@@ -1,8 +1,9 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { HttpEventType, HttpHeaders, HttpErrorResponse, HttpClient } from '@angular/common/http';
3
3
  import { InjectionToken, Injectable, Inject, Optional, NgModule } from '@angular/core';
4
+ import { PreferencesService } from '@esfaenza/preferences';
4
5
  import { delay, finalize, map, catchError, scan } from 'rxjs/operators';
5
- import { of, throwError, Observable } from 'rxjs';
6
+ import { forkJoin, of, throwError, Observable } from 'rxjs';
6
7
 
7
8
  /**
8
9
  * Dizionario di invalidazioni delle chiamate HTTP
@@ -132,9 +133,24 @@ const Loc = {
132
133
  "Redirecting to Login, ignoring HTTP error on call": { "en-US": "Redirecting to Login, ignoring HTTP error on call", "it-IT": "Redireziono al login ignorando errori sulla chiamata", },
133
134
  "Already Handling an error, ignoring HTTP error on call": { "en-US": "Already Handling an error, ignoring HTTP error on call", "it-IT": "sto già gestendo un errore, ignoro quello corrente per la chiamata HTTP", },
134
135
  "Error 444 on call": { "en-US": "Error 444 on call", "it-IT": "Errore 444 su chiamata" },
135
- "Resource not found": { "en-US": "Resource not found", "it-IT": "Risorsa non trovata" }
136
+ "Resource not found": { "en-US": "Resource not found", "it-IT": "Risorsa non trovata" },
137
+ "Converted old storage system to new one": { "en-US": "Converted old storage system to new one", "it-IT": "Convertito il vecchio sistema di storicizzazione al nuovo" },
138
+ "Marking cache to be persisted as soon as possible": { "en-US": "Marking cache to be persisted as soon as possible", "it-IT": "Marco cache da persistere il prima possibile" },
139
+ "No more HTTP calls to be executed, entering idle state and persisting modified caches": { "en-US": "No more HTTP calls to be executed, entering idle state and persisting modified caches", "it-IT": "Nessun'altra chiamata HTTP dev'essere eseguita, entro in stato IDLE e persisto le cache modificate" },
140
+ "Caches succesfully persisted": { "en-US": "Caches succesfully persisted", "it-IT": "Le cache sono state persistite con successo" },
141
+ "Errors persisting modified caches": { "en-US": "Errors persisting modified caches", "it-IT": "Errori nella persistizione delle cache (esiste persistizione? boh...)" },
136
142
  };
137
143
 
144
+ class CacheInfos {
145
+ constructor(finalUrl, cache, cacheKey, cacheTime, cacheItem) {
146
+ this.finalUrl = finalUrl;
147
+ this.cache = cache;
148
+ this.cacheKey = cacheKey;
149
+ this.cacheTime = cacheTime;
150
+ this.cacheItem = cacheItem;
151
+ }
152
+ }
153
+
138
154
  /**
139
155
  * Servizio utilizzato per effettuare qualsiasi tipo di chiamata HTTP dall'applicazione, gestisce errori e cache delle risposte nativamente e ne può essere
140
156
  * esteso/modificato il comportamento implementando la classe di "hook" **IHttpServiceExtensions** e registrandola nel provider della classe **HttpServiceExtensions**
@@ -143,7 +159,7 @@ class HTTPService {
143
159
  /**
144
160
  * @ignore
145
161
  */
146
- constructor(BACKEND_URL, EXTENSION_CLASS, HTTP_INVALIDATION, LOCALE, APP_NAME, CLIENT_CACHE_DURATION_S, CACHE_BY_USER, DEBUG_MODE, http) {
162
+ constructor(BACKEND_URL, EXTENSION_CLASS, HTTP_INVALIDATION, LOCALE, APP_NAME, CLIENT_CACHE_DURATION_S, CACHE_BY_USER, DEBUG_MODE, http, localStorage) {
147
163
  var _a, _b;
148
164
  this.BACKEND_URL = BACKEND_URL;
149
165
  this.EXTENSION_CLASS = EXTENSION_CLASS;
@@ -154,34 +170,51 @@ class HTTPService {
154
170
  this.CACHE_BY_USER = CACHE_BY_USER;
155
171
  this.DEBUG_MODE = DEBUG_MODE;
156
172
  this.http = http;
157
- /**
158
- * Cache dello stato delle chiamate HTTP attualmente effettuate. Ogni chiamata è rappresentata da un GUID e lo status assume valore **false** solo sugli errori
159
- */
173
+ this.localStorage = 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 */
160
175
  this.callStatus = {};
161
- /**
162
- * Nome della cache in cui vengono storicizzate le informazioni sulle risposte delle chiamate sotto forma di dictionary
163
- */
176
+ /** Nome della cache in cui vengono storicizzate le informazioni sulle risposte delle chiamate sotto forma di dictionary */
164
177
  this.localStorageHttpCacheKey = null;
165
- /**
166
- * 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
167
- */
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 */
168
179
  this.localStorageHttpTimedCacheKey = null;
169
- /**
170
- * Nome della cache in cui vengono storicizzate le informazioni sullo scadere della cache stessa
171
- */
180
+ /** Nome della cache in cui vengono storicizzate le informazioni sullo scadere della cache stessa */
172
181
  this.localStorageHttpCacheExpireKey = null;
173
- /**
174
- * Identità collegata al token di autenticazione da usare, richiesta al programma che utilizza la libreria attraverso l'hook **retrieveIdentity** della **HttpServiceExtensions**
175
- */
182
+ /** Identità collegata al token di autenticazione da usare, richiesta al programma che utilizza la libreria attraverso l'hook **retrieveIdentity** della **HttpServiceExtensions** */
176
183
  this.me = null;
184
+ /** Indica che la cache a tempo dev'essere persistita il prima possibile */
185
+ this.PersistTimedCacheASAP = false;
186
+ /** Indica che la cache senza limiti di tempo dev'essere persistita il prima possibile */
187
+ this.PersistUntimedCacheASAP = false;
177
188
  this.ExtensionsImpl = this.EXTENSION_CLASS || new HttpServiceExtensions();
178
189
  this.me = this.ExtensionsImpl.retrieveIdentity();
179
190
  this.localStorageHttpCacheKey = ((_a = this.APP_NAME) !== null && _a !== void 0 ? _a : "APP").replace(/\s/g, '_') + "_HttpCache";
180
191
  this.localStorageHttpTimedCacheKey = ((_b = this.APP_NAME) !== null && _b !== void 0 ? _b : "APP").replace(/\s/g, '_') + "_HttpTimedCache";
181
192
  this.localStorageHttpCacheExpireKey = this.localStorageHttpCacheKey + "_Expire";
193
+ this.adjustOldStorageSystem();
182
194
  if (this.untimedCacheExpired())
183
195
  this.resetHttpUntimedCacheStorage();
184
196
  }
197
+ /**
198
+ * Se vedo che ci sono elementi salvati nel localStorage provo a toglierli e a risalvarli via preference.
199
+ * Nel caso migliore li sposto dal localStorage al DB di preference, nel caso peggiore li tolgo e li risalvo nel localStorage
200
+ */
201
+ adjustOldStorageSystem() {
202
+ return __awaiter(this, void 0, void 0, function* () {
203
+ var lsTimed = localStorage.getItem(this.localStorageHttpTimedCacheKey);
204
+ var lsUntimed = localStorage.getItem(this.localStorageHttpCacheKey);
205
+ if (!lsTimed && !lsUntimed)
206
+ return;
207
+ localStorage.removeItem(this.localStorageHttpTimedCacheKey);
208
+ localStorage.removeItem(this.localStorageHttpCacheKey);
209
+ lsTimed = lsTimed ? JSON.parse(lsTimed) : {};
210
+ lsUntimed = lsUntimed ? JSON.parse(lsUntimed) : {};
211
+ yield forkJoin([
212
+ this.localStorage.setItem(this.localStorageHttpTimedCacheKey, lsTimed),
213
+ this.localStorage.setItem(this.localStorageHttpCacheKey, lsUntimed)
214
+ ]).toPromise();
215
+ this.log(this.loc("Converted old storage system to new one"));
216
+ });
217
+ }
185
218
  /**
186
219
  * Esecuzione di una GET HTTP con eventualmente la gestione della cache qualora la chiamata termini con la convenzione "#cache"
187
220
  *
@@ -213,7 +246,7 @@ class HTTPService {
213
246
  if (errorCallback)
214
247
  errorCallback();
215
248
  return !succesfulResultMandatory ? throwError(err) : this.registerErrorAndReturnEmptyObservable(err, myGuid);
216
- }), finalize(() => { this.tryFinalizeByGuid(myGuid); }));
249
+ }), finalize(() => { this.tryFinalizeByGuid(myGuid, cachedInfos); }));
217
250
  }
218
251
  /**
219
252
  * Esecuzione di una GET HTTP con eventualmente la gestione della cache qualora la chiamata termini con la convenzione "#cache"
@@ -248,7 +281,7 @@ class HTTPService {
248
281
  if (errorCallback)
249
282
  errorCallback();
250
283
  return !succesfulResultMandatory ? throwError(err) : this.registerErrorAndReturnEmptyObservable(err, myGuid);
251
- }), finalize(() => { this.tryFinalizeByGuid(myGuid); }));
284
+ }), finalize(() => { this.tryFinalizeByGuid(myGuid, cachedInfos); }));
252
285
  }
253
286
  /**
254
287
  * Esecuzione di una POST HTTP
@@ -463,7 +496,7 @@ class HTTPService {
463
496
  * @param {string} url URL per cui controllare se ci sono chiamate in cache da invalidare
464
497
  */
465
498
  checkCacheInvalidation(url) {
466
- let cache = JSON.parse(localStorage.getItem(this.localStorageHttpCacheKey));
499
+ let cache = this.localStorage.getLocalItem(this.localStorageHttpCacheKey);
467
500
  let tmp = /#cache(:?-(\d+))/gi.exec(url);
468
501
  let cacheTime = tmp ? tmp[2] : null;
469
502
  let normalizedUrl = url.replace("#cache" + (cacheTime ? "-" + cacheTime : ""), "").replace(this.BACKEND_URL, "");
@@ -484,21 +517,53 @@ class HTTPService {
484
517
  this.log(this.loc("Invlalidating cache element") + " " + k);
485
518
  delete cache[k];
486
519
  }
487
- localStorage.setItem(this.localStorageHttpCacheKey, JSON.stringify(cache));
520
+ this.localStorage.setLocalItem(this.localStorageHttpCacheKey, cache);
488
521
  }
489
522
  /**
490
523
  * Finalizzazione di una chiamata
491
524
  *
492
525
  * @param {string} guid GUID collegato alla chiamata appena terminata
526
+ * @param {boolean} persistCacheIfIdle Effettua il persist della cache HTTP solo se non ci sono altre chiamate in corso, per evitare
527
+ * che mi cambi sotto l'oggetto di cache mentre sto salvando le informazioni
493
528
  */
494
- tryFinalizeByGuid(guid) {
495
- this.log(this.loc("Finalizing call") + " " + guid + " " + this.loc("with status") + ": " + (this.callStatus[guid] ? this.loc('Success') : this.loc('Failure')));
496
- //Alla prima chiamata buona, significa che almeno il login ce l'ho. Posso mettermi in modalità redirectInProgress false
497
- //e riiniziare a valutare errori di javashit
498
- if (this.callStatus[guid] && this.ExtensionsImpl.readRedirectionStatus())
499
- this.ExtensionsImpl.writeRedirectionStatus(false);
500
- //In ogni caso questa posso rimuoverla
501
- delete this.callStatus[guid];
529
+ tryFinalizeByGuid(guid, cacheInfos) {
530
+ return __awaiter(this, void 0, void 0, function* () {
531
+ this.log(this.loc("Finalizing call") + " " + guid + " " + this.loc("with status") + ": " + (this.callStatus[guid] ? this.loc('Success') : this.loc('Failure')));
532
+ //Alla prima chiamata buona, significa che almeno il login ce l'ho. Posso mettermi in modalità redirectInProgress false
533
+ //e riiniziare a valutare errori di javashit
534
+ if (this.callStatus[guid] && this.ExtensionsImpl.readRedirectionStatus())
535
+ this.ExtensionsImpl.writeRedirectionStatus(false);
536
+ //In ogni caso questa posso rimuoverla
537
+ delete this.callStatus[guid];
538
+ // Se vengo da una chiamata che ha aggiornato la cache a timer o globale marco il fatto che quella cache dev'essere aggiornata
539
+ if (cacheInfos && cacheInfos.cache) {
540
+ this.PersistTimedCacheASAP = this.PersistTimedCacheASAP || !!cacheInfos.cacheTime;
541
+ this.PersistUntimedCacheASAP = this.PersistTimedCacheASAP || !cacheInfos.cacheTime;
542
+ this.log(this.loc("Marking cache to be persisted as soon as possible"));
543
+ }
544
+ // Se una delle due cache devono essere aggiornate e non ho nessuna chiamata in corso effettuo l'aggiornamento in base a quale delle due va aggiornata
545
+ // Alla fine di tutto marco come fatto
546
+ if ((this.PersistTimedCacheASAP || this.PersistUntimedCacheASAP) && Object.keys(this.callStatus).length == 0) {
547
+ var toCall = [];
548
+ let tmpKey = "";
549
+ if (this.PersistTimedCacheASAP) {
550
+ tmpKey = this.localStorageHttpTimedCacheKey;
551
+ toCall.push(this.localStorage.setItem(tmpKey, this.localStorage.getLocalItem(tmpKey)));
552
+ }
553
+ if (this.PersistUntimedCacheASAP) {
554
+ tmpKey = this.localStorageHttpCacheKey;
555
+ toCall.push(this.localStorage.setItem(tmpKey, this.localStorage.getLocalItem(tmpKey)));
556
+ }
557
+ this.log(this.loc("No more HTTP calls to be executed, entering idle state and persisting modified caches") + "...");
558
+ var ret = yield forkJoin(toCall).toPromise();
559
+ if (ret)
560
+ this.log(this.loc("Caches succesfully persisted"));
561
+ else
562
+ this.log(this.loc("Errors persisting modified caches"));
563
+ this.PersistTimedCacheASAP = false;
564
+ this.PersistUntimedCacheASAP = false;
565
+ }
566
+ });
502
567
  }
503
568
  /**
504
569
  * Helper che dato un unico File o una lista di File crea un oggetto FormData che può essere inviato comodamente
@@ -540,7 +605,7 @@ class HTTPService {
540
605
  if (authtoken && includeAuth)
541
606
  headers = headers.append("Authorization", "Bearer " + authtoken);
542
607
  if (accept)
543
- headers = headers.append("Accept", "application/json");
608
+ headers = headers.append("Accept", accept);
544
609
  headers = headers.append("Accept-Language", (_a = this.LOCALE) !== null && _a !== void 0 ? _a : 'it-IT');
545
610
  return headers;
546
611
  }
@@ -685,7 +750,7 @@ class HTTPService {
685
750
  * @param {string} url URL su cui effettuare la chiamata
686
751
  * @param {HttpParams} params Parametri della chiamata (nulli in caso di POST)
687
752
  *
688
- * @returns {{ finalUrl: string, cache: boolean, cacheKey: string, cacheTime: string, cacheItem: any }} Oggetto contenente le informazioni sulla cache per l'oggetto specificato
753
+ * @returns {CacheInfos} Oggetto contenente le informazioni sulla cache per l'oggetto specificato
689
754
  */
690
755
  tryGetCacheInformations(url, params) {
691
756
  let cachingKey = null, cacheTime = null, cache = null, item = null;
@@ -698,8 +763,8 @@ class HTTPService {
698
763
  this.resetHttpUntimedCacheStorage();
699
764
  cachingKey = this.makeCacheKey(url, params);
700
765
  let cacheKey = cacheTime ? this.localStorageHttpTimedCacheKey : this.localStorageHttpCacheKey;
701
- let cacheLs = localStorage.getItem(cacheKey);
702
- let cache = cacheLs ? JSON.parse(cacheLs) : {};
766
+ let cacheLs = this.localStorage.getLocalItem(cacheKey);
767
+ let cache = cacheLs ? cacheLs : {};
703
768
  if (cache && cache[cachingKey] && !this.timedCacheItemExpired(cache[cachingKey])) {
704
769
  // Se gestisco il tempo esatto della cache prima di restituire l'oggetto cachato lo ripulisco
705
770
  // dalle proprietà interne che gli ho aggiunto per controllarne la scadenza
@@ -708,22 +773,22 @@ class HTTPService {
708
773
  item = cache[cachingKey];
709
774
  }
710
775
  }
711
- return { finalUrl: url, cache: useCaching, cacheKey: cachingKey, cacheTime: cacheTime, cacheItem: item };
776
+ return new CacheInfos(url, useCaching, cachingKey, cacheTime, item);
712
777
  }
713
778
  /**
714
779
  * Inserisce un oggetto nella cache appropriata in base alle informazioni contenute nel parametro **cacheInfos**
715
780
  *
716
781
  * @param {T} item Oggetto da inserire nella cache
717
- * @param {{ finalUrl: string, cache: boolean, cacheKey: string, cacheTime: string, cacheItem: any }} cacheInfos Informazioni sulla cache recuperate da una chiamata precedente a **tryGetCacheInformations**
782
+ * @param {CacheInfos} cacheInfos Informazioni sulla cache recuperate da una chiamata precedente a **tryGetCacheInformations**
718
783
  */
719
784
  cacheResponse(item, cacheInfos) {
720
785
  let cacheKey = cacheInfos.cacheTime ? this.localStorageHttpTimedCacheKey : this.localStorageHttpCacheKey;
721
- let cacheLs = localStorage.getItem(cacheKey);
722
- let cache = cacheLs ? JSON.parse(cacheLs) : {};
786
+ let cacheLs = this.localStorage.getLocalItem(cacheKey);
787
+ let cache = cacheLs ? cacheLs : {};
723
788
  cache[cacheInfos.cacheKey] = item;
724
789
  if (cacheInfos.cacheTime)
725
790
  cache[cacheInfos.cacheKey].__expire = dayjs().add(cacheInfos.cacheTime, "seconds");
726
- localStorage.setItem(cacheKey, JSON.stringify(cache));
791
+ this.localStorage.setLocalItem(cacheKey, cache);
727
792
  }
728
793
  /**
729
794
  * Controlla se la cache per le chiamate senza expire time è scaduta
@@ -749,14 +814,14 @@ class HTTPService {
749
814
  */
750
815
  resetHttpUntimedCacheStorage() {
751
816
  var _a;
752
- localStorage.setItem(this.localStorageHttpCacheKey, JSON.stringify({}));
817
+ this.localStorage.setItem(this.localStorageHttpCacheKey, {}).subscribe();
753
818
  localStorage.setItem(this.localStorageHttpCacheExpireKey, JSON.stringify(dayjs().add((_a = this.CLIENT_CACHE_DURATION_S) !== null && _a !== void 0 ? _a : 3600, "second")));
754
819
  }
755
820
  /**
756
821
  * Ripulisce la cache delle chiamate con un tempo di expire definito
757
822
  */
758
823
  resetHttpTimedCacheStorage() {
759
- localStorage.setItem(this.localStorageHttpTimedCacheKey, JSON.stringify({}));
824
+ this.localStorage.setItem(this.localStorageHttpTimedCacheKey, {});
760
825
  }
761
826
  /**
762
827
  * Genera una chiave per la cache delle chiamate in base ad URL e Parametri HTTP
@@ -768,8 +833,8 @@ class HTTPService {
768
833
  */
769
834
  makeCacheKey(url, params) {
770
835
  let authKeyPart = (this.me ? this.me.Idtenant : "") + (this.me && this.CACHE_BY_USER ? this.me.IdUser : "");
771
- let paramsKeyPart = params && params.keys().length > 0 ? params.keys().reduce((prev, next) => prev + next + '=' + params.get(next), "") : "";
772
- return authKeyPart + url + paramsKeyPart;
836
+ let paramsKeyPart = params && params.keys().length > 0 ? params.keys().reduce((prev, next) => prev + "," + next + '=' + params.get(next), "") : "";
837
+ return authKeyPart + "_" + url.substring(url.indexOf("api") + 4) + "?" + paramsKeyPart;
773
838
  }
774
839
  /**
775
840
  * Generazione GUID
@@ -818,7 +883,8 @@ HTTPService.ctorParameters = () => [
818
883
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [CLIENT_CACHE_DURATION_S,] }] },
819
884
  { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [CACHE_BY_USER,] }] },
820
885
  { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [DEBUG_MODE,] }] },
821
- { type: HttpClient }
886
+ { type: HttpClient },
887
+ { type: PreferencesService }
822
888
  ];
823
889
 
824
890
  class HttpserviceModule {