@descope/angular-sdk 0.0.0-next-cd745c61-20250421 → 0.0.0-next-26df9ba9-20250424

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/environment.d.ts +3 -0
  2. package/dist/esm2022/descope-angular-sdk.mjs +5 -0
  3. package/dist/esm2022/environment.mjs +4 -0
  4. package/dist/esm2022/lib/components/access-key-management/access-key-management.component.mjs +67 -0
  5. package/dist/esm2022/lib/components/applications-portal/applications-portal.component.mjs +75 -0
  6. package/dist/esm2022/lib/components/audit-management/audit-management.component.mjs +70 -0
  7. package/dist/esm2022/lib/components/descope/descope.component.mjs +191 -0
  8. package/dist/esm2022/lib/components/role-management/role-management.component.mjs +70 -0
  9. package/dist/esm2022/lib/components/sign-in-flow/sign-in-flow.component.mjs +56 -0
  10. package/dist/esm2022/lib/components/sign-up-flow/sign-up-flow.component.mjs +56 -0
  11. package/dist/esm2022/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.mjs +56 -0
  12. package/dist/esm2022/lib/components/user-management/user-management.component.mjs +70 -0
  13. package/dist/esm2022/lib/components/user-profile/user-profile.component.mjs +78 -0
  14. package/dist/esm2022/lib/descope-auth.module.mjs +83 -0
  15. package/dist/esm2022/lib/services/descope-auth.guard.mjs +15 -0
  16. package/dist/esm2022/lib/services/descope-auth.service.mjs +145 -0
  17. package/dist/esm2022/lib/services/descope.interceptor.mjs +51 -0
  18. package/dist/esm2022/lib/types/types.mjs +6 -0
  19. package/dist/esm2022/lib/utils/constants.mjs +7 -0
  20. package/dist/esm2022/lib/utils/helpers.mjs +27 -0
  21. package/dist/esm2022/public-api.mjs +19 -0
  22. package/dist/fesm2022/descope-angular-sdk.mjs +1075 -0
  23. package/dist/fesm2022/descope-angular-sdk.mjs.map +1 -0
  24. package/dist/index.d.ts +5 -0
  25. package/dist/lib/components/access-key-management/access-key-management.component.d.ts +24 -0
  26. package/dist/lib/components/applications-portal/applications-portal.component.d.ts +24 -0
  27. package/dist/lib/components/audit-management/audit-management.component.d.ts +24 -0
  28. package/dist/lib/components/descope/descope.component.d.ts +45 -0
  29. package/dist/lib/components/role-management/role-management.component.d.ts +24 -0
  30. package/dist/lib/components/sign-in-flow/sign-in-flow.component.d.ts +32 -0
  31. package/dist/lib/components/sign-up-flow/sign-up-flow.component.d.ts +32 -0
  32. package/dist/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.d.ts +32 -0
  33. package/dist/lib/components/user-management/user-management.component.d.ts +24 -0
  34. package/dist/lib/components/user-profile/user-profile.component.d.ts +26 -0
  35. package/dist/lib/descope-auth.module.d.ts +20 -0
  36. package/dist/lib/services/descope-auth.guard.d.ts +2 -0
  37. package/dist/lib/services/descope-auth.service.d.ts +41 -0
  38. package/dist/lib/services/descope.interceptor.d.ts +2 -0
  39. package/dist/lib/types/types.d.ts +13 -0
  40. package/dist/lib/utils/constants.d.ts +5 -0
  41. package/dist/lib/utils/helpers.d.ts +5 -0
  42. package/dist/public-api.d.ts +15 -0
  43. 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==