@kolektor/nucleus-identity 0.0.12-pre.7931 → 0.1.0-pre.124
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/README.md +7 -0
- package/esm2022/index.mjs +7 -0
- package/esm2022/kolektor-nucleus-identity.mjs +5 -0
- package/esm2022/lib/models/client-registration.mjs +8 -0
- package/esm2022/lib/models/device-code.mjs +19 -0
- package/esm2022/lib/models/identity.mjs +52 -0
- package/esm2022/lib/models/otp.mjs +11 -0
- package/esm2022/lib/models/service-principal.mjs +16 -0
- package/esm2022/lib/nucleus-identity-config.mjs +7 -0
- package/esm2022/lib/nucleus-identity.module.mjs +32 -0
- package/esm2022/lib/nucleus-identity.service.mjs +350 -0
- package/esm2022/lib/nucleus-token-interceptor.service.mjs +69 -0
- package/esm2022/lib/utils/angular-requestor.mjs +44 -0
- package/esm2022/lib/utils/authorization-service-configuration.mjs +28 -0
- package/esm2022/lib/utils/location.service.mjs +72 -0
- package/esm2022/lib/utils/nucleus-authorization-notifier.mjs +15 -0
- package/esm2022/lib/utils/oidc-configuration.service.mjs +95 -0
- package/esm2022/lib/utils/secrets-store.mjs +120 -0
- package/esm2022/lib/utils/token-client.mjs +140 -0
- package/{fesm2020 → fesm2022}/kolektor-nucleus-identity.mjs +980 -1012
- package/fesm2022/kolektor-nucleus-identity.mjs.map +1 -0
- package/index.d.ts +6 -5
- package/lib/models/client-registration.d.ts +11 -11
- package/lib/models/device-code.d.ts +19 -19
- package/lib/models/identity.d.ts +14 -14
- package/lib/models/otp.d.ts +14 -14
- package/lib/models/service-principal.d.ts +12 -12
- package/lib/nucleus-identity-config.d.ts +12 -12
- package/lib/nucleus-identity.module.d.ts +9 -9
- package/lib/nucleus-identity.service.d.ts +63 -63
- package/lib/nucleus-token-interceptor.service.d.ts +19 -19
- package/lib/utils/angular-requestor.d.ts +11 -11
- package/lib/utils/authorization-service-configuration.d.ts +12 -12
- package/lib/utils/location.service.d.ts +25 -25
- package/lib/utils/nucleus-authorization-notifier.d.ts +9 -9
- package/lib/utils/oidc-configuration.service.d.ts +23 -23
- package/lib/utils/secrets-store.d.ts +33 -33
- package/lib/utils/token-client.d.ts +23 -23
- package/package.json +29 -33
- package/esm2020/kolektor-nucleus-identity.mjs +0 -5
- package/esm2020/lib/models/client-registration.mjs +0 -8
- package/esm2020/lib/models/device-code.mjs +0 -19
- package/esm2020/lib/models/identity.mjs +0 -49
- package/esm2020/lib/models/otp.mjs +0 -11
- package/esm2020/lib/models/service-principal.mjs +0 -16
- package/esm2020/lib/nucleus-identity-config.mjs +0 -8
- package/esm2020/lib/nucleus-identity.module.mjs +0 -28
- package/esm2020/lib/nucleus-identity.service.mjs +0 -341
- package/esm2020/lib/nucleus-token-interceptor.service.mjs +0 -64
- package/esm2020/lib/utils/angular-requestor.mjs +0 -38
- package/esm2020/lib/utils/authorization-service-configuration.mjs +0 -23
- package/esm2020/lib/utils/location.service.mjs +0 -72
- package/esm2020/lib/utils/nucleus-authorization-notifier.mjs +0 -13
- package/esm2020/lib/utils/nucleus-crypto.mjs +0 -68
- package/esm2020/lib/utils/oidc-configuration.service.mjs +0 -90
- package/esm2020/lib/utils/secrets-store.mjs +0 -120
- package/esm2020/lib/utils/token-client.mjs +0 -140
- package/esm2020/public-api.mjs +0 -11
- package/fesm2015/kolektor-nucleus-identity.mjs +0 -1139
- package/fesm2015/kolektor-nucleus-identity.mjs.map +0 -1
- package/fesm2020/kolektor-nucleus-identity.mjs.map +0 -1
- package/lib/utils/nucleus-crypto.d.ts +0 -9
- package/public-api.d.ts +0 -7
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AuthorizationNotifier } from '@openid/appauth';
|
|
2
|
-
export class NucleusAuthorizationNotifier extends AuthorizationNotifier {
|
|
3
|
-
constructor() {
|
|
4
|
-
super();
|
|
5
|
-
this.setAuthorizationListener((request, response, error) => {
|
|
6
|
-
console.log('Authorization request complete ', request, response, error);
|
|
7
|
-
this.response = response;
|
|
8
|
-
this.request = request;
|
|
9
|
-
this.error = error;
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVjbGV1cy1hdXRob3JpemF0aW9uLW5vdGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnVjbGV1cy1pZGVudGl0eS9zcmMvbGliL3V0aWxzL251Y2xldXMtYXV0aG9yaXphdGlvbi1ub3RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEscUJBQXFCO0lBS25FO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhvcml6YXRpb25Ob3RpZmllciB9IGZyb20gJ0BvcGVuaWQvYXBwYXV0aCc7XHJcbmltcG9ydCB7IEF1dGhvcml6YXRpb25SZXNwb25zZSwgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSAnQG9wZW5pZC9hcHBhdXRoJztcclxuaW1wb3J0IHsgQXV0aG9yaXphdGlvblJlcXVlc3QgfSBmcm9tICdAb3BlbmlkL2FwcGF1dGgnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE51Y2xldXNBdXRob3JpemF0aW9uTm90aWZpZXIgZXh0ZW5kcyBBdXRob3JpemF0aW9uTm90aWZpZXIge1xyXG4gICAgcmVzcG9uc2U6IEF1dGhvcml6YXRpb25SZXNwb25zZTtcclxuICAgIHJlcXVlc3Q6IEF1dGhvcml6YXRpb25SZXF1ZXN0O1xyXG4gICAgZXJyb3I6IEF1dGhvcml6YXRpb25FcnJvcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpICB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLnNldEF1dGhvcml6YXRpb25MaXN0ZW5lcigocmVxdWVzdCwgcmVzcG9uc2UsIGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBdXRob3JpemF0aW9uIHJlcXVlc3QgY29tcGxldGUgJywgcmVxdWVzdCwgcmVzcG9uc2UsIGVycm9yKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0O1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { AppAuthError } from '@openid/appauth';
|
|
2
|
-
import * as base64 from 'base64-js';
|
|
3
|
-
const CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
4
|
-
export class NucleusCrypto {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.browserCrypto = window.crypto || window.msCrypto;
|
|
7
|
-
}
|
|
8
|
-
generateRandom(size) {
|
|
9
|
-
const buffer = new Uint8Array(size);
|
|
10
|
-
if (this.browserCrypto) {
|
|
11
|
-
this.browserCrypto.getRandomValues(buffer);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
// fall back to Math.random() if nothing else is available
|
|
15
|
-
for (let i = 0; i < size; i += 1) {
|
|
16
|
-
buffer[i] = Math.random();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return this.bufferToString(buffer);
|
|
20
|
-
}
|
|
21
|
-
deriveChallenge(code) {
|
|
22
|
-
if (code.length < 43 || code.length > 128) {
|
|
23
|
-
return Promise.reject(new AppAuthError('Invalid code length.'));
|
|
24
|
-
}
|
|
25
|
-
if (!this.browserCrypto.subtle) {
|
|
26
|
-
return Promise.reject(new AppAuthError('window.crypto.subtle is unavailable.'));
|
|
27
|
-
}
|
|
28
|
-
const ecode = this.textEncodeLite(code);
|
|
29
|
-
const op = this.browserCrypto.subtle.digest('SHA-256', ecode);
|
|
30
|
-
return new Promise((resolve, reject) => {
|
|
31
|
-
// if operation contains algorithm it means it is not a promise which means it is CryptoOperation from IE.
|
|
32
|
-
// We just return result as promise
|
|
33
|
-
if (op.algorithm) {
|
|
34
|
-
console.log('we have a CryptoOperation');
|
|
35
|
-
op.addEventListener('complete', () => {
|
|
36
|
-
resolve(this.urlSafe(op.result));
|
|
37
|
-
});
|
|
38
|
-
op.addEventListener('error', () => {
|
|
39
|
-
reject(op.result);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
else { // the result is promise
|
|
43
|
-
op.then(buffer => resolve(this.urlSafe(buffer)), error => reject(error));
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
urlSafe(buffer) {
|
|
48
|
-
const encoded = base64.fromByteArray(new Uint8Array(buffer));
|
|
49
|
-
return encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
|
|
50
|
-
}
|
|
51
|
-
textEncodeLite(str) {
|
|
52
|
-
const buf = new ArrayBuffer(str.length);
|
|
53
|
-
const bufView = new Uint8Array(buf);
|
|
54
|
-
for (let i = 0; i < str.length; i++) {
|
|
55
|
-
bufView[i] = str.charCodeAt(i);
|
|
56
|
-
}
|
|
57
|
-
return bufView;
|
|
58
|
-
}
|
|
59
|
-
bufferToString(buffer) {
|
|
60
|
-
const state = [];
|
|
61
|
-
for (let i = 0; i < buffer.byteLength; i += 1) {
|
|
62
|
-
const index = buffer[i] % CHARSET.length;
|
|
63
|
-
state.push(CHARSET[index]);
|
|
64
|
-
}
|
|
65
|
-
return state.join('');
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVjbGV1cy1jcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udWNsZXVzLWlkZW50aXR5L3NyYy9saWIvdXRpbHMvbnVjbGV1cy1jcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE1BQU0sT0FBTyxHQUFHLGdFQUFnRSxDQUFDO0FBRWpGLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ1Usa0JBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFLLE1BQWMsQ0FBQyxRQUFRLENBQUM7SUFtRXBFLENBQUM7SUFqRUMsY0FBYyxDQUFDLElBQVk7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDTCwwREFBMEQ7WUFDMUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzNCO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDekMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxDQUFDLHNCQUFzQixDQUFDLENB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cnRzIElFIHdpdGggd2luZG93Lm1zQ3J5cHRvICEhISEhIVxyXG5pbXBvcnQgeyBDcnlwdG8gfSBmcm9tICdAb3BlbmlkL2FwcGF1dGgnO1xyXG5pbXBvcnQgeyBBcHBBdXRoRXJyb3IgfSBmcm9tICdAb3BlbmlkL2FwcGF1dGgnO1xyXG5pbXBvcnQgKiBhcyBiYXNlNjQgZnJvbSAnYmFzZTY0LWpzJztcclxuXHJcbmNvbnN0IENIQVJTRVQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xyXG5cclxuZXhwb3J0IGNsYXNzIE51Y2xldXNDcnlwdG8gaW1wbGVtZW50cyBDcnlwdG8ge1xyXG4gIHByaXZhdGUgYnJvd3NlckNyeXB0byA9IHdpbmRvdy5jcnlwdG8gfHwgKHdpbmRvdyBhcyBhbnkpLm1zQ3J5cHRvO1xyXG5cclxuICBnZW5lcmF0ZVJhbmRvbShzaXplOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHNpemUpO1xyXG4gICAgaWYgKHRoaXMuYnJvd3NlckNyeXB0bykge1xyXG4gICAgICB0aGlzLmJyb3dzZXJDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ1ZmZlcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBmYWxsIGJhY2sgdG8gTWF0aC5yYW5kb20oKSBpZiBub3RoaW5nIGVsc2UgaXMgYXZhaWxhYmxlXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgaSArPSAxKSB7XHJcbiAgICAgICAgYnVmZmVyW2ldID0gTWF0aC5yYW5kb20oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYnVmZmVyVG9TdHJpbmcoYnVmZmVyKTtcclxuICB9XHJcblxyXG4gIGRlcml2ZUNoYWxsZW5nZShjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgaWYgKGNvZGUubGVuZ3RoIDwgNDMgfHwgY29kZS5sZW5ndGggPiAxMjgpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBBcHBBdXRoRXJyb3IoJ0ludmFsaWQgY29kZSBsZW5ndGguJykpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmJyb3dzZXJDcnlwdG8uc3VidGxlKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgQXBwQXV0aEVycm9yKCd3aW5kb3cuY3J5cHRvLnN1YnRsZSBpcyB1bmF2YWlsYWJsZS4nKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZWNvZGUgPSB0aGlzLnRleHRFbmNvZGVMaXRlKGNvZGUpO1xyXG4gICAgY29uc3Qgb3AgPSB0aGlzLmJyb3dzZXJDcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGVjb2RlKTtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIC8vIGlmIG9wZXJhdGlvbiBjb250YWlucyBhbGdvcml0aG0gaXQgbWVhbnMgaXQgaXMgbm90IGEgcHJvbWlzZSB3aGljaCBtZWFucyBpdCBpcyBDcnlwdG9PcGVyYXRpb24gZnJvbSBJRS5cclxuICAgICAgLy8gV2UganVzdCByZXR1cm4gcmVzdWx0IGFzIHByb21pc2VcclxuICAgICAgaWYgKG9wLmFsZ29yaXRobSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd3ZSBoYXZlIGEgQ3J5cHRvT3BlcmF0aW9uJyk7XHJcbiAgICAgICAgb3AuYWRkRXZlbnRMaXN0ZW5lcignY29tcGxldGUnLCAoKSA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMudXJsU2FmZShvcC5yZXN1bHQpKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgb3AuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoKSA9PiB7XHJcbiAgICAgICAgICByZWplY3Qob3AucmVzdWx0KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHsgLy8gdGhlIHJlc3VsdCBpcyBwcm9taXNlXHJcbiAgICAgICAgb3AudGhlbihidWZmZXIgPT4gcmVzb2x2ZSh0aGlzLnVybFNhZmUoYnVmZmVyKSksIGVycm9yID0+IHJlamVjdChlcnJvcikpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHVybFNhZmUoYnVmZmVyOiBVaW50OEFycmF5KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGVuY29kZWQgPSBiYXNlNjQuZnJvbUJ5dGVBcnJheShuZXcgVWludDhBcnJheShidWZmZXIpKTtcclxuICAgIHJldHVybiBlbmNvZGVkLnJlcGxhY2UoL1xcKy9nLCAnLScpLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoLz0vZywgJycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0ZXh0RW5jb2RlTGl0ZShzdHI6IHN0cmluZykge1xyXG4gICAgY29uc3QgYnVmID0gbmV3IEFycmF5QnVmZmVyKHN0ci5sZW5ndGgpO1xyXG4gICAgY29uc3QgYnVmVmlldyA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgYnVmVmlld1tpXSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJ1ZlZpZXc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcjogVWludDhBcnJheSkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnVmZmVyLmJ5dGVMZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IGJ1ZmZlcltpXSAlIENIQVJTRVQubGVuZ3RoO1xyXG4gICAgICBzdGF0ZS5wdXNoKENIQVJTRVRbaW5kZXhdKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGF0ZS5qb2luKCcnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NucleusAppService } from '@kolektor/nucleus-common';
|
|
3
|
-
import { NucleusIdentityConfig } from '../nucleus-identity-config';
|
|
4
|
-
import { AngularRequestor } from './angular-requestor';
|
|
5
|
-
import { NucleusAuthorizationServiceConfiguration } from './authorization-service-configuration';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./angular-requestor";
|
|
8
|
-
import * as i2 from "../nucleus-identity-config";
|
|
9
|
-
import * as i3 from "@kolektor/nucleus-common";
|
|
10
|
-
export class OidcConfigurationService {
|
|
11
|
-
constructor(requestor, config, appService) {
|
|
12
|
-
this.requestor = requestor;
|
|
13
|
-
this.config = config;
|
|
14
|
-
this.appService = appService;
|
|
15
|
-
this._configuration = null;
|
|
16
|
-
}
|
|
17
|
-
async getConfiguration() {
|
|
18
|
-
await this.assureConfiguration();
|
|
19
|
-
return this._configuration;
|
|
20
|
-
}
|
|
21
|
-
get clientId() {
|
|
22
|
-
return this.config.clientId;
|
|
23
|
-
}
|
|
24
|
-
get requestedScopes() {
|
|
25
|
-
return this.config.requestedScopes;
|
|
26
|
-
}
|
|
27
|
-
get servicePrincipalRequestedScopes() {
|
|
28
|
-
return this.config.servicePrincipalRequestedScopes;
|
|
29
|
-
}
|
|
30
|
-
get authProviderHint() {
|
|
31
|
-
return this.config.authProviderHint;
|
|
32
|
-
}
|
|
33
|
-
get redirectUrl() {
|
|
34
|
-
let uri = window.location.href;
|
|
35
|
-
const platform = this.appService.platform;
|
|
36
|
-
if (platform === 'android' && this.config.androidRedirectUri) {
|
|
37
|
-
uri = this.config.androidRedirectUri;
|
|
38
|
-
}
|
|
39
|
-
else if (platform === 'ios' && this.config.iOSRedirectUri) {
|
|
40
|
-
uri = this.config.iOSRedirectUri;
|
|
41
|
-
}
|
|
42
|
-
else if (this.config.redirectUri) {
|
|
43
|
-
uri = this.config.redirectUri;
|
|
44
|
-
}
|
|
45
|
-
return this.NormalizeRedirectUri(uri);
|
|
46
|
-
}
|
|
47
|
-
getServerUrl(relativeUri = null) {
|
|
48
|
-
let authority = this.config.authority;
|
|
49
|
-
if (!authority || authority === 'origin') {
|
|
50
|
-
authority = window.origin;
|
|
51
|
-
}
|
|
52
|
-
let url = new URL(authority);
|
|
53
|
-
if (relativeUri) {
|
|
54
|
-
url = new URL(relativeUri, url);
|
|
55
|
-
}
|
|
56
|
-
return url.href;
|
|
57
|
-
}
|
|
58
|
-
NormalizeRedirectUri(uri) {
|
|
59
|
-
const i = uri.indexOf('#');
|
|
60
|
-
if (i > 0) {
|
|
61
|
-
uri = uri.substring(0, i);
|
|
62
|
-
}
|
|
63
|
-
return uri;
|
|
64
|
-
}
|
|
65
|
-
async assureConfiguration() {
|
|
66
|
-
if (this._configuration != null) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
let authority = this.getServerUrl();
|
|
70
|
-
if (authority[authority.length - 1] === '/') {
|
|
71
|
-
authority = authority.slice(0, -1);
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
this._configuration = await NucleusAuthorizationServiceConfiguration.fetchFromIssuer(authority, this.requestor);
|
|
75
|
-
}
|
|
76
|
-
catch (e) {
|
|
77
|
-
console.error('Nucleus.Identity: Cannot load OIDC configuration: ' + e.message);
|
|
78
|
-
throw e;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
OidcConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OidcConfigurationService, deps: [{ token: i1.AngularRequestor }, { token: i2.NucleusIdentityConfig }, { token: i3.NucleusAppService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
83
|
-
OidcConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OidcConfigurationService, providedIn: 'root' });
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OidcConfigurationService, decorators: [{
|
|
85
|
-
type: Injectable,
|
|
86
|
-
args: [{
|
|
87
|
-
providedIn: 'root'
|
|
88
|
-
}]
|
|
89
|
-
}], ctorParameters: function () { return [{ type: i1.AngularRequestor }, { type: i2.NucleusIdentityConfig }, { type: i3.NucleusAppService }]; } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udWNsZXVzLWlkZW50aXR5L3NyYy9saWIvdXRpbHMvb2lkYy1jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFLakcsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNVLFNBQTJCLEVBQzNCLE1BQTZCLEVBQzdCLFVBQTZCO1FBRjdCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBSS9CLG1CQUFjLEdBQTZDLElBQUksQ0FBQztJQUZ4RSxDQUFDO0lBSU0sS0FBSyxDQUFDLGdCQUFnQjtRQUN6QixNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLCtCQUErQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUM7SUFDckQsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQzFDLElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO1lBQzVELEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQ3RDO2FBQU0sSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQzNELEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUNsQzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDbEMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxjQUFzQixJQUFJO1FBQzVDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUN4QyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUMzQjtRQUVELElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdCLElBQUksV0FBVyxFQUFFO1lBQ2YsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNqQztRQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsR0FBVztRQUN0QyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNULEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLEtBQUssQ0FBQyxtQkFBbUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRTtZQUMvQixPQUFPO1NBQ1I7UUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDM0MsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEM7UUFDRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLHdDQUF3QyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2pIO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLG9EQUFvRCxHQUFJLENBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRixNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQzs7cUhBakZVLHdCQUF3Qjt5SEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTnVjbGV1c0FwcFNlcnZpY2UgfSBmcm9tICdAa29sZWt0b3IvbnVjbGV1cy1jb21tb24nO1xyXG5pbXBvcnQgeyBOdWNsZXVzSWRlbnRpdHlDb25maWcgfSBmcm9tICcuLi9udWNsZXVzLWlkZW50aXR5LWNvbmZpZyc7XHJcbmltcG9ydCB7IEFuZ3VsYXJSZXF1ZXN0b3IgfSBmcm9tICcuL2FuZ3VsYXItcmVxdWVzdG9yJztcclxuaW1wb3J0IHsgTnVjbGV1c0F1dGhvcml6YXRpb25TZXJ2aWNlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vYXV0aG9yaXphdGlvbi1zZXJ2aWNlLWNvbmZpZ3VyYXRpb24nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT2lkY0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVxdWVzdG9yOiBBbmd1bGFyUmVxdWVzdG9yLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IE51Y2xldXNJZGVudGl0eUNvbmZpZyxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogTnVjbGV1c0FwcFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb25maWd1cmF0aW9uOiBOdWNsZXVzQXV0aG9yaXphdGlvblNlcnZpY2VDb25maWd1cmF0aW9uID0gbnVsbDtcclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuYXNzdXJlQ29uZmlndXJhdGlvbigpO1xyXG4gICAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2xpZW50SWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY2xpZW50SWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlcXVlc3RlZFNjb3BlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0ZWRTY29wZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNlcnZpY2VQcmluY2lwYWxSZXF1ZXN0ZWRTY29wZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuc2VydmljZVByaW5jaXBhbFJlcXVlc3RlZFNjb3BlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXV0aFByb3ZpZGVySGludCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5hdXRoUHJvdmlkZXJIaW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWRpcmVjdFVybCgpIHtcclxuICAgIGxldCB1cmkgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgIGNvbnN0IHBsYXRmb3JtID0gdGhpcy5hcHBTZXJ2aWNlLnBsYXRmb3JtO1xyXG4gICAgaWYgKHBsYXRmb3JtID09PSAnYW5kcm9pZCcgJiYgdGhpcy5jb25maWcuYW5kcm9pZFJlZGlyZWN0VXJpKSB7XHJcbiAgICAgIHVyaSA9IHRoaXMuY29uZmlnLmFuZHJvaWRSZWRpcmVjdFVyaTtcclxuICAgIH0gZWxzZSBpZiAocGxhdGZvcm0gPT09ICdpb3MnICYmIHRoaXMuY29uZmlnLmlPU1JlZGlyZWN0VXJpKSB7XHJcbiAgICAgIHVyaSA9IHRoaXMuY29uZmlnLmlPU1JlZGlyZWN0VXJpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaSkge1xyXG4gICAgICB1cmkgPSB0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLk5vcm1hbGl6ZVJlZGlyZWN0VXJpKHVyaSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VydmVyVXJsKHJlbGF0aXZlVXJpOiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgICBsZXQgYXV0aG9yaXR5ID0gdGhpcy5jb25maWcuYXV0aG9yaXR5O1xyXG4gICAgaWYgKCFhdXRob3JpdHkgfHwgYXV0aG9yaXR5ID09PSAnb3JpZ2luJykge1xyXG4gICAgICBhdXRob3JpdHkgPSB3aW5kb3cub3JpZ2luO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB1cmwgPSBuZXcgVVJMKGF1dGhvcml0eSk7XHJcblxyXG4gICAgaWYgKHJlbGF0aXZlVXJpKSB7XHJcbiAgICAgIHVybCA9IG5ldyBVUkwocmVsYXRpdmVVcmksIHVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVybC5ocmVmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBOb3JtYWxpemVSZWRpcmVjdFVyaSh1cmk6IHN0cmluZykge1xyXG4gICAgY29uc3QgaSA9IHVyaS5pbmRleE9mKCcjJyk7XHJcbiAgICBpZiAoaSA+IDApIHtcclxuICAgICAgdXJpID0gdXJpLnN1YnN0cmluZygwLCBpKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1cmk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGFzc3VyZUNvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5fY29uZmlndXJhdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRob3JpdHkgPSB0aGlzLmdldFNlcnZlclVybCgpO1xyXG4gICAgaWYgKGF1dGhvcml0eVthdXRob3JpdHkubGVuZ3RoIC0gMV0gPT09ICcvJykge1xyXG4gICAgICBhdXRob3JpdHkgPSBhdXRob3JpdHkuc2xpY2UoMCwgLTEpO1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IGF3YWl0IE51Y2xldXNBdXRob3JpemF0aW9uU2VydmljZUNvbmZpZ3VyYXRpb24uZmV0Y2hGcm9tSXNzdWVyKGF1dGhvcml0eSwgdGhpcy5yZXF1ZXN0b3IpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdOdWNsZXVzLklkZW50aXR5OiBDYW5ub3QgbG9hZCBPSURDIGNvbmZpZ3VyYXRpb246ICcgKyAoZSBhcyBFcnJvcikubWVzc2FnZSk7XHJcbiAgICAgIHRocm93IGU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import 'capacitor-secure-storage-plugin';
|
|
2
|
-
import { TokenResponse } from '@openid/appauth';
|
|
3
|
-
import { Identity } from '../models/identity';
|
|
4
|
-
import { SecureStoragePlugin } from 'capacitor-secure-storage-plugin';
|
|
5
|
-
export class SecretsStore {
|
|
6
|
-
constructor(clientId) {
|
|
7
|
-
this._tokens = {};
|
|
8
|
-
this._identities = {};
|
|
9
|
-
// this specify which identity id is used by default, when If id is not specified in getToken or getIdentity
|
|
10
|
-
this._defaultIdentityId = null;
|
|
11
|
-
this._defaultIdentityIdStorageKey = null;
|
|
12
|
-
this._tokenStorageKeyPrefix = `Nucleus.Identity.${clientId}`; // do not change this or login with existing tokens will fail
|
|
13
|
-
this._servicePrincipalKey = `${this._tokenStorageKeyPrefix}.SvcP`;
|
|
14
|
-
this._defaultIdentityIdStorageKey = `${this._tokenStorageKeyPrefix}.IdId`;
|
|
15
|
-
this._defaultIdentityId = localStorage.getItem(this._defaultIdentityIdStorageKey);
|
|
16
|
-
}
|
|
17
|
-
get defaultIdentityId() {
|
|
18
|
-
return this._defaultIdentityId;
|
|
19
|
-
}
|
|
20
|
-
removeServicePrincipal() {
|
|
21
|
-
this._servicePrincipal = null;
|
|
22
|
-
return this.clear(this._servicePrincipalKey);
|
|
23
|
-
}
|
|
24
|
-
async setServicePrincipal(servicePrincipal) {
|
|
25
|
-
this._servicePrincipal = servicePrincipal;
|
|
26
|
-
await this.save(this._servicePrincipalKey, servicePrincipal);
|
|
27
|
-
}
|
|
28
|
-
async getServicePrincipal() {
|
|
29
|
-
if (!this._servicePrincipal) {
|
|
30
|
-
this._servicePrincipal = await this.load(this._servicePrincipalKey);
|
|
31
|
-
}
|
|
32
|
-
return this._servicePrincipal;
|
|
33
|
-
}
|
|
34
|
-
setToken(token, id = null) {
|
|
35
|
-
return this.setTokenInternal(token, true, id);
|
|
36
|
-
}
|
|
37
|
-
getIdentity(id = null) {
|
|
38
|
-
const key = this.getTokenKey(id);
|
|
39
|
-
return this._identities[key];
|
|
40
|
-
}
|
|
41
|
-
setDefaultIdentityId(id) {
|
|
42
|
-
this._defaultIdentityId = id;
|
|
43
|
-
if (this._defaultIdentityId) {
|
|
44
|
-
localStorage.setItem(this._defaultIdentityIdStorageKey, this._defaultIdentityId);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
localStorage.removeItem(this._defaultIdentityIdStorageKey);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async getToken(id = null) {
|
|
51
|
-
const key = this.getTokenKey(id);
|
|
52
|
-
// if token is not there or it is invalid we check storage again before returning
|
|
53
|
-
if (!this._tokens[key] || !this._tokens[key].isValid()) {
|
|
54
|
-
await this.reloadTokenFromStorage(id);
|
|
55
|
-
}
|
|
56
|
-
return this._tokens[key];
|
|
57
|
-
}
|
|
58
|
-
removeToken(id = null) {
|
|
59
|
-
const key = this.getTokenKey(id);
|
|
60
|
-
delete this._tokens[key];
|
|
61
|
-
delete this._identities[key];
|
|
62
|
-
return this.clear(key);
|
|
63
|
-
}
|
|
64
|
-
async reloadTokenFromStorage(id) {
|
|
65
|
-
const key = this.getTokenKey(id);
|
|
66
|
-
const storedToken = await this.load(key);
|
|
67
|
-
if (storedToken) {
|
|
68
|
-
const res = new TokenResponse(storedToken);
|
|
69
|
-
if (res?.accessToken || res?.idToken) {
|
|
70
|
-
await this.setTokenInternal(res, false, id);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
async setTokenInternal(token, save, id = null) {
|
|
76
|
-
const key = this.getTokenKey(id);
|
|
77
|
-
if (token == null) {
|
|
78
|
-
await this.removeToken(id);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
this._tokens[key] = token;
|
|
82
|
-
this._identities[key] = Identity.createFromResponse(token);
|
|
83
|
-
if (save) {
|
|
84
|
-
try {
|
|
85
|
-
await this.save(key, token.toJson());
|
|
86
|
-
}
|
|
87
|
-
catch (e) {
|
|
88
|
-
console.warn('Nucleus.Identity: Could not save to SecureStorage.');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
getTokenKey(id = null) {
|
|
94
|
-
if (!id) {
|
|
95
|
-
id = this._defaultIdentityId;
|
|
96
|
-
}
|
|
97
|
-
return id ? `${this._tokenStorageKeyPrefix}.${id}` : this._tokenStorageKeyPrefix;
|
|
98
|
-
}
|
|
99
|
-
clear(key) {
|
|
100
|
-
return SecureStoragePlugin.remove({ key });
|
|
101
|
-
}
|
|
102
|
-
save(key, value) {
|
|
103
|
-
return SecureStoragePlugin.set({ key, value: JSON.stringify(value) });
|
|
104
|
-
}
|
|
105
|
-
async load(key) {
|
|
106
|
-
try {
|
|
107
|
-
const x = await SecureStoragePlugin.get({ key });
|
|
108
|
-
if (x?.value) {
|
|
109
|
-
return JSON.parse(x.value);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0cy1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251Y2xldXMtaWRlbnRpdHkvc3JjL2xpYi91dGlscy9zZWNyZXRzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBcUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEUsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBWSxRQUFnQjtRQU9wQixZQUFPLEdBQW9DLEVBQUUsQ0FBQztRQUM5QyxnQkFBVyxHQUErQixFQUFFLENBQUM7UUFHckQsNEdBQTRHO1FBQ3BHLHVCQUFrQixHQUFXLElBQUksQ0FBQztRQUNsQyxpQ0FBNEIsR0FBVyxJQUFJLENBQUM7UUFabEQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLG9CQUFvQixRQUFRLEVBQUUsQ0FBQyxDQUFDLDZEQUE2RDtRQUMzSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLE9BQU8sQ0FBQztRQUNsRSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLE9BQU8sQ0FBQztRQUMxRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBVUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMs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RSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBSSxDQUFJLEdBQVc7UUFDL0IsSUFBSTtZQUNGLE1BQU0sQ0FBQyxHQUFHLE1BQU0sbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUU7Z0JBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQU0sQ0FBQzthQUNqQztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFBQyxNQUFNO1lBQ04sT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnY2FwYWNpdG9yLXNlY3VyZS1zdG9yYWdlLXBsdWdpbic7XHJcbmltcG9ydCB7IFRva2VuUmVzcG9uc2UsIFRva2VuUmVzcG9uc2VKc29uIH0gZnJvbSAnQG9wZW5pZC9hcHBhdXRoJztcclxuaW1wb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHknO1xyXG5pbXBvcnQgeyBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSAnLi4vbW9kZWxzL3NlcnZpY2UtcHJpbmNpcGFsJztcclxuaW1wb3J0IHsgU2VjdXJlU3RvcmFnZVBsdWdpbiB9IGZyb20gJ2NhcGFjaXRvci1zZWN1cmUtc3RvcmFnZS1wbHVnaW4nO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNlY3JldHNTdG9yZSB7XHJcbiAgY29uc3RydWN0b3IoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdG9rZW5TdG9yYWdlS2V5UHJlZml4ID0gYE51Y2xldXMuSWRlbnRpdHkuJHtjbGllbnRJZH1gOyAvLyBkbyBub3QgY2hhbmdlIHRoaXMgb3IgbG9naW4gd2l0aCBleGlzdGluZyB0b2tlbnMgd2lsbCBmYWlsXHJcbiAgICB0aGlzLl9zZXJ2aWNlUHJpbmNpcGFsS2V5ID0gYCR7dGhpcy5fdG9rZW5TdG9yYWdlS2V5UHJlZml4fS5TdmNQYDtcclxuICAgIHRoaXMuX2RlZmF1bHRJZGVudGl0eUlkU3RvcmFnZUtleSA9IGAke3RoaXMuX3Rva2VuU3RvcmFnZUtleVByZWZpeH0uSWRJZGA7XHJcbiAgICB0aGlzLl9kZWZhdWx0SWRlbnRpdHlJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuX2RlZmF1bHRJZGVudGl0eUlkU3RvcmFnZUtleSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Rva2VuU3RvcmFnZUtleVByZWZpeDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3Rva2VuczogeyBbaWQ6IHN0cmluZ106IFRva2VuUmVzcG9uc2UgfSA9IHt9O1xyXG4gIHByaXZhdGUgX2lkZW50aXRpZXM6IHsgW2lkOiBzdHJpbmddOiBJZGVudGl0eSB9ID0ge307XHJcbiAgcHJpdmF0ZSBfc2VydmljZVByaW5jaXBhbEtleTtcclxuICBwcml2YXRlIF9zZXJ2aWNlUHJpbmNpcGFsOiBTZXJ2aWNlUHJpbmNpcGFsO1xyXG4gIC8vIHRoaXMgc3BlY2lmeSB3aGljaCBpZGVudGl0eSBpZCBpcyB1c2VkIGJ5IGRlZmF1bHQsIHdoZW4gSWYgaWQgaXMgbm90IHNwZWNpZmllZCBpbiBnZXRUb2tlbiBvciBnZXRJZGVudGl0eVxyXG4gIHByaXZhdGUgX2RlZmF1bHRJZGVudGl0eUlkOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByaXZhdGUgX2RlZmF1bHRJZGVudGl0eUlkU3RvcmFnZUtleTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgcHVibGljIGdldCBkZWZhdWx0SWRlbnRpdHlJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0SWRlbnRpdHlJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVTZXJ2aWNlUHJpbmNpcGFsKCkge1xyXG4gICAgdGhpcy5fc2VydmljZVByaW5jaXBhbCA9IG51bGw7XHJcbiAgICByZXR1cm4gdGhpcy5jbGVhcih0aGlzLl9zZXJ2aWNlUHJpbmNpcGFsS2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRTZXJ2aWNlUHJpbmNpcGFsKHNlcnZpY2VQcmluY2lwYWw6IFNlcnZpY2VQcmluY2lwYWwpIHtcclxuICAgIHRoaXMuX3NlcnZpY2VQcmluY2lwYWwgPSBzZXJ2aWNlUHJpbmNpcGFsO1xyXG4gICAgYXdhaXQgdGhpcy5zYXZlKHRoaXMuX3NlcnZpY2VQcmluY2lwYWxLZXksIHNlcnZpY2VQcmluY2lwYWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNlcnZpY2VQcmluY2lwYWwoKSB7XHJcbiAgICBpZiAoIXRoaXMuX3NlcnZpY2VQcmluY2lwYWwpIHtcclxuICAgICAgdGhpcy5fc2VydmljZVByaW5jaXBhbCA9IGF3YWl0IHRoaXMubG9hZDxTZXJ2aWNlUHJpbmNpcGFsPih0aGlzLl9zZXJ2aWNlUHJpbmNpcGFsS2V5KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlUHJpbmNpcGFsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRva2VuKHRva2VuOiBUb2tlblJlc3BvbnNlLCBpZDogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0VG9rZW5JbnRlcm5hbCh0b2tlbiwgdHJ1ZSwgaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldElkZW50aXR5KGlkOiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldFRva2VuS2V5KGlkKTtcclxuICAgIHJldHVybiB0aGlzLl9pZGVudGl0aWVzW2tleV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGVmYXVsdElkZW50aXR5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZGVmYXVsdElkZW50aXR5SWQgPSBpZDtcclxuICAgIGlmICh0aGlzLl9kZWZhdWx0SWRlbnRpdHlJZCkge1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLl9kZWZhdWx0SWRlbnRpdHlJZFN0b3JhZ2VLZXksIHRoaXMuX2RlZmF1bHRJZGVudGl0eUlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuX2RlZmF1bHRJZGVudGl0eUlkU3RvcmFnZUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VG9rZW4oaWQ6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0VG9rZW5LZXkoaWQpO1xyXG5cclxuICAgIC8vIGlmIHRva2VuIGlzIG5vdCB0aGVyZSBvciBpdCBpcyBpbnZhbGlkIHdlIGNoZWNrIHN0b3JhZ2UgYWdhaW4gYmVmb3JlIHJldHVybmluZ1xyXG4gICAgaWYgKCF0aGlzLl90b2tlbnNba2V5XSB8fCAhdGhpcy5fdG9rZW5zW2tleV0uaXNWYWxpZCgpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucmVsb2FkVG9rZW5Gcm9tU3RvcmFnZShpZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fdG9rZW5zW2tleV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlVG9rZW4oaWQ6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0VG9rZW5LZXkoaWQpO1xyXG4gICAgZGVsZXRlIHRoaXMuX3Rva2Vuc1trZXldO1xyXG4gICAgZGVsZXRlIHRoaXMuX2lkZW50aXRpZXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLmNsZWFyKGtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJlbG9hZFRva2VuRnJvbVN0b3JhZ2UoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRUb2tlbktleShpZCk7XHJcbiAgICBjb25zdCBzdG9yZWRUb2tlbiA9IGF3YWl0IHRoaXMubG9hZDxUb2tlblJlc3BvbnNlSnNvbj4oa2V5KTtcclxuICAgIGlmIChzdG9yZWRUb2tlbikge1xyXG4gICAgICBjb25zdCByZXMgPSBuZXcgVG9rZW5SZXNwb25zZShzdG9yZWRUb2tlbik7XHJcbiAgICAgIGlmIChyZXM/LmFjY2Vzc1Rva2VuIHx8IHJlcz8uaWRUb2tlbikge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0VG9rZW5JbnRlcm5hbChyZXMsIGZhbHNlLCBpZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZXRUb2tlbkludGVybmFsKHRva2VuOiBUb2tlblJlc3BvbnNlLCBzYXZlOiBib29sZWFuLCBpZDogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRUb2tlbktleShpZCk7XHJcbiAgICBpZiAodG9rZW4gPT0gbnVsbCkge1xyXG4gICAgICBhd2FpdCB0aGlzLnJlbW92ZVRva2VuKGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3Rva2Vuc1trZXldID0gdG9rZW47XHJcbiAgICAgIHRoaXMuX2lkZW50aXRpZXNba2V5XSA9IElkZW50aXR5LmNyZWF0ZUZyb21SZXNwb25zZSh0b2tlbik7XHJcbiAgICAgIGlmIChzYXZlKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuc2F2ZShrZXksIHRva2VuLnRvSnNvbigpKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ051Y2xldXMuSWRlbnRpdHk6IENvdWxkIG5vdCBzYXZlIHRvIFNlY3VyZVN0b3JhZ2UuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRva2VuS2V5KGlkOiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIGlkID0gdGhpcy5fZGVmYXVsdElkZW50aXR5SWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaWQgPyBgJHt0aGlzLl90b2tlblN0b3JhZ2VLZXlQcmVmaXh9LiR7aWR9YCA6IHRoaXMuX3Rva2VuU3RvcmFnZUtleVByZWZpeDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXIoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBTZWN1cmVTdG9yYWdlUGx1Z2luLnJlbW92ZSh7IGtleSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2F2ZTxUPihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiBQcm9taXNlPHsgdmFsdWU6IGJvb2xlYW4gfT4ge1xyXG4gICAgcmV0dXJuIFNlY3VyZVN0b3JhZ2VQbHVnaW4uc2V0KHsga2V5LCB2YWx1ZTogSlNPTi5zdHJpbmdpZnkodmFsdWUpIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBsb2FkPFQ+KGtleTogc3RyaW5nKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB4ID0gYXdhaXQgU2VjdXJlU3RvcmFnZVBsdWdpbi5nZXQoeyBrZXkgfSk7XHJcbiAgICAgIGlmICh4Py52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHgudmFsdWUpIGFzIFQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { AppAuthError, BaseTokenRequestHandler, BasicQueryStringUtils, GRANT_TYPE_AUTHORIZATION_CODE, GRANT_TYPE_REFRESH_TOKEN, TokenRequest } from '@openid/appauth';
|
|
2
|
-
import { OidcConfigurationService } from './oidc-configuration.service';
|
|
3
|
-
import { AngularRequestor } from './angular-requestor';
|
|
4
|
-
import { Injectable } from '@angular/core';
|
|
5
|
-
import { DeviceCode } from '../models/device-code';
|
|
6
|
-
import { ClientRegistrationResponse } from '../models/client-registration';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./angular-requestor";
|
|
9
|
-
import * as i2 from "./oidc-configuration.service";
|
|
10
|
-
export class TokenClient {
|
|
11
|
-
constructor(requestor, config) {
|
|
12
|
-
this.requestor = requestor;
|
|
13
|
-
this.config = config;
|
|
14
|
-
this._tokenHandler = new BaseTokenRequestHandler(requestor);
|
|
15
|
-
this._utils = new BasicQueryStringUtils();
|
|
16
|
-
}
|
|
17
|
-
async getByAuthorizationCode(redirectUrl, code, codeVerifier) {
|
|
18
|
-
const config = await this.config.getConfiguration();
|
|
19
|
-
const redirectUri = redirectUrl;
|
|
20
|
-
const req = new TokenRequest({
|
|
21
|
-
client_id: this.config.clientId,
|
|
22
|
-
redirect_uri: redirectUri,
|
|
23
|
-
grant_type: GRANT_TYPE_AUTHORIZATION_CODE,
|
|
24
|
-
code,
|
|
25
|
-
extras: { code_verifier: codeVerifier }
|
|
26
|
-
});
|
|
27
|
-
return await this._tokenHandler.performTokenRequest(config, req);
|
|
28
|
-
}
|
|
29
|
-
async getByRefreshToken(refreshToken) {
|
|
30
|
-
const config = await this.config.getConfiguration();
|
|
31
|
-
const redirectUri = this.config.redirectUrl;
|
|
32
|
-
const req = new TokenRequest({
|
|
33
|
-
client_id: this.config.clientId,
|
|
34
|
-
redirect_uri: redirectUri,
|
|
35
|
-
grant_type: GRANT_TYPE_REFRESH_TOKEN,
|
|
36
|
-
refresh_token: refreshToken
|
|
37
|
-
});
|
|
38
|
-
return await this._tokenHandler.performTokenRequest(config, req);
|
|
39
|
-
}
|
|
40
|
-
async getByClientCredentials(clientId, clientSecret, scope) {
|
|
41
|
-
const config = await this.config.getConfiguration();
|
|
42
|
-
const req = new TokenRequest({
|
|
43
|
-
client_id: clientId,
|
|
44
|
-
redirect_uri: null,
|
|
45
|
-
grant_type: 'client_credentials',
|
|
46
|
-
extras: {
|
|
47
|
-
client_secret: clientSecret,
|
|
48
|
-
scope,
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
return await this._tokenHandler.performTokenRequest(config, req);
|
|
52
|
-
}
|
|
53
|
-
async getBySecret(provider, secret, assertionToken, scope) {
|
|
54
|
-
const config = await this.config.getConfiguration();
|
|
55
|
-
const req = new TokenRequest({
|
|
56
|
-
client_id: this.config.clientId,
|
|
57
|
-
redirect_uri: null,
|
|
58
|
-
grant_type: 'urn:kolektor:nucleus:secret',
|
|
59
|
-
extras: {
|
|
60
|
-
secret_provider: provider,
|
|
61
|
-
secret_value: secret,
|
|
62
|
-
client_assertion_type: 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
|
|
63
|
-
client_assertion: assertionToken,
|
|
64
|
-
scope,
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
return await this._tokenHandler.performTokenRequest(config, req);
|
|
68
|
-
}
|
|
69
|
-
async getByDeviceCode(deviceCode) {
|
|
70
|
-
const config = await this.config.getConfiguration();
|
|
71
|
-
const req = new TokenRequest({
|
|
72
|
-
client_id: this.config.clientId,
|
|
73
|
-
redirect_uri: null,
|
|
74
|
-
grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
|
|
75
|
-
extras: {
|
|
76
|
-
device_code: deviceCode
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
return await this._tokenHandler.performTokenRequest(config, req);
|
|
80
|
-
}
|
|
81
|
-
async registerServicePrincipal(token) {
|
|
82
|
-
const config = await this.config.getConfiguration();
|
|
83
|
-
const response = await this.requestor.xhr({
|
|
84
|
-
url: config.registrationEndpoint,
|
|
85
|
-
method: 'POST',
|
|
86
|
-
dataType: 'json',
|
|
87
|
-
headers: {
|
|
88
|
-
'Content-Type': 'application/json',
|
|
89
|
-
Authorization: `Bearer ${token}`
|
|
90
|
-
}
|
|
91
|
-
// data: this._utils.stringify(map)
|
|
92
|
-
});
|
|
93
|
-
if (response.error === undefined) {
|
|
94
|
-
return new ClientRegistrationResponse(response);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
throw new AppAuthError(response.error);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
async getRegistrationCode(existingServicePrincipalId = null) {
|
|
101
|
-
const params = {
|
|
102
|
-
custom_action: 'sp_register',
|
|
103
|
-
service_principal_id: existingServicePrincipalId
|
|
104
|
-
};
|
|
105
|
-
return this.getDeviceCodeInternal(params);
|
|
106
|
-
}
|
|
107
|
-
async getDeviceCode(scope) {
|
|
108
|
-
const params = {
|
|
109
|
-
scope,
|
|
110
|
-
};
|
|
111
|
-
return this.getDeviceCodeInternal(params);
|
|
112
|
-
}
|
|
113
|
-
async getDeviceCodeInternal(params) {
|
|
114
|
-
const config = await this.config.getConfiguration();
|
|
115
|
-
params['client_id'] = this.config.clientId;
|
|
116
|
-
const map = params;
|
|
117
|
-
const response = await this.requestor.xhr({
|
|
118
|
-
url: config.deviceAuthorizationEndpoint,
|
|
119
|
-
method: 'POST',
|
|
120
|
-
dataType: 'json',
|
|
121
|
-
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
122
|
-
data: this._utils.stringify(map)
|
|
123
|
-
});
|
|
124
|
-
if (response.error === undefined) {
|
|
125
|
-
return new DeviceCode(response);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
throw new AppAuthError(response.error);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
TokenClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenClient, deps: [{ token: i1.AngularRequestor }, { token: i2.OidcConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
133
|
-
TokenClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenClient, providedIn: 'root' });
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TokenClient, decorators: [{
|
|
135
|
-
type: Injectable,
|
|
136
|
-
args: [{
|
|
137
|
-
providedIn: 'root'
|
|
138
|
-
}]
|
|
139
|
-
}], ctorParameters: function () { return [{ type: i1.AngularRequestor }, { type: i2.OidcConfigurationService }]; } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnVjbGV1cy1pZGVudGl0eS9zcmMvbGliL3V0aWxzL3Rva2VuLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsNkJBQTZCLEVBQzdCLHdCQUF3QixFQUl4QixZQUFZLEVBQ1EsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFrQyxNQUFNLCtCQUErQixDQUFDOzs7O0FBSzNHLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ1UsU0FBMkIsRUFDM0IsTUFBZ0M7UUFEaEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFFeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFLTSxLQUFLLENBQUMsc0JBQXNCLENBQUMsV0FBbUIsRUFBRSxJQUFZLEVBQUUsWUFBb0I7UUFDekYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDO1lBQzNC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RSxDQUFDO1FBRXJELE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBYyxNQUFNLENBQUM7UUFFOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBa0M7WUFDekUsR0FBRyxFQUFFLE1BQU0sQ0FBQywyQkFBMkI7WUFDdkMsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixPQUFPLEVBQUUsRUFBQyxjQUFjLEVBQUUsbUNBQW1DLEVBQUM7WUFDOUQsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztTQUNqQyxDQUFDLENBQUM7UUFFSCxJQUFLLFFBQTJCLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUNwRCxPQUFPLElBQUksVUFBVSxDQUFDLFFBQTBCLENBQUMsQ0FBQztTQUNuRDthQUFNO1lBQ0wsTUFBTSxJQUFJLFlBQVksQ0FBRSxRQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQzs7d0dBeklVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcEF1dGhFcnJvcixcclxuICBCYXNlVG9rZW5SZXF1ZXN0SGFuZGxlcixcclxuICBCYXNpY1F1ZXJ5U3RyaW5nVXRpbHMsXHJcbiAgR1JBTlRfVFlQRV9BVVRIT1JJWkFUSU9OX0NPREUsXHJcbiAgR1JBTlRfVFlQRV9SRUZSRVNIX1RPS0VOLFxyXG4gIFF1ZXJ5U3RyaW5nVXRpbHMsXHJcbiAgU3RyaW5nTWFwLFxyXG4gIFRva2VuRXJyb3JKc29uLFxyXG4gIFRva2VuUmVxdWVzdCxcclxuICBUb2tlblJlcXVlc3RIYW5kbGVyfSBmcm9tICdAb3BlbmlkL2FwcGF1dGgnO1xyXG5pbXBvcnQgeyBPaWRjQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL29pZGMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQW5ndWxhclJlcXVlc3RvciB9IGZyb20gJy4vYW5ndWxhci1yZXF1ZXN0b3InO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERldmljZUNvZGUsIERldmljZUNvZGVKc29uIH0gZnJvbSAnLi4vbW9kZWxzL2RldmljZS1jb2RlJztcclxuaW1wb3J0IHsgQ2xpZW50UmVnaXN0cmF0aW9uUmVzcG9uc2UsIENsaWVudFJlZ2lzdHJhdGlvblJlc3BvbnNlSnNvbiB9IGZyb20gJy4uL21vZGVscy9jbGllbnQtcmVnaXN0cmF0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRva2VuQ2xpZW50ICB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlcXVlc3RvcjogQW5ndWxhclJlcXVlc3RvcixcclxuICAgIHByaXZhdGUgY29uZmlnOiBPaWRjQ29uZmlndXJhdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX3Rva2VuSGFuZGxlciA9IG5ldyBCYXNlVG9rZW5SZXF1ZXN0SGFuZGxlcihyZXF1ZXN0b3IpO1xyXG4gICAgdGhpcy5fdXRpbHMgPSBuZXcgQmFzaWNRdWVyeVN0cmluZ1V0aWxzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90b2tlbkhhbmRsZXI6IFRva2VuUmVxdWVzdEhhbmRsZXI7XHJcbiAgcHJpdmF0ZSBfdXRpbHM6IFF1ZXJ5U3RyaW5nVXRpbHM7XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRCeUF1dGhvcml6YXRpb25Db2RlKHJlZGlyZWN0VXJsOiBzdHJpbmcsIGNvZGU6IHN0cmluZywgY29kZVZlcmlmaWVyOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuY29uZmlnLmdldENvbmZpZ3VyYXRpb24oKTtcclxuICAgIGNvbnN0IHJlZGlyZWN0VXJpID0gcmVkaXJlY3RVcmw7XHJcbiAgICBjb25zdCByZXEgPSBuZXcgVG9rZW5SZXF1ZXN0KHtcclxuICAgICAgY2xpZW50X2lkOiB0aGlzLmNvbmZpZy5jbGllbnRJZCxcclxuICAgICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVyaSxcclxuICAgICAgZ3JhbnRfdHlwZTogR1JBTlRfVFlQRV9BVVRIT1JJWkFUSU9OX0NPREUsXHJcbiAgICAgIGNvZGUsXHJcbiAgICAgIGV4dHJhczogeyBjb2RlX3ZlcmlmaWVyOiBjb2RlVmVyaWZpZXIgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fdG9rZW5IYW5kbGVyLnBlcmZvcm1Ub2tlblJlcXVlc3QoY29uZmlnLCByZXEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEJ5UmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmNvbmZpZy5nZXRDb25maWd1cmF0aW9uKCk7XHJcbiAgICBjb25zdCByZWRpcmVjdFVyaSA9IHRoaXMuY29uZmlnLnJlZGlyZWN0VXJsO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IFRva2VuUmVxdWVzdCh7XHJcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuY2xpZW50SWQsXHJcbiAgICAgIHJlZGlyZWN0X3VyaTogcmVkaXJlY3RVcmksXHJcbiAgICAgIGdyYW50X3R5cGU6IEdSQU5UX1RZUEVfUkVGUkVTSF9UT0tFTixcclxuICAgICAgcmVmcmVzaF90b2tlbjogcmVmcmVzaFRva2VuXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl90b2tlbkhhbmRsZXIucGVyZm9ybVRva2VuUmVxdWVzdChjb25maWcsIHJlcSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QnlDbGllbnRDcmVkZW50aWFscyhjbGllbnRJZDogc3RyaW5nLCBjbGllbnRTZWNyZXQ6IHN0cmluZywgc2NvcGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5jb25maWcuZ2V0Q29uZmlndXJhdGlvbigpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IFRva2VuUmVxdWVzdCh7XHJcbiAgICAgIGNsaWVudF9pZDogY2xpZW50SWQsXHJcbiAgICAgIHJlZGlyZWN0X3VyaTogbnVsbCxcclxuICAgICAgZ3JhbnRfdHlwZTogJ2NsaWVudF9jcmVkZW50aWFscycsXHJcbiAgICAgIGV4dHJhczoge1xyXG4gICAgICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcclxuICAgICAgICBzY29wZSxcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fdG9rZW5IYW5kbGVyLnBlcmZvcm1Ub2tlblJlcXVlc3QoY29uZmlnLCByZXEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEJ5U2VjcmV0KHByb3ZpZGVyOiBzdHJpbmcsIHNlY3JldDogc3RyaW5nLCBhc3NlcnRpb25Ub2tlbjogc3RyaW5nLCBzY29wZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmNvbmZpZy5nZXRDb25maWd1cmF0aW9uKCk7XHJcbiAgICBjb25zdCByZXEgPSBuZXcgVG9rZW5SZXF1ZXN0KHtcclxuICAgICAgY2xpZW50X2lkOiB0aGlzLmNvbmZpZy5jbGllbnRJZCxcclxuICAgICAgcmVkaXJlY3RfdXJpOiBudWxsLFxyXG4gICAgICBncmFudF90eXBlOiAndXJuOmtvbGVrdG9yOm51Y2xldXM6c2VjcmV0JyxcclxuICAgICAgZXh0cmFzOiB7XHJcbiAgICAgICAgc2VjcmV0X3Byb3ZpZGVyOiBwcm92aWRlcixcclxuICAgICAgICBzZWNyZXRfdmFsdWU6IHNlY3JldCxcclxuICAgICAgICBjbGllbnRfYXNzZXJ0aW9uX3R5cGU6ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Y2xpZW50LWFzc2VydGlvbi10eXBlOmp3dC1iZWFyZXInLFxyXG4gICAgICAgIGNsaWVudF9hc3NlcnRpb246IGFzc2VydGlvblRva2VuLFxyXG4gICAgICAgIHNjb3BlLFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fdG9rZW5IYW5kbGVyLnBlcmZvcm1Ub2tlblJlcXVlc3QoY29uZmlnLCByZXEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEJ5RGV2aWNlQ29kZShkZXZpY2VDb2RlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9ICBhd2FpdCB0aGlzLmNvbmZpZy5nZXRDb25maWd1cmF0aW9uKCk7XHJcbiAgICBjb25zdCByZXEgPSBuZXcgVG9rZW5SZXF1ZXN0KHtcclxuICAgICAgY2xpZW50X2lkOiB0aGlzLmNvbmZpZy5jbGllbnRJZCxcclxuICAgICAgcmVkaXJlY3RfdXJpOiBudWxsLFxyXG4gICAgICBncmFudF90eXBlOiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6ZGV2aWNlX2NvZGUnLFxyXG4gICAgICBleHRyYXM6IHtcclxuICAgICAgICBkZXZpY2VfY29kZTogZGV2aWNlQ29kZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl90b2tlbkhhbmRsZXIucGVyZm9ybVRva2VuUmVxdWVzdChjb25maWcsIHJlcSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXJTZXJ2aWNlUHJpbmNpcGFsKHRva2VuOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9ICBhd2FpdCB0aGlzLmNvbmZpZy5nZXRDb25maWd1cmF0aW9uKCk7XHJcblxyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3Rvci54aHI8Q2xpZW50UmVnaXN0cmF0aW9uUmVzcG9uc2VKc29uIHwgVG9rZW5FcnJvckpzb24+KHtcclxuICAgICAgdXJsOiBjb25maWcucmVnaXN0cmF0aW9uRW5kcG9pbnQsXHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YFxyXG4gICAgICB9XHJcbiAgICAgIC8vIGRhdGE6IHRoaXMuX3V0aWxzLnN0cmluZ2lmeShtYXApXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoKHJlc3BvbnNlIGFzIFRva2VuRXJyb3JKc29uKS5lcnJvciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50UmVnaXN0cmF0aW9uUmVzcG9uc2UocmVzcG9uc2UgYXMgQ2xpZW50UmVnaXN0cmF0aW9uUmVzcG9uc2VKc29uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBBcHBBdXRoRXJyb3IoKHJlc3BvbnNlIGFzIFRva2VuRXJyb3JKc29uKS5lcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UmVnaXN0cmF0aW9uQ29kZShleGlzdGluZ1NlcnZpY2VQcmluY2lwYWxJZDogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBjdXN0b21fYWN0aW9uOiAnc3BfcmVnaXN0ZXInLFxyXG4gICAgICBzZXJ2aWNlX3ByaW5jaXBhbF9pZDogZXhpc3RpbmdTZXJ2aWNlUHJpbmNpcGFsSWRcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5nZXREZXZpY2VDb2RlSW50ZXJuYWwocGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREZXZpY2VDb2RlKHNjb3BlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgc2NvcGUsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGV2aWNlQ29kZUludGVybmFsKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldERldmljZUNvZGVJbnRlcm5hbChwYXJhbXM6IFN0cmluZ01hcCkge1xyXG4gICAgY29uc3QgY29uZmlnID0gIGF3YWl0IHRoaXMuY29uZmlnLmdldENvbmZpZ3VyYXRpb24oKTtcclxuXHJcbiAgICBwYXJhbXNbJ2NsaWVudF9pZCddID0gdGhpcy5jb25maWcuY2xpZW50SWQ7XHJcbiAgICBjb25zdCBtYXA6IFN0cmluZ01hcCA9IHBhcmFtcztcclxuXHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdG9yLnhocjxEZXZpY2VDb2RlSnNvbiB8IFRva2VuRXJyb3JKc29uPih7XHJcbiAgICAgIHVybDogY29uZmlnLmRldmljZUF1dGhvcml6YXRpb25FbmRwb2ludCxcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXHJcbiAgICAgIGhlYWRlcnM6IHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCd9LFxyXG4gICAgICBkYXRhOiB0aGlzLl91dGlscy5zdHJpbmdpZnkobWFwKVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKChyZXNwb25zZSBhcyBUb2tlbkVycm9ySnNvbikuZXJyb3IgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gbmV3IERldmljZUNvZGUocmVzcG9uc2UgYXMgRGV2aWNlQ29kZUpzb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEFwcEF1dGhFcnJvcigocmVzcG9uc2UgYXMgVG9rZW5FcnJvckpzb24pLmVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|
package/esm2020/public-api.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of nucleus-identity
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/nucleus-identity.module';
|
|
5
|
-
export * from './lib/nucleus-identity.service';
|
|
6
|
-
export * from './lib/nucleus-identity-config';
|
|
7
|
-
export { OtpResponse, OtpStatus, OtpType } from './lib/models/otp';
|
|
8
|
-
export { DeviceCode } from './lib/models/device-code';
|
|
9
|
-
export { Identity } from './lib/models/identity';
|
|
10
|
-
export { ServicePrincipalRegistrationStatus } from './lib/models/service-principal';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL251Y2xldXMtaWRlbnRpdHkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG51Y2xldXMtaWRlbnRpdHlcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9udWNsZXVzLWlkZW50aXR5Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL251Y2xldXMtaWRlbnRpdHkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL251Y2xldXMtaWRlbnRpdHktY29uZmlnJztcclxuZXhwb3J0IHsgT3RwUmVzcG9uc2UsIE90cFN0YXR1cywgT3RwVHlwZSB9IGZyb20gJy4vbGliL21vZGVscy9vdHAnO1xyXG5leHBvcnQgeyBEZXZpY2VDb2RlIH0gZnJvbSAnLi9saWIvbW9kZWxzL2RldmljZS1jb2RlJztcclxuZXhwb3J0IHsgSWRlbnRpdHkgfSBmcm9tICcuL2xpYi9tb2RlbHMvaWRlbnRpdHknO1xyXG5leHBvcnQgeyBTZXJ2aWNlUHJpbmNpcGFsUmVnaXN0cmF0aW9uU3RhdHVzIH0gZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2UtcHJpbmNpcGFsJztcclxuIl19
|