@techextensor/tab-core-utility 2.2.158 → 2.2.161

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 (31) hide show
  1. package/esm2022/index.mjs +2 -1
  2. package/esm2022/lib/tab-core-utility/app/constants/api-constants.mjs +2 -1
  3. package/esm2022/lib/tab-core-utility/app/constants/common.mjs +9 -9
  4. package/esm2022/lib/tab-core-utility/app/crud/tab-crud.service.mjs +14 -2
  5. package/esm2022/lib/tab-core-utility/app/enums/query.enum.mjs +3 -1
  6. package/esm2022/lib/tab-core-utility/app/helpers/common/dsq.helpers.mjs +3 -1
  7. package/esm2022/lib/tab-core-utility/app/helpers/common/req-res.helpers.mjs +31 -1
  8. package/esm2022/lib/tab-core-utility/app/models/api-query.class.mjs +3 -1
  9. package/esm2022/lib/tab-core-utility/app/utils/json.util.mjs +46 -1
  10. package/esm2022/lib/tab-core-utility/app/utils/req-res.util.mjs +4 -4
  11. package/esm2022/lib/tab-core-utility/auth/idb-storage.service.mjs +23 -8
  12. package/esm2022/lib/tab-core-utility/auth/local-storage.service.mjs +57 -19
  13. package/esm2022/lib/tab-core-utility/auth/session-storage.service.mjs +57 -19
  14. package/esm2022/lib/tab-core-utility/core/service/encryption.service.mjs +89 -0
  15. package/index.d.ts +1 -0
  16. package/lib/tab-core-utility/app/constants/api-constants.d.ts +1 -0
  17. package/lib/tab-core-utility/app/constants/common.d.ts +2 -1
  18. package/lib/tab-core-utility/app/crud/tab-crud.service.d.ts +1 -0
  19. package/lib/tab-core-utility/app/enums/query.enum.d.ts +3 -1
  20. package/lib/tab-core-utility/app/helpers/common/req-res.helpers.d.ts +34 -1
  21. package/lib/tab-core-utility/app/models/api-query.class.d.ts +4 -0
  22. package/lib/tab-core-utility/app/utils/json.util.d.ts +12 -0
  23. package/lib/tab-core-utility/auth/idb-storage.service.d.ts +3 -1
  24. package/lib/tab-core-utility/auth/local-storage.service.d.ts +17 -0
  25. package/lib/tab-core-utility/auth/session-storage.service.d.ts +17 -0
  26. package/lib/tab-core-utility/core/service/encryption.service.d.ts +52 -0
  27. package/package.json +3 -2
  28. package/esm2022/lib/tab-core-utility/app/utils/get-api-url.function.mjs +0 -7
  29. package/esm2022/lib/tab-core-utility/core/http-client/injector.service.mjs +0 -20
  30. package/lib/tab-core-utility/app/utils/get-api-url.function.d.ts +0 -1
  31. package/lib/tab-core-utility/core/http-client/injector.service.d.ts +0 -10
@@ -6,10 +6,10 @@ import { getAppObject, getDsqIdfromSelectedAppObjectDSQArray, } from './tab-app.
6
6
  import { API } from '../constants/api-constants';
7
7
  import { getFormBuilderType } from './form-builder.util';
8
8
  import { StorageConstants } from '../constants/storage-constants';
9
- // import { inject } from '@angular/core';
10
9
  import { SessionStorageService } from '../../auth/session-storage.service';
