@sambath999/localize-token 12.3.3 → 12.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sambath999-localize-token.umd.js +89 -55
- package/bundles/sambath999-localize-token.umd.js.map +1 -1
- package/esm2015/localize-logindlg/localize-logindlg.component.js +2 -2
- package/esm2015/localize-token/helpers/loccalize.api.helper.js +2 -11
- package/esm2015/localize-token/localize.api.service.js +28 -9
- package/esm2015/localize-token/localize.token.js +1 -12
- package/esm2015/localize-token/localize.token.service.js +30 -16
- package/fesm2015/sambath999-localize-token.js +57 -44
- package/fesm2015/sambath999-localize-token.js.map +1 -1
- package/localize-logindlg/localize-logindlg.component.d.ts +1 -1
- package/localize-token/helpers/loccalize.api.helper.d.ts +0 -1
- package/localize-token/localize.api.service.d.ts +7 -4
- package/localize-token/localize.token.d.ts +0 -2
- package/localize-token/localize.token.service.d.ts +10 -3
- package/package.json +1 -1
- package/sambath999-localize-token.metadata.json +1 -1
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { LocalizeToken } from './localize.token';
|
|
2
|
+
import { extractMainDomain, LocalizeToken } from './localize.token';
|
|
3
3
|
import { BehaviorSubject } from 'rxjs';
|
|
4
4
|
import * as jwt_decode from 'jwt-decode';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class LocalizeTokenService {
|
|
7
7
|
constructor() {
|
|
8
|
+
this.configSubject = new BehaviorSubject({});
|
|
8
9
|
this.isRevokingTokenSubject = new BehaviorSubject(false);
|
|
10
|
+
this.defaultConfig = {
|
|
11
|
+
mainDomain: extractMainDomain(),
|
|
12
|
+
authTokenName: 'auth-token',
|
|
13
|
+
refreshTokenName: '_lze_rftkp_',
|
|
14
|
+
};
|
|
15
|
+
this.isInitialized = false;
|
|
9
16
|
this.decodeToken = (token) => jwt_decode.jwtDecode(token);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.
|
|
17
|
+
}
|
|
18
|
+
get config() {
|
|
19
|
+
this.throwIfNotInitialized();
|
|
20
|
+
return this.configSubject.value;
|
|
21
|
+
}
|
|
22
|
+
init(config) {
|
|
23
|
+
console.log('LocalizeTokenService is initialized.');
|
|
24
|
+
this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), config));
|
|
25
|
+
this.isInitialized = true;
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
// this.configSubject.complete();
|
|
29
|
+
// this.isRevokingTokenSubject.complete();
|
|
14
30
|
}
|
|
15
31
|
get authToken() { return this.storageGet(); }
|
|
16
32
|
set authToken(value) {
|
|
@@ -21,16 +37,12 @@ export class LocalizeTokenService {
|
|
|
21
37
|
get refreshToken() { return LocalizeToken.storage.get(this.config.refreshTokenName); }
|
|
22
38
|
get accessToken() { var _a; return (_a = this.authToken) === null || _a === void 0 ? void 0 : _a.token; }
|
|
23
39
|
set accessToken(value) {
|
|
24
|
-
|
|
25
|
-
this.authToken = { token: value, revoke: false };
|
|
26
|
-
}
|
|
40
|
+
value && (this.authToken = { token: value, revoke: false });
|
|
27
41
|
}
|
|
28
42
|
get isRevokingToken() { return this.isRevokingTokenSubject.value; /* this.authToken?.revoke ?? false */ }
|
|
29
43
|
set isRevokingToken(value) {
|
|
30
44
|
this.isRevokingTokenSubject.next(value);
|
|
31
|
-
|
|
32
|
-
this.authToken = Object.assign(Object.assign({}, this.authToken), { revoke: value });
|
|
33
|
-
}
|
|
45
|
+
this.authToken && (this.authToken = Object.assign(Object.assign({}, this.authToken), { revoke: value }));
|
|
34
46
|
}
|
|
35
47
|
tenantToken(name) {
|
|
36
48
|
if (!name)
|
|
@@ -58,14 +70,16 @@ export class LocalizeTokenService {
|
|
|
58
70
|
}
|
|
59
71
|
get decodeRefreshToken() {
|
|
60
72
|
const token = LocalizeToken.storage.get(this.config.refreshTokenName);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
73
|
+
return !token ? null : this.decodeToken(token);
|
|
74
|
+
}
|
|
75
|
+
throwIfNotInitialized() {
|
|
76
|
+
if (!this.isInitialized) {
|
|
77
|
+
throw new Error('LocalizeTokenService is not initialized. Call init() method before using it.');
|
|
78
|
+
}
|
|
64
79
|
}
|
|
65
80
|
}
|
|
66
81
|
LocalizeTokenService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalizeTokenService_Factory() { return new LocalizeTokenService(); }, token: LocalizeTokenService, providedIn: "root" });
|
|
67
82
|
LocalizeTokenService.decorators = [
|
|
68
83
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
69
84
|
];
|
|
70
|
-
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS50b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUF3QixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOztBQWlCekMsTUFBTSxPQUFPLG9CQUFvQjtJQUk3QjtRQUhTLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBMkR0RSxnQkFBVyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFhLEtBQUssQ0FBQyxDQUFDO1FBdkRyRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1lBQy9FLE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQTtTQUNoRztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBWSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBQ3BELElBQVksU0FBUyxDQUFDLEtBQTZCO1FBQy9DLEtBQUs7WUFDRCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQUksWUFBWSxLQUFLLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBaUIsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUN0RixJQUFJLFdBQVcsYUFBSyxPQUFPLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUVsRCxJQUFJLFdBQVcsQ0FBQyxLQUF5QjtRQUNyQyxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQTtTQUNuRDtJQUNMLENBQUM7SUFFRCxJQUFJLGVBQWUsS0FBSyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUEsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3hHLElBQUksZUFBZSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFNBQVMsbUNBQVEsSUFBSSxDQUFDLFNBQVMsS0FBRSxNQUFNLEVBQUUsS0FBSyxHQUFFLENBQUM7U0FDekQ7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXdCO1FBQ2hDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDNUIsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUk7WUFDQSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWMsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBZSxDQUFDO1NBQzVDO1FBQUMsV0FBTTtZQUNKLE9BQU8sU0FBUyxDQUFBO1NBQ25CO0lBQ0wsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFpQjtRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXLENBQUMsZUFBd0I7O1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxNQUFNLENBQUE7ZUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsMENBQUUsTUFBTSxDQUFBLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBR0QsSUFBSSxrQkFBa0I7UUFDbEIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7Ozs7WUFsRUosVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUxvY2FsaXplVG9rZW5Db25maWcsIExvY2FsaXplVG9rZW4gfSBmcm9tICcuL2xvY2FsaXplLnRva2VuJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIGp3dF9kZWNvZGUgZnJvbSAnand0LWRlY29kZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgSnd0UGF5bG9hZCBleHRlbmRzIGp3dF9kZWNvZGUuSnd0UGF5bG9hZCB7XHJcbiAgICAvLyBEZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB5b3VyIEpXVCBwYXlsb2FkIGhlcmVcclxuICAgIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBzdWI6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGlhdDogbnVtYmVyO1xyXG4gICAgZXhwOiBudW1iZXI7XHJcbiAgICAvLyBBZGQgb3RoZXIgZmllbGRzIGFzIG5lZWRlZFxyXG59XHJcblxyXG5pbnRlcmZhY2UgSUF1dGhUb2tlbiB7XHJcbiAgICB0b2tlbjogc3RyaW5nO1xyXG4gICAgcmV2b2tlOiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVUb2tlblNlcnZpY2Uge1xyXG4gICAgcmVhZG9ubHkgaXNSZXZva2luZ1Rva2VuU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IElMb2NhbGl6ZVRva2VuQ29uZmlnXHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgaWYgKCFMb2NhbGl6ZVRva2VuLmNvbmZpZy5hdXRoVG9rZW5OYW1lIHx8ICFMb2NhbGl6ZVRva2VuLmNvbmZpZy5yZWZyZXNoVG9rZW5OYW1lKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aFRva2VuTmFtZSBhbmQgcmVmcmVzaFRva2VuTmFtZSBtdXN0IGJlIGRlZmluZWQgaW4gTG9jYWxpemVUb2tlbi5jb25maWcnKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbmZpZyA9IExvY2FsaXplVG9rZW4uY29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IGF1dGhUb2tlbigpIHsgcmV0dXJuIHRoaXMuc3RvcmFnZUdldCgpIH1cclxuICAgIHByaXZhdGUgc2V0IGF1dGhUb2tlbih2YWx1ZTogSUF1dGhUb2tlbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5zdG9yYWdlU2V0KHZhbHVlKVxyXG4gICAgICAgICAgICA6IExvY2FsaXplVG9rZW4uc3RvcmFnZS5kZWxldGUodGhpcy5jb25maWcuYXV0aFRva2VuTmFtZSEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByZWZyZXNoVG9rZW4oKSB7IHJldHVybiBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbk5hbWUhKSB9XHJcbiAgICBnZXQgYWNjZXNzVG9rZW4oKSB7IHJldHVybiB0aGlzLmF1dGhUb2tlbj8udG9rZW4gfVxyXG5cclxuICAgIHNldCBhY2Nlc3NUb2tlbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aFRva2VuID0geyB0b2tlbjogdmFsdWUsIHJldm9rZTogZmFsc2UgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNSZXZva2luZ1Rva2VuKCkgeyByZXR1cm4gdGhpcy5pc1Jldm9raW5nVG9rZW5TdWJqZWN0LnZhbHVlIC8qIHRoaXMuYXV0aFRva2VuPy5yZXZva2UgPz8gZmFsc2UgKi8gfVxyXG4gICAgc2V0IGlzUmV2b2tpbmdUb2tlbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaXNSZXZva2luZ1Rva2VuU3ViamVjdC5uZXh0KHZhbHVlKTtcclxuICAgICAgICBpZiAodGhpcy5hdXRoVG9rZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoVG9rZW4gPSB7IC4uLnRoaXMuYXV0aFRva2VuLCByZXZva2U6IHZhbHVlIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRlbmFudFRva2VuKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmICghbmFtZSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXR1cm4gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldChuYW1lKVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmFnZUdldCgpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkID0gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldCh0aGlzLmNvbmZpZy5hdXRoVG9rZW5OYW1lISk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWQgPSBhdG9iKGVuY29kZWQgfHwgJycpO1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKSBhcyBJQXV0aFRva2VuO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmFnZVNldCh2YWx1ZTogSUF1dGhUb2tlbikge1xyXG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcclxuICAgICAgICBMb2NhbGl6ZVRva2VuLnN0b3JhZ2Uuc2V0KHRoaXMuY29uZmlnLmF1dGhUb2tlbk5hbWUhLCBiYXNlNjQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRva2Vuc1ZhbGlkKHRlbmFudFRva2VuTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMucmVmcmVzaFRva2VuPy5sZW5ndGhcclxuICAgICAgICAgICAgJiYgKCF0aGlzLmNvbmZpZy5uZWVkVGVuYW50IHx8ICEhdGhpcy50ZW5hbnRUb2tlbih0ZW5hbnRUb2tlbk5hbWUpPy5sZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlY29kZVRva2VuID0gKHRva2VuOiBzdHJpbmcpID0+IGp3dF9kZWNvZGUuand0RGVjb2RlPEp3dFBheWxvYWQ+KHRva2VuKTtcclxuICAgIGdldCBkZWNvZGVSZWZyZXNoVG9rZW4oKSB7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbk5hbWUhKTtcclxuICAgICAgICBpZiAoIXRva2VuKSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWNvZGVUb2tlbih0b2tlbik7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS50b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOztBQWlCekMsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVxQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFnQyxFQUFFLENBQUMsQ0FBQztRQUMvRSwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNyRCxrQkFBYSxHQUFrQztZQUM1RCxVQUFVLEVBQUUsaUJBQWlCLEVBQUU7WUFDL0IsYUFBYSxFQUFFLFlBQVk7WUFDM0IsZ0JBQWdCLEVBQUUsYUFBYTtTQUNsQyxDQUFBO1FBT08sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUEyRDlCLGdCQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQWEsS0FBSyxDQUFDLENBQUM7S0FZNUU7SUE1RUcsSUFBSSxNQUFNO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQTZCLENBQUM7SUFDNUQsQ0FBQztJQUlELElBQUksQ0FBQyxNQUE0QjtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGlDQUFNLElBQUksQ0FBQyxhQUFhLEdBQUssTUFBTSxFQUFHLENBQUM7UUFDOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDUCxpQ0FBaUM7UUFDakMsMENBQTBDO0lBQzlDLENBQUM7SUFFRCxJQUFZLFNBQVMsS0FBSyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFDcEQsSUFBWSxTQUFTLENBQUMsS0FBNkI7UUFDL0MsS0FBSztZQUNELENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUN4QixDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFjLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxZQUFZLEtBQUssT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFpQixDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ3RGLElBQUksV0FBVyxhQUFLLE9BQU8sTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBRWxELElBQUksV0FBVyxDQUFDLEtBQXlCO1FBQ3JDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFRCxJQUFJLGVBQWUsS0FBSyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUEsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBRXhHLElBQUksZUFBZSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsbUNBQVEsSUFBSSxDQUFDLFNBQVMsS0FBRSxNQUFNLEVBQUUsS0FBSyxHQUFFLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXdCO1FBQ2hDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDNUIsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUk7WUFDQSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWMsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBZSxDQUFDO1NBQzVDO1FBQUMsV0FBTTtZQUNKLE9BQU8sU0FBUyxDQUFBO1NBQ25CO0lBQ0wsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFpQjtRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXLENBQUMsZUFBd0I7O1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxNQUFNLENBQUE7ZUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsMENBQUUsTUFBTSxDQUFBLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBR0QsSUFBSSxrQkFBa0I7UUFDbEIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEVBQThFLENBQUMsQ0FBQztTQUNuRztJQUNMLENBQUM7Ozs7WUFwRkosVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBleHRyYWN0TWFpbkRvbWFpbiwgSUxvY2FsaXplVG9rZW5Db25maWcsIExvY2FsaXplVG9rZW4gfSBmcm9tICcuL2xvY2FsaXplLnRva2VuJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIGp3dF9kZWNvZGUgZnJvbSAnand0LWRlY29kZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgSnd0UGF5bG9hZCBleHRlbmRzIGp3dF9kZWNvZGUuSnd0UGF5bG9hZCB7XHJcbiAgICAvLyBEZWZpbmUgdGhlIHN0cnVjdHVyZSBvZiB5b3VyIEpXVCBwYXlsb2FkIGhlcmVcclxuICAgIGVtYWlsOiBzdHJpbmc7XHJcbiAgICBzdWI6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGlhdDogbnVtYmVyO1xyXG4gICAgZXhwOiBudW1iZXI7XHJcbiAgICAvLyBBZGQgb3RoZXIgZmllbGRzIGFzIG5lZWRlZFxyXG59XHJcblxyXG5pbnRlcmZhY2UgSUF1dGhUb2tlbiB7XHJcbiAgICB0b2tlbjogc3RyaW5nO1xyXG4gICAgcmV2b2tlOiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVUb2tlblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPElMb2NhbGl6ZVRva2VuQ29uZmlnPj4oe30pO1xyXG4gICAgcmVhZG9ubHkgaXNSZXZva2luZ1Rva2VuU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPElMb2NhbGl6ZVRva2VuQ29uZmlnPiA9IHtcclxuICAgICAgICBtYWluRG9tYWluOiBleHRyYWN0TWFpbkRvbWFpbigpLFxyXG4gICAgICAgIGF1dGhUb2tlbk5hbWU6ICdhdXRoLXRva2VuJyxcclxuICAgICAgICByZWZyZXNoVG9rZW5OYW1lOiAnX2x6ZV9yZnRrcF8nLFxyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb25maWcoKTogSUxvY2FsaXplVG9rZW5Db25maWcge1xyXG4gICAgICAgIHRoaXMudGhyb3dJZk5vdEluaXRpYWxpemVkKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU3ViamVjdC52YWx1ZSBhcyBJTG9jYWxpemVUb2tlbkNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbml0KGNvbmZpZzogSUxvY2FsaXplVG9rZW5Db25maWcpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTG9jYWxpemVUb2tlblNlcnZpY2UgaXMgaW5pdGlhbGl6ZWQuJyk7XHJcbiAgICAgICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQoeyAuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KTtcclxuICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuY29uZmlnU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuaXNSZXZva2luZ1Rva2VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IGF1dGhUb2tlbigpIHsgcmV0dXJuIHRoaXMuc3RvcmFnZUdldCgpIH1cclxuICAgIHByaXZhdGUgc2V0IGF1dGhUb2tlbih2YWx1ZTogSUF1dGhUb2tlbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5zdG9yYWdlU2V0KHZhbHVlKVxyXG4gICAgICAgICAgICA6IExvY2FsaXplVG9rZW4uc3RvcmFnZS5kZWxldGUodGhpcy5jb25maWcuYXV0aFRva2VuTmFtZSEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByZWZyZXNoVG9rZW4oKSB7IHJldHVybiBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbk5hbWUhKSB9XHJcbiAgICBnZXQgYWNjZXNzVG9rZW4oKSB7IHJldHVybiB0aGlzLmF1dGhUb2tlbj8udG9rZW4gfVxyXG5cclxuICAgIHNldCBhY2Nlc3NUb2tlbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdmFsdWUgJiYgKHRoaXMuYXV0aFRva2VuID0geyB0b2tlbjogdmFsdWUsIHJldm9rZTogZmFsc2UgfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNSZXZva2luZ1Rva2VuKCkgeyByZXR1cm4gdGhpcy5pc1Jldm9raW5nVG9rZW5TdWJqZWN0LnZhbHVlIC8qIHRoaXMuYXV0aFRva2VuPy5yZXZva2UgPz8gZmFsc2UgKi8gfVxyXG5cclxuICAgIHNldCBpc1Jldm9raW5nVG9rZW4odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzUmV2b2tpbmdUb2tlblN1YmplY3QubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5hdXRoVG9rZW4gJiYgKHRoaXMuYXV0aFRva2VuID0geyAuLi50aGlzLmF1dGhUb2tlbiwgcmV2b2tlOiB2YWx1ZSB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRlbmFudFRva2VuKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmICghbmFtZSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXR1cm4gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldChuYW1lKVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmFnZUdldCgpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkID0gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldCh0aGlzLmNvbmZpZy5hdXRoVG9rZW5OYW1lISk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWQgPSBhdG9iKGVuY29kZWQgfHwgJycpO1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKSBhcyBJQXV0aFRva2VuO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmFnZVNldCh2YWx1ZTogSUF1dGhUb2tlbikge1xyXG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGJ0b2EoSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcclxuICAgICAgICBMb2NhbGl6ZVRva2VuLnN0b3JhZ2Uuc2V0KHRoaXMuY29uZmlnLmF1dGhUb2tlbk5hbWUhLCBiYXNlNjQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRva2Vuc1ZhbGlkKHRlbmFudFRva2VuTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMucmVmcmVzaFRva2VuPy5sZW5ndGhcclxuICAgICAgICAgICAgJiYgKCF0aGlzLmNvbmZpZy5uZWVkVGVuYW50IHx8ICEhdGhpcy50ZW5hbnRUb2tlbih0ZW5hbnRUb2tlbk5hbWUpPy5sZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlY29kZVRva2VuID0gKHRva2VuOiBzdHJpbmcpID0+IGp3dF9kZWNvZGUuand0RGVjb2RlPEp3dFBheWxvYWQ+KHRva2VuKTtcclxuICAgIGdldCBkZWNvZGVSZWZyZXNoVG9rZW4oKSB7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbk5hbWUhKTtcclxuICAgICAgICByZXR1cm4gIXRva2VuID8gbnVsbCA6IHRoaXMuZGVjb2RlVG9rZW4odG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdGhyb3dJZk5vdEluaXRpYWxpemVkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTG9jYWxpemVUb2tlblNlcnZpY2UgaXMgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBtZXRob2QgYmVmb3JlIHVzaW5nIGl0LicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -121,18 +121,7 @@ class LocalizeTokenStorage {
|
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
class LocalizeToken {
|
|
124
|
-
static init(config) {
|
|
125
|
-
LocalizeToken.config = Object.assign(Object.assign({}, LocalizeToken.config), config);
|
|
126
|
-
}
|
|
127
124
|
}
|
|
128
|
-
LocalizeToken.config = {
|
|
129
|
-
mainDomain: extractMainDomain(),
|
|
130
|
-
authTokenName: 'auth-token',
|
|
131
|
-
refreshTokenName: '_lze_rftkp_',
|
|
132
|
-
needTenant: false,
|
|
133
|
-
isProduction: false,
|
|
134
|
-
revokeTokenUrl: ''
|
|
135
|
-
};
|
|
136
125
|
LocalizeToken.storage = new LocalizeTokenStorage();
|
|
137
126
|
LocalizeToken.httpHeaders = {
|
|
138
127
|
AUTHORIZATION: 'Authorization',
|
|
@@ -180,12 +169,28 @@ function extractMainDomain(subdomain) {
|
|
|
180
169
|
|
|
181
170
|
class LocalizeTokenService {
|
|
182
171
|
constructor() {
|
|
172
|
+
this.configSubject = new BehaviorSubject({});
|
|
183
173
|
this.isRevokingTokenSubject = new BehaviorSubject(false);
|
|
174
|
+
this.defaultConfig = {
|
|
175
|
+
mainDomain: extractMainDomain(),
|
|
176
|
+
authTokenName: 'auth-token',
|
|
177
|
+
refreshTokenName: '_lze_rftkp_',
|
|
178
|
+
};
|
|
179
|
+
this.isInitialized = false;
|
|
184
180
|
this.decodeToken = (token) => jwt_decode.jwtDecode(token);
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
this.
|
|
181
|
+
}
|
|
182
|
+
get config() {
|
|
183
|
+
this.throwIfNotInitialized();
|
|
184
|
+
return this.configSubject.value;
|
|
185
|
+
}
|
|
186
|
+
init(config) {
|
|
187
|
+
console.log('LocalizeTokenService is initialized.');
|
|
188
|
+
this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), config));
|
|
189
|
+
this.isInitialized = true;
|
|
190
|
+
}
|
|
191
|
+
ngOnDestroy() {
|
|
192
|
+
// this.configSubject.complete();
|
|
193
|
+
// this.isRevokingTokenSubject.complete();
|
|
189
194
|
}
|
|
190
195
|
get authToken() { return this.storageGet(); }
|
|
191
196
|
set authToken(value) {
|
|
@@ -196,16 +201,12 @@ class LocalizeTokenService {
|
|
|
196
201
|
get refreshToken() { return LocalizeToken.storage.get(this.config.refreshTokenName); }
|
|
197
202
|
get accessToken() { var _a; return (_a = this.authToken) === null || _a === void 0 ? void 0 : _a.token; }
|
|
198
203
|
set accessToken(value) {
|
|
199
|
-
|
|
200
|
-
this.authToken = { token: value, revoke: false };
|
|
201
|
-
}
|
|
204
|
+
value && (this.authToken = { token: value, revoke: false });
|
|
202
205
|
}
|
|
203
206
|
get isRevokingToken() { return this.isRevokingTokenSubject.value; /* this.authToken?.revoke ?? false */ }
|
|
204
207
|
set isRevokingToken(value) {
|
|
205
208
|
this.isRevokingTokenSubject.next(value);
|
|
206
|
-
|
|
207
|
-
this.authToken = Object.assign(Object.assign({}, this.authToken), { revoke: value });
|
|
208
|
-
}
|
|
209
|
+
this.authToken && (this.authToken = Object.assign(Object.assign({}, this.authToken), { revoke: value }));
|
|
209
210
|
}
|
|
210
211
|
tenantToken(name) {
|
|
211
212
|
if (!name)
|
|
@@ -233,16 +234,18 @@ class LocalizeTokenService {
|
|
|
233
234
|
}
|
|
234
235
|
get decodeRefreshToken() {
|
|
235
236
|
const token = LocalizeToken.storage.get(this.config.refreshTokenName);
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
return !token ? null : this.decodeToken(token);
|
|
238
|
+
}
|
|
239
|
+
throwIfNotInitialized() {
|
|
240
|
+
if (!this.isInitialized) {
|
|
241
|
+
throw new Error('LocalizeTokenService is not initialized. Call init() method before using it.');
|
|
242
|
+
}
|
|
239
243
|
}
|
|
240
244
|
}
|
|
241
245
|
LocalizeTokenService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalizeTokenService_Factory() { return new LocalizeTokenService(); }, token: LocalizeTokenService, providedIn: "root" });
|
|
242
246
|
LocalizeTokenService.decorators = [
|
|
243
247
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
244
|
-
];
|
|
245
|
-
LocalizeTokenService.ctorParameters = () => [];
|
|
248
|
+
];
|
|
246
249
|
|
|
247
250
|
/**
|
|
248
251
|
* Http method options
|
|
@@ -378,15 +381,6 @@ class LocalizeApiHelper {
|
|
|
378
381
|
}
|
|
379
382
|
});
|
|
380
383
|
}
|
|
381
|
-
validateConfig(config) {
|
|
382
|
-
var _a;
|
|
383
|
-
if (LocalizeToken.config.needTenant && !((_a = config.tenantTokenName) === null || _a === void 0 ? void 0 : _a.trim().length)) {
|
|
384
|
-
throw Error('Tenant token is required but tenantTokenName is not configured');
|
|
385
|
-
}
|
|
386
|
-
if (!LocalizeToken.config.revokeTokenUrl.trim().length) {
|
|
387
|
-
throw Error('Revoke token URL is not configured - token refresh will not work');
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
384
|
screenBlocker(optons, error, add = true) {
|
|
391
385
|
var _a, _b, _c, _d;
|
|
392
386
|
if (!((_a = optons.connectionError) === null || _a === void 0 ? void 0 : _a.blockScreen))
|
|
@@ -528,10 +522,10 @@ class LocalizeApiService {
|
|
|
528
522
|
this.httpClient = httpClient;
|
|
529
523
|
this.localizeTokenService = localizeTokenService;
|
|
530
524
|
this.destroy$ = new Subject();
|
|
525
|
+
this.configSubject = new BehaviorSubject({});
|
|
531
526
|
this.isRequestingSubject = new BehaviorSubject(false);
|
|
532
|
-
this.
|
|
533
|
-
this.
|
|
534
|
-
this.config = {
|
|
527
|
+
this.isResolvingStartupSubject = new BehaviorSubject(false);
|
|
528
|
+
this.defaultConfig = {
|
|
535
529
|
waitEachRequest: { milliseconds: 0 },
|
|
536
530
|
enableRequestCancellation: true,
|
|
537
531
|
retryOptions: {
|
|
@@ -552,7 +546,8 @@ class LocalizeApiService {
|
|
|
552
546
|
*/
|
|
553
547
|
this.func = (baseUrl) => (path, method = EMethod.GET, reqBody = null, reqHeaders) => this.request(baseUrl, path, method, reqBody, reqHeaders);
|
|
554
548
|
}
|
|
555
|
-
get
|
|
549
|
+
get isResolvingStartup() { return this.isResolvingStartupSubject.value; }
|
|
550
|
+
get needTenant() { return this.localizeTokenService.config.needTenant; }
|
|
556
551
|
get isRequesting() { return this.isRequestingSubject.value; }
|
|
557
552
|
get isRevokingToken() { return this.localizeTokenService.isRevokingToken; }
|
|
558
553
|
set isRevokingToken(value) { this.localizeTokenService.isRevokingToken = value; }
|
|
@@ -560,13 +555,17 @@ class LocalizeApiService {
|
|
|
560
555
|
set accessToken(value) { this.localizeTokenService.accessToken = value; }
|
|
561
556
|
get refreshToken() { return this.localizeTokenService.refreshToken; }
|
|
562
557
|
get tenantToken() { return this.localizeTokenService.tenantToken(this.config.tenantTokenName); }
|
|
558
|
+
get config() {
|
|
559
|
+
this.validateConfig(this.config);
|
|
560
|
+
return this.configSubject.value;
|
|
561
|
+
}
|
|
563
562
|
/**
|
|
564
563
|
* Initialize the API service.
|
|
565
564
|
* @param apiConfigs - The API configurations.
|
|
566
565
|
*/
|
|
567
566
|
init(apiConfigs) {
|
|
568
|
-
|
|
569
|
-
|
|
567
|
+
console.log('LocalizeApiService is initialized.');
|
|
568
|
+
this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), apiConfigs));
|
|
570
569
|
}
|
|
571
570
|
cancelPendingRequests() {
|
|
572
571
|
this.config.enableRequestCancellation
|
|
@@ -575,9 +574,13 @@ class LocalizeApiService {
|
|
|
575
574
|
ngOnDestroy() {
|
|
576
575
|
this.destroy$.next();
|
|
577
576
|
this.destroy$.complete();
|
|
577
|
+
// this.isResolvingStartupSubject.complete();
|
|
578
|
+
// this.isRequestingSubject.complete();
|
|
579
|
+
// this.configSubject.complete();
|
|
578
580
|
}
|
|
579
581
|
request(baseUrl, path, method = EMethod.GET, reqBody = null, reqHeaders) {
|
|
580
582
|
return __awaiter(this, void 0, void 0, function* () {
|
|
583
|
+
yield waitUntil(() => !this.isResolvingStartup, 500);
|
|
581
584
|
yield ApiHelper.invokeHook(this.config.onPrepareRequest);
|
|
582
585
|
const apiOptions = this.buildApiOptions(baseUrl, path, method, reqBody, reqHeaders);
|
|
583
586
|
try {
|
|
@@ -591,8 +594,9 @@ class LocalizeApiService {
|
|
|
591
594
|
}
|
|
592
595
|
handleOnRequestError(error, options) {
|
|
593
596
|
return __awaiter(this, void 0, void 0, function* () {
|
|
594
|
-
if (error.status !== 401
|
|
597
|
+
if (error.status !== 401)
|
|
595
598
|
throw error;
|
|
599
|
+
yield waitUntil(() => !this.isResolvingStartup, 500);
|
|
596
600
|
return yield ApiHelper.performRetry({
|
|
597
601
|
maxRetries: () => 1000,
|
|
598
602
|
delay: 500,
|
|
@@ -629,7 +633,7 @@ class LocalizeApiService {
|
|
|
629
633
|
if (yield this.interceptRevokeToken())
|
|
630
634
|
return;
|
|
631
635
|
this.isRevokingToken = true;
|
|
632
|
-
const apiOptions = Object.assign(Object.assign({}, this.buildApiOptions(
|
|
636
|
+
const apiOptions = Object.assign(Object.assign({}, this.buildApiOptions(this.localizeTokenService.config.revokeTokenUrl)), { refreshToken: true });
|
|
633
637
|
// const revokeToken = await this.performRequest(apiOptions);
|
|
634
638
|
const revokeToken = yield ApiHelper.performRequestWithRetry(apiOptions, this.config, this.performRequest.bind(this));
|
|
635
639
|
yield this.handleOnTokenRevoked(revokeToken);
|
|
@@ -694,6 +698,15 @@ class LocalizeApiService {
|
|
|
694
698
|
return false;
|
|
695
699
|
});
|
|
696
700
|
}
|
|
701
|
+
validateConfig(config) {
|
|
702
|
+
var _a;
|
|
703
|
+
if (this.localizeTokenService.config.needTenant && !((_a = config.tenantTokenName) === null || _a === void 0 ? void 0 : _a.trim().length)) {
|
|
704
|
+
throw Error('Tenant token is required but tenantTokenName is not configured');
|
|
705
|
+
}
|
|
706
|
+
if (!this.localizeTokenService.config.revokeTokenUrl.trim().length) {
|
|
707
|
+
throw Error('Revoke token URL is not configured - token refresh will not work');
|
|
708
|
+
}
|
|
709
|
+
}
|
|
697
710
|
}
|
|
698
711
|
LocalizeApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalizeApiService_Factory() { return new LocalizeApiService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(LocalizeTokenService)); }, token: LocalizeApiService, providedIn: "root" });
|
|
699
712
|
LocalizeApiService.decorators = [
|
|
@@ -729,12 +742,12 @@ class LocalizeLogindlgComponent {
|
|
|
729
742
|
this.messageKey = "$login-dlg";
|
|
730
743
|
this.loading = false;
|
|
731
744
|
this.success = false;
|
|
732
|
-
this.config = LocalizeToken.config;
|
|
733
745
|
this.clickLogout = () => { var _a; return (_a = this.logout) === null || _a === void 0 ? void 0 : _a.call(this); };
|
|
734
746
|
this.decodeToken = this.tokenService.decodeRefreshToken;
|
|
735
747
|
this.loginConfig = this.dlgConfig.data.loginConfig;
|
|
736
748
|
this.properties = this.loginConfig.properties;
|
|
737
749
|
}
|
|
750
|
+
get config() { return this.tokenService.config; }
|
|
738
751
|
ngOnInit() {
|
|
739
752
|
this.dlgConfig.closable = false;
|
|
740
753
|
this.logout = this.loginConfig.logoutFunc;
|