@esfaenza/extensions 11.2.10 → 11.2.14

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.
Files changed (28) hide show
  1. package/bundles/esfaenza-extensions.umd.js +504 -38
  2. package/bundles/esfaenza-extensions.umd.js.map +1 -1
  3. package/bundles/esfaenza-extensions.umd.min.js +16 -1
  4. package/bundles/esfaenza-extensions.umd.min.js.map +1 -1
  5. package/esfaenza-extensions.d.ts +2 -0
  6. package/esfaenza-extensions.metadata.json +1 -1
  7. package/esm2015/esfaenza-extensions.js +3 -1
  8. package/esm2015/lib/models/ExtensionsModuleConfig.js +1 -1
  9. package/esm2015/lib/models/providers/base/BaseStorageProvider.js +11 -0
  10. package/esm2015/lib/models/providers/implementation/DefaultStorageProvider.js +68 -0
  11. package/esm2015/lib/models/session/base/BaseSessionRetriever.js +6 -0
  12. package/esm2015/lib/models/session/implementation/DefaultSessionRetriever.js +26 -0
  13. package/esm2015/lib/modules/extensions.full.module.js +11 -2
  14. package/esm2015/lib/services/extensions.hashing.service.js +23 -5
  15. package/esm2015/lib/services/extensions.storage.service.js +42 -30
  16. package/esm2015/public-api.js +3 -1
  17. package/fesm2015/esfaenza-extensions.js +174 -35
  18. package/fesm2015/esfaenza-extensions.js.map +1 -1
  19. package/lib/models/ExtensionsModuleConfig.d.ts +11 -0
  20. package/lib/models/providers/base/BaseStorageProvider.d.ts +51 -0
  21. package/lib/models/providers/implementation/DefaultStorageProvider.d.ts +15 -0
  22. package/lib/models/session/base/BaseSessionRetriever.d.ts +11 -0
  23. package/lib/models/session/implementation/DefaultSessionRetriever.d.ts +18 -0
  24. package/lib/modules/extensions.full.module.d.ts +2 -0
  25. package/lib/services/extensions.hashing.service.d.ts +10 -2
  26. package/lib/services/extensions.storage.service.d.ts +20 -9
  27. package/package.json +1 -1
  28. package/public-api.d.ts +2 -0
@@ -1,9 +1,12 @@
1
1
  // Angular
2
2
  import { Injectable, Inject, Optional } from "@angular/core";
3
+ import { BaseStorageProvider } from "../models/providers/base/BaseStorageProvider";
4
+ import { BaseSessionRetriever } from "../models/session/base/BaseSessionRetriever";
3
5
  // Modelli
4
6
  import { APPSEARCH_PREFIX } from '../tokens';
7
+ import { tap } from "rxjs/operators";
5
8
  /**
6
- * Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dal localStorage
9
+ * Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dallo Storage Locale
7
10
  */