11
- // const sessionStorageService = inject(SessionStorageService);
12
- const sessionStorageService = new SessionStorageService();
10
+ import { EncryptionService } from '../../core/service/encryption.service';
11
+ const encryptionService = new EncryptionService();
12
+ const sessionStorageService = new SessionStorageService(encryptionService);
13
13
  /**
14
14
  * Delete a key from the response object
15
15
  *
@@ -177,4 +177,4 @@ export function getFormDataHeaders() {
177
177
  }
178
178
  return null;
179
179
  }
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLXJlcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL3JlcS1yZXMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQ0FBMEM7QUFDMUMsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUNMLFlBQVksRUFDWixxQ0FBcUMsR0FDdEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRzNFLCtEQUErRDtBQUMvRCxNQUFNLHFCQUFxQixHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztBQUUxRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsUUFBYSxFQUFFLEdBQVc7SUFDOUQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxRQUFhLEVBQUUsS0FBYTtJQUMzRCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YscUJBQXFCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFFBQWEsRUFBRSxNQUFXO0lBQ2pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtRQUM5QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBYTtJQUN0QyxJQUFHLE9BQU8sRUFBQyxDQUFDO1FBQ1YsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSw2RkFBNkY7UUFDN0YsZ0JBQWdCO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFFdkMsSUFBSSxDQUFDLEtBQUssSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN4Qix3Q0FBd0M7WUFDeEMsT0FBTyxJQUFJLFdBQVcsQ0FBQztnQkFDbkIsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsYUFBYSxFQUFFLFdBQVc7Z0JBQzFCLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTthQUMxQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNmLHFCQUFxQjtZQUNyQixPQUFPLElBQUksV0FBVyxDQUFDO2dCQUNuQixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxhQUFhLEVBQUUsS0FBSztnQkFDcEIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO2FBQzFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCw2Q0FBNkM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBRUgsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFNBQW9CO0lBQ3RELElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBYSxFQUFFLFNBQWM7SUFDM0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxRQUFRLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN6QyxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsR0FBRyxRQUFRLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsR0FBTyxFQUFDLE1BQWlCO0lBQzVELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQiw4QkFBOEI7SUFDOUIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxpQkFBaUIsR0FBYyxZQUFZLENBQy9DLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNsQyxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcscUNBQXFDLENBQ2pELGlCQUFpQixFQUFFLGlCQUFpQixFQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksRUFDakMsTUFBTSxDQUNQLENBQUM7UUFDRixNQUFNLEdBQUc7WUFDUCxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDekIsSUFBSSxFQUFFLFFBQVE7WUFDZCxHQUFHLEVBQUUsTUFBTSxDQUFDLGlCQUFpQjtZQUM3QixLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxLQUFLO1lBQ2QsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVztZQUMvQyxRQUFRLEVBQUUsaUJBQWlCLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxZQUFZO1lBQ3hFLFlBQVksRUFBRSxRQUFRO1lBQ3RCLElBQUksRUFBRTtnQkFDSiwrRUFBK0U7Z0JBQy9FLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsY0FBYyxHQUFHLEtBQUssRUFBRSxFQUFDLDhCQUE4QjtnQkFDekUsT0FBTyxFQUFFO29CQUNQO3dCQUNFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO3dCQUN2QyxPQUFPLEVBQUUscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO3FCQUNuRjtvQkFDRDt3QkFDRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTt3QkFDckMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztxQkFDekU7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFFBQVE7d0JBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7cUJBQzVFO2lCQUNGO2FBQ0Y7U0FFRixDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEdBQUc7WUFDUCxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDekIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQ25ELEdBQUcsRUFBRSxNQUFNLENBQUMsaUJBQWlCO1lBQzdCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsaUJBQWlCLENBQ3JELGdCQUFnQixDQUFDLEtBQUssQ0FDdkIsQ0FBQztJQUNGLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixPQUFPLElBQUksV0FBVyxDQUFDO1lBQ3JCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsYUFBYSxFQUFFLE9BQU87WUFDdEIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEFwcE9iamVjdCB9IGZyb20gJy4uL21vZGVscy9hcHAtb2JqZWN0LmNsYXNzJztcclxuaW1wb3J0IHtcclxuICBnZXRBcHBPYmplY3QsXHJcbiAgZ2V0RHNxSWRmcm9tU2VsZWN0ZWRBcHBPYmplY3REU1FBcnJheSxcclxufSBmcm9tICcuL3RhYi1hcHAudXRpbCc7XHJcbmltcG9ydCB7IEFwcEZpZWxkcyB9IGZyb20gJy4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyaWVzLmNsYXNzJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vY29uc3RhbnRzL2FwaS1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBnZXRGb3JtQnVpbGRlclR5cGUgfSBmcm9tICcuL2Zvcm0tYnVpbGRlci51dGlsJztcclxuaW1wb3J0IHsgU3RvcmFnZUNvbnN0YW50cyB9IGZyb20gJy4uL2NvbnN0YW50cy9zdG9yYWdlLWNvbnN0YW50cyc7XHJcbi8vIGltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ2V0QXBpVXJsIH0gZnJvbSAnLi9nZXQtYXBpLXVybC5mdW5jdGlvbic7XHJcbmltcG9ydCB7IEFQSV9VUkwgfSBmcm9tICcuLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS11cmwudG9rZW4nO1xyXG4vLyBjb25zdCBzZXNzaW9uU3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcclxuY29uc3Qgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gbmV3IFNlc3Npb25TdG9yYWdlU2VydmljZSgpO1xyXG5cclxuLyoqXHJcbiAqIERlbGV0ZSBhIGtleSBmcm9tIHRoZSByZXNwb25zZSBvYmplY3RcclxuICpcclxuICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIHJlc3BvbnNlIG9iamVjdFxyXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSB0byBiZSBkZWxldGVkXHJcbiAqIEByZXR1cm5zIGFueSAtIFRoZSB1cGRhdGVkIHJlc3BvbnNlIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUtleUZyb21SZXNwb25zZShyZXNwb25zZTogYW55LCBrZXk6IHN0cmluZykge1xyXG4gIGRlbGV0ZSByZXNwb25zZVtrZXldO1xyXG4gIHJldHVybiByZXNwb25zZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgcHJpbWFyeSBrZXkgZnJvbSB0aGUgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqXHJcbiAqIEBwYXJhbSByZXNwb25zZSAtIFRoZSByZXNwb25zZSBvYmplY3RcclxuICogQHBhcmFtIGZpZWxkIC0gVGhlIGZpZWxkIHRvIGJlIHJlbW92ZWQgYXMgcHJpbWFyeSBrZXlcclxuICogQHJldHVybnMgYW55IC0gVGhlIHVwZGF0ZWQgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUHJpbWFyeUtleShyZXNwb25zZTogYW55LCBmaWVsZDogc3RyaW5nKSB7XHJcbiAgaWYgKGZpZWxkKSB7XHJcbiAgICBkZWxldGVLZXlGcm9tUmVzcG9uc2UocmVzcG9uc2UsIGZpZWxkKTtcclxuICB9XHJcbiAgcmV0dXJuIHJlc3BvbnNlO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIG11bHRpcGxlIHByaW1hcnkga2V5cyBmcm9tIHRoZSByZXNwb25zZSBvYmplY3RcclxuICpcclxuICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIHJlc3BvbnNlIG9iamVjdFxyXG4gKiBAcGFyYW0gZmllbGRzIC0gVGhlIGFycmF5IG9mIGZpZWxkcyB0byBiZSByZW1vdmVkIGFzIHByaW1hcnkga2V5c1xyXG4gKiBAcmV0dXJucyBhbnkgLSBUaGUgdXBkYXRlZCByZXNwb25zZSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVNdWx0aXBsZVByaW1hcnlLZXkocmVzcG9uc2U6IGFueSwgZmllbGRzOiBhbnkpIHtcclxuICBmaWVsZHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICBkZWxldGUgcmVzcG9uc2VbZWxlbWVudC5GaWVsZE5hbWVdO1xyXG4gIH0pO1xyXG4gIHJldHVybiByZXNwb25zZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgSHR0cEhlYWRlcnMgZm9yIEFQSSByZXF1ZXN0c1xyXG4gKlxyXG4gKiBAcmV0dXJucyBIdHRwSGVhZGVycyB8IG51bGwgLSBUaGUgSHR0cEhlYWRlcnMgb2JqZWN0IG9yIG51bGxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJzKGhlYWRlcnM/OiBhbnkpIHtcclxuICBpZihoZWFkZXJzKXtcclxuICAgIHJldHVybiBoZWFkZXJzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCB0b2tlbiA9IHNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uU3RvcmFnZShTdG9yYWdlQ29uc3RhbnRzLnRva2VuKTtcclxuICAgIC8vIGNvbnN0IHN0YXRpY1Rva2VuID0gc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25TdG9yYWdlKFN0b3JhZ2VDb25zdGFudHMuc3RhdGljVG9rZW4pO1xyXG4gICAgLy8gcGF0Y2ggdmVyc2lvblxyXG4gICAgY29uc3Qgc3RhdGljVG9rZW4gPSBDb21tb24uc3RhdGljVG9rZW47XHJcbiAgICBcclxuICAgIGlmICghdG9rZW4gJiYgc3RhdGljVG9rZW4pIHtcclxuICAgICAgICAvLyBUb2tlbiBpcyBlbXB0eSBidXQgc3RhdGljVG9rZW4gaXMgbm90XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IHN0YXRpY1Rva2VuLFxyXG4gICAgICAgICAgICBBcHBsaWNhdGlvbkNvZGU6IENvbW1vbi5hcHBsaWNhdGlvbkNvZGUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgLy8gVG9rZW4gaXMgbm90IGVtcHR5XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IHRva2VuLFxyXG4gICAgICAgICAgICBBcHBsaWNhdGlvbkNvZGU6IENvbW1vbi5hcHBsaWNhdGlvbkNvZGUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlbiBib3RoIHRva2VucyBhcmUgZW1wdHlcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgcHJpbWFyeSBrZXkgZmllbGRzIGZyb20gdGhlIEFwcE9iamVjdFxyXG4gKlxyXG4gKiBAcGFyYW0gYXBwT2JqZWN0IC0gVGhlIEFwcE9iamVjdFxyXG4gKiBAcmV0dXJucyBBcHBGaWVsZHNbXSB8IG51bGwgLSBUaGUgYXJyYXkgb2YgcHJpbWFyeSBrZXkgZmllbGRzIG9yIG51bGxcclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJpbWFyeUtleUZpZWxkcyhhcHBPYmplY3Q6IEFwcE9iamVjdCkge1xyXG4gIGlmIChhcHBPYmplY3QuRmllbGRzLmxlbmd0aCkge1xyXG4gICAgcmV0dXJuIGFwcE9iamVjdC5GaWVsZHMuZmlsdGVyKChmaWVsZCkgPT4gZmllbGQuSXNQcmltYXJ5S2V5KTtcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIGVkaXQgcmVjb3JkIElEIGZyb20gdGhlIHJlc3BvbnNlIG9iamVjdFxyXG4gKlxyXG4gKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqIEBwYXJhbSBmaWVsZE5hbWUgLSBUaGUgZmllbGQgbmFtZSBmb3IgdGhlIGVkaXQgcmVjb3JkIElEXHJcbiAqIEByZXR1cm5zIGFueSAtIFRoZSBlZGl0IHJlY29yZCBJRFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEVkaXRSZWNvcmRJZChyZXNwb25zZTogYW55LCBmaWVsZE5hbWU6IGFueSkge1xyXG4gIGxldCByZWNvcmRJZCA9IG51bGw7XHJcbiAgaWYgKGZpZWxkTmFtZSkge1xyXG4gICAgcmVjb3JkSWQgPSByZXNwb25zZVtmaWVsZE5hbWVdIHx8IG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJlY29yZElkID0gcmVzcG9uc2UuSWQgfHwgcmVzcG9uc2UuSUQgfHwgbnVsbDtcclxuICB9XHJcbiAgcmV0dXJuIHJlY29yZElkO1xyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgdGhlIGZpZWxkcyBzY2hlbWEgYmFzZWQgb24gdGhlIEFwcEZpZWxkc1xyXG4gKlxyXG4gKiBAcGFyYW0gZmllbGRzIC0gVGhlIEFwcEZpZWxkcyBvYmplY3RcclxuICogQHJldHVybnMgYW55IC0gVGhlIGdlbmVyYXRlZCBmaWVsZHMgc2NoZW1hXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVGaWVsZHNTY2hlbWEodXJsOmFueSxmaWVsZHM6IEFwcEZpZWxkcykge1xyXG4gIGxldCBzY2hlbWEgPSB7fTtcclxuICAvLyBjb25zdCBhcGlVcmwgPSBnZXRBcGlVcmwoKTtcclxuICBpZiAoZmllbGRzLmhhc093blByb3BlcnR5KCdMb29rVXBEZXRhaWxzJykpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQXBwT2JqZWN0OiBBcHBPYmplY3QgPSBnZXRBcHBPYmplY3QoXHJcbiAgICAgIGZpZWxkcy5Mb29rVXBEZXRhaWxzLkxvb2t1cE9iamVjdFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGRzcUlEID0gZ2V0RHNxSWRmcm9tU2VsZWN0ZWRBcHBPYmplY3REU1FBcnJheShcclxuICAgICAgc2VsZWN0ZWRBcHBPYmplY3Q/LkRhdGFTb3VyY2VRdWVyaWVzLFxyXG4gICAgICBmaWVsZHMuTG9va1VwRGV0YWlscy5Mb29rdXBPYmplY3QsXHJcbiAgICAgICdMaXN0J1xyXG4gICAgKTtcclxuICAgIHNjaGVtYSA9IHtcclxuICAgICAgbGFiZWw6IGZpZWxkcy5EaXNwbGF5TmFtZSxcclxuICAgICAgdHlwZTogJ3NlbGVjdCcsXHJcbiAgICAgIGtleTogZmllbGRzLlN5c3RlbURCRmllbGROYW1lLFxyXG4gICAgICBpbnB1dDogdHJ1ZSxcclxuICAgICAgZGF0YVNyYzogJ3VybCcsXHJcbiAgICAgIHZhbHVlUHJvcGVydHk6IGZpZWxkcy5Mb29rVXBEZXRhaWxzLkxvb2t1cEZpZWxkLFxyXG4gICAgICB0ZW1wbGF0ZTogYDxzcGFuPnt7IGl0ZW0uJHtmaWVsZHMuTG9va1VwRGV0YWlscy5EaXNwbGF5RmllbGR9IH19PC9zcGFuPmAsXHJcbiAgICAgIHNlbGVjdFZhbHVlczogJ1Jlc3VsdCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICAvLyB1cmw6IGAke2FwaVVybH0ke0FQSS5nZXRMaXN0RnJvbURzcX0ke2RzcUlEfWAsLy8gQVBJLmdldExpc3RGcm9tRHNxICsgZHNxSUQsXHJcbiAgICAgICAgdXJsOiBgJHt1cmx9JHtBUEkuZ2V0TGlzdEZyb21Ec3F9JHtkc3FJRH1gLC8vIEFQSS5nZXRMaXN0RnJvbURzcSArIGRzcUlELFxyXG4gICAgICAgIGhlYWRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJrZXlcIjogU3RvcmFnZUNvbnN0YW50cy5hcHBsaWNhdGlvbkNvZGUsXHJcbiAgICAgICAgICAgIFwidmFsdWVcIjogc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25TdG9yYWdlKFN0b3JhZ2VDb25zdGFudHMuYXBwbGljYXRpb25Db2RlKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJrZXlcIjogU3RvcmFnZUNvbnN0YW50cy5BdXRob3JpemF0aW9uLFxyXG4gICAgICAgICAgICBcInZhbHVlXCI6IHNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uU3RvcmFnZShTdG9yYWdlQ29uc3RhbnRzLnRva2VuKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJrZXlcIjogU3RvcmFnZUNvbnN0YW50cy5UZW5hbnRJZCxcclxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiBzZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5UZW5hbnRJZClcclxuICAgICAgICAgIH1cclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIHNjaGVtYSA9IHtcclxuICAgICAgbGFiZWw6IGZpZWxkcy5EaXNwbGF5TmFtZSxcclxuICAgICAgdHlwZTogZ2V0Rm9ybUJ1aWxkZXJUeXBlKGZpZWxkcy5GaWVsZFR5cGUuRGF0YVR5cGUpLFxyXG4gICAgICBrZXk6IGZpZWxkcy5TeXN0ZW1EQkZpZWxkTmFtZSxcclxuICAgICAgaW5wdXQ6IHRydWUsXHJcbiAgICB9O1xyXG4gIH1cclxuICByZXR1cm4gc2NoZW1hO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBIdHRwSGVhZGVycyBmb3IgZm9ybSBkYXRhIHJlcXVlc3RzXHJcbiAqXHJcbiAqIEByZXR1cm5zIEh0dHBIZWFkZXJzIHwgbnVsbCAtIFRoZSBIdHRwSGVhZGVycyBvYmplY3Qgb3IgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1EYXRhSGVhZGVycygpIHtcclxuICBjb25zdCBpc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25TdG9yYWdlKFxyXG4gICAgU3RvcmFnZUNvbnN0YW50cy50b2tlblxyXG4gICk7XHJcbiAgaWYgKGlzVG9rZW4pIHtcclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICBBY2NlcHQ6ICcqLyonLFxyXG4gICAgICBBdXRob3JpemF0aW9uOiBpc1Rva2VuLFxyXG4gICAgICBBcHBsaWNhdGlvbkNvZGU6IENvbW1vbi5hcHBsaWNhdGlvbkNvZGUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxLXJlcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL3JlcS1yZXMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQ0FBMEM7QUFDMUMsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUNMLFlBQVksRUFDWixxQ0FBcUMsR0FDdEMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFDbEQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFM0U7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFFBQWEsRUFBRSxHQUFXO0lBQzlELE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBYSxFQUFFLEtBQWE7SUFDM0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLHFCQUFxQixDQUFD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QUFDaEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLGlCQUFpQixDQUNyRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQ3ZCLENBQUM7SUFDRixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osT0FBTyxJQUFJLFdBQVcsQ0FBQztZQUNyQixNQUFNLEVBQUUsS0FBSztZQUNiLGFBQWEsRUFBRSxPQUFPO1lBQ3RCLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uL2NvbnN0YW50cy9jb21tb24nO1xyXG5pbXBvcnQgeyBBcHBPYmplY3QgfSBmcm9tICcuLi9tb2RlbHMvYXBwLW9iamVjdC5jbGFzcyc7XHJcbmltcG9ydCB7XHJcbiAgZ2V0QXBwT2JqZWN0LFxyXG4gIGdldERzcUlkZnJvbVNlbGVjdGVkQXBwT2JqZWN0RFNRQXJyYXksXHJcbn0gZnJvbSAnLi90YWItYXBwLnV0aWwnO1xyXG5pbXBvcnQgeyBBcHBGaWVsZHMgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS1zb3VyY2UtcXVlcmllcy5jbGFzcyc7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgZ2V0Rm9ybUJ1aWxkZXJUeXBlIH0gZnJvbSAnLi9mb3JtLWJ1aWxkZXIudXRpbCc7XHJcbmltcG9ydCB7IFN0b3JhZ2VDb25zdGFudHMgfSBmcm9tICcuLi9jb25zdGFudHMvc3RvcmFnZS1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2UvZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuY29uc3QgZW5jcnlwdGlvblNlcnZpY2UgPSBuZXcgRW5jcnlwdGlvblNlcnZpY2UoKTtcclxuY29uc3Qgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gbmV3IFNlc3Npb25TdG9yYWdlU2VydmljZShlbmNyeXB0aW9uU2VydmljZSk7XHJcblxyXG4vKipcclxuICogRGVsZXRlIGEga2V5IGZyb20gdGhlIHJlc3BvbnNlIG9iamVjdFxyXG4gKlxyXG4gKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IHRvIGJlIGRlbGV0ZWRcclxuICogQHJldHVybnMgYW55IC0gVGhlIHVwZGF0ZWQgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlS2V5RnJvbVJlc3BvbnNlKHJlc3BvbnNlOiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgZGVsZXRlIHJlc3BvbnNlW2tleV07XHJcbiAgcmV0dXJuIHJlc3BvbnNlO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBwcmltYXJ5IGtleSBmcm9tIHRoZSByZXNwb25zZSBvYmplY3RcclxuICpcclxuICogQHBhcmFtIHJlc3BvbnNlIC0gVGhlIHJlc3BvbnNlIG9iamVjdFxyXG4gKiBAcGFyYW0gZmllbGQgLSBUaGUgZmllbGQgdG8gYmUgcmVtb3ZlZCBhcyBwcmltYXJ5IGtleVxyXG4gKiBAcmV0dXJucyBhbnkgLSBUaGUgdXBkYXRlZCByZXNwb25zZSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcmltYXJ5S2V5KHJlc3BvbnNlOiBhbnksIGZpZWxkOiBzdHJpbmcpIHtcclxuICBpZiAoZmllbGQpIHtcclxuICAgIGRlbGV0ZUtleUZyb21SZXNwb25zZShyZXNwb25zZSwgZmllbGQpO1xyXG4gIH1cclxuICByZXR1cm4gcmVzcG9uc2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgbXVsdGlwbGUgcHJpbWFyeSBrZXlzIGZyb20gdGhlIHJlc3BvbnNlIG9iamVjdFxyXG4gKlxyXG4gKiBAcGFyYW0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqIEBwYXJhbSBmaWVsZHMgLSBUaGUgYXJyYXkgb2YgZmllbGRzIHRvIGJlIHJlbW92ZWQgYXMgcHJpbWFyeSBrZXlzXHJcbiAqIEByZXR1cm5zIGFueSAtIFRoZSB1cGRhdGVkIHJlc3BvbnNlIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU11bHRpcGxlUHJpbWFyeUtleShyZXNwb25zZTogYW55LCBmaWVsZHM6IGFueSkge1xyXG4gIGZpZWxkcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgIGRlbGV0ZSByZXNwb25zZVtlbGVtZW50LkZpZWxkTmFtZV07XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHJlc3BvbnNlO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBIdHRwSGVhZGVycyBmb3IgQVBJIHJlcXVlc3RzXHJcbiAqXHJcbiAqIEByZXR1cm5zIEh0dHBIZWFkZXJzIHwgbnVsbCAtIFRoZSBIdHRwSGVhZGVycyBvYmplY3Qgb3IgbnVsbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlYWRlcnMoaGVhZGVycz86IGFueSkge1xyXG4gIGlmKGhlYWRlcnMpe1xyXG4gICAgcmV0dXJuIGhlYWRlcnM7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IHRva2VuID0gc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25TdG9yYWdlKFN0b3JhZ2VDb25zdGFudHMudG9rZW4pO1xyXG4gICAgLy8gY29uc3Qgc3RhdGljVG9rZW4gPSBzZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5zdGF0aWNUb2tlbik7XHJcbiAgICAvLyBwYXRjaCB2ZXJzaW9uXHJcbiAgICBjb25zdCBzdGF0aWNUb2tlbiA9IENvbW1vbi5zdGF0aWNUb2tlbjtcclxuICAgIFxyXG4gICAgaWYgKCF0b2tlbiAmJiBzdGF0aWNUb2tlbikge1xyXG4gICAgICAgIC8vIFRva2VuIGlzIGVtcHR5IGJ1dCBzdGF0aWNUb2tlbiBpcyBub3RcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogc3RhdGljVG9rZW4sXHJcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uQ29kZTogQ29tbW9uLmFwcGxpY2F0aW9uQ29kZSxcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAodG9rZW4pIHtcclxuICAgICAgICAvLyBUb2tlbiBpcyBub3QgZW1wdHlcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogdG9rZW4sXHJcbiAgICAgICAgICAgIEFwcGxpY2F0aW9uQ29kZTogQ29tbW9uLmFwcGxpY2F0aW9uQ29kZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVuIGJvdGggdG9rZW5zIGFyZSBlbXB0eVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBwcmltYXJ5IGtleSBmaWVsZHMgZnJvbSB0aGUgQXBwT2JqZWN0XHJcbiAqXHJcbiAqIEBwYXJhbSBhcHBPYmplY3QgLSBUaGUgQXBwT2JqZWN0XHJcbiAqIEByZXR1cm5zIEFwcEZpZWxkc1tdIHwgbnVsbCAtIFRoZSBhcnJheSBvZiBwcmltYXJ5IGtleSBmaWVsZHMgb3IgbnVsbFxyXG4gKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmltYXJ5S2V5RmllbGRzKGFwcE9iamVjdDogQXBwT2JqZWN0KSB7XHJcbiAgaWYgKGFwcE9iamVjdC5GaWVsZHMubGVuZ3RoKSB7XHJcbiAgICByZXR1cm4gYXBwT2JqZWN0LkZpZWxkcy5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZC5Jc1ByaW1hcnlLZXkpO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgZWRpdCByZWNvcmQgSUQgZnJvbSB0aGUgcmVzcG9uc2Ugb2JqZWN0XHJcbiAqXHJcbiAqIEBwYXJhbSByZXNwb25zZSAtIFRoZSByZXNwb25zZSBvYmplY3RcclxuICogQHBhcmFtIGZpZWxkTmFtZSAtIFRoZSBmaWVsZCBuYW1lIGZvciB0aGUgZWRpdCByZWNvcmQgSURcclxuICogQHJldHVybnMgYW55IC0gVGhlIGVkaXQgcmVjb3JkIElEXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdFJlY29yZElkKHJlc3BvbnNlOiBhbnksIGZpZWxkTmFtZTogYW55KSB7XHJcbiAgbGV0IHJlY29yZElkID0gbnVsbDtcclxuICBpZiAoZmllbGROYW1lKSB7XHJcbiAgICByZWNvcmRJZCA9IHJlc3BvbnNlW2ZpZWxkTmFtZV0gfHwgbnVsbDtcclxuICB9IGVsc2Uge1xyXG4gICAgcmVjb3JkSWQgPSByZXNwb25zZS5JZCB8fCByZXNwb25zZS5JRCB8fCBudWxsO1xyXG4gIH1cclxuICByZXR1cm4gcmVjb3JkSWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSB0aGUgZmllbGRzIHNjaGVtYSBiYXNlZCBvbiB0aGUgQXBwRmllbGRzXHJcbiAqXHJcbiAqIEBwYXJhbSBmaWVsZHMgLSBUaGUgQXBwRmllbGRzIG9iamVjdFxyXG4gKiBAcmV0dXJucyBhbnkgLSBUaGUgZ2VuZXJhdGVkIGZpZWxkcyBzY2hlbWFcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUZpZWxkc1NjaGVtYSh1cmw6YW55LGZpZWxkczogQXBwRmllbGRzKSB7XHJcbiAgbGV0IHNjaGVtYSA9IHt9O1xyXG4gIC8vIGNvbnN0IGFwaVVybCA9IGdldEFwaVVybCgpO1xyXG4gIGlmIChmaWVsZHMuaGFzT3duUHJvcGVydHkoJ0xvb2tVcERldGFpbHMnKSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRBcHBPYmplY3Q6IEFwcE9iamVjdCA9IGdldEFwcE9iamVjdChcclxuICAgICAgZmllbGRzLkxvb2tVcERldGFpbHMuTG9va3VwT2JqZWN0XHJcbiAgICApO1xyXG4gICAgY29uc3QgZHNxSUQgPSBnZXREc3FJZGZyb21TZWxlY3RlZEFwcE9iamVjdERTUUFycmF5KFxyXG4gICAgICBzZWxlY3RlZEFwcE9iamVjdD8uRGF0YVNvdXJjZVF1ZXJpZXMsXHJcbiAgICAgIGZpZWxkcy5Mb29rVXBEZXRhaWxzLkxvb2t1cE9iamVjdCxcclxuICAgICAgJ0xpc3QnXHJcbiAgICApO1xyXG4gICAgc2NoZW1hID0ge1xyXG4gICAgICBsYWJlbDogZmllbGRzLkRpc3BsYXlOYW1lLFxyXG4gICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAga2V5OiBmaWVsZHMuU3lzdGVtREJGaWVsZE5hbWUsXHJcbiAgICAgIGlucHV0OiB0cnVlLFxyXG4gICAgICBkYXRhU3JjOiAndXJsJyxcclxuICAgICAgdmFsdWVQcm9wZXJ0eTogZmllbGRzLkxvb2tVcERldGFpbHMuTG9va3VwRmllbGQsXHJcbiAgICAgIHRlbXBsYXRlOiBgPHNwYW4+e3sgaXRlbS4ke2ZpZWxkcy5Mb29rVXBEZXRhaWxzLkRpc3BsYXlGaWVsZH0gfX08L3NwYW4+YCxcclxuICAgICAgc2VsZWN0VmFsdWVzOiAnUmVzdWx0JyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIC8vIHVybDogYCR7YXBpVXJsfSR7QVBJLmdldExpc3RGcm9tRHNxfSR7ZHNxSUR9YCwvLyBBUEkuZ2V0TGlzdEZyb21Ec3EgKyBkc3FJRCxcclxuICAgICAgICB1cmw6IGAke3VybH0ke0FQSS5nZXRMaXN0RnJvbURzcX0ke2RzcUlEfWAsLy8gQVBJLmdldExpc3RGcm9tRHNxICsgZHNxSUQsXHJcbiAgICAgICAgaGVhZGVyczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImtleVwiOiBTdG9yYWdlQ29uc3RhbnRzLmFwcGxpY2F0aW9uQ29kZSxcclxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiBzZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5hcHBsaWNhdGlvbkNvZGUpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImtleVwiOiBTdG9yYWdlQ29uc3RhbnRzLkF1dGhvcml6YXRpb24sXHJcbiAgICAgICAgICAgIFwidmFsdWVcIjogc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25TdG9yYWdlKFN0b3JhZ2VDb25zdGFudHMudG9rZW4pXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImtleVwiOiBTdG9yYWdlQ29uc3RhbnRzLlRlbmFudElkLFxyXG4gICAgICAgICAgICBcInZhbHVlXCI6IHNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uU3RvcmFnZShTdG9yYWdlQ29uc3RhbnRzLlRlbmFudElkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIFxyXG4gICAgfTtcclxuICB9IGVsc2Uge1xyXG4gICAgc2NoZW1hID0ge1xyXG4gICAgICBsYWJlbDogZmllbGRzLkRpc3BsYXlOYW1lLFxyXG4gICAgICB0eXBlOiBnZXRGb3JtQnVpbGRlclR5cGUoZmllbGRzLkZpZWxkVHlwZS5EYXRhVHlwZSksXHJcbiAgICAgIGtleTogZmllbGRzLlN5c3RlbURCRmllbGROYW1lLFxyXG4gICAgICBpbnB1dDogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIHJldHVybiBzY2hlbWE7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIEh0dHBIZWFkZXJzIGZvciBmb3JtIGRhdGEgcmVxdWVzdHNcclxuICpcclxuICogQHJldHVybnMgSHR0cEhlYWRlcnMgfCBudWxsIC0gVGhlIEh0dHBIZWFkZXJzIG9iamVjdCBvciBudWxsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybURhdGFIZWFkZXJzKCkge1xyXG4gIGNvbnN0IGlzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoXHJcbiAgICBTdG9yYWdlQ29uc3RhbnRzLnRva2VuXHJcbiAgKTtcclxuICBpZiAoaXNUb2tlbikge1xyXG4gICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgIEFjY2VwdDogJyovKicsXHJcbiAgICAgIEF1dGhvcml6YXRpb246IGlzVG9rZW4sXHJcbiAgICAgIEFwcGxpY2F0aW9uQ29kZTogQ29tbW9uLmFwcGxpY2F0aW9uQ29kZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG4iXX0=
@@ -1,8 +1,11 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { openDB } from 'idb';
3
+ import { EncryptionService } from '../core/service/encryption.service';
3
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "../core/service/encryption.service";
4
6
  export class IdbService {
5
- constructor() {
7
+ constructor(encryptionService) {
8
+ this.encryptionService = encryptionService;
6
9
  this.dbName = 'TabDatabase';
7
10
  this.dbVersion = 1;
8
11
  this.dbPromise = openDB(this.dbName, this.dbVersion, {
@@ -24,28 +27,40 @@ export class IdbService {
24
27
  }
25
28
  }
26
29
  async setItemIndexedDb(key, data) {
30
+ const secureKey = this.encryptionService.getSecureKey(key);
31
+ const stringData = (typeof data === 'string' || !this.encryptionService?.shouldEncrypt()) ? data : JSON.stringify(data);
32
+ const encrypted = this.encryptionService.encrypt(stringData);
27
33
  const db = await this.dbPromise;
28
34
  const tx = db.transaction('myObjectStore', 'readwrite');
29
35
  const store = tx.objectStore('myObjectStore');
30
- await store.put({ key, data });
36
+ await store.put({ key: secureKey, data: encrypted });
31
37
  await tx.done;
32
38
  }
33
39
  async getItem(key) {
34
40
  try {
35
41
  const result = await this.getItemIndexedDb(key);
36
- return result?.data;
42
+ return result;
37
43
  }
38
44
  catch (error) {
39
45
  throw new Error('Error retrieving data: ' + error);
40
46
  }
41
47
  }
42
48
  async getItemIndexedDb(key) {
49
+ const secureKey = this.encryptionService.getSecureKey(key);
43
50
  const db = await this.dbPromise;
44
51
  const tx = db.transaction('myObjectStore', 'readonly');
45
52
  const store = tx.objectStore('myObjectStore');
46
- const result = await store.get(key);
53
+ const result = await store.get(secureKey);
47
54
  await tx.done;
48
- return result;
55
+ if (!result?.data)
56
+ return null;
57
+ try {
58
+ const decrypted = this.encryptionService.decrypt(result.data);
59
+ return decrypted;
60
+ }
61
+ catch (error) {
62
+ return null;
63
+ }
49
64
  }
50
65
  async clearIndexedDB() {
51
66
  try {
@@ -59,11 +74,11 @@ export class IdbService {
59
74
  throw new Error('Error clearing IndexedDB: ' + error);
60
75
  }
61
76
  }
62
- static { this.ɵfac = function IdbService_Factory(t) { return new (t || IdbService)(); }; }
77
+ static { this.ɵfac = function IdbService_Factory(t) { return new (t || IdbService)(i0.ɵɵinject(i1.EncryptionService)); }; }
63
78
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IdbService, factory: IdbService.ɵfac, providedIn: 'root' }); }
64
79
  }
65
80
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IdbService, [{
66
81
  type: Injectable,
67
82
  args: [{ providedIn: 'root' }]
68
- }], () => [], null); })();
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRiLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvaWRiLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQTBCLE1BQU0sS0FBSyxDQUFDOztBQVVyRCxNQUFNLE9BQU8sVUFBVTtJQUtuQjtRQUppQixXQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFJM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxFQUFFO2dCQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQ2pELEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztZQUNMLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFXLEVBQUUsSUFBUztRQUNoQyxJQUFJLENBQUM7WUFDRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNQLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQVcsRUFBRSxJQUFTO1FBQ2pELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFXO1FBQ3JCLElBQUksQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sTUFBTSxFQUFFLElBQUksQ0FBQztRQUN4QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBVztRQUN0QyxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2hCLElBQUksQ0FBQztZQUNELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN4RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNsQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDLENBQUE7UUFDekQsQ0FBQztJQUNMLENBQUM7MkVBN0RRLFVBQVU7dUVBQVYsVUFBVSxXQUFWLFVBQVUsbUJBREcsTUFBTTs7aUZBQ25CLFVBQVU7Y0FEdEIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9wZW5EQiwgSURCUERhdGFiYXNlLCBEQlNjaGVtYSB9IGZyb20gJ2lkYic7XG5cbmludGVyZmFjZSBNeURCIGV4dGVuZHMgREJTY2hlbWEge1xuICAgIG15T2JqZWN0U3RvcmU6IHtcbiAgICAgICAga2V5OiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiB7IGtleTogc3RyaW5nOyBkYXRhOiBzdHJpbmcgfTtcbiAgICB9O1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIElkYlNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGJOYW1lID0gJ1RhYkRhdGFiYXNlJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRiVmVyc2lvbiA9IDE7XG4gICAgcHJpdmF0ZSBkYlByb21pc2U6IFByb21pc2U8SURCUERhdGFiYXNlPE15REI+PjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRiUHJvbWlzZSA9IG9wZW5EQjxNeURCPih0aGlzLmRiTmFtZSwgdGhpcy5kYlZlcnNpb24sIHtcbiAgICAgICAgICAgIHVwZ3JhZGUoZGIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ215T2JqZWN0U3RvcmUnKSkge1xuICAgICAgICAgICAgICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnbXlPYmplY3RTdG9yZScsIHsga2V5UGF0aDogJ2tleScgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2V0SXRlbShrZXk6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0SXRlbUluZGV4ZWREYihrZXksIGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBzdG9yaW5nIGRhdGE6ICcgKyBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldEl0ZW1JbmRleGVkRGIoa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBkYiA9IGF3YWl0IHRoaXMuZGJQcm9taXNlO1xuICAgICAgICBjb25zdCB0eCA9IGRiLnRyYW5zYWN0aW9uKCdteU9iamVjdFN0b3JlJywgJ3JlYWR3cml0ZScpO1xuICAgICAgICBjb25zdCBzdG9yZSA9IHR4Lm9iamVjdFN0b3JlKCdteU9iamVjdFN0b3JlJyk7XG4gICAgICAgIGF3YWl0IHN0b3JlLnB1dCh7IGtleSwgZGF0YSB9KTtcbiAgICAgICAgYXdhaXQgdHguZG9uZTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0SXRlbUluZGV4ZWREYihrZXkpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdD8uZGF0YTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgcmV0cmlldmluZyBkYXRhOiAnICsgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRJdGVtSW5kZXhlZERiKGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgZGIgPSBhd2FpdCB0aGlzLmRiUHJvbWlzZTtcbiAgICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbignbXlPYmplY3RTdG9yZScsICdyZWFkb25seScpO1xuICAgICAgICBjb25zdCBzdG9yZSA9IHR4Lm9iamVjdFN0b3JlKCdteU9iamVjdFN0b3JlJyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JlLmdldChrZXkpO1xuICAgICAgICBhd2FpdCB0eC5kb25lO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGFzeW5jIGNsZWFySW5kZXhlZERCKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGIgPSBhd2FpdCB0aGlzLmRiUHJvbWlzZTtcbiAgICAgICAgICAgIGNvbnN0IHR4ID0gZGIudHJhbnNhY3Rpb24oJ215T2JqZWN0U3RvcmUnLCAncmVhZHdyaXRlJyk7XG4gICAgICAgICAgICBjb25zdCBzdG9yZSA9IHR4Lm9iamVjdFN0b3JlKCdteU9iamVjdFN0b3JlJyk7XG4gICAgICAgICAgICBhd2FpdCBzdG9yZS5jbGVhcigpO1xuICAgICAgICAgICAgYXdhaXQgdHguZG9uZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgY2xlYXJpbmcgSW5kZXhlZERCOiAnICsgZXJyb3IpXG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuXG4iXX0=
83
+ }], () => [{ type: i1.EncryptionService }], null); })();
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRiLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2F1dGgvaWRiLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQTBCLE1BQU0sS0FBSyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFVdkUsTUFBTSxPQUFPLFVBQVU7SUFLbkIsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFKdkMsV0FBTSxHQUFHLGFBQWEsQ0FBQztRQUN2QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBSTNCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN2RCxPQUFPLENBQUMsRUFBRTtnQkFDTixJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO29CQUNqRCxFQUFFLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzlELENBQUM7WUFDTCxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBVyxFQUFFLElBQVM7UUFDaEMsSUFBSSxDQUFDO1lBQ0QsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtB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O1lBQ3BCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNsQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDLENBQUE7UUFDekQsQ0FBQztJQUNMLENBQUM7MkVBMUVRLFVBQVU7dUVBQVYsVUFBVSxXQUFWLFVBQVUsbUJBREcsTUFBTTs7aUZBQ25CLFVBQVU7Y0FEdEIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9wZW5EQiwgSURCUERhdGFiYXNlLCBEQlNjaGVtYSB9IGZyb20gJ2lkYic7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2VydmljZS9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgTXlEQiBleHRlbmRzIERCU2NoZW1hIHtcbiAgICBteU9iamVjdFN0b3JlOiB7XG4gICAgICAgIGtleTogc3RyaW5nO1xuICAgICAgICB2YWx1ZTogeyBrZXk6IHN0cmluZzsgZGF0YTogc3RyaW5nIH07XG4gICAgfTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJZGJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRiTmFtZSA9ICdUYWJEYXRhYmFzZSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkYlZlcnNpb24gPSAxO1xuICAgIHByaXZhdGUgZGJQcm9taXNlOiBQcm9taXNlPElEQlBEYXRhYmFzZTxNeURCPj47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSkge1xuICAgICAgICB0aGlzLmRiUHJvbWlzZSA9IG9wZW5EQjxNeURCPih0aGlzLmRiTmFtZSwgdGhpcy5kYlZlcnNpb24sIHtcbiAgICAgICAgICAgIHVwZ3JhZGUoZGIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ215T2JqZWN0U3RvcmUnKSkge1xuICAgICAgICAgICAgICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnbXlPYmplY3RTdG9yZScsIHsga2V5UGF0aDogJ2tleScgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2V0SXRlbShrZXk6IHN0cmluZywgZGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0SXRlbUluZGV4ZWREYihrZXksIGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBzdG9yaW5nIGRhdGE6ICcgKyBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldEl0ZW1JbmRleGVkRGIoa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBzZWN1cmVLZXkgPSB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmdldFNlY3VyZUtleShrZXkpO1xuICAgICAgICBjb25zdCBzdHJpbmdEYXRhID0gKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyB8fCAhdGhpcy5lbmNyeXB0aW9uU2VydmljZT8uc2hvdWxkRW5jcnlwdCgpKSA/IGRhdGEgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgY29uc3QgZW5jcnlwdGVkID0gdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KHN0cmluZ0RhdGEpO1xuXG4gICAgICAgIGNvbnN0IGRiID0gYXdhaXQgdGhpcy5kYlByb21pc2U7XG4gICAgICAgIGNvbnN0IHR4ID0gZGIudHJhbnNhY3Rpb24oJ215T2JqZWN0U3RvcmUnLCAncmVhZHdyaXRlJyk7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gdHgub2JqZWN0U3RvcmUoJ215T2JqZWN0U3RvcmUnKTtcbiAgICAgICAgYXdhaXQgc3RvcmUucHV0KHsga2V5OiBzZWN1cmVLZXksIGRhdGE6IGVuY3J5cHRlZCB9KTtcbiAgICAgICAgYXdhaXQgdHguZG9uZTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0SXRlbUluZGV4ZWREYihrZXkpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgcmV0cmlldmluZyBkYXRhOiAnICsgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRJdGVtSW5kZXhlZERiKGtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgc2VjdXJlS2V5ID0gdGhpcy5lbmNyeXB0aW9uU2VydmljZS5nZXRTZWN1cmVLZXkoa2V5KTtcbiAgICAgICAgY29uc3QgZGIgPSBhd2FpdCB0aGlzLmRiUHJvbWlzZTtcbiAgICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbignbXlPYmplY3RTdG9yZScsICdyZWFkb25seScpO1xuICAgICAgICBjb25zdCBzdG9yZSA9IHR4Lm9iamVjdFN0b3JlKCdteU9iamVjdFN0b3JlJyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0b3JlLmdldChzZWN1cmVLZXkpO1xuICAgICAgICBhd2FpdCB0eC5kb25lO1xuXG4gICAgICAgIGlmICghcmVzdWx0Py5kYXRhKSByZXR1cm4gbnVsbDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGVjcnlwdGVkID0gdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkZWNyeXB0ZWQ7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBjbGVhckluZGV4ZWREQigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRiID0gYXdhaXQgdGhpcy5kYlByb21pc2U7XG4gICAgICAgICAgICBjb25zdCB0eCA9IGRiLnRyYW5zYWN0aW9uKCdteU9iamVjdFN0b3JlJywgJ3JlYWR3cml0ZScpO1xuICAgICAgICAgICAgY29uc3Qgc3RvcmUgPSB0eC5vYmplY3RTdG9yZSgnbXlPYmplY3RTdG9yZScpO1xuICAgICAgICAgICAgYXdhaXQgc3RvcmUuY2xlYXIoKTtcbiAgICAgICAgICAgIGF3YWl0IHR4LmRvbmU7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGNsZWFyaW5nIEluZGV4ZWREQjogJyArIGVycm9yKVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuIl19
@@ -1,24 +1,24 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { Injectable } from '@angular/core';
3
+ import { EncryptionService } from '../core/service/encryption.service';
3
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "../core/service/encryption.service";
4
6
  export class LocalStorageService {
5
- constructor() {
7
+ constructor(encryptionService) {
8
+ this.encryptionService = encryptionService;
6
9
  // -----------------------------------------------------------------------------------------------------
7
10
  // @ Public methods
8
11
  // -----------------------------------------------------------------------------------------------------
12
+ this.cache = new Map();
9
13
  /**
10
14
  * Set data in local storage
11
15
  * @param key - Key to store the data
12
16
  * @param data - Data to be stored
13
17
  */
