@sambath999/localize-token 12.4.11 → 12.4.13
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 +400 -1125
- package/bundles/sambath999-localize-token.umd.js.map +1 -1
- package/{localize-logindlg/localize-logindlg.component.d.ts → components/localize-token-login-dialog.component.d.ts} +14 -17
- package/esm2015/components/localize-token-login-dialog.component.js +395 -0
- package/esm2015/models/localize-token-models.js +2 -0
- package/esm2015/models/localize-token.module.js +26 -0
- package/esm2015/public-api.js +6 -15
- package/esm2015/sambath999-localize-token.js +1 -1
- package/esm2015/services/localize-token-configure.service.js +32 -0
- package/esm2015/services/localize-token-dialog.service.js +64 -0
- package/fesm2015/sambath999-localize-token.js +64 -906
- package/fesm2015/sambath999-localize-token.js.map +1 -1
- package/{localize-logindlg/localize-logindlg.service.d.ts → models/localize-token-models.d.ts} +1 -10
- package/package.json +2 -2
- package/public-api.d.ts +5 -13
- package/sambath999-localize-token.metadata.json +1 -1
- package/services/localize-token-configure.service.d.ts +9 -0
- package/services/localize-token-dialog.service.d.ts +10 -0
- package/README.md +0 -57
- package/esm2015/localize-api-token/localize-api-token.module.js +0 -21
- package/esm2015/localize-api-token/localize-api-token.service.js +0 -34
- package/esm2015/localize-logindlg/localize-logindlg.component.js +0 -423
- package/esm2015/localize-logindlg/localize-logindlg.module.js +0 -28
- package/esm2015/localize-logindlg/localize-logindlg.service.js +0 -64
- package/esm2015/localize-token/helpers/interfaces.js +0 -19
- package/esm2015/localize-token/helpers/localize.api.assets.js +0 -20
- package/esm2015/localize-token/helpers/loccalize.api.helper.js +0 -267
- package/esm2015/localize-token/localize.api.service.js +0 -242
- package/esm2015/localize-token/localize.token.js +0 -60
- package/esm2015/localize-token/localize.token.module.js +0 -14
- package/esm2015/localize-token/localize.token.service.js +0 -94
- package/esm2015/localize-token/localize.token.storage.js +0 -107
- package/localize-api-token/localize-api-token.module.d.ts +0 -2
- package/localize-api-token/localize-api-token.service.d.ts +0 -12
- package/localize-logindlg/localize-logindlg.module.d.ts +0 -2
- package/localize-token/helpers/interfaces.d.ts +0 -89
- package/localize-token/helpers/localize.api.assets.d.ts +0 -5
- package/localize-token/helpers/loccalize.api.helper.d.ts +0 -32
- package/localize-token/localize.api.service.d.ts +0 -55
- package/localize-token/localize.token.d.ts +0 -55
- package/localize-token/localize.token.service.d.ts +0 -36
- package/localize-token/localize.token.storage.d.ts +0 -61
- /package/{localize-token/localize.token.module.d.ts → models/localize-token.module.d.ts} +0 -0
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { LocalizeTokenStorage } from "./localize.token.storage";
|
|
3
|
-
export class LocalizeToken {
|
|
4
|
-
}
|
|
5
|
-
LocalizeToken.storage = new LocalizeTokenStorage();
|
|
6
|
-
LocalizeToken.httpHeaders = {
|
|
7
|
-
AUTHORIZATION: 'Authorization',
|
|
8
|
-
X_TENANT: 'X-Tenant',
|
|
9
|
-
X_REFRESH_TOKEN: 'X-RefreshToken',
|
|
10
|
-
CONTENT_TYPE: 'Content-Type',
|
|
11
|
-
X_CLIENT: 'X-Client',
|
|
12
|
-
X_SECRET: 'X-Secret'
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Waits for a specified amount of time.
|
|
16
|
-
* @param milliseconds - The milliseconds to wait.
|
|
17
|
-
* @param when - The condition to wait for. Default is true.
|
|
18
|
-
* @returns - Promise<void>
|
|
19
|
-
*/
|
|
20
|
-
export function waitFor(milliseconds, when = true) {
|
|
21
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
-
if (!when)
|
|
23
|
-
return;
|
|
24
|
-
yield new Promise(resolve => setTimeout(resolve, milliseconds));
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Waits until the condition is met.
|
|
29
|
-
* @param when - The condition to wait for.
|
|
30
|
-
* @param intervalNumber - The interval number in milliseconds to check the condition. Default is 50.
|
|
31
|
-
*/
|
|
32
|
-
export function waitUntil(when, intervalNumber = 50) {
|
|
33
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
function isConditionMet() {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const cond = when();
|
|
37
|
-
const result = cond instanceof Promise
|
|
38
|
-
? yield cond
|
|
39
|
-
: cond;
|
|
40
|
-
return result;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
if (yield isConditionMet())
|
|
44
|
-
return;
|
|
45
|
-
yield new Promise(resolve => {
|
|
46
|
-
const interval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
if (yield isConditionMet()) {
|
|
48
|
-
clearInterval(interval);
|
|
49
|
-
resolve(true);
|
|
50
|
-
}
|
|
51
|
-
}), intervalNumber);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
export function extractMainDomain(subdomain) {
|
|
56
|
-
subdomain !== null && subdomain !== void 0 ? subdomain : (subdomain = window.location.hostname);
|
|
57
|
-
const parts = subdomain.split('.');
|
|
58
|
-
return parts.length > 2 ? parts.slice(-2).join('.') : subdomain;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9BTkdVTEFSL0xJQlJBUklFUy9sb2NhbGl6ZS50b2tlbi4xMi4xLjAvZGV2L3NyYy9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFnQ2hFLE1BQU0sT0FBTyxhQUFhOztBQUVSLHFCQUFPLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0FBRXJDLHlCQUFXLEdBQUc7SUFDNUIsYUFBYSxFQUFFLGVBQWU7SUFDOUIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxZQUFZLEVBQUUsY0FBYztJQUM1QixRQUFRLEVBQUUsVUFBVTtJQUNwQixRQUFRLEVBQUUsVUFBVTtDQUNyQixDQUFBO0FBSUg7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQWdCLE9BQU8sQ0FBQyxZQUFvQixFQUFFLE9BQWdCLElBQUk7O1FBQ3RFLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FBQTtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQWdCLFNBQVMsQ0FBQyxJQUFlLEVBQUUsaUJBQXlCLEVBQUU7O1FBRTFFLFNBQWUsY0FBYzs7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksT0FBTztvQkFDcEMsQ0FBQyxDQUFDLE1BQU0sSUFBSTtvQkFDWixDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FBQTtRQUVELElBQUksTUFBTSxjQUFjLEVBQUU7WUFBRSxPQUFPO1FBRW5DLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQVMsRUFBRTtnQkFDdEMsSUFBSSxNQUFNLGNBQWMsRUFBRSxFQUFFO29CQUMxQixhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDZjtZQUNILENBQUMsQ0FBQSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUFBO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFNBQWtCO0lBQ2xELFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxJQUFULFNBQVMsR0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBQztJQUN2QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU1ldGhvZCB9IGZyb20gXCIuL2hlbHBlcnMvaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVRva2VuU3RvcmFnZSB9IGZyb20gXCIuL2xvY2FsaXplLnRva2VuLnN0b3JhZ2VcIjtcclxuXHJcbmludGVyZmFjZSBJTG9jYWxpemVUb2tlblRva2VucyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHJlcXVlc3RVcmw/OiBzdHJpbmc7XHJcbiAgbWV0aG9kPzogRU1ldGhvZDtcclxuICBib2R5Pzoge307XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRoaXJkUGFydHlDb25maWcge1xyXG4gIGlzVGhpcmRQYXJ0eU1vZGU6IGJvb2xlYW47XHJcbiAgY2xpZW50SWQ6IHN0cmluZztcclxuICBjbGllbnRTZWNyZXQ6IHN0cmluZztcclxuICByZWZyZXNoVG9rZW46IElMb2NhbGl6ZVRva2VuVG9rZW5zO1xyXG4gIGxhc3RVbmF1dGhvcml6ZWRVcmw/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElMb2NhbGl6ZVRva2VuQ29uZmlnIHtcclxuICAvKipcclxuICAgKiBUaGUgbWFpbiBkb21haW4gb2YgdGhlIGFwcGxpY2F0aW9uIHRvIHNldCB0aGUgY29va2llcyB0byBiZSBhdmFpbGFibGUgZm9yIGNyb3NzIGFwcGxpY2F0aW9uIHdpdGggc3ViZG9tYWlucy5cclxuICAgKiBcclxuICAgKiBEZWZhdWx0IGlzIGxvY2F0aW9uLmhvc3RuYW1lIChjdXJyZW50IGRvbWFpbikgYW5kIGF1dG9tYXRpY2FsbHkgc2V0IGV4dHJhY3RlZCBtYWluIGRvbWFpbiBpZiBpdCBpcyBzdWJkb21haW4uXHJcbiAgICovXHJcbiAgbWFpbkRvbWFpbj86IHN0cmluZztcclxuICBpc1Byb2R1Y3Rpb246IGJvb2xlYW47XHJcbiAgYXV0aFRva2VuPzogSUxvY2FsaXplVG9rZW5Ub2tlbnM7XHJcbiAgcmVmcmVzaFRva2VuPzogSUxvY2FsaXplVG9rZW5Ub2tlbnM7XHJcbiAgdGVuYW50VG9rZW4/OiBJTG9jYWxpemVUb2tlblRva2VucztcclxuICByZXF1aXJlZFRlbmFudD86IGJvb2xlYW47XHJcbiAgdGhpcmRQYXJ0eUNvbmZpZz86IElUaGlyZFBhcnR5Q29uZmlnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVUb2tlbiB7XHJcblxyXG4gIHN0YXRpYyByZWFkb25seSBzdG9yYWdlID0gbmV3IExvY2FsaXplVG9rZW5TdG9yYWdlKCk7XHJcblxyXG4gIHN0YXRpYyByZWFkb25seSBodHRwSGVhZGVycyA9IHtcclxuICAgIEFVVEhPUklaQVRJT046ICdBdXRob3JpemF0aW9uJyxcclxuICAgIFhfVEVOQU5UOiAnWC1UZW5hbnQnLFxyXG4gICAgWF9SRUZSRVNIX1RPS0VOOiAnWC1SZWZyZXNoVG9rZW4nLFxyXG4gICAgQ09OVEVOVF9UWVBFOiAnQ29udGVudC1UeXBlJyxcclxuICAgIFhfQ0xJRU5UOiAnWC1DbGllbnQnLFxyXG4gICAgWF9TRUNSRVQ6ICdYLVNlY3JldCdcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogIFdhaXRzIGZvciBhIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZS5cclxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAgLSBUaGUgbWlsbGlzZWNvbmRzIHRvIHdhaXQuXHJcbiAqIEBwYXJhbSB3aGVuICAtIFRoZSBjb25kaXRpb24gdG8gd2FpdCBmb3IuIERlZmF1bHQgaXMgdHJ1ZS5cclxuICogQHJldHVybnMgIC0gUHJvbWlzZTx2b2lkPlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3IobWlsbGlzZWNvbmRzOiBudW1iZXIsIHdoZW46IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgaWYgKCF3aGVuKSByZXR1cm47XHJcbiAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1pbGxpc2Vjb25kcykpO1xyXG59XHJcblxyXG4vKipcclxuICogIFdhaXRzIHVudGlsIHRoZSBjb25kaXRpb24gaXMgbWV0LlxyXG4gKiBAcGFyYW0gd2hlbiAgLSBUaGUgY29uZGl0aW9uIHRvIHdhaXQgZm9yLlxyXG4gKiBAcGFyYW0gaW50ZXJ2YWxOdW1iZXIgIC0gVGhlIGludGVydmFsIG51bWJlciBpbiBtaWxsaXNlY29uZHMgdG8gY2hlY2sgdGhlIGNvbmRpdGlvbi4gRGVmYXVsdCBpcyA1MC5cclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0VW50aWwod2hlbjogKCkgPT4gYW55LCBpbnRlcnZhbE51bWJlcjogbnVtYmVyID0gNTApIHtcclxuXHJcbiAgYXN5bmMgZnVuY3Rpb24gaXNDb25kaXRpb25NZXQoKSB7XHJcbiAgICBjb25zdCBjb25kID0gd2hlbigpO1xyXG4gICAgY29uc3QgcmVzdWx0ID0gY29uZCBpbnN0YW5jZW9mIFByb21pc2VcclxuICAgICAgPyBhd2FpdCBjb25kXHJcbiAgICAgIDogY29uZDtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBpZiAoYXdhaXQgaXNDb25kaXRpb25NZXQoKSkgcmV0dXJuO1xyXG5cclxuICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICBpZiAoYXdhaXQgaXNDb25kaXRpb25NZXQoKSkge1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0sIGludGVydmFsTnVtYmVyKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RNYWluRG9tYWluKHN1YmRvbWFpbj86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgc3ViZG9tYWluID8/PSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XHJcbiAgY29uc3QgcGFydHMgPSBzdWJkb21haW4uc3BsaXQoJy4nKTtcclxuICByZXR1cm4gcGFydHMubGVuZ3RoID4gMiA/IHBhcnRzLnNsaWNlKC0yKS5qb2luKCcuJykgOiBzdWJkb21haW47XHJcbn0iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { LocalizeTokenService } from './localize.token.service';
|
|
3
|
-
import { LocalizeApiService } from './localize.api.service';
|
|
4
|
-
export class LocalizeTokenModule {
|
|
5
|
-
}
|
|
6
|
-
LocalizeTokenModule.decorators = [
|
|
7
|
-
{ type: NgModule, args: [{
|
|
8
|
-
providers: [
|
|
9
|
-
LocalizeTokenService,
|
|
10
|
-
LocalizeApiService
|
|
11
|
-
]
|
|
12
|
-
},] }
|
|
13
|
-
];
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQU5HVUxBUi9MSUJSQVJJRVMvbG9jYWxpemUudG9rZW4uMTIuMS4wL2Rldi9zcmMvbG9jYWxpemUtdG9rZW4vbG9jYWxpemUudG9rZW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFRNUQsTUFBTSxPQUFPLG1CQUFtQjs7O1lBTi9CLFFBQVEsU0FBQztnQkFDTixTQUFTLEVBQUU7b0JBQ1Asb0JBQW9CO29CQUNwQixrQkFBa0I7aUJBQ3JCO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVRva2VuU2VydmljZSB9IGZyb20gJy4vbG9jYWxpemUudG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsaXplQXBpU2VydmljZSB9IGZyb20gJy4vbG9jYWxpemUuYXBpLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIExvY2FsaXplVG9rZW5TZXJ2aWNlLFxyXG4gICAgICAgIExvY2FsaXplQXBpU2VydmljZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVUb2tlbk1vZHVsZSB7IH0iXX0=
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as jwt_decode from 'jwt-decode';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { extractMainDomain, LocalizeToken } from './localize.token';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class LocalizeTokenService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.configSubject = new BehaviorSubject({});
|
|
9
|
-
this.isRevokingTokenSubject = new BehaviorSubject(false);
|
|
10
|
-
this.defaultConfig = {
|
|
11
|
-
mainDomain: extractMainDomain(),
|
|
12
|
-
authToken: {
|
|
13
|
-
name: 'auth-token',
|
|
14
|
-
},
|
|
15
|
-
refreshToken: {
|
|
16
|
-
name: 'refresh-token',
|
|
17
|
-
requestUrl: '/api/token/revoke'
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
this.isInitialized = false;
|
|
21
|
-
this.decodeToken = (token) => jwt_decode.jwtDecode(token);
|
|
22
|
-
}
|
|
23
|
-
get config() {
|
|
24
|
-
this.throwIfNotInitialized();
|
|
25
|
-
return this.configSubject.value;
|
|
26
|
-
}
|
|
27
|
-
init(config) {
|
|
28
|
-
console.log('LocalizeTokenService is initialized.');
|
|
29
|
-
this.configSubject.next(Object.assign(Object.assign({}, this.defaultConfig), config));
|
|
30
|
-
this.isInitialized = true;
|
|
31
|
-
}
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
// this.configSubject.complete();
|
|
34
|
-
// this.isRevokingTokenSubject.complete();
|
|
35
|
-
}
|
|
36
|
-
get authToken() { return this.storageGet(); }
|
|
37
|
-
set authToken(value) {
|
|
38
|
-
var _a;
|
|
39
|
-
value
|
|
40
|
-
? this.storageSet(value)
|
|
41
|
-
: LocalizeToken.storage.delete((_a = this.config.authToken) === null || _a === void 0 ? void 0 : _a.name);
|
|
42
|
-
}
|
|
43
|
-
get tenantToken() { var _a; return LocalizeToken.storage.get(((_a = this.config.tenantToken) === null || _a === void 0 ? void 0 : _a.name) || ''); }
|
|
44
|
-
get refreshToken() { var _a; return LocalizeToken.storage.get(((_a = this.config.refreshToken) === null || _a === void 0 ? void 0 : _a.name) || ''); }
|
|
45
|
-
get accessToken() { var _a; return (_a = this.authToken) === null || _a === void 0 ? void 0 : _a.token; }
|
|
46
|
-
set accessToken(value) {
|
|
47
|
-
value && (this.authToken = { token: value, revoke: false });
|
|
48
|
-
}
|
|
49
|
-
get isRevokingToken() { return this.isRevokingTokenSubject.value; /* this.authToken?.revoke ?? false */ }
|
|
50
|
-
set isRevokingToken(value) {
|
|
51
|
-
this.isRevokingTokenSubject.next(value);
|
|
52
|
-
this.authToken && (this.authToken = Object.assign(Object.assign({}, this.authToken), { revoke: value }));
|
|
53
|
-
}
|
|
54
|
-
get clientId() { var _a; return LocalizeToken.storage.get(((_a = this.config.thirdPartyConfig) === null || _a === void 0 ? void 0 : _a.clientId) || ''); }
|
|
55
|
-
get clientSecret() { var _a; return LocalizeToken.storage.get(((_a = this.config.thirdPartyConfig) === null || _a === void 0 ? void 0 : _a.clientSecret) || ''); }
|
|
56
|
-
storageGet() {
|
|
57
|
-
var _a;
|
|
58
|
-
try {
|
|
59
|
-
const encoded = LocalizeToken.storage.get(((_a = this.config.authToken) === null || _a === void 0 ? void 0 : _a.name) || '');
|
|
60
|
-
const decoded = atob(encoded || '');
|
|
61
|
-
return JSON.parse(decoded);
|
|
62
|
-
}
|
|
63
|
-
catch (_b) {
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
storageSet(value) {
|
|
68
|
-
var _a;
|
|
69
|
-
const base64 = btoa(JSON.stringify(value));
|
|
70
|
-
LocalizeToken.storage.set(((_a = this.config.authToken) === null || _a === void 0 ? void 0 : _a.name) || '', base64);
|
|
71
|
-
}
|
|
72
|
-
tokensValid() {
|
|
73
|
-
var _a, _b;
|
|
74
|
-
if (!((_a = this.refreshToken) === null || _a === void 0 ? void 0 : _a.length))
|
|
75
|
-
return false;
|
|
76
|
-
if (this.config.requiredTenant && !((_b = this.tenantToken) === null || _b === void 0 ? void 0 : _b.length))
|
|
77
|
-
return false;
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
get decodeRefreshToken() {
|
|
81
|
-
const token = this.refreshToken;
|
|
82
|
-
return !token ? null : this.decodeToken(token);
|
|
83
|
-
}
|
|
84
|
-
throwIfNotInitialized() {
|
|
85
|
-
if (!this.isInitialized) {
|
|
86
|
-
throw new Error('LocalizeTokenService is not initialized. Call init() method before using it.');
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
LocalizeTokenService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalizeTokenService_Factory() { return new LocalizeTokenService(); }, token: LocalizeTokenService, providedIn: "root" });
|
|
91
|
-
LocalizeTokenService.decorators = [
|
|
92
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
93
|
-
];
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0FOR1VMQVIvTElCUkFSSUVTL2xvY2FsaXplLnRva2VuLjEyLjEuMC9kZXYvc3JjL2xvY2FsaXplLXRva2VuL2xvY2FsaXplLnRva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBaUIxRixNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRXFCLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3JELGtCQUFhLEdBQWtDO1lBQzVELFVBQVUsRUFBRSxpQkFBaUIsRUFBRTtZQUMvQixTQUFTLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFlBQVk7YUFDckI7WUFDRCxZQUFZLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFVBQVUsRUFBRSxtQkFBbUI7YUFDbEM7U0FDSixDQUFBO1FBT08sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUEwRDlCLGdCQUFXLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQWEsS0FBSyxDQUFDLENBQUM7S0FZNUU7SUEzRUcsSUFBSSxNQUFNO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQTZCLENBQUM7SUFDNUQsQ0FBQztJQUlELElBQUksQ0FB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TUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0MsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUywwQ0FBRSxJQUFJLEtBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxXQUFXOztRQUNQLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsTUFBTSxDQUFBO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxNQUFNLENBQUE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBR0QsSUFBSSxrQkFBa0I7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNoQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDhFQUE4RSxDQUFDLENBQUM7U0FDbkc7SUFDTCxDQUFDOzs7O1lBeEZKLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgand0X2RlY29kZSBmcm9tICdqd3QtZGVjb2RlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4dHJhY3RNYWluRG9tYWluLCBJTG9jYWxpemVUb2tlbkNvbmZpZywgTG9jYWxpemVUb2tlbiB9IGZyb20gJy4vbG9jYWxpemUudG9rZW4nO1xyXG5leHBvcnQgaW50ZXJmYWNlIEp3dFBheWxvYWQgZXh0ZW5kcyBqd3RfZGVjb2RlLkp3dFBheWxvYWQge1xyXG4gICAgLy8gRGVmaW5lIHRoZSBzdHJ1Y3R1cmUgb2YgeW91ciBKV1QgcGF5bG9hZCBoZXJlXHJcbiAgICBlbWFpbDogc3RyaW5nO1xyXG4gICAgc3ViOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBpYXQ6IG51bWJlcjtcclxuICAgIGV4cDogbnVtYmVyO1xyXG4gICAgLy8gQWRkIG90aGVyIGZpZWxkcyBhcyBuZWVkZWRcclxufVxyXG5cclxuaW50ZXJmYWNlIElBdXRoVG9rZW4ge1xyXG4gICAgdG9rZW46IHN0cmluZztcclxuICAgIHJldm9rZTogYm9vbGVhbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXplVG9rZW5TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxJTG9jYWxpemVUb2tlbkNvbmZpZz4+KHt9KTtcclxuICAgIHJlYWRvbmx5IGlzUmV2b2tpbmdUb2tlblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdENvbmZpZzogUGFydGlhbDxJTG9jYWxpemVUb2tlbkNvbmZpZz4gPSB7XHJcbiAgICAgICAgbWFpbkRvbWFpbjogZXh0cmFjdE1haW5Eb21haW4oKSxcclxuICAgICAgICBhdXRoVG9rZW46IHtcclxuICAgICAgICAgICAgbmFtZTogJ2F1dGgtdG9rZW4nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVmcmVzaFRva2VuOiB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdyZWZyZXNoLXRva2VuJyxcclxuICAgICAgICAgICAgcmVxdWVzdFVybDogJy9hcGkvdG9rZW4vcmV2b2tlJ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uZmlnKCk6IElMb2NhbGl6ZVRva2VuQ29uZmlnIHtcclxuICAgICAgICB0aGlzLnRocm93SWZOb3RJbml0aWFsaXplZCgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ1N1YmplY3QudmFsdWUgYXMgSUxvY2FsaXplVG9rZW5Db25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5pdChjb25maWc6IElMb2NhbGl6ZVRva2VuQ29uZmlnKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0xvY2FsaXplVG9rZW5TZXJ2aWNlIGlzIGluaXRpYWxpemVkLicpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSk7XHJcbiAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLmNvbmZpZ1N1YmplY3QuY29tcGxldGUoKTtcclxuICAgICAgICAvLyB0aGlzLmlzUmV2b2tpbmdUb2tlblN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBhdXRoVG9rZW4oKSB7IHJldHVybiB0aGlzLnN0b3JhZ2VHZXQoKSB9XHJcbiAgICBwcml2YXRlIHNldCBhdXRoVG9rZW4odmFsdWU6IElBdXRoVG9rZW4gfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICA/IHRoaXMuc3RvcmFnZVNldCh2YWx1ZSlcclxuICAgICAgICAgICAgOiBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZGVsZXRlKHRoaXMuY29uZmlnLmF1dGhUb2tlbj8ubmFtZSEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0ZW5hbnRUb2tlbigpIHsgcmV0dXJuIExvY2FsaXplVG9rZW4uc3RvcmFnZS5nZXQodGhpcy5jb25maWcudGVuYW50VG9rZW4/Lm5hbWUgfHwgJycpIH1cclxuXHJcbiAgICBnZXQgcmVmcmVzaFRva2VuKCkgeyByZXR1cm4gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldCh0aGlzLmNvbmZpZy5yZWZyZXNoVG9rZW4/Lm5hbWUgfHwgJycpIH1cclxuICAgIGdldCBhY2Nlc3NUb2tlbigpIHsgcmV0dXJuIHRoaXMuYXV0aFRva2VuPy50b2tlbiB9XHJcblxyXG4gICAgc2V0IGFjY2Vzc1Rva2VuKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB2YWx1ZSAmJiAodGhpcy5hdXRoVG9rZW4gPSB7IHRva2VuOiB2YWx1ZSwgcmV2b2tlOiBmYWxzZSB9KVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc1Jldm9raW5nVG9rZW4oKSB7IHJldHVybiB0aGlzLmlzUmV2b2tpbmdUb2tlblN1YmplY3QudmFsdWUgLyogdGhpcy5hdXRoVG9rZW4/LnJldm9rZSA/PyBmYWxzZSAqLyB9XHJcblxyXG4gICAgc2V0IGlzUmV2b2tpbmdUb2tlbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaXNSZXZva2luZ1Rva2VuU3ViamVjdC5uZXh0KHZhbHVlKTtcclxuICAgICAgICB0aGlzLmF1dGhUb2tlbiAmJiAodGhpcy5hdXRoVG9rZW4gPSB7IC4uLnRoaXMuYXV0aFRva2VuLCByZXZva2U6IHZhbHVlIH0pXHJcbiAgICB9XHJcbiAgICBnZXQgY2xpZW50SWQoKSB7IHJldHVybiBMb2NhbGl6ZVRva2VuLnN0b3JhZ2UuZ2V0KHRoaXMuY29uZmlnLnRoaXJkUGFydHlDb25maWc/LmNsaWVudElkIHx8ICcnKSB9XHJcbiAgICBnZXQgY2xpZW50U2VjcmV0KCkgeyByZXR1cm4gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldCh0aGlzLmNvbmZpZy50aGlyZFBhcnR5Q29uZmlnPy5jbGllbnRTZWNyZXQgfHwgJycpIH1cclxuICAgIHByaXZhdGUgc3RvcmFnZUdldCgpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBlbmNvZGVkID0gTG9jYWxpemVUb2tlbi5zdG9yYWdlLmdldCh0aGlzLmNvbmZpZy5hdXRoVG9rZW4/Lm5hbWUgfHwgJycpO1xyXG4gICAgICAgICAgICBjb25zdCBkZWNvZGVkID0gYXRvYihlbmNvZGVkIHx8ICcnKTtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlZCkgYXMgSUF1dGhUb2tlbjtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXQodmFsdWU6IElBdXRoVG9rZW4pIHtcclxuICAgICAgICBjb25zdCBiYXNlNjQgPSBidG9hKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbiAgICAgICAgTG9jYWxpemVUb2tlbi5zdG9yYWdlLnNldCh0aGlzLmNvbmZpZy5hdXRoVG9rZW4/Lm5hbWUgfHwgJycsIGJhc2U2NCk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9rZW5zVmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlZnJlc2hUb2tlbj8ubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnJlcXVpcmVkVGVuYW50ICYmICF0aGlzLnRlbmFudFRva2VuPy5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBkZWNvZGVUb2tlbiA9ICh0b2tlbjogc3RyaW5nKSA9PiBqd3RfZGVjb2RlLmp3dERlY29kZTxKd3RQYXlsb2FkPih0b2tlbik7XHJcbiAgICBnZXQgZGVjb2RlUmVmcmVzaFRva2VuKCkge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5yZWZyZXNoVG9rZW47XHJcbiAgICAgICAgcmV0dXJuICF0b2tlbiA/IG51bGwgOiB0aGlzLmRlY29kZVRva2VuKHRva2VuKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRocm93SWZOb3RJbml0aWFsaXplZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsaXplVG9rZW5TZXJ2aWNlIGlzIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgbWV0aG9kIGJlZm9yZSB1c2luZyBpdC4nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { extractMainDomain } from "./localize.token";
|
|
2
|
-
/**
|
|
3
|
-
* Assembly of @package ng2-cookies @see https://www.npmjs.com/package/ng2-cookies
|
|
4
|
-
*
|
|
5
|
-
* Reassembled by
|
|
6
|
-
* @author sambath999
|
|
7
|
-
* @date_29_09_2021
|
|
8
|
-
* Updated from raw parameters to
|
|
9
|
-
* @param {ICookieOptions} options and added another newer cookie flag
|
|
10
|
-
* @param {string} samesite
|
|
11
|
-
* @param {constant} SameSiteTypes, @param {string} strict "strict", @param {string} lax "lax", @param {string} none "none"
|
|
12
|
-
*
|
|
13
|
-
* @enum
|
|
14
|
-
*/
|
|
15
|
-
export class LocalizeTokenStorage {
|
|
16
|
-
constructor(_defaultOptions) {
|
|
17
|
-
this.defaultOptions = _defaultOptions !== null && _defaultOptions !== void 0 ? _defaultOptions : this.getDefaultOptions;
|
|
18
|
-
}
|
|
19
|
-
get getDefaultOptions() {
|
|
20
|
-
const mainDomain = extractMainDomain(window.location.hostname);
|
|
21
|
-
return {
|
|
22
|
-
path: '/',
|
|
23
|
-
domain: mainDomain,
|
|
24
|
-
secure: true,
|
|
25
|
-
// samesite: SameSiteType.strict,
|
|
26
|
-
expires: 1
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Checks the existence of a single cookie by it's name
|
|
31
|
-
*
|
|
32
|
-
* @param {string} name Identification of the cookie
|
|
33
|
-
* @returns existence of the cookie
|
|
34
|
-
*/
|
|
35
|
-
check(name) {
|
|
36
|
-
if (typeof document === "undefined")
|
|
37
|
-
return false;
|
|
38
|
-
name = encodeURIComponent(name);
|
|
39
|
-
const regexp = new RegExp('(?:^' + name + '|;\\s*' + name + ')=(.*?)(?:;|$)', 'g');
|
|
40
|
-
return regexp.test(document.cookie);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Retrieves a single cookie by it's name
|
|
44
|
-
*
|
|
45
|
-
* @param {string} name Identification of the Cookie
|
|
46
|
-
* @returns The Cookie's value
|
|
47
|
-
*/
|
|
48
|
-
get(name) {
|
|
49
|
-
if (!this.check(name))
|
|
50
|
-
return undefined;
|
|
51
|
-
name = encodeURIComponent(name);
|
|
52
|
-
const regexp = new RegExp('(?:^' + name + '|;\\s*' + name + ')=(.*?)(?:;|$)', 'g');
|
|
53
|
-
const result = regexp.exec(document.cookie);
|
|
54
|
-
return result ? decodeURIComponent(result[1]) : undefined;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Retrieves a a list of all cookie avaiable
|
|
58
|
-
*
|
|
59
|
-
* @returns Object with all Cookies
|
|
60
|
-
*/
|
|
61
|
-
getAll() {
|
|
62
|
-
const cookies = {};
|
|
63
|
-
if (document.cookie) {
|
|
64
|
-
const split = document.cookie.split(';');
|
|
65
|
-
for (const s of split) {
|
|
66
|
-
const currCookie = s.split('=');
|
|
67
|
-
currCookie[0] = currCookie[0].trim();
|
|
68
|
-
cookies[decodeURIComponent(currCookie[0])] = decodeURIComponent(currCookie[1]);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return cookies;
|
|
72
|
-
}
|
|
73
|
-
set(name, value, options) {
|
|
74
|
-
options !== null && options !== void 0 ? options : (options = this.defaultOptions);
|
|
75
|
-
const { expires, path, domain, secure, samesite } = Object.assign(Object.assign({}, this.defaultOptions), options);
|
|
76
|
-
let cookieStr = `${encodeURIComponent(name)}=${encodeURIComponent(value)};`;
|
|
77
|
-
if (expires) {
|
|
78
|
-
const dtExpires = typeof expires === 'number' ? new Date(Date.now() + expires * 864e5) : expires;
|
|
79
|
-
cookieStr += `expires=${dtExpires.toUTCString()};`;
|
|
80
|
-
}
|
|
81
|
-
cookieStr += path ? `path=${path};` : '';
|
|
82
|
-
cookieStr += domain ? `domain=${domain};` : '';
|
|
83
|
-
cookieStr += secure ? 'secure;' : '';
|
|
84
|
-
cookieStr += samesite ? `samesite=${samesite};` : '';
|
|
85
|
-
document.cookie = cookieStr;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Removes specified Cookie
|
|
89
|
-
*
|
|
90
|
-
* @param {string} name Cookie's identification
|
|
91
|
-
* @param {string} path Path relative to the domain where the cookie should be avaiable. Default /
|
|
92
|
-
* @param {string} domain Domain where the cookie should be avaiable. Default current domain
|
|
93
|
-
*/
|
|
94
|
-
delete(name, path = '/', domain = window.location.hostname) {
|
|
95
|
-
this.set(name, '', { path, domain, expires: -1 });
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Delete all cookie avaiable
|
|
99
|
-
*/
|
|
100
|
-
deleteAll(path, domain) {
|
|
101
|
-
const cookies = this.getAll();
|
|
102
|
-
for (const cookieName of Object.keys(cookies)) {
|
|
103
|
-
this.delete(cookieName, path, domain);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUudG9rZW4uc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0FOR1VMQVIvTElCUkFSSUVTL2xvY2FsaXplLnRva2VuLjEyLjEuMC9kZXYvc3JjL2xvY2FsaXplLXRva2VuL2xvY2FsaXplLnRva2VuLnN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFhckQ7Ozs7Ozs7Ozs7OztFQVlFO0FBQ0YsTUFBTSxPQUFPLG9CQUFvQjtJQWMvQixZQUFZLGVBQWdDO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxhQUFmLGVBQWUsY0FBZixlQUFlLEdBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xFLENBQUM7SUFkRCxJQUFZLGlCQUFpQjtRQUMzQixNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELE9BQU87WUFDTCxJQUFJLEVBQUUsR0FBRztZQUNULE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE1BQU0sRUFBRSxJQUFJO1lBQ1osaUNBQWlDO1lBQ2pDLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQTtJQUNILENBQUM7SUFPRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxJQUFZO1FBQ2hCLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xELElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLFFBQVEsR0FBRyxJQUFJLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FB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QUUsU0FBaUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsSUFBYSxFQUFFLE1BQWU7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTlCLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHRyYWN0TWFpbkRvbWFpbiB9IGZyb20gXCIuL2xvY2FsaXplLnRva2VuXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb29raWVPcHRpb25zIHtcclxuICAvKipcclxuICAgKiBDb29raWUgZXhwaXJhdGlvbiBkYXRlIGluIGRheXMgZnJvbSBub3cuIElmIG5vdCBwcm92aWRlZCB0aGUgY29va2llIGlzIGEgc2Vzc2lvbiBjb29raWVcclxuICAgKi9cclxuICBleHBpcmVzPzogbnVtYmVyIHwgRGF0ZTtcclxuICBwYXRoPzogc3RyaW5nO1xyXG4gIGRvbWFpbj86IHN0cmluZztcclxuICBzZWN1cmU/OiBib29sZWFuO1xyXG4gIHNhbWVzaXRlPzogXCJzdHJpY3RcIiB8IFwibGF4XCIgfCBcIm5vbmVcIjtcclxufVxyXG5cclxuLyoqXHJcbiogQXNzZW1ibHkgb2YgQHBhY2thZ2UgbmcyLWNvb2tpZXMgQHNlZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9uZzItY29va2llc1xyXG4qXHJcbiogUmVhc3NlbWJsZWQgYnlcclxuKiBAYXV0aG9yIHNhbWJhdGg5OTlcclxuKiBAZGF0ZV8yOV8wOV8yMDIxXHJcbiogVXBkYXRlZCBmcm9tIHJhdyBwYXJhbWV0ZXJzIHRvXHJcbiogQHBhcmFtIHtJQ29va2llT3B0aW9uc30gb3B0aW9ucyBhbmQgYWRkZWQgYW5vdGhlciBuZXdlciBjb29raWUgZmxhZ1xyXG4qIEBwYXJhbSB7c3RyaW5nfSBzYW1lc2l0ZVxyXG4qIEBwYXJhbSB7Y29uc3RhbnR9IFNhbWVTaXRlVHlwZXMsIEBwYXJhbSB7c3RyaW5nfSBzdHJpY3QgXCJzdHJpY3RcIiwgQHBhcmFtIHtzdHJpbmd9IGxheCBcImxheFwiLCBAcGFyYW0ge3N0cmluZ30gbm9uZSBcIm5vbmVcIlxyXG4qXHJcbiogQGVudW1cclxuKi9cclxuZXhwb3J0IGNsYXNzIExvY2FsaXplVG9rZW5TdG9yYWdlIHtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgZ2V0RGVmYXVsdE9wdGlvbnMoKTogSUNvb2tpZU9wdGlvbnMge1xyXG4gICAgY29uc3QgbWFpbkRvbWFpbiA9IGV4dHJhY3RNYWluRG9tYWluKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwYXRoOiAnLycsXHJcbiAgICAgIGRvbWFpbjogbWFpbkRvbWFpbixcclxuICAgICAgc2VjdXJlOiB0cnVlLFxyXG4gICAgICAvLyBzYW1lc2l0ZTogU2FtZVNpdGVUeXBlLnN0cmljdCxcclxuICAgICAgZXhwaXJlczogMVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0T3B0aW9uczogSUNvb2tpZU9wdGlvbnM7XHJcbiAgY29uc3RydWN0b3IoX2RlZmF1bHRPcHRpb25zPzogSUNvb2tpZU9wdGlvbnMpIHtcclxuICAgIHRoaXMuZGVmYXVsdE9wdGlvbnMgPSBfZGVmYXVsdE9wdGlvbnMgPz8gdGhpcy5nZXREZWZhdWx0T3B0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyB0aGUgZXhpc3RlbmNlIG9mIGEgc2luZ2xlIGNvb2tpZSBieSBpdCdzIG5hbWVcclxuICAgKlxyXG4gICAqIEBwYXJhbSAge3N0cmluZ30gbmFtZSBJZGVudGlmaWNhdGlvbiBvZiB0aGUgY29va2llXHJcbiAgICogQHJldHVybnMgZXhpc3RlbmNlIG9mIHRoZSBjb29raWVcclxuICAgKi9cclxuICBjaGVjayhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBmYWxzZTtcclxuICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XHJcbiAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKCcoPzpeJyArIG5hbWUgKyAnfDtcXFxccyonICsgbmFtZSArICcpPSguKj8pKD86O3wkKScsICdnJyk7XHJcbiAgICByZXR1cm4gcmVnZXhwLnRlc3QoZG9jdW1lbnQuY29va2llKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIHNpbmdsZSBjb29raWUgYnkgaXQncyBuYW1lXHJcbiAgICpcclxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgSWRlbnRpZmljYXRpb24gb2YgdGhlIENvb2tpZVxyXG4gICAqIEByZXR1cm5zIFRoZSBDb29raWUncyB2YWx1ZVxyXG4gICAqL1xyXG4gIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrKG5hbWUpKSByZXR1cm4gdW5kZWZpbmVkO1xyXG5cclxuICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XHJcbiAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKCcoPzpeJyArIG5hbWUgKyAnfDtcXFxccyonICsgbmFtZSArICcpPSguKj8pKD86O3wkKScsICdnJyk7XHJcbiAgICBjb25zdCByZXN1bHQgPSByZWdleHAuZXhlYyhkb2N1bWVudC5jb29raWUpO1xyXG4gICAgcmV0dXJuIHJlc3VsdCA/IGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRbMV0pIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgYSBsaXN0IG9mIGFsbCBjb29raWUgYXZhaWFibGVcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIE9iamVjdCB3aXRoIGFsbCBDb29raWVzXHJcbiAgICovXHJcbiAgZ2V0QWxsKCk6IGFueSB7XHJcbiAgICBjb25zdCBjb29raWVzOiBhbnkgPSB7fTtcclxuICAgIGlmIChkb2N1bWVudC5jb29raWUpIHtcclxuICAgICAgY29uc3Qgc3BsaXQgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcclxuICAgICAgZm9yIChjb25zdCBzIG9mIHNwbGl0KSB7XHJcbiAgICAgICAgY29uc3QgY3VyckNvb2tpZSA9IHMuc3BsaXQoJz0nKTtcclxuICAgICAgICBjdXJyQ29va2llWzBdID0gY3VyckNvb2tpZVswXS50cmltKCk7XHJcbiAgICAgICAgY29va2llc1tkZWNvZGVVUklDb21wb25lbnQoY3VyckNvb2tpZVswXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KGN1cnJDb29raWVbMV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvb2tpZXM7XHJcbiAgfVxyXG5cclxuICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHRpb25zPzogSUNvb2tpZU9wdGlvbnMpIHtcclxuICAgIG9wdGlvbnMgPz89IHRoaXMuZGVmYXVsdE9wdGlvbnM7XHJcbiAgICBjb25zdCB7IGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlLCBzYW1lc2l0ZSB9ID0geyAuLi50aGlzLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zIH07XHJcbiAgICBsZXQgY29va2llU3RyID0gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9O2A7XHJcblxyXG4gICAgaWYgKGV4cGlyZXMpIHtcclxuICAgICAgY29uc3QgZHRFeHBpcmVzID0gdHlwZW9mIGV4cGlyZXMgPT09ICdudW1iZXInID8gbmV3IERhdGUoRGF0ZS5ub3coKSArIGV4cGlyZXMgKiA4NjRlNSkgOiBleHBpcmVzO1xyXG4gICAgICBjb29raWVTdHIgKz0gYGV4cGlyZXM9JHtkdEV4cGlyZXMudG9VVENTdHJpbmcoKX07YDtcclxuICAgIH1cclxuXHJcbiAgICBjb29raWVTdHIgKz0gcGF0aCA/IGBwYXRoPSR7cGF0aH07YCA6ICcnO1xyXG4gICAgY29va2llU3RyICs9IGRvbWFpbiA/IGBkb21haW49JHtkb21haW59O2AgOiAnJztcclxuICAgIGNvb2tpZVN0ciArPSBzZWN1cmUgPyAnc2VjdXJlOycgOiAnJztcclxuICAgIGNvb2tpZVN0ciArPSBzYW1lc2l0ZSA/IGBzYW1lc2l0ZT0ke3NhbWVzaXRlfTtgIDogJyc7XHJcblxyXG4gICAgZG9jdW1lbnQuY29va2llID0gY29va2llU3RyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBzcGVjaWZpZWQgQ29va2llXHJcbiAgICpcclxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgQ29va2llJ3MgaWRlbnRpZmljYXRpb25cclxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IHBhdGggUGF0aCByZWxhdGl2ZSB0byB0aGUgZG9tYWluIHdoZXJlIHRoZSBjb29raWUgc2hvdWxkIGJlIGF2YWlhYmxlLiBEZWZhdWx0IC9cclxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IGRvbWFpbiBEb21haW4gd2hlcmUgdGhlIGNvb2tpZSBzaG91bGQgYmUgYXZhaWFibGUuIERlZmF1bHQgY3VycmVudCBkb21haW5cclxuICAgKi9cclxuICBkZWxldGUobmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcgPSAnLycsIGRvbWFpbjogc3RyaW5nID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldChuYW1lLCAnJywgeyBwYXRoLCBkb21haW4sIGV4cGlyZXM6IC0xIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGFsbCBjb29raWUgYXZhaWFibGVcclxuICAgKi9cclxuICBkZWxldGVBbGwocGF0aD86IHN0cmluZywgZG9tYWluPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb29raWVzID0gdGhpcy5nZXRBbGwoKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNvb2tpZU5hbWUgb2YgT2JqZWN0LmtleXMoY29va2llcykpIHtcclxuICAgICAgdGhpcy5kZWxldGUoY29va2llTmFtZSwgcGF0aCwgZG9tYWluKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { LocalizeLogindlgService } from '../localize-logindlg/localize-logindlg.service';
|
|
2
|
-
import { ILocalizeApiConfigs } from '../localize-token/helpers/interfaces';
|
|
3
|
-
import { LocalizeApiService } from '../localize-token/localize.api.service';
|
|
4
|
-
import { ILocalizeTokenConfig } from '../localize-token/localize.token';
|
|
5
|
-
import { LocalizeTokenService } from '../localize-token/localize.token.service';
|
|
6
|
-
export declare class LocalizeApiTokenService {
|
|
7
|
-
readonly api: LocalizeApiService;
|
|
8
|
-
readonly token: LocalizeTokenService;
|
|
9
|
-
readonly loginDialog: LocalizeLogindlgService;
|
|
10
|
-
constructor(tokenService: LocalizeTokenService, apiService: LocalizeApiService, loginDialogService: LocalizeLogindlgService);
|
|
11
|
-
initialize(tokenConfig: ILocalizeTokenConfig, apiConfig: ILocalizeApiConfigs): void;
|
|
12
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { HttpErrorResponse } from "@angular/common/http";
|
|
2
|
-
/**
|
|
3
|
-
* Http method options
|
|
4
|
-
*/
|
|
5
|
-
export declare enum EMethod {
|
|
6
|
-
POST = "post",
|
|
7
|
-
GET = "get",
|
|
8
|
-
PUT = "put",
|
|
9
|
-
DELETE = "delete",
|
|
10
|
-
PATCH = "patch"
|
|
11
|
-
}
|
|
12
|
-
export interface IOnConnectionError {
|
|
13
|
-
/**
|
|
14
|
-
* Callback function to execute when a connection error occurs.
|
|
15
|
-
* This function should return a Promise or any value.
|
|
16
|
-
*/
|
|
17
|
-
callback?: (error: HttpErrorResponse) => Promise<void> | any;
|
|
18
|
-
/**
|
|
19
|
-
* If true, the request will block the screen with overlay on connection errors.
|
|
20
|
-
* Default is false.
|
|
21
|
-
*/
|
|
22
|
-
blockScreen?: boolean;
|
|
23
|
-
/** Optional z-index for the block screen overlay.
|
|
24
|
-
* Default is 10000.
|
|
25
|
-
*/
|
|
26
|
-
blockScreenZIndex?: number;
|
|
27
|
-
/**
|
|
28
|
-
* Optional message to display when a connection error occurs.
|
|
29
|
-
*/
|
|
30
|
-
message?: string;
|
|
31
|
-
suggestionMessage?: string;
|
|
32
|
-
}
|
|
33
|
-
interface IRetryOptions {
|
|
34
|
-
/**
|
|
35
|
-
* Maximum number of retries for a failed request.
|
|
36
|
-
* Default is 100.
|
|
37
|
-
*/
|
|
38
|
-
maxRetries?: number;
|
|
39
|
-
/**
|
|
40
|
-
* Delay in milliseconds before retrying a failed request.
|
|
41
|
-
* Default is 500ms.
|
|
42
|
-
*/
|
|
43
|
-
delay?: number;
|
|
44
|
-
/**
|
|
45
|
-
* Function to determine if a request should be retried based on the error.
|
|
46
|
-
* If not provided, the default function will retry for network errors and server errors (status 500-599).
|
|
47
|
-
* @param error - The error object from the failed request.
|
|
48
|
-
* @returns true if the request should be retried, false otherwise.
|
|
49
|
-
*/
|
|
50
|
-
retryFunction?: (error: HttpErrorResponse) => Promise<boolean> | any;
|
|
51
|
-
/**
|
|
52
|
-
* Function to execute when a connection error occurs.
|
|
53
|
-
* This function should return a Promise or any value.
|
|
54
|
-
*/
|
|
55
|
-
onConnectionError?: IOnConnectionError;
|
|
56
|
-
}
|
|
57
|
-
export interface ILocalizeApiConfigs {
|
|
58
|
-
onPrepareRequest?: () => Promise<void> | any;
|
|
59
|
-
onAutoLogout?: () => Promise<void> | any;
|
|
60
|
-
onRevokeUnauthorized?: () => Promise<void> | any;
|
|
61
|
-
onResponseBodyInvalid?: (body: any) => void;
|
|
62
|
-
onException?: (error: any) => void;
|
|
63
|
-
waitEachRequest?: {
|
|
64
|
-
milliseconds: number;
|
|
65
|
-
};
|
|
66
|
-
enableRequestCancellation?: boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Config for retrying failed requests.
|
|
69
|
-
* If not provided, the default retry options will be used.
|
|
70
|
-
*/
|
|
71
|
-
retryOptions?: IRetryOptions;
|
|
72
|
-
}
|
|
73
|
-
export interface IApiOptions {
|
|
74
|
-
headers?: {
|
|
75
|
-
[key: string]: string;
|
|
76
|
-
};
|
|
77
|
-
method: EMethod;
|
|
78
|
-
requestUrl: string;
|
|
79
|
-
requestBody?: any;
|
|
80
|
-
isFormData?: boolean;
|
|
81
|
-
/**
|
|
82
|
-
* If true, the request will use the refresh token for authorization.
|
|
83
|
-
*/
|
|
84
|
-
refreshToken?: boolean;
|
|
85
|
-
}
|
|
86
|
-
export interface IHeader {
|
|
87
|
-
[key: string]: string;
|
|
88
|
-
}
|
|
89
|
-
export {};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { HttpClient, HttpErrorResponse, HttpHeaders } from "@angular/common/http";
|
|
2
|
-
import { IApiOptions, ILocalizeApiConfigs, IOnConnectionError } from "./interfaces";
|
|
3
|
-
import { Subject } from "rxjs";
|
|
4
|
-
interface IRequestInstance {
|
|
5
|
-
client: HttpClient;
|
|
6
|
-
destroy$: () => Subject<void>;
|
|
7
|
-
}
|
|
8
|
-
interface IRetryOptions {
|
|
9
|
-
maxRetries: () => number;
|
|
10
|
-
delay: number;
|
|
11
|
-
callback: () => Promise<any> | any;
|
|
12
|
-
retryUnless?: (error: any) => boolean;
|
|
13
|
-
onError?: (error: any) => Promise<void> | any;
|
|
14
|
-
connectionError?: IOnConnectionError;
|
|
15
|
-
}
|
|
16
|
-
declare class LocalizeApiHelper {
|
|
17
|
-
readonly defaultRetryOptions: Partial<IRetryOptions>;
|
|
18
|
-
performRetry<T = any>(options: IRetryOptions): Promise<T>;
|
|
19
|
-
performRequestWithRetry<T = any>(options: IApiOptions, config: ILocalizeApiConfigs, performRequest: <T = any>(options: IApiOptions) => Promise<T>): Promise<T>;
|
|
20
|
-
buildUrl(baseUrl: string, path: string): string;
|
|
21
|
-
invokeHook(callback?: () => Promise<any> | any): Promise<any>;
|
|
22
|
-
createRequest<T = any>(instance: Required<IRequestInstance>, method: string, url: string, body: any, options: {
|
|
23
|
-
headers: HttpHeaders;
|
|
24
|
-
}, onInvalidResponseBody?: (body: any) => void): import("rxjs").Observable<any>;
|
|
25
|
-
defaultRetryFunction(error: HttpErrorResponse): boolean;
|
|
26
|
-
isConnectionError(error: HttpErrorResponse): boolean;
|
|
27
|
-
onConnectionError(options: IRetryOptions, error: any): Promise<Promise<void> | any>;
|
|
28
|
-
screenBlocker(optons: IRetryOptions, error?: HttpErrorResponse, add?: boolean): HTMLStyleElement | undefined;
|
|
29
|
-
private removeBlocker;
|
|
30
|
-
}
|
|
31
|
-
export declare const ApiHelper: LocalizeApiHelper;
|
|
32
|
-
export {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from "@angular/common/http";
|
|
2
|
-
import { OnDestroy } from "@angular/core";
|
|
3
|
-
import { BehaviorSubject } from "rxjs";
|
|
4
|
-
import { EMethod, IHeader, ILocalizeApiConfigs } from "./helpers/interfaces";
|
|
5
|
-
import { IThirdPartyConfig } from "./localize.token";
|
|
6
|
-
import { LocalizeTokenService } from "./localize.token.service";
|
|
7
|
-
export declare class LocalizeApiService implements OnDestroy {
|
|
8
|
-
readonly httpClient: HttpClient;
|
|
9
|
-
private readonly localizeTokenService;
|
|
10
|
-
private readonly destroy$;
|
|
11
|
-
private readonly configSubject;
|
|
12
|
-
readonly isRequestingSubject: BehaviorSubject<boolean>;
|
|
13
|
-
readonly isResolvingStartupSubject: BehaviorSubject<boolean>;
|
|
14
|
-
get isResolvingStartup(): boolean;
|
|
15
|
-
get needTenant(): boolean;
|
|
16
|
-
get isRequesting(): boolean;
|
|
17
|
-
get isRevokingToken(): boolean;
|
|
18
|
-
set isRevokingToken(value: boolean);
|
|
19
|
-
get accessToken(): string | undefined;
|
|
20
|
-
set accessToken(value: string | undefined);
|
|
21
|
-
get refreshToken(): string | undefined;
|
|
22
|
-
get tenantToken(): string | undefined;
|
|
23
|
-
get thirdPartyConfig(): IThirdPartyConfig | undefined;
|
|
24
|
-
private defaultConfig;
|
|
25
|
-
private get config();
|
|
26
|
-
private apiOptions;
|
|
27
|
-
constructor(httpClient: HttpClient, localizeTokenService: LocalizeTokenService);
|
|
28
|
-
/**
|
|
29
|
-
* Initialize the API service.
|
|
30
|
-
* @param apiConfigs - The API configurations.
|
|
31
|
-
*/
|
|
32
|
-
init(apiConfigs: ILocalizeApiConfigs): void;
|
|
33
|
-
cancelPendingRequests(): void;
|
|
34
|
-
ngOnDestroy(): void;
|
|
35
|
-
/**
|
|
36
|
-
* A higher-order function that returns a curried function for making API requests.
|
|
37
|
-
*
|
|
38
|
-
* @param baseUrl - The base URL of the API.
|
|
39
|
-
* @returns A curried function that can be used to make API requests.
|
|
40
|
-
*/
|
|
41
|
-
func: (baseUrl: string) => <T = any>(path: string, method?: EMethod, reqBody?: any, reqHeaders?: IHeader) => Promise<T>;
|
|
42
|
-
request<T = any>(baseUrl: string, path: string, method?: EMethod, reqBody?: any, reqHeaders?: IHeader): Promise<T>;
|
|
43
|
-
private handleOnRequestError;
|
|
44
|
-
private handleThirdPartyAuthError;
|
|
45
|
-
private performRequest;
|
|
46
|
-
private revokeToken;
|
|
47
|
-
private buildThirdPartyApiOption;
|
|
48
|
-
/** default http request options */
|
|
49
|
-
private buildHeaderOptions;
|
|
50
|
-
private buildApiOptions;
|
|
51
|
-
private toWaitForPreviousRequest;
|
|
52
|
-
private handleOnTokenRevoked;
|
|
53
|
-
private interceptRevokeToken;
|
|
54
|
-
validateConfig(): void;
|
|
55
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { EMethod } from "./helpers/interfaces";
|
|
2
|
-
import { LocalizeTokenStorage } from "./localize.token.storage";
|
|
3
|
-
interface ILocalizeTokenTokens {
|
|
4
|
-
name: string;
|
|
5
|
-
requestUrl?: string;
|
|
6
|
-
method?: EMethod;
|
|
7
|
-
body?: {};
|
|
8
|
-
}
|
|
9
|
-
export interface IThirdPartyConfig {
|
|
10
|
-
isThirdPartyMode: boolean;
|
|
11
|
-
clientId: string;
|
|
12
|
-
clientSecret: string;
|
|
13
|
-
refreshToken: ILocalizeTokenTokens;
|
|
14
|
-
lastUnauthorizedUrl?: string | null;
|
|
15
|
-
}
|
|
16
|
-
export interface ILocalizeTokenConfig {
|
|
17
|
-
/**
|
|
18
|
-
* The main domain of the application to set the cookies to be available for cross application with subdomains.
|
|
19
|
-
*
|
|
20
|
-
* Default is location.hostname (current domain) and automatically set extracted main domain if it is subdomain.
|
|
21
|
-
*/
|
|
22
|
-
mainDomain?: string;
|
|
23
|
-
isProduction: boolean;
|
|
24
|
-
authToken?: ILocalizeTokenTokens;
|
|
25
|
-
refreshToken?: ILocalizeTokenTokens;
|
|
26
|
-
tenantToken?: ILocalizeTokenTokens;
|
|
27
|
-
requiredTenant?: boolean;
|
|
28
|
-
thirdPartyConfig?: IThirdPartyConfig;
|
|
29
|
-
}
|
|
30
|
-
export declare class LocalizeToken {
|
|
31
|
-
static readonly storage: LocalizeTokenStorage;
|
|
32
|
-
static readonly httpHeaders: {
|
|
33
|
-
AUTHORIZATION: string;
|
|
34
|
-
X_TENANT: string;
|
|
35
|
-
X_REFRESH_TOKEN: string;
|
|
36
|
-
CONTENT_TYPE: string;
|
|
37
|
-
X_CLIENT: string;
|
|
38
|
-
X_SECRET: string;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Waits for a specified amount of time.
|
|
43
|
-
* @param milliseconds - The milliseconds to wait.
|
|
44
|
-
* @param when - The condition to wait for. Default is true.
|
|
45
|
-
* @returns - Promise<void>
|
|
46
|
-
*/
|
|
47
|
-
export declare function waitFor(milliseconds: number, when?: boolean): Promise<void>;
|
|
48
|
-
/**
|
|
49
|
-
* Waits until the condition is met.
|
|
50
|
-
* @param when - The condition to wait for.
|
|
51
|
-
* @param intervalNumber - The interval number in milliseconds to check the condition. Default is 50.
|
|
52
|
-
*/
|
|
53
|
-
export declare function waitUntil(when: () => any, intervalNumber?: number): Promise<void>;
|
|
54
|
-
export declare function extractMainDomain(subdomain?: string): string;
|
|
55
|
-
export {};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import * as jwt_decode from 'jwt-decode';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { ILocalizeTokenConfig } from './localize.token';
|
|
5
|
-
export interface JwtPayload extends jwt_decode.JwtPayload {
|
|
6
|
-
email: string;
|
|
7
|
-
sub: string;
|
|
8
|
-
name: string;
|
|
9
|
-
iat: number;
|
|
10
|
-
exp: number;
|
|
11
|
-
}
|
|
12
|
-
export declare class LocalizeTokenService implements OnDestroy {
|
|
13
|
-
private readonly configSubject;
|
|
14
|
-
readonly isRevokingTokenSubject: BehaviorSubject<boolean>;
|
|
15
|
-
private readonly defaultConfig;
|
|
16
|
-
get config(): ILocalizeTokenConfig;
|
|
17
|
-
private isInitialized;
|
|
18
|
-
init(config: ILocalizeTokenConfig): void;
|
|
19
|
-
ngOnDestroy(): void;
|
|
20
|
-
private get authToken();
|
|
21
|
-
private set authToken(value);
|
|
22
|
-
get tenantToken(): string;
|
|
23
|
-
get refreshToken(): string;
|
|
24
|
-
get accessToken(): string | undefined;
|
|
25
|
-
set accessToken(value: string | undefined);
|
|
26
|
-
get isRevokingToken(): boolean;
|
|
27
|
-
set isRevokingToken(value: boolean);
|
|
28
|
-
get clientId(): string;
|
|
29
|
-
get clientSecret(): string;
|
|
30
|
-
private storageGet;
|
|
31
|
-
private storageSet;
|
|
32
|
-
tokensValid(): boolean | undefined;
|
|
33
|
-
decodeToken: (token: string) => JwtPayload;
|
|
34
|
-
get decodeRefreshToken(): JwtPayload;
|
|
35
|
-
private throwIfNotInitialized;
|
|
36
|
-
}
|