8
11
  export class StorageService {
9
12
  /**
@@ -11,8 +14,10 @@ export class StorageService {
11
14
  *
12
15
  * @ignore
13
16
  */
14
- constructor(APPSEARCH_PREFIX) {
17
+ constructor(APPSEARCH_PREFIX, _session, _storage) {
15
18
  this.APPSEARCH_PREFIX = APPSEARCH_PREFIX;
19
+ this._session = _session;
20
+ this._storage = _storage;
16
21
  }
17
22
  /**
18
23
  * Inserisce un oggetto che funga da contenitore di oggetti nel local storage, ripulendone gli oggetti (supponendo che sia una view di ricerca) e marcandolo come
@@ -22,61 +27,68 @@ export class StorageService {
22
27
  * @param {{ items: any[] }} itemsContainer Oggetto da storicizzare
23
28
  */
24
29
  setItem(storeName, itemsContainer) {
25
- var _a;
26
30
  //Prima di salvare elimino gli oggetti per non fillare il localStorage di spazzatura
27
31
  var item = JSON.parse(JSON.stringify(itemsContainer));
28
32
  item.items = [];
29
33
  item.savedstate = true;
30
- try {
31
- localStorage.setItem(storeName, JSON.stringify(item));
32
- }
33
- catch (e) {
34
- console.warn("Spazio del local Storage insufficiente per salvare la view. Fallback a cleanup e salvataggio");
35
- //Pulisco tutte le view con nome che parta per "Hot"
36
- for (let key in localStorage) {
37
- if (localStorage.hasOwnProperty(key) && key.startsWith((_a = this.APPSEARCH_PREFIX) !== null && _a !== void 0 ? _a : 'Hot'))
38
- delete localStorage[key];
39
- }
40
- try {
41
- localStorage.setItem(storeName, JSON.stringify(item));
42
- }
43
- catch (e) {
44
- console.error("Spazio del local Storage insufficiente per salvare i risultati di ricerca con solo filtri. Non salvo nulla");
45
- }
46
- }
34
+ item.savedprefix = this.APPSEARCH_PREFIX || 'Hot';
35
+ return this.setAny(storeName, item);
47
36
  }
48
37
  /**
49
- * Inserisce un oggetto nel localstorage dopo averlo serializzato
38
+ * Inserisce un oggetto nello Storage Locale dopo averlo serializzato
50
39
  *
51
40
  * @param {string} storeName Chiave del localStorage in cui storicizzare l'oggetto **item**
52
41
  * @param {any} item Oggetto da storicizzare
53
42
  */
54
43
  setAny(storeName, item) {
55
- localStorage.setItem(storeName, JSON.stringify(item));
44
+ return this._storage.setItem(this._session.getSessionKey(), storeName, item).pipe(tap(res => {
45
+ if (res == false) {
46
+ console.error("Impossibile effettuare il salvataggio dell'oggetto all'interno dello Storage Locale per la chiave " + storeName);
47
+ }
48
+ }));
56
49
  }
57
50
  /**
58
- * Recupera un oggetto dal localStorage
51
+ * Recupera un oggetto dallo Storage Locale
59
52
  *
60
53
  * @param {string} storeName Chiave del localStorage da cui recuperare l'oggetto
61
54
  *
62
55
  * @returns {any} Oggetto recuperato e deserializzato
63
56
  */
64
- getAny(storeName) {
65
- return JSON.parse(localStorage.getItem(storeName));
57
+ getItem(storeName) {
58
+ return this._storage.getItem(this._session.getSessionKey(), storeName).pipe(tap(res => {
59
+ if (res == null)
60
+ console.warn("Impossibile ottenere l'oggetto salvato con chiave " + storeName);
61
+ }));
62
+ }
63
+ /**
64
+ * Ripulisce lo Storage Locale
65
+ *
66
+ * @param {string} storeName Chiave del localStorage da ripulire
67
+ */
68
+ removeItem(storeName) {
69
+ return this._storage.removeItem(this._session.getSessionKey(), storeName).pipe(tap(res => {
70
+ if (res == false)
71
+ console.warn("Impossibile rimuovere l'oggetto salvato con chiave " + storeName);
72
+ }));
66
73
  }
67
74
  /**
68
- * Ripulisce il localStorage
75
+ * Ripulisce lo Storage Locale di ogni cosa salvata
69
76
  *
70
77
  * @param {string} storeName Chiave del localStorage da ripulire
71
78
  */
72
- clear(storeName) {
73
- localStorage.removeItem(storeName);
79
+ clear() {
80
+ return this._storage.clear(this._session.getSessionKey()).pipe(tap(res => {
81
+ if (res == false)
82
+ console.warn("Impossibile ripulire lo Storage Locale");
83
+ }));
74
84
  }
75
85
  }
76
86
  StorageService.decorators = [
77
87
  { type: Injectable }
78
88
  ];
79
89
  StorageService.ctorParameters = () => [
80
- { type: String, decorators: [{ type: Optional }, { type: Inject, args: [APPSEARCH_PREFIX,] }] }
90
+ { type: String, decorators: [{ type: Optional }, { type: Inject, args: [APPSEARCH_PREFIX,] }] },
91
+ { type: BaseSessionRetriever },
92
+ { type: BaseStorageProvider }
81
93
  ];
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL3NyYy9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxVQUFVO0FBQ1YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTdDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFFdkI7Ozs7T0FJRztJQUNILFlBQTBELGdCQUF3QjtRQUF4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7SUFBRSxDQUFDO0lBRXJGOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxTQUFpQixFQUFFLGNBQWdDOztRQUM5RCxvRkFBb0Y7UUFDcEYsSUFBSSxJQUFJLEdBQTBDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUk7WUFDQSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsOEZBQThGLENBQUMsQ0FBQztZQUU3RyxvREFBb0Q7WUFDcEQsS0FBSyxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUU7Z0JBQzFCLElBQUksWUFBWSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxPQUFDLElBQUksQ0FBQyxnQkFBZ0IsbUNBQUksS0FBSyxDQUFDO29CQUNsRixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUk7Z0JBQ0EsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyw0R0FBNEcsQ0FBQyxDQUFDO2FBQy9IO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsU0FBaUIsRUFBRSxJQUFTO1FBQ3RDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFNBQWlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsU0FBaUI7UUFDMUIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7WUFyRUosVUFBVTs7O3lDQVFNLFFBQVEsWUFBSSxNQUFNLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQVBQU0VBUkNIX1BSRUZJWCB9IGZyb20gJy4uL3Rva2Vucyc7XHJcblxyXG4vKipcclxuICogU2VydmljZSBjaGUgZm9ybmlzY2UgZnVuemlvbmFsaXTDoCBkaSBiYXNlIHBlciBzdG9yaWNpenphemlvbmUgZSByZWN1cGVybyBvZ2dldHRpIGRhbCBsb2NhbFN0b3JhZ2VcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChBUFBTRUFSQ0hfUFJFRklYKSBwcml2YXRlIEFQUFNFQVJDSF9QUkVGSVg6IHN0cmluZyl7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zZXJpc2NlIHVuIG9nZ2V0dG8gY2hlIGZ1bmdhIGRhIGNvbnRlbml0b3JlIGRpIG9nZ2V0dGkgbmVsIGxvY2FsIHN0b3JhZ2UsIHJpcHVsZW5kb25lIGdsaSBvZ2dldHRpIChzdXBwb25lbmRvIGNoZSBzaWEgdW5hIHZpZXcgZGkgcmljZXJjYSkgZSBtYXJjYW5kb2xvIGNvbWUgXHJcbiAgICAgKiBzYWx2YXRvLCBpbiBtb2RvIGNoZSBxdWFuZG8gdmllbmUgcmVjdXBlcmF0byBpbCBzaXN0ZW1hIG5vbiBwZW5zaSBjaGUgc2lhIHVuIG9nZ2V0dG8gdnVvdG8gbWEgY2hlIHNhcHBpYSBjaGUgZ2xpIG9nZ2V0dGkgc29uIHN0YXRpIHJpcHVsaXRpIHBlciByaXNwYXJtaWFyZSBzcGF6aW9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0b3JlTmFtZSBDaGlhdmUgZGVsIGxvY2FsU3RvcmFnZSBpbiBjdWkgc3RvcmljaXp6YXJlIGwnb2dnZXR0byAqKml0ZW1zQ29udGFpbmVyKipcclxuICAgICAqIEBwYXJhbSB7eyBpdGVtczogYW55W10gfX0gaXRlbXNDb250YWluZXIgT2dnZXR0byBkYSBzdG9yaWNpenphcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEl0ZW0oc3RvcmVOYW1lOiBzdHJpbmcsIGl0ZW1zQ29udGFpbmVyOiB7IGl0ZW1zOiBhbnlbXSB9KSB7XHJcbiAgICAgICAgLy9QcmltYSBkaSBzYWx2YXJlIGVsaW1pbm8gZ2xpIG9nZ2V0dGkgcGVyIG5vbiBmaWxsYXJlIGlsIGxvY2FsU3RvcmFnZSBkaSBzcGF6emF0dXJhXHJcbiAgICAgICAgdmFyIGl0ZW06IHsgaXRlbXM6IGFueVtdLCBzYXZlZHN0YXRlOiBib29sZWFuIH0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW1zQ29udGFpbmVyKSk7XHJcbiAgICAgICAgaXRlbS5pdGVtcyA9IFtdO1xyXG4gICAgICAgIGl0ZW0uc2F2ZWRzdGF0ZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JlTmFtZSwgSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiU3BhemlvIGRlbCBsb2NhbCBTdG9yYWdlIGluc3VmZmljaWVudGUgcGVyIHNhbHZhcmUgbGEgdmlldy4gRmFsbGJhY2sgYSBjbGVhbnVwIGUgc2FsdmF0YWdnaW9cIik7XHJcblxyXG4gICAgICAgICAgICAvL1B1bGlzY28gdHV0dGUgbGUgdmlldyBjb24gbm9tZSBjaGUgcGFydGEgcGVyIFwiSG90XCJcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleS5zdGFydHNXaXRoKHRoaXMuQVBQU0VBUkNIX1BSRUZJWCA/PyAnSG90JykpXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGxvY2FsU3RvcmFnZVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yZU5hbWUsIEpTT04uc3RyaW5naWZ5KGl0ZW0pKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlNwYXppbyBkZWwgbG9jYWwgU3RvcmFnZSBpbnN1ZmZpY2llbnRlIHBlciBzYWx2YXJlIGkgcmlzdWx0YXRpIGRpIHJpY2VyY2EgY29uIHNvbG8gZmlsdHJpLiBOb24gc2Fsdm8gbnVsbGFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnNlcmlzY2UgdW4gb2dnZXR0byBuZWwgbG9jYWxzdG9yYWdlIGRvcG8gYXZlcmxvIHNlcmlhbGl6emF0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RvcmVOYW1lIENoaWF2ZSBkZWwgbG9jYWxTdG9yYWdlIGluIGN1aSBzdG9yaWNpenphcmUgbCdvZ2dldHRvICoqaXRlbSoqXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gaXRlbSBPZ2dldHRvIGRhIHN0b3JpY2l6emFyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0QW55KHN0b3JlTmFtZTogc3RyaW5nLCBpdGVtOiBhbnkpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yZU5hbWUsIEpTT04uc3RyaW5naWZ5KGl0ZW0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlY3VwZXJhIHVuIG9nZ2V0dG8gZGFsIGxvY2FsU3RvcmFnZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RvcmVOYW1lIENoaWF2ZSBkZWwgbG9jYWxTdG9yYWdlIGRhIGN1aSByZWN1cGVyYXJlIGwnb2dnZXR0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7YW55fSBPZ2dldHRvIHJlY3VwZXJhdG8gZSBkZXNlcmlhbGl6emF0b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QW55KHN0b3JlTmFtZTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yZU5hbWUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJpcHVsaXNjZSBpbCBsb2NhbFN0b3JhZ2UgXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yZU5hbWUgQ2hpYXZlIGRlbCBsb2NhbFN0b3JhZ2UgZGEgcmlwdWxpcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyKHN0b3JlTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oc3RvcmVOYW1lKTtcclxuICAgIH1cclxufSJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL3NyYy9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVuRixVQUFVO0FBQ1YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSTdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQzs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBRXZCOzs7O09BSUc7SUFDSCxZQUEwRCxnQkFBd0IsRUFBVSxRQUE4QixFQUFVLFFBQTZCO1FBQXZHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFBSSxDQUFDO0lBRXRLOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBQyxTQUFpQixFQUFFLGNBQWdDO1FBQzlELG9GQUFvRjtRQUNwRixJQUFJLElBQUksR0FBMEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDO1FBRXpELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN0QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEYsSUFBSSxHQUFHLElBQUksS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0dBQW9HLEdBQUcsU0FBUyxDQUFDLENBQUM7YUFDbkk7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE9BQU8sQ0FBSSxTQUFpQjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyRixJQUFJLEdBQUcsSUFBSSxJQUFJO2dCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0RBQW9ELEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLFNBQWlCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JGLElBQUksR0FBRyxJQUFJLEtBQUs7Z0JBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxxREFBcUQsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyRSxJQUFJLEdBQUcsSUFBSSxLQUFLO2dCQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7O1lBN0VKLFVBQVU7Ozt5Q0FRTSxRQUFRLFlBQUksTUFBTSxTQUFDLGdCQUFnQjtZQXBCM0Msb0JBQW9CO1lBRHBCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJhc2VTdG9yYWdlUHJvdmlkZXIgfSBmcm9tIFwiLi4vbW9kZWxzL3Byb3ZpZGVycy9iYXNlL0Jhc2VTdG9yYWdlUHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgQmFzZVNlc3Npb25SZXRyaWV2ZXIgfSBmcm9tIFwiLi4vbW9kZWxzL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5cclxuLy8gTW9kZWxsaVxyXG5pbXBvcnQgeyBBUFBTRUFSQ0hfUFJFRklYIH0gZnJvbSAnLi4vdG9rZW5zJztcclxuXHJcbi8vIFJYSlNcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgY2hlIGZvcm5pc2NlIGZ1bnppb25hbGl0w6AgZGkgYmFzZSBwZXIgc3RvcmljaXp6YXppb25lIGUgcmVjdXBlcm8gb2dnZXR0aSBkYWxsbyBTdG9yYWdlIExvY2FsZVxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29zdHJ1dHRvcmVcclxuICAgICAqIFxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KEFQUFNFQVJDSF9QUkVGSVgpIHByaXZhdGUgQVBQU0VBUkNIX1BSRUZJWDogc3RyaW5nLCBwcml2YXRlIF9zZXNzaW9uOiBCYXNlU2Vzc2lvblJldHJpZXZlciwgcHJpdmF0ZSBfc3RvcmFnZTogQmFzZVN0b3JhZ2VQcm92aWRlcikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnNlcmlzY2UgdW4gb2dnZXR0byBjaGUgZnVuZ2EgZGEgY29udGVuaXRvcmUgZGkgb2dnZXR0aSBuZWwgbG9jYWwgc3RvcmFnZSwgcmlwdWxlbmRvbmUgZ2xpIG9nZ2V0dGkgKHN1cHBvbmVuZG8gY2hlIHNpYSB1bmEgdmlldyBkaSByaWNlcmNhKSBlIG1hcmNhbmRvbG8gY29tZSBcclxuICAgICAqIHNhbHZhdG8sIGluIG1vZG8gY2hlIHF1YW5kbyB2aWVuZSByZWN1cGVyYXRvIGlsIHNpc3RlbWEgbm9uIHBlbnNpIGNoZSBzaWEgdW4gb2dnZXR0byB2dW90byBtYSBjaGUgc2FwcGlhIGNoZSBnbGkgb2dnZXR0aSBzb24gc3RhdGkgcmlwdWxpdGkgcGVyIHJpc3Bhcm1pYXJlIHNwYXppb1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RvcmVOYW1lIENoaWF2ZSBkZWwgbG9jYWxTdG9yYWdlIGluIGN1aSBzdG9yaWNpenphcmUgbCdvZ2dldHRvICoqaXRlbXNDb250YWluZXIqKlxyXG4gICAgICogQHBhcmFtIHt7IGl0ZW1zOiBhbnlbXSB9fSBpdGVtc0NvbnRhaW5lciBPZ2dldHRvIGRhIHN0b3JpY2l6emFyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0SXRlbShzdG9yZU5hbWU6IHN0cmluZywgaXRlbXNDb250YWluZXI6IHsgaXRlbXM6IGFueVtdIH0pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICAvL1ByaW1hIGRpIHNhbHZhcmUgZWxpbWlubyBnbGkgb2dnZXR0aSBwZXIgbm9uIGZpbGxhcmUgaWwgbG9jYWxTdG9yYWdlIGRpIHNwYXp6YXR1cmFcclxuICAgICAgICB2YXIgaXRlbTogeyBpdGVtczogYW55W10sIHNhdmVkc3RhdGU6IGJvb2xlYW4gfSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbXNDb250YWluZXIpKTtcclxuICAgICAgICBpdGVtLml0ZW1zID0gW107XHJcbiAgICAgICAgaXRlbS5zYXZlZHN0YXRlID0gdHJ1ZTtcclxuICAgICAgICAoPGFueT5pdGVtKS5zYXZlZHByZWZpeCA9IHRoaXMuQVBQU0VBUkNIX1BSRUZJWCB8fCAnSG90JztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0QW55KHN0b3JlTmFtZSwgaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnNlcmlzY2UgdW4gb2dnZXR0byBuZWxsbyBTdG9yYWdlIExvY2FsZSBkb3BvIGF2ZXJsbyBzZXJpYWxpenphdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0b3JlTmFtZSBDaGlhdmUgZGVsIGxvY2FsU3RvcmFnZSBpbiBjdWkgc3RvcmljaXp6YXJlIGwnb2dnZXR0byAqKml0ZW0qKlxyXG4gICAgICogQHBhcmFtIHthbnl9IGl0ZW0gT2dnZXR0byBkYSBzdG9yaWNpenphcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEFueShzdG9yZU5hbWU6IHN0cmluZywgaXRlbTogYW55KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2Uuc2V0SXRlbSh0aGlzLl9zZXNzaW9uLmdldFNlc3Npb25LZXkoKSwgc3RvcmVOYW1lLCBpdGVtKS5waXBlKHRhcChyZXMgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSW1wb3NzaWJpbGUgZWZmZXR0dWFyZSBpbCBzYWx2YXRhZ2dpbyBkZWxsJ29nZ2V0dG8gYWxsJ2ludGVybm8gZGVsbG8gU3RvcmFnZSBMb2NhbGUgcGVyIGxhIGNoaWF2ZSBcIiArIHN0b3JlTmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWN1cGVyYSB1biBvZ2dldHRvIGRhbGxvIFN0b3JhZ2UgTG9jYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yZU5hbWUgQ2hpYXZlIGRlbCBsb2NhbFN0b3JhZ2UgZGEgY3VpIHJlY3VwZXJhcmUgbCdvZ2dldHRvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHthbnl9IE9nZ2V0dG8gcmVjdXBlcmF0byBlIGRlc2VyaWFsaXp6YXRvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJdGVtPFQ+KHN0b3JlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2UuZ2V0SXRlbTxUPih0aGlzLl9zZXNzaW9uLmdldFNlc3Npb25LZXkoKSwgc3RvcmVOYW1lKS5waXBlKHRhcChyZXMgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzID09IG51bGwpXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJJbXBvc3NpYmlsZSBvdHRlbmVyZSBsJ29nZ2V0dG8gc2FsdmF0byBjb24gY2hpYXZlIFwiICsgc3RvcmVOYW1lKTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSaXB1bGlzY2UgbG8gU3RvcmFnZSBMb2NhbGUgXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yZU5hbWUgQ2hpYXZlIGRlbCBsb2NhbFN0b3JhZ2UgZGEgcmlwdWxpcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlbW92ZUl0ZW0oc3RvcmVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuX3Nlc3Npb24uZ2V0U2Vzc2lvbktleSgpLCBzdG9yZU5hbWUpLnBpcGUodGFwKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXMgPT0gZmFsc2UpXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJJbXBvc3NpYmlsZSByaW11b3ZlcmUgbCdvZ2dldHRvIHNhbHZhdG8gY29uIGNoaWF2ZSBcIiArIHN0b3JlTmFtZSk7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmlwdWxpc2NlIGxvIFN0b3JhZ2UgTG9jYWxlIGRpIG9nbmkgY29zYSBzYWx2YXRhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yZU5hbWUgQ2hpYXZlIGRlbCBsb2NhbFN0b3JhZ2UgZGEgcmlwdWxpcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdG9yYWdlLmNsZWFyKHRoaXMuX3Nlc3Npb24uZ2V0U2Vzc2lvbktleSgpKS5waXBlKHRhcChyZXMgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzID09IGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiSW1wb3NzaWJpbGUgcmlwdWxpcmUgbG8gU3RvcmFnZSBMb2NhbGVcIik7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59Il19
@@ -14,4 +14,6 @@ export * from './lib/tokens';
14
14
  export * from './lib/models/CallResult';
15
15
  export * from './lib/models/CsvHeaders';
16
16
  export * from './lib/models/GenericItem';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBleHRlbnNpb25zXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9leHRlbnNpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZXh0ZW5zaW9ucy5mdWxsLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZGF0ZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZXhwb3J0cy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5jbGlwYm9hcmQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuaGFzaGluZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5tZXNzYWdlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy51dGlsaXRpZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL0NhbGxSZXN1bHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvQ3N2SGVhZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9HZW5lcmljSXRlbSc7Il19
17
+ export * from './lib/models/providers/base/BaseStorageProvider';
18
+ export * from './lib/models/session/base/BaseSessionRetriever';
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZXh0ZW5zaW9uc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9leHRlbnNpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZXh0ZW5zaW9ucy5mdWxsLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZGF0ZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZXhwb3J0cy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5jbGlwYm9hcmQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuaGFzaGluZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5tZXNzYWdlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy51dGlsaXRpZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL0NhbGxSZXN1bHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvQ3N2SGVhZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9HZW5lcmljSXRlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm92aWRlcnMvYmFzZS9CYXNlU3RvcmFnZVByb3ZpZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlcic7Il19
@@ -2,6 +2,8 @@ import { InjectionToken, NgModule, Injectable, Optional, Inject } from '@angular
2
2
  import { ToastrService } from 'ngx-toastr';
3
3
  import swal from 'sweetalert2';
4
4
  import { Deserialize } from 'cerialize';
5
+ import { tap } from 'rxjs/operators';
6
+ import { of } from 'rxjs';
5
7
 
6
8
  /**
7
9
  * Token che identifica il locale da utilizzare per questa libreria, sono supportati i locali 'it-IT' ed 'en-US'
@@ -1253,12 +1255,30 @@ class HashingService {
1253
1255
  * @param {number} level Livello di ricorsione nel caso venga effettuato l'hash di un oggetto che contiene altri oggetti
1254
1256
  * @param {boolean} navigateFullDepth Indica se navigare l'oggetto per l'intera lunghezza. In caso contrario si ferma al secondo livello
1255
1257
  *
1256
- * @returns {string} md5 generato per l'oggetto in questione
1258
+ * @returns {string} Hash generato per l'oggetto in questione
1257
1259
  */
1258
- hashObject(o, level = 0, navigateFullDepth = false) {
1260
+ hashObject(o, level = 0, navigateFullDepth = false, precise = false) {
1259
1261
  var strDef = this.stringify(o, level, navigateFullDepth);
1260
- var md5 = this.md5(strDef);
1261
- return md5;
1262
+ var hash = precise ? this.md5(strDef) : this.simpleHash(strDef);
1263
+ return hash;
1264
+ }
1265
+ /**
1266
+ * Hash più semplice e più veloce dell'md5, ma meno sicuro
1267
+ *
1268
+ * Vedi https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
1269
+ *
1270
+ * @param {string} str Stringa di cui calcolare l'hash
1271
+ */
1272
+ simpleHash(str, seed = 0) {
1273
+ let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
1274
+ for (let i = 0, ch; i < str.length; i++) {
1275
+ ch = str.charCodeAt(i);
1276
+ h1 = Math.imul(h1 ^ ch, 2654435761);
1277
+ h2 = Math.imul(h2 ^ ch, 1597334677);
1278
+ }
1279
+ h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
1280
+ h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
1281
+ return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString();
1262
1282
  }
1263
1283
  /**
1264
1284
  * Genera una stringa che identifica univocamente l'oggetto in questione
@@ -1710,9 +1730,26 @@ UtilityService.decorators = [
1710
1730
  { type: Injectable }
1711
1731
  ];
1712
1732
 
1733
+ /**
1734
+ * Classe che gestisce la scrittura delle informazioni nello store locale.
1735
+ * Questo store locale potrebbe essere il localStorage (implementazione di default data dal **DefaultStorageProvider**),
1736
+ * oppure un'implementazione custom facente capo a un DB esterno.
1737
+ *
1738
+ * In questo ultimo caso però sarà necessario implementarsi un proprio **BaseSessionRetriever**
1739
+ * che generi una chiave univoca di sessione su cui tutte le operazioni di questa classe saranno eseguite
1740
+ */
1741
+ class BaseStorageProvider {
1742
+ }
1743
+
1744
+ /**
1745
+ * Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
1746
+ */
1747
+ class BaseSessionRetriever {
1748
+ }
1749
+
1713
1750
  // Angular
1714
1751
  /**
1715
- * Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dal localStorage
1752
+ * Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dallo Storage Locale
1716
1753
  */
1717
1754
  class StorageService {
1718
1755
  /**
@@ -1720,8 +1757,10 @@ class StorageService {
1720
1757
  *
1721
1758
  * @ignore
1722
1759
  */
1723
- constructor(APPSEARCH_PREFIX) {
1760
+ constructor(APPSEARCH_PREFIX, _session, _storage) {
1724
1761
  this.APPSEARCH_PREFIX = APPSEARCH_PREFIX;
1762
+ this._session = _session;
1763
+ this._storage = _storage;
1725
1764
  }
1726
1765
  /**
1727
1766
  * Inserisce un oggetto che funga da contenitore di oggetti nel local storage, ripulendone gli oggetti (supponendo che sia una view di ricerca) e marcandolo come
@@ -1731,64 +1770,160 @@ class StorageService {
1731
1770
  * @param {{ items: any[] }} itemsContainer Oggetto da storicizzare
1732
1771
  */
1733
1772
  setItem(storeName, itemsContainer) {
1734
- var _a;
1735
1773
  //Prima di salvare elimino gli oggetti per non fillare il localStorage di spazzatura
1736
1774
  var item = JSON.parse(JSON.stringify(itemsContainer));
1737
1775
  item.items = [];
1738
1776
  item.savedstate = true;
1739
- try {
1740
- localStorage.setItem(storeName, JSON.stringify(item));
1741
- }
1742
- catch (e) {
1743
- console.warn("Spazio del local Storage insufficiente per salvare la view. Fallback a cleanup e salvataggio");
1744
- //Pulisco tutte le view con nome che parta per "Hot"
1745
- for (let key in localStorage) {
1746
- if (localStorage.hasOwnProperty(key) && key.startsWith((_a = this.APPSEARCH_PREFIX) !== null && _a !== void 0 ? _a : 'Hot'))
1747
- delete localStorage[key];
1748
- }
1749
- try {
1750
- localStorage.setItem(storeName, JSON.stringify(item));
1751
- }
1752
- catch (e) {
1753
- console.error("Spazio del local Storage insufficiente per salvare i risultati di ricerca con solo filtri. Non salvo nulla");
1754
- }
1755
- }
1777
+ item.savedprefix = this.APPSEARCH_PREFIX || 'Hot';
1778
+ return this.setAny(storeName, item);
1756
1779
  }
1757
1780
  /**
1758
- * Inserisce un oggetto nel localstorage dopo averlo serializzato
1781
+ * Inserisce un oggetto nello Storage Locale dopo averlo serializzato
1759
1782
  *
1760
1783
  * @param {string} storeName Chiave del localStorage in cui storicizzare l'oggetto **item**
1761
1784
  * @param {any} item Oggetto da storicizzare
1762
1785
  */
1763
1786
  setAny(storeName, item) {
1764
- localStorage.setItem(storeName, JSON.stringify(item));
1787
+ return this._storage.setItem(this._session.getSessionKey(), storeName, item).pipe(tap(res => {
1788
+ if (res == false) {
1789
+ console.error("Impossibile effettuare il salvataggio dell'oggetto all'interno dello Storage Locale per la chiave " + storeName);
1790
+ }
1791
+ }));
1765
1792
  }
1766
1793
  /**
1767
- * Recupera un oggetto dal localStorage
1794
+ * Recupera un oggetto dallo Storage Locale
1768
1795
  *
1769
1796
  * @param {string} storeName Chiave del localStorage da cui recuperare l'oggetto
1770
1797
  *
1771
1798
  * @returns {any} Oggetto recuperato e deserializzato
1772
1799
  */
1773
- getAny(storeName) {
1774
- return JSON.parse(localStorage.getItem(storeName));
1800
+ getItem(storeName) {
1801
+ return this._storage.getItem(this._session.getSessionKey(), storeName).pipe(tap(res => {
1802
+ if (res == null)
1803
+ console.warn("Impossibile ottenere l'oggetto salvato con chiave " + storeName);
1804
+ }));
1775
1805
  }
1776
1806
  /**
1777
- * Ripulisce il localStorage
1807
+ * Ripulisce lo Storage Locale
1778
1808
  *
1779
1809
  * @param {string} storeName Chiave del localStorage da ripulire
1780
1810
  */
1781
- clear(storeName) {
1782
- localStorage.removeItem(storeName);
1811
+ removeItem(storeName) {
1812
+ return this._storage.removeItem(this._session.getSessionKey(), storeName).pipe(tap(res => {
1813
+ if (res == false)
1814
+ console.warn("Impossibile rimuovere l'oggetto salvato con chiave " + storeName);
1815
+ }));
1816
+ }
1817
+ /**
1818
+ * Ripulisce lo Storage Locale di ogni cosa salvata
1819
+ *
1820
+ * @param {string} storeName Chiave del localStorage da ripulire
1821
+ */
1822
+ clear() {
1823
+ return this._storage.clear(this._session.getSessionKey()).pipe(tap(res => {
1824
+ if (res == false)
1825
+ console.warn("Impossibile ripulire lo Storage Locale");
1826
+ }));
1783
1827
  }
1784
1828
  }
1785
1829
  StorageService.decorators = [
1786
1830
  { type: Injectable }
1787
1831
  ];
1788
1832
  StorageService.ctorParameters = () => [
1789
- { type: String, decorators: [{ type: Optional }, { type: Inject, args: [APPSEARCH_PREFIX,] }] }
1833
+ { type: String, decorators: [{ type: Optional }, { type: Inject, args: [APPSEARCH_PREFIX,] }] },
1834
+ { type: BaseSessionRetriever },
1835
+ { type: BaseStorageProvider }
1790
1836
  ];
1791
1837
 
1838
+ /**
1839
+ * Implementazione di default per la classe **BaseSessionRetriever**
1840
+ */
1841
+ class DefaultSessionRetriever extends BaseSessionRetriever {
1842
+ /**
1843
+ * Costruttore
1844
+ *
1845
+ * @ignore
1846
+ */
1847
+ constructor() { super(); }
1848
+ /**
1849
+ * Ottiene un ID sessione
1850
+ *
1851
+ * @returns {string} ID sessione
1852
+ */
1853
+ getSessionKey() {
1854
+ return "DUMMY_SESSION";
1855
+ }
1856
+ }
1857
+ DefaultSessionRetriever.decorators = [
1858
+ { type: Injectable }
1859
+ ];
1860
+ DefaultSessionRetriever.ctorParameters = () => [];
1861
+
1862
+ /** Implementazione di default per la classe **BaseStorageProvider** */
1863
+ class DefaultStorageProvider extends BaseStorageProvider {
1864
+ /** @ignore Costruttore */
1865
+ constructor() { super(); }
1866
+ /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1867
+ setItem(identity, key, value) {
1868
+ try {
1869
+ localStorage.setItem(key, JSON.stringify(value));
1870
+ return of(true);
1871
+ }
1872
+ catch (_a) {
1873
+ // Potrebbe arrivarmi un prefisso di salvataggio nella modalità di default. Questo serve per ripulire le stesse cose con quel prefisso e sperare di liberare spazio
1874
+ if (value.savedprefix) {
1875
+ console.warn("Spazio del local Storage insufficiente, prova a ripulirlo e risalvare");
1876
+ //Pulisco tutte le view con nome che parta per "Hot"
1877
+ for (let key in localStorage) {
1878
+ if (localStorage.hasOwnProperty(key) && key.startsWith(value.savedprefix))
1879
+ delete localStorage[key];
1880
+ }
1881
+ try {
1882
+ localStorage.setItem(key, JSON.stringify(value));
1883
+ }
1884
+ catch (e) {
1885
+ console.error("Spazio del local Storage insufficiente per salvare i risultati di ricerca con solo filtri. Non salvo nulla");
1886
+ }
1887
+ }
1888
+ return of(false);
1889
+ }
1890
+ }
1891
+ /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1892
+ getItem(identity, key) {
1893
+ try {
1894
+ var ret = JSON.parse(localStorage.getItem(key));
1895
+ return of(ret);
1896
+ }
1897
+ catch (_a) {
1898
+ return of(null);
1899
+ }
1900
+ }
1901
+ /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1902
+ removeItem(identity, key) {
1903
+ try {
1904
+ localStorage.removeItem(key);
1905
+ return of(true);
1906
+ }
1907
+ catch (_a) {
1908
+ return of(false);
1909
+ }
1910
+ }
1911
+ /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1912
+ clear(identity) {
1913
+ try {
1914
+ localStorage.clear();
1915
+ return of(true);
1916
+ }
1917
+ catch (_a) {
1918
+ return of(false);
1919
+ }
1920
+ }
1921
+ }
1922
+ DefaultStorageProvider.decorators = [
1923
+ { type: Injectable }
1924
+ ];
1925
+ DefaultStorageProvider.ctorParameters = () => [];
1926
+
1792
1927
  // Angular
1793
1928
  /**
1794
1929
  * Modulo di estensione che registra autonomamente **TUTTI** i servizi di estensione:
@@ -1799,6 +1934,8 @@ StorageService.ctorParameters = () => [
1799
1934
  * MessageService,
1800
1935
  * UtilityService,
1801
1936
  * StorageService,
1937
+ *
1938
+ * con eventuali provider che utilizzano
1802
1939
  */
1803
1940
  class FullExtensionsModule {
1804
1941
  static forRoot(config) {
@@ -1815,7 +1952,9 @@ class FullExtensionsModule {
1815
1952
  { provide: EXT_LOCALE, useValue: (config === null || config === void 0 ? void 0 : config.locale) || 'it-IT' },
1816
1953
  { provide: EXT_FANCY_ALERTS, useValue: (config === null || config === void 0 ? void 0 : config.fancy_alerts) || true },
1817
1954
  { provide: APPSEARCH_PREFIX, useValue: (config === null || config === void 0 ? void 0 : config.appsearch_prefix) || 'Hot' },
1818
- { provide: EXT_ALLOW_UTC, useValue: (config === null || config === void 0 ? void 0 : config.allow_utc) == null ? false : config === null || config === void 0 ? void 0 : config.allow_utc }
1955
+ { provide: EXT_ALLOW_UTC, useValue: (config === null || config === void 0 ? void 0 : config.allow_utc) == null ? false : config === null || config === void 0 ? void 0 : config.allow_utc },
1956
+ { provide: BaseSessionRetriever, useClass: (config === null || config === void 0 ? void 0 : config.sessionRetriever) || DefaultSessionRetriever },
1957
+ { provide: BaseStorageProvider, useClass: (config === null || config === void 0 ? void 0 : config.storageProvider) || DefaultStorageProvider },
1819
1958
  ]
1820
1959
  };
1821
1960
  }
@@ -1850,5 +1989,5 @@ class GenericItem {
1850
1989
  * Generated bundle index. Do not edit.
1851
1990
  */
1852
1991
 
1853
- export { APPSEARCH_PREFIX, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, MessageService, StorageService, UtilityService };
1992
+ export { APPSEARCH_PREFIX, BaseSessionRetriever, BaseStorageProvider, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, MessageService, StorageService, UtilityService, DefaultSessionRetriever as ɵa, DefaultStorageProvider as ɵb };
1854
1993
  //# sourceMappingURL=esfaenza-extensions.js.map