14
18
  this.setLocalStorage = (key, data) => {
15
- // localStorage.setItem(key, JSON.stringify(data));
16
- if (typeof data === 'string') {
17
- localStorage.setItem(key, data);
18
- }
19
- else {
20
- localStorage.setItem(key, JSON.stringify(data));
21
- }
19
+ const stringData = typeof data === 'string' ? data : JSON.stringify(data);
20
+ this.cache.set(key, stringData);
21
+ this.encryptAndStore(key, stringData);
22
22
  };
23
23
  /**
24
24
  * Get data from local storage
@@ -26,30 +26,68 @@ export class LocalStorageService {
26
26
  * @returns The data stored in local storage
27
27
  */
28
28
  this.getLocalStorage = (key) => {
29
- const data = localStorage.getItem(key);
30
- return data ? data : null;
31
- // if (typeof data === 'string') {
32
- // return data ? data: null;
33
- // } else {
34
- // return data ? JSON.parse(data) : null;
35
- // }
29
+ if (this.cache.has(key)) {
30
+ return this.cache.get(key);
31
+ }
32
+ const secureKey = this.encryptionService.getSecureKey(key);
33
+ const encrypted = localStorage.getItem(secureKey);
34
+ if (!encrypted)
35
+ return null;
36
+ try {
37
+ const decrypted = this.encryptionService.decrypt(encrypted);
38
+ this.cache.set(key, decrypted);
39
+ return decrypted;
40
+ }
41
+ catch (error) {
42
+ return null;
43
+ }
36
44
  };
