@descope/angular-sdk 0.0.0-next-cd745c61-20250421 → 0.0.0-next-20174009-20250429
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/dist/environment.d.ts +3 -0
- package/dist/esm2022/descope-angular-sdk.mjs +5 -0
- package/dist/esm2022/environment.mjs +4 -0
- package/dist/esm2022/lib/components/access-key-management/access-key-management.component.mjs +67 -0
- package/dist/esm2022/lib/components/applications-portal/applications-portal.component.mjs +75 -0
- package/dist/esm2022/lib/components/audit-management/audit-management.component.mjs +70 -0
- package/dist/esm2022/lib/components/descope/descope.component.mjs +191 -0
- package/dist/esm2022/lib/components/role-management/role-management.component.mjs +70 -0
- package/dist/esm2022/lib/components/sign-in-flow/sign-in-flow.component.mjs +56 -0
- package/dist/esm2022/lib/components/sign-up-flow/sign-up-flow.component.mjs +56 -0
- package/dist/esm2022/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.mjs +56 -0
- package/dist/esm2022/lib/components/user-management/user-management.component.mjs +70 -0
- package/dist/esm2022/lib/components/user-profile/user-profile.component.mjs +78 -0
- package/dist/esm2022/lib/descope-auth.module.mjs +83 -0
- package/dist/esm2022/lib/services/descope-auth.guard.mjs +15 -0
- package/dist/esm2022/lib/services/descope-auth.service.mjs +145 -0
- package/dist/esm2022/lib/services/descope.interceptor.mjs +51 -0
- package/dist/esm2022/lib/types/types.mjs +6 -0
- package/dist/esm2022/lib/utils/constants.mjs +7 -0
- package/dist/esm2022/lib/utils/helpers.mjs +27 -0
- package/dist/esm2022/public-api.mjs +19 -0
- package/dist/fesm2022/descope-angular-sdk.mjs +1075 -0
- package/dist/fesm2022/descope-angular-sdk.mjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/lib/components/access-key-management/access-key-management.component.d.ts +24 -0
- package/dist/lib/components/applications-portal/applications-portal.component.d.ts +24 -0
- package/dist/lib/components/audit-management/audit-management.component.d.ts +24 -0
- package/dist/lib/components/descope/descope.component.d.ts +45 -0
- package/dist/lib/components/role-management/role-management.component.d.ts +24 -0
- package/dist/lib/components/sign-in-flow/sign-in-flow.component.d.ts +32 -0
- package/dist/lib/components/sign-up-flow/sign-up-flow.component.d.ts +32 -0
- package/dist/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.d.ts +32 -0
- package/dist/lib/components/user-management/user-management.component.d.ts +24 -0
- package/dist/lib/components/user-profile/user-profile.component.d.ts +26 -0
- package/dist/lib/descope-auth.module.d.ts +20 -0
- package/dist/lib/services/descope-auth.guard.d.ts +2 -0
- package/dist/lib/services/descope-auth.service.d.ts +41 -0
- package/dist/lib/services/descope.interceptor.d.ts +2 -0
- package/dist/lib/types/types.d.ts +13 -0
- package/dist/lib/utils/constants.d.ts +5 -0
- package/dist/lib/utils/helpers.d.ts +5 -0
- package/dist/public-api.d.ts +15 -0
- package/package.json +10 -14
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import createSdk from '@descope/web-js-sdk';
|
|
3
|
+
import { BehaviorSubject, finalize, tap } from 'rxjs';
|
|
4
|
+
import { observabilify } from '../utils/helpers';
|
|
5
|
+
import { baseHeaders, isBrowser } from '../utils/constants';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../types/types";
|
|
8
|
+
export class DescopeAuthService {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.descopeSdk = observabilify(createSdk({
|
|
11
|
+
persistTokens: isBrowser(),
|
|
12
|
+
...config,
|
|
13
|
+
storeLastAuthenticatedUser: isBrowser(),
|
|
14
|
+
autoRefresh: isBrowser(),
|
|
15
|
+
baseHeaders
|
|
16
|
+
}));
|
|
17
|
+
this.sessionSubject = new BehaviorSubject({
|
|
18
|
+
isAuthenticated: false,
|
|
19
|
+
isSessionLoading: false,
|
|
20
|
+
sessionToken: ''
|
|
21
|
+
});
|
|
22
|
+
this.session$ = this.sessionSubject.asObservable();
|
|
23
|
+
this.userSubject = new BehaviorSubject({
|
|
24
|
+
isUserLoading: false
|
|
25
|
+
});
|
|
26
|
+
this.user$ = this.userSubject.asObservable();
|
|
27
|
+
this.descopeSdk.onSessionTokenChange(this.setSession.bind(this));
|
|
28
|
+
this.descopeSdk.onIsAuthenticatedChange(this.setIsAuthenticated.bind(this));
|
|
29
|
+
this.descopeSdk.onUserChange(this.setUser.bind(this));
|
|
30
|
+
}
|
|
31
|
+
refreshSession() {
|
|
32
|
+
const beforeRefreshSession = this.sessionSubject.value;
|
|
33
|
+
this.sessionSubject.next({
|
|
34
|
+
...beforeRefreshSession,
|
|
35
|
+
isSessionLoading: true
|
|
36
|
+
});
|
|
37
|
+
return this.descopeSdk.refresh().pipe(finalize(() => {
|
|
38
|
+
const afterRefreshSession = this.sessionSubject.value;
|
|
39
|
+
this.sessionSubject.next({
|
|
40
|
+
...afterRefreshSession,
|
|
41
|
+
isSessionLoading: false
|
|
42
|
+
});
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
refreshUser() {
|
|
46
|
+
const beforeRefreshUser = this.userSubject.value;
|
|
47
|
+
this.userSubject.next({
|
|
48
|
+
...beforeRefreshUser,
|
|
49
|
+
isUserLoading: true
|
|
50
|
+
});
|
|
51
|
+
return this.descopeSdk.me().pipe(tap((data) => {
|
|
52
|
+
const afterRequestUser = this.userSubject.value;
|
|
53
|
+
if (data.data) {
|
|
54
|
+
this.userSubject.next({
|
|
55
|
+
...afterRequestUser,
|
|
56
|
+
user: {
|
|
57
|
+
...data.data
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}), finalize(() => {
|
|
62
|
+
const afterRefreshUser = this.userSubject.value;
|
|
63
|
+
this.userSubject.next({
|
|
64
|
+
...afterRefreshUser,
|
|
65
|
+
isUserLoading: false
|
|
66
|
+
});
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
getSessionToken() {
|
|
70
|
+
if (isBrowser()) {
|
|
71
|
+
return this.descopeSdk.getSessionToken();
|
|
72
|
+
}
|
|
73
|
+
console.warn('Get session token is not supported in SSR');
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
getRefreshToken() {
|
|
77
|
+
if (isBrowser()) {
|
|
78
|
+
return this.descopeSdk.getRefreshToken();
|
|
79
|
+
}
|
|
80
|
+
this.descopeSdk.getJwtPermissions;
|
|
81
|
+
console.warn('Get refresh token is not supported in SSR');
|
|
82
|
+
return '';
|
|
83
|
+
}
|
|
84
|
+
isSessionTokenExpired(token = this.getSessionToken()) {
|
|
85
|
+
if (isBrowser()) {
|
|
86
|
+
return this.descopeSdk.isJwtExpired(token ?? '');
|
|
87
|
+
}
|
|
88
|
+
console.warn('isSessionTokenExpired is not supported in SSR');
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
isRefreshTokenExpired(token = this.getRefreshToken()) {
|
|
92
|
+
if (isBrowser()) {
|
|
93
|
+
return this.descopeSdk.isJwtExpired(token ?? '');
|
|
94
|
+
}
|
|
95
|
+
console.warn('isRefreshTokenExpired is not supported in SSR');
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
getJwtPermissions(token = this.getSessionToken(), tenant) {
|
|
99
|
+
if (token === null) {
|
|
100
|
+
console.error('Could not get JWT Permissions - not authenticated');
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
return this.descopeSdk.getJwtPermissions(token, tenant);
|
|
104
|
+
}
|
|
105
|
+
getJwtRoles(token = this.getSessionToken(), tenant) {
|
|
106
|
+
if (token === null) {
|
|
107
|
+
console.error('Could not get JWT Roles - not authenticated');
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
return this.descopeSdk.getJwtRoles(token, tenant);
|
|
111
|
+
}
|
|
112
|
+
isAuthenticated() {
|
|
113
|
+
return this.sessionSubject.value.isAuthenticated;
|
|
114
|
+
}
|
|
115
|
+
setSession(sessionToken) {
|
|
116
|
+
const currentSession = this.sessionSubject.value;
|
|
117
|
+
this.sessionSubject.next({
|
|
118
|
+
...currentSession,
|
|
119
|
+
sessionToken
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
setIsAuthenticated(isAuthenticated) {
|
|
123
|
+
const currentSession = this.sessionSubject.value;
|
|
124
|
+
this.sessionSubject.next({
|
|
125
|
+
...currentSession,
|
|
126
|
+
isAuthenticated
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
setUser(user) {
|
|
130
|
+
const currentUser = this.userSubject.value;
|
|
131
|
+
this.userSubject.next({
|
|
132
|
+
isUserLoading: currentUser.isUserLoading,
|
|
133
|
+
user
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthService, deps: [{ token: i1.DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
137
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthService, providedIn: 'root' }); }
|
|
138
|
+
}
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthService, decorators: [{
|
|
140
|
+
type: Injectable,
|
|
141
|
+
args: [{
|
|
142
|
+
providedIn: 'root'
|
|
143
|
+
}]
|
|
144
|
+
}], ctorParameters: () => [{ type: i1.DescopeAuthConfig }] });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY29wZS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXNkay9zcmMvbGliL3NlcnZpY2VzL2Rlc2NvcGUtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBb0I1RCxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCLFlBQVksTUFBeUI7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQzdCLFNBQVMsQ0FBQztZQUNSLGFBQWEsRUFBRSxTQUFTLEVBQVU7WUFDbEMsR0FBRyxNQUFNO1lBQ1QsMEJBQTBCLEVBQUUsU0FBUyxFQUFVO1lBQy9DLFdBQVcsRUFBRSxTQUFTLEVBQVU7WUFDaEMsV0FBVztTQUNaLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBaUI7WUFDeEQsZUFBZSxFQUFFLEtBQUs7WUFDdEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBYztZQUNsRCxhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxH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QU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDbkQsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUEyQjtRQUNwQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUN2QixHQUFHLGNBQWM7WUFDakIsWUFBWTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxlQUF3QjtRQUN6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUN2QixHQUFHLGNBQWM7WUFDakIsZUFBZTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQXlCO1FBQy9CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLGFBQWEsRUFBRSxXQUFXLENBQUMsYUFBYTtZQUN4QyxJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FyS1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8vIHdvcmthcm91bmQgZm9yIFRTIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvNDI4NzNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuaW1wb3J0IHR5cGUgKiBhcyBfMSBmcm9tICdAZGVzY29wZS9jb3JlLWpzLXNkayc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFVzZXJSZXNwb25zZSB9IGZyb20gJ0BkZXNjb3BlL3dlYi1qcy1zZGsnO1xuaW1wb3J0IHR5cGUgKiBhcyBfMiBmcm9tICdvaWRjLWNsaWVudC10cyc7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbmltcG9ydCBjcmVhdGVTZGsgZnJvbSAnQGRlc2NvcGUvd2ViLWpzLXNkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbmFsaXplLCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9ic2VydmFiaWxpZnksIE9ic2VydmFibGVmaWVkIH0gZnJvbSAnLi4vdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBiYXNlSGVhZGVycywgaXNCcm93c2VyIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IERlc2NvcGVBdXRoQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuXG50eXBlIERlc2NvcGVTREsgPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVTZGs+O1xudHlwZSBBbmd1bGFyRGVzY29wZVNESyA9IE9ic2VydmFibGVmaWVkPERlc2NvcGVTREs+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NvcGVTZXNzaW9uIHtcbiAgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICBpc1Nlc3Npb25Mb2FkaW5nOiBib29sZWFuO1xuICBzZXNzaW9uVG9rZW46IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIERlc2NvcGVVc2VyID0ge1xuICB1c2VyPzogVXNlclJlc3BvbnNlIHwgbnVsbDtcbiAgaXNVc2VyTG9hZGluZzogYm9vbGVhbjtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERlc2NvcGVBdXRoU2VydmljZSB7XG4gIHB1YmxpYyBkZXNjb3BlU2RrOiBBbmd1bGFyRGVzY29wZVNESztcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PERlc2NvcGVTZXNzaW9uPjtcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PERlc2NvcGVVc2VyPjtcbiAgcmVhZG9ubHkgc2Vzc2lvbiQ6IE9ic2VydmFibGU8RGVzY29wZVNlc3Npb24+O1xuICByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxEZXNjb3BlVXNlcj47XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBEZXNjb3BlQXV0aENvbmZpZykge1xuICAgIHRoaXMuZGVzY29wZVNkayA9IG9ic2VydmFiaWxpZnk8RGVzY29wZVNESz4oXG4gICAgICBjcmVhdGVTZGsoe1xuICAgICAgICBwZXJzaXN0VG9rZW5zOiBpc0Jyb3dzZXIoKSBhcyB0cnVlLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHN0b3JlTGFzdEF1dGhlbnRpY2F0ZWRVc2VyOiBpc0Jyb3dzZXIoKSBhcyB0cnVlLFxuICAgICAgICBhdXRvUmVmcmVzaDogaXNCcm93c2VyKCkgYXMgdHJ1ZSxcbiAgICAgICAgYmFzZUhlYWRlcnNcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc2Vzc2lvblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERlc2NvcGVTZXNzaW9uPih7XG4gICAgICBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICAgICAgaXNTZXNzaW9uTG9hZGluZzogZmFsc2UsXG4gICAgICBzZXNzaW9uVG9rZW46ICcnXG4gICAgfSk7XG4gICAgdGhpcy5zZXNzaW9uJCA9IHRoaXMuc2Vzc2lvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy51c2VyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGVzY29wZVVzZXI+KHtcbiAgICAgIGlzVXNlckxvYWRpbmc6IGZhbHNlXG4gICAgfSk7XG4gICAgdGhpcy51c2VyJCA9IHRoaXMudXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5kZXNjb3BlU2RrLm9uU2Vzc2lvblRva2VuQ2hhbmdlKHRoaXMuc2V0U2Vzc2lvbi5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmRlc2NvcGVTZGsub25Jc0F1dGhlbnRpY2F0ZWRDaGFuZ2UodGhpcy5zZXRJc0F1dGhlbnRpY2F0ZWQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5kZXNjb3BlU2RrLm9uVXNlckNoYW5nZSh0aGlzLnNldFVzZXIuYmluZCh0aGlzKSk7XG4gIH1cblxuICByZWZyZXNoU2Vzc2lvbigpIHtcbiAgICBjb25zdCBiZWZvcmVSZWZyZXNoU2Vzc2lvbiA9IHRoaXMuc2Vzc2lvblN1YmplY3QudmFsdWU7XG4gICAgdGhpcy5zZXNzaW9uU3ViamVjdC5uZXh0KHtcbiAgICAgIC4uLmJlZm9yZVJlZnJlc2hTZXNzaW9uLFxuICAgICAgaXNTZXNzaW9uTG9hZGluZzogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmRlc2NvcGVTZGsucmVmcmVzaCgpLnBpcGUoXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFmdGVyUmVmcmVzaFNlc3Npb24gPSB0aGlzLnNlc3Npb25TdWJqZWN0LnZhbHVlO1xuICAgICAgICB0aGlzLnNlc3Npb25TdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIC4uLmFmdGVyUmVmcmVzaFNlc3Npb24sXG4gICAgICAgICAgaXNTZXNzaW9uTG9hZGluZzogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZWZyZXNoVXNlcigpIHtcbiAgICBjb25zdCBiZWZvcmVSZWZyZXNoVXNlciA9IHRoaXMudXNlclN1YmplY3QudmFsdWU7XG4gICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHtcbiAgICAgIC4uLmJlZm9yZVJlZnJlc2hVc2VyLFxuICAgICAgaXNVc2VyTG9hZGluZzogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmRlc2NvcGVTZGsubWUoKS5waXBlKFxuICAgICAgdGFwKChkYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IGFmdGVyUmVxdWVzdFVzZXIgPSB0aGlzLnVzZXJTdWJqZWN0LnZhbHVlO1xuICAgICAgICBpZiAoZGF0YS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAgIC4uLmFmdGVyUmVxdWVzdFVzZXIsXG4gICAgICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgICAgIC4uLmRhdGEuZGF0YVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgY29uc3QgYWZ0ZXJSZWZyZXNoVXNlciA9IHRoaXMudXNlclN1YmplY3QudmFsdWU7XG4gICAgICAgIHRoaXMudXNlclN1YmplY3QubmV4dCh7XG4gICAgICAgICAgLi4uYWZ0ZXJSZWZyZXNoVXNlcixcbiAgICAgICAgICBpc1VzZXJMb2FkaW5nOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFNlc3Npb25Ub2tlbigpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuZGVzY29wZVNkayBhcyBBbmd1bGFyRGVzY29wZVNESyAmIHtcbiAgICAgICAgICBnZXRTZXNzaW9uVG9rZW46ICgpID0+IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICkuZ2V0U2Vzc2lvblRva2VuKCk7XG4gICAgfVxuICAgIGNvbnNvbGUud2FybignR2V0IHNlc3Npb24gdG9rZW4gaXMgbm90IHN1cHBvcnRlZCBpbiBTU1InKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRSZWZyZXNoVG9rZW4oKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLmRlc2NvcGVTZGsgYXMgQW5ndWxhckRlc2NvcGVTREsgJiB7XG4gICAgICAgICAgZ2V0UmVmcmVzaFRva2VuOiAoKSA9PiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9XG4gICAgICApLmdldFJlZnJlc2hUb2tlbigpO1xuICAgIH1cbiAgICB0aGlzLmRlc2NvcGVTZGsuZ2V0Snd0UGVybWlzc2lvbnM7XG4gICAgY29uc29sZS53YXJuKCdHZXQgcmVmcmVzaCB0b2tlbiBpcyBub3Qgc3VwcG9ydGVkIGluIFNTUicpO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlzU2Vzc2lvblRva2VuRXhwaXJlZCh0b2tlbiA9IHRoaXMuZ2V0U2Vzc2lvblRva2VuKCkpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlc2NvcGVTZGsuaXNKd3RFeHBpcmVkKHRva2VuID8/ICcnKTtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKCdpc1Nlc3Npb25Ub2tlbkV4cGlyZWQgaXMgbm90IHN1cHBvcnRlZCBpbiBTU1InKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlzUmVmcmVzaFRva2VuRXhwaXJlZCh0b2tlbiA9IHRoaXMuZ2V0UmVmcmVzaFRva2VuKCkpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuZGVzY29wZVNkayBhcyBBbmd1bGFyRGVzY29wZVNESyAmIHtcbiAgICAgICAgICBpc0p3dEV4cGlyZWQ6ICh0b2tlbjogc3RyaW5nKSA9PiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgfVxuICAgICAgKS5pc0p3dEV4cGlyZWQodG9rZW4gPz8gJycpO1xuICAgIH1cbiAgICBjb25zb2xlLndhcm4oJ2lzUmVmcmVzaFRva2VuRXhwaXJlZCBpcyBub3Qgc3VwcG9ydGVkIGluIFNTUicpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0Snd0UGVybWlzc2lvbnModG9rZW4gPSB0aGlzLmdldFNlc3Npb25Ub2tlbigpLCB0ZW5hbnQ/OiBzdHJpbmcpIHtcbiAgICBpZiAodG9rZW4gPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBnZXQgSldUIFBlcm1pc3Npb25zIC0gbm90IGF1dGhlbnRpY2F0ZWQnKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVzY29wZVNkay5nZXRKd3RQZXJtaXNzaW9ucyh0b2tlbiwgdGVuYW50KTtcbiAgfVxuXG4gIGdldEp3dFJvbGVzKHRva2VuID0gdGhpcy5nZXRTZXNzaW9uVG9rZW4oKSwgdGVuYW50Pzogc3RyaW5nKSB7XG4gICAgaWYgKHRva2VuID09PSBudWxsKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgZ2V0IEpXVCBSb2xlcyAtIG5vdCBhdXRoZW50aWNhdGVkJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRlc2NvcGVTZGsuZ2V0Snd0Um9sZXModG9rZW4sIHRlbmFudCk7XG4gIH1cblxuICBpc0F1dGhlbnRpY2F0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvblN1YmplY3QudmFsdWUuaXNBdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgc2V0U2Vzc2lvbihzZXNzaW9uVG9rZW46IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCBjdXJyZW50U2Vzc2lvbiA9IHRoaXMuc2Vzc2lvblN1YmplY3QudmFsdWU7XG4gICAgdGhpcy5zZXNzaW9uU3ViamVjdC5uZXh0KHtcbiAgICAgIC4uLmN1cnJlbnRTZXNzaW9uLFxuICAgICAgc2Vzc2lvblRva2VuXG4gICAgfSk7XG4gIH1cblxuICBzZXRJc0F1dGhlbnRpY2F0ZWQoaXNBdXRoZW50aWNhdGVkOiBib29sZWFuKSB7XG4gICAgY29uc3QgY3VycmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25TdWJqZWN0LnZhbHVlO1xuICAgIHRoaXMuc2Vzc2lvblN1YmplY3QubmV4dCh7XG4gICAgICAuLi5jdXJyZW50U2Vzc2lvbixcbiAgICAgIGlzQXV0aGVudGljYXRlZFxuICAgIH0pO1xuICB9XG5cbiAgc2V0VXNlcih1c2VyOiBVc2VyUmVzcG9uc2UgfCBudWxsKSB7XG4gICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLnVzZXJTdWJqZWN0LnZhbHVlO1xuICAgIHRoaXMudXNlclN1YmplY3QubmV4dCh7XG4gICAgICBpc1VzZXJMb2FkaW5nOiBjdXJyZW50VXNlci5pc1VzZXJMb2FkaW5nLFxuICAgICAgdXNlclxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { throwError } from 'rxjs';
|
|
3
|
+
import { catchError, switchMap } from 'rxjs/operators';
|
|
4
|
+
import { DescopeAuthService } from './descope-auth.service';
|
|
5
|
+
import { DescopeAuthConfig } from '../types/types';
|
|
6
|
+
export const descopeInterceptor = (request, next) => {
|
|
7
|
+
const config = inject(DescopeAuthConfig);
|
|
8
|
+
const authService = inject(DescopeAuthService);
|
|
9
|
+
function refreshAndRetry(request, next, error) {
|
|
10
|
+
return authService.refreshSession().pipe(switchMap((refreshed) => {
|
|
11
|
+
if (refreshed.ok && refreshed.data) {
|
|
12
|
+
const requestWithRefreshedToken = addTokenToRequest(request, refreshed.data?.sessionJwt);
|
|
13
|
+
return next(requestWithRefreshedToken);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return throwError(() => error ?? new Error('Could not refresh session!'));
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
function shouldIntercept(request) {
|
|
21
|
+
return ((config.pathsToIntercept?.length === 0 ||
|
|
22
|
+
config.pathsToIntercept?.some((path) => request.url.includes(path))) ??
|
|
23
|
+
true);
|
|
24
|
+
}
|
|
25
|
+
function addTokenToRequest(request, token) {
|
|
26
|
+
return request.clone({
|
|
27
|
+
setHeaders: {
|
|
28
|
+
Authorization: `Bearer ${token}`
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (shouldIntercept(request)) {
|
|
33
|
+
const token = authService.getSessionToken();
|
|
34
|
+
if (!token) {
|
|
35
|
+
return refreshAndRetry(request, next);
|
|
36
|
+
}
|
|
37
|
+
const requestWithToken = addTokenToRequest(request, token);
|
|
38
|
+
return next(requestWithToken).pipe(catchError((error) => {
|
|
39
|
+
if (error.status === 401 || error.status === 403) {
|
|
40
|
+
return refreshAndRetry(request, next, error);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return throwError(() => error);
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return next(request);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY29wZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9saWIvc2VydmljZXMvZGVzY29wZS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBc0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDckUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFL0MsU0FBUyxlQUFlLENBQ3RCLE9BQTZCLEVBQzdCLElBQW1CLEVBQ25CLEtBQXlCO1FBRXpCLE9BQU8sV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxTQUFTLENBQUMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FDakQsT0FBTyxFQUNQLFNBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUMzQixDQUFDO2dCQUNGLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sVUFBVSxDQUNmLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUN2RCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxlQUFlLENBQUMsT0FBNkI7UUFDcEQsT0FBTyxDQUNMLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sS0FBSyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FDeEIsT0FBNkIsRUFDN0IsS0FBYTtRQUViLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsYUFBYSxFQUFFLFVBQVUsS0FBSyxFQUFFO2FBQ2pDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQ2hDLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEhhbmRsZXJGbixcbiAgSHR0cEludGVyY2VwdG9yRm4sXG4gIEh0dHBSZXF1ZXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERlc2NvcGVBdXRoU2VydmljZSB9IGZyb20gJy4vZGVzY29wZS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGVzY29wZUF1dGhDb25maWcgfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBkZXNjb3BlSW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvckZuID0gKHJlcXVlc3QsIG5leHQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KERlc2NvcGVBdXRoQ29uZmlnKTtcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoRGVzY29wZUF1dGhTZXJ2aWNlKTtcblxuICBmdW5jdGlvbiByZWZyZXNoQW5kUmV0cnkoXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJGbixcbiAgICBlcnJvcj86IEh0dHBFcnJvclJlc3BvbnNlXG4gICkge1xuICAgIHJldHVybiBhdXRoU2VydmljZS5yZWZyZXNoU2Vzc2lvbigpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHJlZnJlc2hlZCkgPT4ge1xuICAgICAgICBpZiAocmVmcmVzaGVkLm9rICYmIHJlZnJlc2hlZC5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgcmVxdWVzdFdpdGhSZWZyZXNoZWRUb2tlbiA9IGFkZFRva2VuVG9SZXF1ZXN0KFxuICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgIHJlZnJlc2hlZC5kYXRhPy5zZXNzaW9uSnd0XG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gbmV4dChyZXF1ZXN0V2l0aFJlZnJlc2hlZFRva2VuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+IGVycm9yID8/IG5ldyBFcnJvcignQ291bGQgbm90IHJlZnJlc2ggc2Vzc2lvbiEnKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNob3VsZEludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAoY29uZmlnLnBhdGhzVG9JbnRlcmNlcHQ/Lmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICBjb25maWcucGF0aHNUb0ludGVyY2VwdD8uc29tZSgocGF0aCkgPT4gcmVxdWVzdC51cmwuaW5jbHVkZXMocGF0aCkpKSA/P1xuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBhZGRUb2tlblRvUmVxdWVzdChcbiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPixcbiAgICB0b2tlbjogc3RyaW5nXG4gICk6IEh0dHBSZXF1ZXN0PHVua25vd24+IHtcbiAgICByZXR1cm4gcmVxdWVzdC5jbG9uZSh7XG4gICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpZiAoc2hvdWxkSW50ZXJjZXB0KHJlcXVlc3QpKSB7XG4gICAgY29uc3QgdG9rZW4gPSBhdXRoU2VydmljZS5nZXRTZXNzaW9uVG9rZW4oKTtcbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICByZXR1cm4gcmVmcmVzaEFuZFJldHJ5KHJlcXVlc3QsIG5leHQpO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0V2l0aFRva2VuID0gYWRkVG9rZW5Ub1JlcXVlc3QocmVxdWVzdCwgdG9rZW4pO1xuICAgIHJldHVybiBuZXh0KHJlcXVlc3RXaXRoVG9rZW4pLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxIHx8IGVycm9yLnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgcmV0dXJuIHJlZnJlc2hBbmRSZXRyeShyZXF1ZXN0LCBuZXh0LCBlcnJvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5leHQocmVxdWVzdCk7XG4gIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class DescopeAuthConfig {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.projectId = '';
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXNkay9zcmMvbGliL3R5cGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDRSxjQUFTLEdBQUcsRUFBRSxDQUFDO0lBVWpCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMb2dnZXIgfSBmcm9tICdAZGVzY29wZS93ZWItY29tcG9uZW50JztcbmltcG9ydCB7IENvb2tpZUNvbmZpZyB9IGZyb20gJ0BkZXNjb3BlL3dlYi1qcy1zZGsnO1xuZXhwb3J0IGNsYXNzIERlc2NvcGVBdXRoQ29uZmlnIHtcbiAgcHJvamVjdElkID0gJyc7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIGJhc2VTdGF0aWNVcmw/OiBzdHJpbmc7XG4gIGJhc2VDZG5Vcmw/OiBzdHJpbmc7XG4gIC8vIElmIHRydWUsIHRva2VucyB3aWxsIGJlIHN0b3JlZCBvbiBsb2NhbCBzdG9yYWdlXG4gIHBlcnNpc3RUb2tlbnM/OiBib29sZWFuO1xuICBzZXNzaW9uVG9rZW5WaWFDb29raWU/OiBDb29raWVDb25maWc7XG4gIC8vIElmIHRydWUsIGxhc3QgYXV0aGVudGljYXRlZCB1c2VyIHdpbGwgYmUgc3RvcmVkIG9uIGxvY2FsIHN0b3JhZ2UgYW5kIGNhbiBhY2Nlc3NlZCB3aXRoIGdldFVzZXIgZnVuY3Rpb25cbiAgc3RvcmVMYXN0QXV0aGVudGljYXRlZFVzZXI/OiBib29sZWFuO1xuICBwYXRoc1RvSW50ZXJjZXB0Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCB0eXBlIHsgSUxvZ2dlciB9O1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { environment } from '../../environment';
|
|
2
|
+
export const baseHeaders = {
|
|
3
|
+
'x-descope-sdk-name': 'angular',
|
|
4
|
+
'x-descope-sdk-version': environment.buildVersion
|
|
5
|
+
};
|
|
6
|
+
export const isBrowser = () => typeof window !== 'undefined';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1zZGsvc3JjL2xpYi91dGlscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixvQkFBb0IsRUFBRSxTQUFTO0lBQy9CLHVCQUF1QixFQUFFLFdBQVcsQ0FBQyxZQUFZO0NBQ2xELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnZpcm9ubWVudCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlSGVhZGVycyA9IHtcbiAgJ3gtZGVzY29wZS1zZGstbmFtZSc6ICdhbmd1bGFyJyxcbiAgJ3gtZGVzY29wZS1zZGstdmVyc2lvbic6IGVudmlyb25tZW50LmJ1aWxkVmVyc2lvblxufTtcblxuZXhwb3J0IGNvbnN0IGlzQnJvd3NlciA9ICgpID0+IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { from } from 'rxjs';
|
|
2
|
+
export function observabilify(value) {
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
const observableValue = {};
|
|
5
|
+
for (const key in value) {
|
|
6
|
+
if (typeof value[key] === 'function') {
|
|
7
|
+
const fn = value[key];
|
|
8
|
+
observableValue[key] = (...args) => {
|
|
9
|
+
const fnResult = fn(...args);
|
|
10
|
+
if (fnResult instanceof Promise) {
|
|
11
|
+
return from(fnResult);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return fnResult;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
else if (typeof value[key] === 'object' && value[key] !== null) {
|
|
19
|
+
observableValue[key] = observabilify(value[key]);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
observableValue[key] = value[key];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return observableValue;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9saWIvdXRpbHMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBWXhDLE1BQU0sVUFBVSxhQUFhLENBQUksS0FBUTtJQUN2Qyx1REFBdUQ7SUFDdkQsTUFBTSxlQUFlLEdBQVEsRUFBRSxDQUFDO0lBRWhDLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDeEIsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFvQyxDQUFDO1lBQ3pELGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBZSxFQUFFLEVBQUU7Z0JBQzVDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUM3QixJQUFJLFFBQVEsWUFBWSxPQUFPLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUMsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDakUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGVBQW9DLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgT2JzZXJ2YWJsZWZpZWQ8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgKC4uLmFyZ3M6IGluZmVyIEFyZ3MpID0+IFByb21pc2U8aW5mZXIgUj5cbiAgICA/ICguLi5hcmdzOiBBcmdzKSA9PiBPYnNlcnZhYmxlPFI+XG4gICAgOiBUW0tdIGV4dGVuZHMgKC4uLmFyZ3M6IGluZmVyIEFyZ3MpID0+IGluZmVyIFJcbiAgICAgID8gKC4uLmFyZ3M6IEFyZ3MpID0+IFJcbiAgICAgIDogVFtLXSBleHRlbmRzIG9iamVjdFxuICAgICAgICA/IE9ic2VydmFibGVmaWVkPFRbS10+XG4gICAgICAgIDogVFtLXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZhYmlsaWZ5PFQ+KHZhbHVlOiBUKTogT2JzZXJ2YWJsZWZpZWQ8VD4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4gIGNvbnN0IG9ic2VydmFibGVWYWx1ZTogYW55ID0ge307XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGZuID0gdmFsdWVba2V5XSBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duO1xuICAgICAgb2JzZXJ2YWJsZVZhbHVlW2tleV0gPSAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuUmVzdWx0ID0gZm4oLi4uYXJncyk7XG4gICAgICAgIGlmIChmblJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICByZXR1cm4gZnJvbShmblJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZuUmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlW2tleV0gPT09ICdvYmplY3QnICYmIHZhbHVlW2tleV0gIT09IG51bGwpIHtcbiAgICAgIG9ic2VydmFibGVWYWx1ZVtrZXldID0gb2JzZXJ2YWJpbGlmeSh2YWx1ZVtrZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2YWJsZVZhbHVlW2tleV0gPSB2YWx1ZVtrZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYnNlcnZhYmxlVmFsdWUgYXMgT2JzZXJ2YWJsZWZpZWQ8VD47XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of angular-sdk
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/services/descope-auth.service';
|
|
5
|
+
export * from './lib/services/descope-auth.guard';
|
|
6
|
+
export * from './lib/services/descope.interceptor';
|
|
7
|
+
export * from './lib/descope-auth.module';
|
|
8
|
+
export * from './lib/components/descope/descope.component';
|
|
9
|
+
export * from './lib/components/sign-in-flow/sign-in-flow.component';
|
|
10
|
+
export * from './lib/components/sign-up-flow/sign-up-flow.component';
|
|
11
|
+
export * from './lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component';
|
|
12
|
+
export * from './lib/components/user-management/user-management.component';
|
|
13
|
+
export * from './lib/components/role-management/role-management.component';
|
|
14
|
+
export * from './lib/components/access-key-management/access-key-management.component';
|
|
15
|
+
export * from './lib/components/audit-management/audit-management.component';
|
|
16
|
+
export * from './lib/components/user-profile/user-profile.component';
|
|
17
|
+
export * from './lib/components/applications-portal/applications-portal.component';
|
|
18
|
+
export * from './lib/types/types';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL2FuZ3VsYXItc2RrL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFuZ3VsYXItc2RrXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZGVzY29wZS1hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZGVzY29wZS1hdXRoLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Rlc2NvcGUuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVzY29wZS1hdXRoLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rlc2NvcGUvZGVzY29wZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zaWduLWluLWZsb3cvc2lnbi1pbi1mbG93LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpZ24tdXAtZmxvdy9zaWduLXVwLWZsb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lnbi11cC1vci1pbi1mbG93L3NpZ24tdXAtb3ItaW4tZmxvdy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2VyLW1hbmFnZW1lbnQvdXNlci1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JvbGUtbWFuYWdlbWVudC9yb2xlLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWNjZXNzLWtleS1tYW5hZ2VtZW50L2FjY2Vzcy1rZXktbWFuYWdlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdWRpdC1tYW5hZ2VtZW50L2F1ZGl0LW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdXNlci1wcm9maWxlL3VzZXItcHJvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hcHBsaWNhdGlvbnMtcG9ydGFsL2FwcGxpY2F0aW9ucy1wb3J0YWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzL3R5cGVzJztcbiJdfQ==
|