37
45
  /**
38
46
  * Remove data from local storage
39
47
  * @param key - Key of the data to be removed
40
48
  */
41
49
  this.removeLocalStorage = (key) => {
42
- localStorage.removeItem(key);
50
+ this.cache.delete(key);
51
+ this.removeFromLocalStorage(key);
43
52
  };
44
53
  this.clearLocalStorage = () => {
45
54
  localStorage.clear();
55
+ this.cache.clear();
46
56
  };
47
57
  }
48
- static { this.ɵfac = function LocalStorageService_Factory(t) { return new (t || LocalStorageService)(); }; }
58
+ /**
59
+ * Encrypts the given data using the encryption service and stores it in local storage.
60
+ *
61
+ * @param key The key to store the data under
62
+ * @param data The data to be stored
63
+ */
64
+ encryptAndStore(key, data) {
65
+ // Use `queueMicrotask` to ensure that the encryption and storage are done after the current task is completed
66
+ // This is to prevent any errors that might occur during encryption from causing the application to crash
67
+ queueMicrotask(() => {
68
+ const secureKey = this.encryptionService.getSecureKey(key);
69
+ const encrypted = this.encryptionService.encrypt(data);
70
+ localStorage.setItem(secureKey, encrypted);
71
+ });
72
+ }
73
+ /**
74
+ * Removes the data stored in local storage for the given key.
75
+ * This method is used internally by `removeLocalStorage`.
76
+ * @param key The key of the data to be removed
77
+ */
78
+ removeFromLocalStorage(key) {
79
+ // Use `queueMicrotask` to ensure that the removal is done after the current task is completed
80
+ // This is to prevent any errors that might occur during removal from causing the application to crash
81
+ queueMicrotask(() => {
82
+ const secureKey = this.encryptionService.getSecureKey(key);
83
+ localStorage.removeItem(secureKey);
84
+ });
85
+ }
86
+ static { this.ɵfac = function LocalStorageService_Factory(t) { return new (t || LocalStorageService)(i0.ɵɵinject(i1.EncryptionService)); }; }
49
87
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LocalStorageService, factory: LocalStorageService.ɵfac, providedIn: 'root' }); }
50
88
  }
51
89
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LocalStorageService, [{
52
90
  type: Injectable,
53
91
  args: [{ providedIn: 'root' }]
54
- }], null, null); })();
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFRSx3R0FBd0c7UUFDeEcsbUJBQW1CO1FBQ25CLHdHQUF3RztRQUV4Rzs7OztXQUlHO1FBQ0gsb0JBQWUsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQVEsRUFBRTtZQUNqRCxtREFBbUQ7WUFDbkQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUY7Ozs7V0FJRztRQUNILG9CQUFlLEdBQUcsQ0FBQyxHQUFXLEVBQU8sRUFBRTtZQUNyQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6QixrQ0FBa0M7WUFDbEMsOEJBQThCO1lBQzlCLFdBQVc7WUFDWCwyQ0FBMkM7WUFDM0MsSUFBSTtRQUNOLENBQUMsQ0FBQztRQUVGOzs7V0FHRztRQUNILHVCQUFrQixHQUFHLENBQUMsR0FBVyxFQUFRLEVBQUU7WUFDekMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUM7UUFFRixzQkFBaUIsR0FBRyxHQUFTLEVBQUU7WUFDN0IsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztLQUNIO29GQTdDWSxtQkFBbUI7dUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUIsbUJBRE4sTUFBTTs7aUZBQ25CLG1CQUFtQjtjQUQvQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2Uge1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNldCBkYXRhIGluIGxvY2FsIHN0b3JhZ2VcbiAgICogQHBhcmFtIGtleSAtIEtleSB0byBzdG9yZSB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gYmUgc3RvcmVkXG4gICAqL1xuICBzZXRMb2NhbFN0b3JhZ2UgPSAoa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQgPT4ge1xuICAgIC8vIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogR2V0IGRhdGEgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAqIEBwYXJhbSBrZXkgLSBLZXkgdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICogQHJldHVybnMgVGhlIGRhdGEgc3RvcmVkIGluIGxvY2FsIHN0b3JhZ2VcbiAgICovXG4gIGdldExvY2FsU3RvcmFnZSA9IChrZXk6IHN0cmluZyk6IGFueSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgcmV0dXJuIGRhdGEgPyBkYXRhOiBudWxsO1xuICAgIC8vIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyAgIHJldHVybiBkYXRhID8gZGF0YTogbnVsbDtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgcmV0dXJuIGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDogbnVsbDtcbiAgICAvLyB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZVxuICAgKiBAcGFyYW0ga2V5IC0gS2V5IG9mIHRoZSBkYXRhIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHJlbW92ZUxvY2FsU3RvcmFnZSA9IChrZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gIH07XG5cbiAgY2xlYXJMb2NhbFN0b3JhZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gIH07XG59XG4iXX0=
92
+ }], () => [{ type: i1.EncryptionService }], null); })();
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXV0aC9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUd2RSxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBTnhELHdHQUF3RztRQUN4RyxtQkFBbUI7UUFDbkIsd0dBQXdHO1FBRWhHLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUkxQzs7OztXQUlHO1FBQ0gsb0JBQWUsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQVEsRUFBRTtZQUNqRCxNQUFNLFVBQVUsR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDO1FBRUY7Ozs7V0FJRztRQUNILG9CQUFlLEdBQUcsQ0FBQyxHQUFXLEVBQU8sRUFBRTtZQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUU1QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRjs7O1dBR0c7UUFDSCx1QkFBa0IsR0FBRyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFRixzQkFBaUIsR0FBRyxHQUFTLEVBQUU7WUFDN0IsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO0lBaEQwRCxDQUFDO0lBa0Q3RDs7Ozs7T0FLRztJQUNLLGVBQWUsQ0FBQyxHQUFXLEVBQUUsSUFBWTtRQUMvQyw4R0FBOEc7UUFDOUcseUdBQXlHO1FBQ3pHLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxzQkFBc0IsQ0FBQyxHQUFXO1FBQ3hDLDhGQUE4RjtRQUM5RixzR0FBc0c7UUFDdEcsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNELFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO29GQXJGVSxtQkFBbUI7dUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUIsbUJBRE4sTUFBTTs7aUZBQ25CLG1CQUFtQjtjQUQvQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2UvZW5jcnlwdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIHtcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQCBQdWJsaWMgbWV0aG9kc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlKSB7IH1cblxuICAvKipcbiAgICogU2V0IGRhdGEgaW4gbG9jYWwgc3RvcmFnZVxuICAgKiBAcGFyYW0ga2V5IC0gS2V5IHRvIHN0b3JlIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBkYXRhIC0gRGF0YSB0byBiZSBzdG9yZWRcbiAgICovXG4gIHNldExvY2FsU3RvcmFnZSA9IChrZXk6IHN0cmluZywgZGF0YTogYW55KTogdm9pZCA9PiB7XG4gICAgY29uc3Qgc3RyaW5nRGF0YSA9IHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyA/IGRhdGEgOiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICB0aGlzLmNhY2hlLnNldChrZXksIHN0cmluZ0RhdGEpO1xuICAgIHRoaXMuZW5jcnlwdEFuZFN0b3JlKGtleSwgc3RyaW5nRGF0YSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZVxuICAgKiBAcGFyYW0ga2V5IC0gS2V5IHRvIHJldHJpZXZlIHRoZSBkYXRhXG4gICAqIEByZXR1cm5zIFRoZSBkYXRhIHN0b3JlZCBpbiBsb2NhbCBzdG9yYWdlXG4gICAqL1xuICBnZXRMb2NhbFN0b3JhZ2UgPSAoa2V5OiBzdHJpbmcpOiBhbnkgPT4ge1xuICAgIGlmICh0aGlzLmNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWN1cmVLZXkgPSB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmdldFNlY3VyZUtleShrZXkpO1xuICAgIGNvbnN0IGVuY3J5cHRlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHNlY3VyZUtleSk7XG4gICAgaWYgKCFlbmNyeXB0ZWQpIHJldHVybiBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY3J5cHRlZCA9IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChlbmNyeXB0ZWQpO1xuICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCBkZWNyeXB0ZWQpO1xuICAgICAgcmV0dXJuIGRlY3J5cHRlZDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgZGF0YSBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICogQHBhcmFtIGtleSAtIEtleSBvZiB0aGUgZGF0YSB0byBiZSByZW1vdmVkXG4gICAqL1xuICByZW1vdmVMb2NhbFN0b3JhZ2UgPSAoa2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgIHRoaXMucmVtb3ZlRnJvbUxvY2FsU3RvcmFnZShrZXkpO1xuICB9O1xuXG4gIGNsZWFyTG9jYWxTdG9yYWdlID0gKCk6IHZvaWQgPT4ge1xuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgfTtcblxuICAvKipcbiAgICogRW5jcnlwdHMgdGhlIGdpdmVuIGRhdGEgdXNpbmcgdGhlIGVuY3J5cHRpb24gc2VydmljZSBhbmQgc3RvcmVzIGl0IGluIGxvY2FsIHN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzdG9yZSB0aGUgZGF0YSB1bmRlclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBiZSBzdG9yZWRcbiAgICovXG4gIHByaXZhdGUgZW5jcnlwdEFuZFN0b3JlKGtleTogc3RyaW5nLCBkYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBVc2UgYHF1ZXVlTWljcm90YXNrYCB0byBlbnN1cmUgdGhhdCB0aGUgZW5jcnlwdGlvbiBhbmQgc3RvcmFnZSBhcmUgZG9uZSBhZnRlciB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlZFxuICAgIC8vIFRoaXMgaXMgdG8gcHJldmVudCBhbnkgZXJyb3JzIHRoYXQgbWlnaHQgb2NjdXIgZHVyaW5nIGVuY3J5cHRpb24gZnJvbSBjYXVzaW5nIHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaFxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlY3VyZUtleSA9IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZ2V0U2VjdXJlS2V5KGtleSk7XG4gICAgICBjb25zdCBlbmNyeXB0ZWQgPSB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQoZGF0YSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzZWN1cmVLZXksIGVuY3J5cHRlZCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgZGF0YSBzdG9yZWQgaW4gbG9jYWwgc3RvcmFnZSBmb3IgdGhlIGdpdmVuIGtleS5cbiAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IGByZW1vdmVMb2NhbFN0b3JhZ2VgLlxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIGRhdGEgdG8gYmUgcmVtb3ZlZFxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVGcm9tTG9jYWxTdG9yYWdlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gVXNlIGBxdWV1ZU1pY3JvdGFza2AgdG8gZW5zdXJlIHRoYXQgdGhlIHJlbW92YWwgaXMgZG9uZSBhZnRlciB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlZFxuICAgIC8vIFRoaXMgaXMgdG8gcHJldmVudCBhbnkgZXJyb3JzIHRoYXQgbWlnaHQgb2NjdXIgZHVyaW5nIHJlbW92YWwgZnJvbSBjYXVzaW5nIHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaFxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlY3VyZUtleSA9IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZ2V0U2VjdXJlS2V5KGtleSk7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShzZWN1cmVLZXkpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,24 +1,24 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { Injectable } from '@angular/core';
3
+ import { EncryptionService } from '../core/service/encryption.service';
3
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "../core/service/encryption.service";
4
6
  export class SessionStorageService {
5
- constructor() {
7
+ constructor(encryptionService) {
8
+ this.encryptionService = encryptionService;
6
9
  // -----------------------------------------------------------------------------------------------------
7
10
  // @ Public methods
8
11
  // -----------------------------------------------------------------------------------------------------
12
+ this.cache = new Map();
9
13
  /**
10
14
  * Set data in session storage
11
15
  * @param key - Key to store the data
12
16
  * @param data - Data to be stored
13
17
  */
14
18
  this.setSessionStorage = (key, data) => {
15
- // sessionStorage.setItem(key, JSON.stringify(data));
16
- if (typeof data === 'string') {
17
- sessionStorage.setItem(key, data);
18
- }
19
- else {
20
- sessionStorage.setItem(key, JSON.stringify(data));
21
- }
19
+ const stringData = typeof data === 'string' ? data : JSON.stringify(data);
20
+ this.cache.set(key, stringData);
21
+ this.encryptAndStore(key, stringData);
22
22
  };
23
23
  /**
24
24
  * Get data from session storage
@@ -26,30 +26,68 @@ export class SessionStorageService {
26
26
  * @returns The data stored in session storage
27
27
  */
28
28
  this.getSessionStorage = (key) => {
29
- const data = sessionStorage.getItem(key);
30
- return data ? data : null;
31
- // if (typeof data === 'string') {
32
- // return data ? data: null;
33
- // } else {
34
- // return data ? JSON.parse(data) : null;
35
- // }
29
+ if (this.cache.has(key)) {
30
+ return this.cache.get(key);
31
+ }
32
+ const secureKey = this.encryptionService.getSecureKey(key);
33
+ const encrypted = sessionStorage.getItem(secureKey);
34
+ if (!encrypted)
35
+ return null;
36
+ try {
37
+ const decrypted = this.encryptionService.decrypt(encrypted);
38
+ this.cache.set(key, decrypted);
39
+ return decrypted;
40
+ }
41
+ catch (error) {
42
+ return null;
43
+ }
36
44
  };
37
45
  /**
38
46
  * Remove data from session storage
39
47
  * @param key - Key of the data to be removed
40
48
  */
41
49
  this.removeSessionStorage = (key) => {
42
- sessionStorage.removeItem(key);
50
+ this.cache.delete(key);
51
+ this.removeFromSessionStorage(key);
43
52
  };
44
53
  this.clearSessionStorage = () => {
54
+ this.cache.clear();
45
55
  sessionStorage.clear();
46
56
  };
47
57
  }
48
- static { this.ɵfac = function SessionStorageService_Factory(t) { return new (t || SessionStorageService)(); }; }
58
+ /**
59
+ * Encrypts the given data using the encryption service and stores it in session storage.
60
+ *
61
+ * @param key The key to store the data under
62
+ * @param data The data to be stored
63
+ */
64
+ encryptAndStore(key, data) {
65
+ // Use `queueMicrotask` to ensure that the encryption and storage are done after the current task is completed
66
+ // This is to prevent any errors that might occur during encryption from causing the application to crash
67
+ queueMicrotask(() => {
68
+ const secureKey = this.encryptionService.getSecureKey(key);
69
+ const encrypted = this.encryptionService.encrypt(data);
70
+ sessionStorage.setItem(secureKey, encrypted);
71
+ });
72
+ }
73
+ /**
74
+ * Removes the data stored in session storage for the given key.
75
+ * This method is used internally by `removeLocalStorage`.
76
+ * @param key The key of the data to be removed
77
+ */
78
+ removeFromSessionStorage(key) {
79
+ // Use `queueMicrotask` to ensure that the removal is done after the current task is completed
80
+ // This is to prevent any errors that might occur during removal from causing the application to crash
81
+ queueMicrotask(() => {
82
+ const secureKey = this.encryptionService.getSecureKey(key);
83
+ sessionStorage.removeItem(secureKey);
84
+ });
85
+ }
86
+ static { this.ɵfac = function SessionStorageService_Factory(t) { return new (t || SessionStorageService)(i0.ɵɵinject(i1.EncryptionService)); }; }
49
87
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SessionStorageService, factory: SessionStorageService.ɵfac, providedIn: 'root' }); }
50
88
  }
51
89
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SessionStorageService, [{
52
90
  type: Injectable,
53
91
  args: [{ providedIn: 'root' }]
54
- }], null, null); })();
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRUUsd0dBQXdHO1FBQ3hHLG1CQUFtQjtRQUNuQix3R0FBd0c7UUFFeEc7Ozs7V0FJRztRQUNILHNCQUFpQixHQUFHLENBQUMsR0FBVyxFQUFFLElBQVMsRUFBUSxFQUFFO1lBQ25ELHFEQUFxRDtZQUNyRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRjs7OztXQUlHO1FBQ0gsc0JBQWlCLEdBQUcsQ0FBQyxHQUFXLEVBQU8sRUFBRTtZQUN2QyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6QixrQ0FBa0M7WUFDbEMsOEJBQThCO1lBQzlCLFdBQVc7WUFDWCwyQ0FBMkM7WUFDM0MsSUFBSTtRQUNOLENBQUMsQ0FBQztRQUVGOzs7V0FHRztRQUNILHlCQUFvQixHQUFHLENBQUMsR0FBVyxFQUFRLEVBQUU7WUFDM0MsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7UUFFRix3QkFBbUIsR0FBRyxHQUFTLEVBQUU7WUFDL0IsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQztLQUNIO3NGQTdDWSxxQkFBcUI7dUVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUIsbUJBRFIsTUFBTTs7aUZBQ25CLHFCQUFxQjtjQURqQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdG9yYWdlU2VydmljZSB7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEAgUHVibGljIG1ldGhvZHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogU2V0IGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlXG4gICAqIEBwYXJhbSBrZXkgLSBLZXkgdG8gc3RvcmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIGJlIHN0b3JlZFxuICAgKi9cbiAgc2V0U2Vzc2lvblN0b3JhZ2UgPSAoa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQgPT4ge1xuICAgIC8vIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogR2V0IGRhdGEgZnJvbSBzZXNzaW9uIHN0b3JhZ2VcbiAgICogQHBhcmFtIGtleSAtIEtleSB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKiBAcmV0dXJucyBUaGUgZGF0YSBzdG9yZWQgaW4gc2Vzc2lvbiBzdG9yYWdlXG4gICAqL1xuICBnZXRTZXNzaW9uU3RvcmFnZSA9IChrZXk6IHN0cmluZyk6IGFueSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICByZXR1cm4gZGF0YSA/IGRhdGE6IG51bGw7XG4gICAgLy8gaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgIC8vICAgcmV0dXJuIGRhdGEgPyBkYXRhOiBudWxsO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICByZXR1cm4gZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiBudWxsO1xuICAgIC8vIH1cbiAgfTtcblxuICAvKipcbiAgICogUmVtb3ZlIGRhdGEgZnJvbSBzZXNzaW9uIHN0b3JhZ2VcbiAgICogQHBhcmFtIGtleSAtIEtleSBvZiB0aGUgZGF0YSB0byBiZSByZW1vdmVkXG4gICAqL1xuICByZW1vdmVTZXNzaW9uU3RvcmFnZSA9IChrZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgfTtcblxuICBjbGVhclNlc3Npb25TdG9yYWdlID0gKCk6IHZvaWQgPT4ge1xuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG4gIH07XG59XG4iXX0=
92
+ }], () => [{ type: i1.EncryptionService }], null); })();
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFHdkUsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUx4RCx3R0FBd0c7UUFDeEcsbUJBQW1CO1FBQ25CLHdHQUF3RztRQUVoRyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFHMUM7Ozs7V0FJRztRQUNILHNCQUFpQixHQUFHLENBQUMsR0FBVyxFQUFFLElBQVMsRUFBUSxFQUFFO1lBQ25ELE1BQU0sVUFBVSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUM7UUFFRjs7OztXQUlHO1FBQ0gsc0JBQWlCLEdBQUcsQ0FBQyxHQUFXLEVBQU8sRUFBRTtZQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0QsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUU1QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQixPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRjs7O1dBR0c7UUFDSCx5QkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7UUFFRix3QkFBbUIsR0FBRyxHQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDO0lBaEQwRCxDQUFDO0lBa0Q3RDs7Ozs7T0FLRztJQUNLLGVBQWUsQ0FBQyxHQUFXLEVBQUUsSUFBWTtRQUMvQyw4R0FBOEc7UUFDOUcseUdBQXlHO1FBQ3pHLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyx3QkFBd0IsQ0FBQyxHQUFXO1FBQzFDLDhGQUE4RjtRQUM5RixzR0FBc0c7UUFDdEcsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNELGNBQWMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3NGQXBGVSxxQkFBcUI7dUVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUIsbUJBRFIsTUFBTTs7aUZBQ25CLHFCQUFxQjtjQURqQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2UvZW5jcnlwdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU3RvcmFnZVNlcnZpY2Uge1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlKSB7IH1cblxuICAvKipcbiAgICogU2V0IGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlXG4gICAqIEBwYXJhbSBrZXkgLSBLZXkgdG8gc3RvcmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIGJlIHN0b3JlZFxuICAgKi9cbiAgc2V0U2Vzc2lvblN0b3JhZ2UgPSAoa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHN0cmluZ0RhdGEgPSB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBkYXRhIDogSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgdGhpcy5jYWNoZS5zZXQoa2V5LCBzdHJpbmdEYXRhKTtcbiAgICB0aGlzLmVuY3J5cHRBbmRTdG9yZShrZXksIHN0cmluZ0RhdGEpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgZGF0YSBmcm9tIHNlc3Npb24gc3RvcmFnZVxuICAgKiBAcGFyYW0ga2V5IC0gS2V5IHRvIHJldHJpZXZlIHRoZSBkYXRhXG4gICAqIEByZXR1cm5zIFRoZSBkYXRhIHN0b3JlZCBpbiBzZXNzaW9uIHN0b3JhZ2VcbiAgICovXG4gIGdldFNlc3Npb25TdG9yYWdlID0gKGtleTogc3RyaW5nKTogYW55ID0+IHtcbiAgICBpZiAodGhpcy5jYWNoZS5oYXMoa2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjdXJlS2V5ID0gdGhpcy5lbmNyeXB0aW9uU2VydmljZS5nZXRTZWN1cmVLZXkoa2V5KTtcbiAgICBjb25zdCBlbmNyeXB0ZWQgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHNlY3VyZUtleSk7XG4gICAgaWYgKCFlbmNyeXB0ZWQpIHJldHVybiBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY3J5cHRlZCA9IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChlbmNyeXB0ZWQpO1xuICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCBkZWNyeXB0ZWQpO1xuICAgICAgcmV0dXJuIGRlY3J5cHRlZDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgZGF0YSBmcm9tIHNlc3Npb24gc3RvcmFnZVxuICAgKiBAcGFyYW0ga2V5IC0gS2V5IG9mIHRoZSBkYXRhIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHJlbW92ZVNlc3Npb25TdG9yYWdlID0gKGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy5jYWNoZS5kZWxldGUoa2V5KTtcbiAgICB0aGlzLnJlbW92ZUZyb21TZXNzaW9uU3RvcmFnZShrZXkpO1xuICB9O1xuXG4gIGNsZWFyU2Vzc2lvblN0b3JhZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEVuY3J5cHRzIHRoZSBnaXZlbiBkYXRhIHVzaW5nIHRoZSBlbmNyeXB0aW9uIHNlcnZpY2UgYW5kIHN0b3JlcyBpdCBpbiBzZXNzaW9uIHN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzdG9yZSB0aGUgZGF0YSB1bmRlclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byBiZSBzdG9yZWRcbiAgICovXG4gIHByaXZhdGUgZW5jcnlwdEFuZFN0b3JlKGtleTogc3RyaW5nLCBkYXRhOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBVc2UgYHF1ZXVlTWljcm90YXNrYCB0byBlbnN1cmUgdGhhdCB0aGUgZW5jcnlwdGlvbiBhbmQgc3RvcmFnZSBhcmUgZG9uZSBhZnRlciB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlZFxuICAgIC8vIFRoaXMgaXMgdG8gcHJldmVudCBhbnkgZXJyb3JzIHRoYXQgbWlnaHQgb2NjdXIgZHVyaW5nIGVuY3J5cHRpb24gZnJvbSBjYXVzaW5nIHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaFxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlY3VyZUtleSA9IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZ2V0U2VjdXJlS2V5KGtleSk7XG4gICAgICBjb25zdCBlbmNyeXB0ZWQgPSB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQoZGF0YSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHNlY3VyZUtleSwgZW5jcnlwdGVkKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBkYXRhIHN0b3JlZCBpbiBzZXNzaW9uIHN0b3JhZ2UgZm9yIHRoZSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW50ZXJuYWxseSBieSBgcmVtb3ZlTG9jYWxTdG9yYWdlYC5cbiAgICogQHBhcmFtIGtleSBUaGUga2V5IG9mIHRoZSBkYXRhIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlRnJvbVNlc3Npb25TdG9yYWdlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gVXNlIGBxdWV1ZU1pY3JvdGFza2AgdG8gZW5zdXJlIHRoYXQgdGhlIHJlbW92YWwgaXMgZG9uZSBhZnRlciB0aGUgY3VycmVudCB0YXNrIGlzIGNvbXBsZXRlZFxuICAgIC8vIFRoaXMgaXMgdG8gcHJldmVudCBhbnkgZXJyb3JzIHRoYXQgbWlnaHQgb2NjdXIgZHVyaW5nIHJlbW92YWwgZnJvbSBjYXVzaW5nIHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaFxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlY3VyZUtleSA9IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZ2V0U2VjdXJlS2V5KGtleSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHNlY3VyZUtleSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,89 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as CryptoJS from 'crypto-js';
3
+ import { Common } from '../../app/constants/common';
4
+ import * as i0 from "@angular/core";
5
+ export class EncryptionService {
6
+ /**
7
+ * Constructor
8
+ *
9
+ * Generates domain-based key synchronously
10
+ *
11
+ * @param {string} domain - current domain
12
+ * @returns {void}
13
+ */
14
+ constructor() {
15
+ // Generate domain-based key synchronously
16
+ const domain = window.location.hostname;
17
+ this.encryptionKey = CryptoJS.SHA256(domain).toString().substring(0, 32);
18
+ }
19
+ /**
20
+ * Encrypts the given string using AES encryption with the encryption key.
21
+ *
22
+ * @param {string} data - The string to be encrypted.
23
+ * @returns {string} The encrypted string.
24
+ */
25
+ encrypt(data) {
26
+ if (!this.shouldEncrypt()) {
27
+ return data; // Return plain data in non-prod
28
+ }
29
+ return CryptoJS.AES.encrypt(data, this.encryptionKey).toString();
30
+ }
31
+ /**
32
+ * Decrypts the given encrypted data using AES decryption with the encryption key.
33
+ *
34
+ * @param {string} encryptedData - The data to be decrypted.
35
+ * @returns {string} The decrypted string.
36
+ */
37
+ decrypt(encryptedData) {
38
+ if (!this.shouldEncrypt()) {
39
+ return encryptedData; // Return as-is in non-prod
40
+ }
41
+ return CryptoJS.AES.decrypt(encryptedData, this.encryptionKey).toString(CryptoJS.enc.Utf8);
42
+ }
43
+ /**
44
+ * Returns a secure key for the given key.
45
+ * If encryption is enabled, it encrypts the key using SHA-256 and the encryption key.
46
+ *
47
+ * @param {string} key - The key to be secured.
48
+ * @returns {string} The secure key.
49
+ */
50
+ getSecureKey(key) {
51
+ return this.encryptKey(key);
52
+ }
53
+ /**
54
+ * Encrypts the given key using SHA-256 and the encryption key.
55
+ *
56
+ * @param {string} key - The key to be encrypted.
57
+ * @returns {string} The encrypted key (16 characters long).
58
+ */
59
+ encryptKey(key) {
60
+ if (!this.shouldEncrypt()) {
61
+ return key;
62
+ }
63
+ // Encrypts the key using SHA-256 and the encryption key
64
+ // The output is a 16-character long string
65
+ return CryptoJS.SHA256(key + this.encryptionKey).toString().substring(0, 16);
66
+ }
67
+ /**
68
+ * Determines whether encryption should be applied based on the environment.
69
+ * Caches the result to avoid repeated checks.
70
+ *
71
+ * @returns {boolean} True if encryption should be applied, false otherwise.
72
+ */
73
+ shouldEncrypt() {
74
+ // Return cached value if available
75
+ if (this.shouldEncryptCache !== undefined) {
76
+ return this.shouldEncryptCache;
77
+ }
78
+ // Check if the current environment is not 'Development'
79
+ this.shouldEncryptCache = Common.environmentName !== 'Development';
80
+ return this.shouldEncryptCache;
81
+ }
82
+ static { this.ɵfac = function EncryptionService_Factory(t) { return new (t || EncryptionService)(); }; }
83
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EncryptionService, factory: EncryptionService.ɵfac, providedIn: 'root' }); }
84
+ }
85
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EncryptionService, [{
86
+ type: Injectable,
87
+ args: [{ providedIn: 'root' }]
88
+ }], () => [], null); })();
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvY29yZS9zZXJ2aWNlL2VuY3J5cHRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUkxQjs7Ozs7OztPQU9HO0lBQ0g7UUFDSSwwQ0FBMEM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLElBQVk7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLENBQUMsZ0NBQWdDO1FBQ2pELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLGFBQXFCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN4QixPQUFPLGFBQWEsQ0FBQyxDQUFDLDJCQUEyQjtRQUNyRCxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQUMsR0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssVUFBVSxDQUFDLEdBQVc7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQztRQUNELHdEQUF3RDtRQUN4RCwyQ0FBMkM7UUFDM0MsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxhQUFhO1FBQ2hCLG1DQUFtQztRQUNuQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNuQyxDQUFDO1FBRUQsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsZUFBZSxLQUFLLGFBQWEsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO2tGQXZGUSxpQkFBaUI7dUVBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBREosTUFBTTs7aUZBQ25CLGlCQUFpQjtjQUQ3QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uL2FwcC9jb25zdGFudHMvY29tbW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFbmNyeXB0aW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0aW9uS2V5ITogc3RyaW5nO1xuICAgIHByaXZhdGUgc2hvdWxkRW5jcnlwdENhY2hlITogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZXMgZG9tYWluLWJhc2VkIGtleSBzeW5jaHJvbm91c2x5XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZG9tYWluIC0gY3VycmVudCBkb21haW5cbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gR2VuZXJhdGUgZG9tYWluLWJhc2VkIGtleSBzeW5jaHJvbm91c2x5XG4gICAgICAgIGNvbnN0IGRvbWFpbiA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbiAgICAgICAgdGhpcy5lbmNyeXB0aW9uS2V5ID0gQ3J5cHRvSlMuU0hBMjU2KGRvbWFpbikudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMzIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuY3J5cHRzIHRoZSBnaXZlbiBzdHJpbmcgdXNpbmcgQUVTIGVuY3J5cHRpb24gd2l0aCB0aGUgZW5jcnlwdGlvbiBrZXkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YSAtIFRoZSBzdHJpbmcgdG8gYmUgZW5jcnlwdGVkLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNyeXB0ZWQgc3RyaW5nLlxuICAgICAqL1xuICAgIGVuY3J5cHQoZGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZEVuY3J5cHQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7IC8vIFJldHVybiBwbGFpbiBkYXRhIGluIG5vbi1wcm9kXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmVuY3J5cHQoZGF0YSwgdGhpcy5lbmNyeXB0aW9uS2V5KS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlY3J5cHRzIHRoZSBnaXZlbiBlbmNyeXB0ZWQgZGF0YSB1c2luZyBBRVMgZGVjcnlwdGlvbiB3aXRoIHRoZSBlbmNyeXB0aW9uIGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlbmNyeXB0ZWREYXRhIC0gVGhlIGRhdGEgdG8gYmUgZGVjcnlwdGVkLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBkZWNyeXB0ZWQgc3RyaW5nLlxuICAgICAqL1xuICAgIGRlY3J5cHQoZW5jcnlwdGVkRGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLnNob3VsZEVuY3J5cHQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGVuY3J5cHRlZERhdGE7IC8vIFJldHVybiBhcy1pcyBpbiBub24tcHJvZFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIENyeXB0b0pTLkFFUy5kZWNyeXB0KGVuY3J5cHRlZERhdGEsIHRoaXMuZW5jcnlwdGlvbktleSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBzZWN1cmUga2V5IGZvciB0aGUgZ2l2ZW4ga2V5LlxuICAgICAqIElmIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgaXQgZW5jcnlwdHMgdGhlIGtleSB1c2luZyBTSEEtMjU2IGFuZCB0aGUgZW5jcnlwdGlvbiBrZXkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB0byBiZSBzZWN1cmVkLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBzZWN1cmUga2V5LlxuICAgICAqL1xuICAgIGdldFNlY3VyZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVuY3J5cHRLZXkoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmNyeXB0cyB0aGUgZ2l2ZW4ga2V5IHVzaW5nIFNIQS0yNTYgYW5kIHRoZSBlbmNyeXB0aW9uIGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIGJlIGVuY3J5cHRlZC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZW5jcnlwdGVkIGtleSAoMTYgY2hhcmFjdGVycyBsb25nKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGVuY3J5cHRLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkRW5jcnlwdCgpKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9XG4gICAgICAgIC8vIEVuY3J5cHRzIHRoZSBrZXkgdXNpbmcgU0hBLTI1NiBhbmQgdGhlIGVuY3J5cHRpb24ga2V5XG4gICAgICAgIC8vIFRoZSBvdXRwdXQgaXMgYSAxNi1jaGFyYWN0ZXIgbG9uZyBzdHJpbmdcbiAgICAgICAgcmV0dXJuIENyeXB0b0pTLlNIQTI1NihrZXkgKyB0aGlzLmVuY3J5cHRpb25LZXkpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDE2KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgZW5jcnlwdGlvbiBzaG91bGQgYmUgYXBwbGllZCBiYXNlZCBvbiB0aGUgZW52aXJvbm1lbnQuXG4gICAgICogQ2FjaGVzIHRoZSByZXN1bHQgdG8gYXZvaWQgcmVwZWF0ZWQgY2hlY2tzLlxuICAgICAqXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgZW5jcnlwdGlvbiBzaG91bGQgYmUgYXBwbGllZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzaG91bGRFbmNyeXB0KCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBSZXR1cm4gY2FjaGVkIHZhbHVlIGlmIGF2YWlsYWJsZVxuICAgICAgICBpZiAodGhpcy5zaG91bGRFbmNyeXB0Q2FjaGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvdWxkRW5jcnlwdENhY2hlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpcyBub3QgJ0RldmVsb3BtZW50J1xuICAgICAgICB0aGlzLnNob3VsZEVuY3J5cHRDYWNoZSA9IENvbW1vbi5lbnZpcm9ubWVudE5hbWUgIT09ICdEZXZlbG9wbWVudCc7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3VsZEVuY3J5cHRDYWNoZTtcbiAgICB9ICAgICAgIFxufSJdfQ==
package/index.d.ts CHANGED
@@ -55,6 +55,7 @@ export * from './lib/tab-core-utility/core/http-client/api.service';
55
55
  export * from './lib/tab-core-utility/core/service/translation.service';
56
56
  export * from './lib/tab-core-utility/core/service/notification.service';
57
57
  export * from './lib/tab-core-utility/core/service/confirmation.service';
58
+ export * from './lib/tab-core-utility/core/service/encryption.service';
58
59
  export * from './lib/tab-core-utility/core/pipe/translate.pipe';
59
60
  export * from './lib/tab-core-utility/core/provider/translation.provider';
60
61
  export * from './lib/tab-core-utility/core/provider/notification.provider';
@@ -4,6 +4,7 @@ export declare const API: {
4
4
  novuBackendUrl: string;
5
5
  novuSocketUrl: string;
6
6
  insert: string;
7
+ bulkInsert: string;
7
8
  update: string;
8
9
  delete: string;
9
10
  select: string;
@@ -1,4 +1,5 @@
1
1
  export declare class Common {
2
+ static environmentName: string;
2
3
  static applicationCode: string;
3
4
  static tabJson: any;
4
5
  static tabUserPersonalizedData: any;
@@ -6,5 +7,5 @@ export declare class Common {
6
7
  static tabAppObjectAccess: any;
7
8
  static staticToken: any;
8
9
  static i18n: any;
9
- static init(config: any): void;
10
+ static init(environment: any): void;
10
11
  }
@@ -44,6 +44,7 @@ export declare class TabCrudService {
44
44
  * @returns An observable of the response from the API.
45
45
  */
46
46
  insert(payload: InsertPayload, headers?: any): Observable<CommonApiResponse>;
47
+ bulkInsert(payload: InsertPayload, headers?: any): Observable<CommonApiResponse>;
47
48
  /**
48
49
  * Updates data in the specified table.
49
50
  * @param payload The payload containing the data to update, the criteria for the update, and the AppObjectModel ID.
@@ -3,7 +3,9 @@ export declare enum QueryType {
3
3
  Insert = 1,
4
4
  Update = 2,
5
5
  Delete = 3,
6
- Upsert = 4
6
+ Upsert = 4,
7
+ BulkUpdate = 5,
8
+ BulkInsert = 6
7
9
  }
8
10
  export declare enum JoinType {
9
11
  LeftJoin = 1,