@frontegg/rest-api 3.1.74-alpha.9436935127 → 3.1.74-alpha.9437859720
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/ContextHolder/index.d.ts +50 -27
- package/ContextHolder/index.js +133 -41
- package/FetchClient.js +3 -3
- package/auth/index.js +9 -9
- package/auth/utils.js +3 -3
- package/index.d.ts +6 -9
- package/index.js +3 -4
- package/node/ContextHolder/index.js +134 -45
- package/node/FetchClient.js +2 -2
- package/node/auth/index.js +15 -10
- package/node/auth/utils.js +2 -2
- package/node/index.js +2 -10
- package/node/tenants/index.js +1 -1
- package/package.json +1 -1
- package/tenants/index.js +2 -2
package/ContextHolder/index.d.ts
CHANGED
|
@@ -12,104 +12,123 @@ export declare class ContextHolder {
|
|
|
12
12
|
private accessToken;
|
|
13
13
|
private user;
|
|
14
14
|
private requestSource;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
onRedirectTo: (path: string, opts?: RedirectOptions) => void;
|
|
16
|
+
logout: (callback?: () => void) => void;
|
|
17
17
|
private entitlementsOptions;
|
|
18
18
|
private appName;
|
|
19
19
|
private sessionContext?;
|
|
20
20
|
private constructor();
|
|
21
|
+
static default(): ContextHolder;
|
|
22
|
+
static for(appName: string): ContextHolder;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated - use ContextHolder.for(appName) / ContextHolder.default() instead
|
|
25
|
+
* @param appName
|
|
26
|
+
*/
|
|
21
27
|
static getInstance(appName?: string): ContextHolder;
|
|
28
|
+
static createInstance(appName?: string): ContextHolder;
|
|
22
29
|
/**
|
|
23
|
-
* @deprecated - use
|
|
30
|
+
* @deprecated - use ContextHolder.for(appName).setContext instead
|
|
24
31
|
*/
|
|
25
32
|
static setContext(context: ContextOptions, appName?: string): void;
|
|
33
|
+
setContext(context: ContextOptions): void;
|
|
26
34
|
/**
|
|
27
|
-
* @deprecated - use
|
|
35
|
+
* @deprecated - use ContextHolder.for(appName).setAccessToken instead
|
|
28
36
|
*/
|
|
29
37
|
static setAccessToken(accessToken: string | null, appName?: string): void;
|
|
38
|
+
setAccessToken(accessToken: string | null): void;
|
|
30
39
|
/**
|
|
31
|
-
* @deprecated - use
|
|
40
|
+
* @deprecated - use ContextHolder.for(appName).setUser instead
|
|
32
41
|
*/
|
|
33
42
|
static setUser(user: IUserProfile | null, appName?: string): void;
|
|
43
|
+
setUser(user: IUserProfile | null): void;
|
|
34
44
|
/**
|
|
35
|
-
* @deprecated - use
|
|
45
|
+
* @deprecated - use ContextHolder.for(appName).setRequestSource instead
|
|
36
46
|
*/
|
|
37
47
|
static setRequestSource(requestSource: RequestSource | null, appName?: string): void;
|
|
48
|
+
setRequestSource(requestSource: RequestSource | null): void;
|
|
38
49
|
/**
|
|
39
|
-
* @deprecated - use
|
|
50
|
+
* @deprecated - use ContextHolder.for(appName).setOnRedirectTo instead
|
|
40
51
|
*/
|
|
41
52
|
static setOnRedirectTo(onRedirectTo: (path: string, opts?: RedirectOptions) => void, appName?: string): void;
|
|
53
|
+
setOnRedirectTo(onRedirectTo: (path: string, opts?: RedirectOptions) => void): void;
|
|
42
54
|
/**
|
|
43
|
-
* @deprecated - use
|
|
55
|
+
* @deprecated - use ContextHolder.for(appName).setLogout instead
|
|
44
56
|
*/
|
|
45
57
|
static setLogout(logout: (callback?: () => void) => void, logoutUrl: string, appName?: string): void;
|
|
58
|
+
setLogout(logout: (callback?: () => void) => void): void;
|
|
46
59
|
/**
|
|
47
60
|
* App name should also be set for entitlements
|
|
48
|
-
* @deprecated - use
|
|
61
|
+
* @deprecated - use ContextHolder.for(appName).setEntitlementsOptions instead
|
|
49
62
|
* @param entitlementsOptions frontegg options entitlements config
|
|
50
63
|
* @param appName - app name
|
|
51
64
|
*/
|
|
52
65
|
static setEntitlementsOptions(entitlementsOptions: EntitlementsOptions, appName?: string): void;
|
|
66
|
+
setEntitlementsOptions(entitlementsOptions: EntitlementsOptions): void;
|
|
53
67
|
/**
|
|
54
|
-
* @deprecated - use
|
|
68
|
+
* @deprecated - use ContextHolder.for(appName).setSessionContext instead
|
|
55
69
|
* @param sessionContext frontegg options SessionContext config
|
|
56
70
|
* @param appName - app name
|
|
57
71
|
*/
|
|
58
72
|
static setSessionContext(sessionContext: SessionContext, appName?: string): void;
|
|
73
|
+
setSessionContext(sessionContext: SessionContext): void;
|
|
59
74
|
/**
|
|
60
|
-
* @deprecated - use
|
|
75
|
+
* @deprecated - use ContextHolder.for(appName).setAppName instead
|
|
61
76
|
*/
|
|
62
77
|
static setAppName(appName: string): void;
|
|
78
|
+
setAppName(appName: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* @deprecated - use ContextHolder.for(appName).getContext instead
|
|
81
|
+
*/
|
|
63
82
|
static getContext(appName?: string): ContextOptions;
|
|
83
|
+
getContext(): ContextOptions;
|
|
64
84
|
/**
|
|
65
|
-
* @deprecated - use
|
|
85
|
+
* @deprecated - use ContextHolder.for(appName).getAccessToken instead
|
|
66
86
|
*/
|
|
67
87
|
static getAccessToken(appName?: string): string | null;
|
|
88
|
+
getAccessToken(): string | null;
|
|
68
89
|
/**
|
|
69
|
-
* @deprecated - use
|
|
90
|
+
* @deprecated - use ContextHolder.for(appName).requestSource instead
|
|
70
91
|
*/
|
|
71
92
|
static getRequestSource(appName?: string): RequestSource | null;
|
|
93
|
+
getRequestSource(): RequestSource | null;
|
|
72
94
|
/**
|
|
73
|
-
* @deprecated - use
|
|
95
|
+
* @deprecated - use ContextHolder.for(appName).getUser instead
|
|
74
96
|
*/
|
|
75
97
|
static getUser(appName?: string): IUserProfile | null;
|
|
98
|
+
getUser(): IUserProfile | null;
|
|
76
99
|
/**
|
|
77
|
-
* @deprecated - use
|
|
100
|
+
* @deprecated - use ContextHolder.for(appName).onRedirectTo instead
|
|
78
101
|
*/
|
|
79
102
|
static onRedirectTo(path: string, opts?: RedirectOptions, appName?: string): void;
|
|
80
103
|
/**
|
|
81
|
-
* @deprecated - use
|
|
104
|
+
* @deprecated - use ContextHolder.for(appName).logout instead
|
|
82
105
|
*/
|
|
83
106
|
static logout(callback?: () => void, appName?: string): void;
|
|
84
107
|
/**
|
|
85
|
-
* @deprecated - use
|
|
108
|
+
* @deprecated - use ContextHolder.for(appName).shouldLoadEntitlements instead
|
|
86
109
|
* @returns shouldLoadEntitlements. Default to false.
|
|
87
110
|
*/
|
|
88
111
|
static shouldLoadEntitlements(appName?: string): boolean;
|
|
112
|
+
shouldLoadEntitlements(): boolean;
|
|
89
113
|
/**
|
|
90
|
-
* @deprecated - use
|
|
114
|
+
* @deprecated - use ContextHolder.for(appName).isSessionPerTenantEnabled instead
|
|
91
115
|
* @returns isSessionPerTenantEnabled. Default to false.
|
|
92
116
|
*/
|
|
93
117
|
static isSessionPerTenantEnabled(appName?: string): boolean;
|
|
118
|
+
isSessionPerTenantEnabled(): boolean;
|
|
94
119
|
/**
|
|
95
|
-
* @deprecated - use
|
|
120
|
+
* @deprecated - use ContextHolder.for(appName).getAppName instead
|
|
96
121
|
* @returns app name value
|
|
97
122
|
*/
|
|
98
123
|
static getAppName(appName?: string): string | null;
|
|
124
|
+
getAppName(): string | null;
|
|
99
125
|
}
|
|
100
126
|
/**
|
|
101
127
|
* Frontegg context to be used in the application
|
|
102
128
|
*
|
|
103
|
-
* @deprecated use
|
|
129
|
+
* @deprecated use ContextHolder.for instead
|
|
104
130
|
*/
|
|
105
131
|
export declare const FronteggContext: {
|
|
106
|
-
getContext: () => ContextOptions;
|
|
107
|
-
getAccessToken: () => string | null;
|
|
108
|
-
getUser: () => IUserProfile | null;
|
|
109
|
-
onRedirectTo: (path: string, opts: RedirectOptions) => void;
|
|
110
|
-
logout: (callback?: (() => void) | undefined) => void;
|
|
111
|
-
};
|
|
112
|
-
export declare const getFronteggContext: (appName?: string) => {
|
|
113
132
|
getContext: () => ContextOptions;
|
|
114
133
|
getAccessToken: () => string | null;
|
|
115
134
|
setAccessToken: (accessToken: string | null) => void;
|
|
@@ -119,6 +138,10 @@ export declare const getFronteggContext: (appName?: string) => {
|
|
|
119
138
|
setOnRedirectTo: (onRedirectTo: (path: string, opts?: RedirectOptions | undefined) => void) => void;
|
|
120
139
|
logout: (callback?: (() => void) | undefined) => void;
|
|
121
140
|
getRequestSource: () => RequestSource | null;
|
|
141
|
+
setRequestSource: (requestSource: RequestSource | null) => void;
|
|
122
142
|
isSessionPerTenantEnabled: () => boolean;
|
|
123
143
|
shouldLoadEntitlements: () => boolean;
|
|
144
|
+
getAppName: () => string | null;
|
|
145
|
+
setEntitlementsOptions: (entitlementsOptions: EntitlementsOptions) => void;
|
|
146
|
+
setSessionContext: (sessionContext: SessionContext) => void;
|
|
124
147
|
};
|
package/ContextHolder/index.js
CHANGED
|
@@ -14,7 +14,19 @@ export class ContextHolder {
|
|
|
14
14
|
this.sessionContext = void 0;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
static default() {
|
|
18
|
+
return ContextHolder.getInstance(DEFAULT_APP_NAME);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static for(appName) {
|
|
22
|
+
return ContextHolder.getInstance(appName);
|
|
23
|
+
}
|
|
24
|
+
|
|
17
25
|
static getInstance(appName = 'default') {
|
|
26
|
+
if (!ContextHolder._apps) {
|
|
27
|
+
ContextHolder._apps = {};
|
|
28
|
+
}
|
|
29
|
+
|
|
18
30
|
if (ContextHolder._apps[appName]) {
|
|
19
31
|
return ContextHolder._apps[appName];
|
|
20
32
|
}
|
|
@@ -23,52 +35,106 @@ export class ContextHolder {
|
|
|
23
35
|
return ContextHolder._apps[appName];
|
|
24
36
|
}
|
|
25
37
|
|
|
38
|
+
static createInstance(appName = 'default') {
|
|
39
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
40
|
+
ContextHolder._apps[appName].appName = appName;
|
|
41
|
+
return ContextHolder._apps[appName];
|
|
42
|
+
}
|
|
43
|
+
|
|
26
44
|
static setContext(context, appName = 'default') {
|
|
27
|
-
ContextHolder.
|
|
45
|
+
ContextHolder.for(appName).context = context;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
setContext(context) {
|
|
49
|
+
this.context = context;
|
|
28
50
|
}
|
|
29
51
|
|
|
30
52
|
static setAccessToken(accessToken, appName = 'default') {
|
|
31
|
-
ContextHolder.
|
|
53
|
+
ContextHolder.for(appName).accessToken = accessToken;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
setAccessToken(accessToken) {
|
|
57
|
+
this.accessToken = accessToken;
|
|
32
58
|
}
|
|
33
59
|
|
|
34
60
|
static setUser(user, appName = 'default') {
|
|
35
|
-
ContextHolder.
|
|
61
|
+
ContextHolder.for(appName).user = user;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
setUser(user) {
|
|
65
|
+
this.user = user;
|
|
36
66
|
}
|
|
37
67
|
|
|
38
68
|
static setRequestSource(requestSource, appName = 'default') {
|
|
39
|
-
ContextHolder.
|
|
69
|
+
ContextHolder.for(appName).requestSource = requestSource;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
setRequestSource(requestSource) {
|
|
73
|
+
this.requestSource = requestSource;
|
|
40
74
|
}
|
|
41
75
|
|
|
42
76
|
static setOnRedirectTo(onRedirectTo, appName = 'default') {
|
|
43
|
-
ContextHolder.
|
|
77
|
+
ContextHolder.for(appName).onRedirectTo = onRedirectTo;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
setOnRedirectTo(onRedirectTo) {
|
|
81
|
+
this.onRedirectTo = onRedirectTo;
|
|
44
82
|
}
|
|
45
83
|
|
|
46
84
|
static setLogout(logout, logoutUrl, appName = 'default') {
|
|
47
|
-
ContextHolder.
|
|
85
|
+
const context = ContextHolder.for(appName);
|
|
86
|
+
|
|
87
|
+
context.logout = callback => {
|
|
48
88
|
if (!callback) {
|
|
49
|
-
|
|
89
|
+
context.onRedirectTo(logoutUrl, undefined);
|
|
50
90
|
} else {
|
|
51
91
|
logout(callback);
|
|
52
92
|
}
|
|
53
93
|
};
|
|
54
94
|
}
|
|
55
95
|
|
|
96
|
+
setLogout(logout) {
|
|
97
|
+
this.logout = logout;
|
|
98
|
+
}
|
|
99
|
+
|
|
56
100
|
static setEntitlementsOptions(entitlementsOptions, appName = 'default') {
|
|
57
|
-
ContextHolder.
|
|
101
|
+
ContextHolder.for(appName).entitlementsOptions = entitlementsOptions;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
setEntitlementsOptions(entitlementsOptions) {
|
|
105
|
+
this.entitlementsOptions = entitlementsOptions;
|
|
58
106
|
}
|
|
59
107
|
|
|
60
108
|
static setSessionContext(sessionContext, appName = 'default') {
|
|
61
|
-
ContextHolder.
|
|
109
|
+
ContextHolder.for(appName).sessionContext = sessionContext;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
setSessionContext(sessionContext) {
|
|
113
|
+
this.sessionContext = sessionContext;
|
|
62
114
|
}
|
|
63
115
|
|
|
64
116
|
static setAppName(appName) {
|
|
65
|
-
ContextHolder.
|
|
117
|
+
ContextHolder.for(appName).appName = appName;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
setAppName(appName) {
|
|
121
|
+
this.appName = appName;
|
|
66
122
|
}
|
|
67
123
|
|
|
68
124
|
static getContext(appName = 'default') {
|
|
69
|
-
var _ContextHolder$
|
|
125
|
+
var _ContextHolder$for$co;
|
|
70
126
|
|
|
71
|
-
return (_ContextHolder$
|
|
127
|
+
return (_ContextHolder$for$co = ContextHolder.for(appName).context) != null ? _ContextHolder$for$co : {
|
|
128
|
+
baseUrl: window.location.href,
|
|
129
|
+
tokenResolver: () => 'my-authentication-token',
|
|
130
|
+
logLevel: 'error'
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
getContext() {
|
|
135
|
+
var _this$context;
|
|
136
|
+
|
|
137
|
+
return (_this$context = this.context) != null ? _this$context : {
|
|
72
138
|
baseUrl: window.location.href,
|
|
73
139
|
tokenResolver: () => 'my-authentication-token',
|
|
74
140
|
logLevel: 'error'
|
|
@@ -76,60 +142,86 @@ export class ContextHolder {
|
|
|
76
142
|
}
|
|
77
143
|
|
|
78
144
|
static getAccessToken(appName = 'default') {
|
|
79
|
-
return ContextHolder.
|
|
145
|
+
return ContextHolder.for(appName).accessToken;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
getAccessToken() {
|
|
149
|
+
return this.accessToken;
|
|
80
150
|
}
|
|
81
151
|
|
|
82
152
|
static getRequestSource(appName = 'default') {
|
|
83
|
-
return ContextHolder.
|
|
153
|
+
return ContextHolder.for(appName).requestSource;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
getRequestSource() {
|
|
157
|
+
return this.requestSource;
|
|
84
158
|
}
|
|
85
159
|
|
|
86
160
|
static getUser(appName = 'default') {
|
|
87
|
-
return ContextHolder.
|
|
161
|
+
return ContextHolder.for(appName).user;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
getUser() {
|
|
165
|
+
return this.user;
|
|
88
166
|
}
|
|
89
167
|
|
|
90
168
|
static onRedirectTo(path, opts, appName = 'default') {
|
|
91
|
-
return ContextHolder.
|
|
169
|
+
return ContextHolder.for(appName).onRedirectTo(path, opts);
|
|
92
170
|
}
|
|
93
171
|
|
|
94
172
|
static logout(callback, appName = 'default') {
|
|
95
|
-
return ContextHolder.
|
|
173
|
+
return ContextHolder.for(appName).logout(callback);
|
|
96
174
|
}
|
|
97
175
|
|
|
98
176
|
static shouldLoadEntitlements(appName = 'default') {
|
|
99
|
-
var _ContextHolder$
|
|
177
|
+
var _ContextHolder$for$en;
|
|
178
|
+
|
|
179
|
+
return ((_ContextHolder$for$en = ContextHolder.for(appName).entitlementsOptions) == null ? void 0 : _ContextHolder$for$en.enabled) || false;
|
|
180
|
+
}
|
|
100
181
|
|
|
101
|
-
|
|
182
|
+
shouldLoadEntitlements() {
|
|
183
|
+
var _this$entitlementsOpt;
|
|
184
|
+
|
|
185
|
+
return ((_this$entitlementsOpt = this.entitlementsOptions) == null ? void 0 : _this$entitlementsOpt.enabled) || false;
|
|
102
186
|
}
|
|
103
187
|
|
|
104
188
|
static isSessionPerTenantEnabled(appName = 'default') {
|
|
105
|
-
var _ContextHolder$
|
|
189
|
+
var _ContextHolder$for$se;
|
|
190
|
+
|
|
191
|
+
return ((_ContextHolder$for$se = ContextHolder.for(appName).sessionContext) == null ? void 0 : _ContextHolder$for$se.enableSessionPerTenant) || false;
|
|
192
|
+
}
|
|
106
193
|
|
|
107
|
-
|
|
194
|
+
isSessionPerTenantEnabled() {
|
|
195
|
+
var _this$sessionContext;
|
|
196
|
+
|
|
197
|
+
return ((_this$sessionContext = this.sessionContext) == null ? void 0 : _this$sessionContext.enableSessionPerTenant) || false;
|
|
108
198
|
}
|
|
109
199
|
|
|
110
200
|
static getAppName(appName = 'default') {
|
|
111
|
-
return ContextHolder.
|
|
201
|
+
return ContextHolder.for(appName).appName;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
getAppName() {
|
|
205
|
+
return this.appName;
|
|
112
206
|
}
|
|
113
207
|
|
|
114
208
|
}
|
|
115
209
|
ContextHolder._apps = void 0;
|
|
210
|
+
const DEFAULT_APP_NAME = 'default';
|
|
116
211
|
export const FronteggContext = {
|
|
117
|
-
getContext: () => ContextHolder.getContext(),
|
|
118
|
-
getAccessToken: () => ContextHolder.getAccessToken(),
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
isSessionPerTenantEnabled: () => ContextHolder.isSessionPerTenantEnabled(appName),
|
|
134
|
-
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(appName)
|
|
135
|
-
});
|
|
212
|
+
getContext: () => ContextHolder.getContext(DEFAULT_APP_NAME),
|
|
213
|
+
getAccessToken: () => ContextHolder.getAccessToken(DEFAULT_APP_NAME),
|
|
214
|
+
setAccessToken: accessToken => ContextHolder.setAccessToken(accessToken, DEFAULT_APP_NAME),
|
|
215
|
+
getUser: () => ContextHolder.getUser(DEFAULT_APP_NAME),
|
|
216
|
+
setUser: user => ContextHolder.setUser(user, DEFAULT_APP_NAME),
|
|
217
|
+
onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts, DEFAULT_APP_NAME),
|
|
218
|
+
setOnRedirectTo: onRedirectTo => ContextHolder.setOnRedirectTo(onRedirectTo, DEFAULT_APP_NAME),
|
|
219
|
+
logout: callback => ContextHolder.logout(callback, DEFAULT_APP_NAME),
|
|
220
|
+
getRequestSource: () => ContextHolder.getRequestSource(DEFAULT_APP_NAME),
|
|
221
|
+
setRequestSource: requestSource => ContextHolder.setRequestSource(requestSource, DEFAULT_APP_NAME),
|
|
222
|
+
isSessionPerTenantEnabled: () => ContextHolder.isSessionPerTenantEnabled(DEFAULT_APP_NAME),
|
|
223
|
+
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(DEFAULT_APP_NAME),
|
|
224
|
+
getAppName: () => ContextHolder.getAppName(DEFAULT_APP_NAME),
|
|
225
|
+
setEntitlementsOptions: entitlementsOptions => ContextHolder.setEntitlementsOptions(entitlementsOptions, DEFAULT_APP_NAME),
|
|
226
|
+
setSessionContext: sessionContext => ContextHolder.setSessionContext(sessionContext, DEFAULT_APP_NAME)
|
|
227
|
+
};
|
package/FetchClient.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import {
|
|
2
|
+
import { ContextHolder } from './ContextHolder';
|
|
3
3
|
import { FronteggApiError } from './error';
|
|
4
4
|
import { GENERIC_ERROR_MESSAGE } from './constants';
|
|
5
5
|
import { fronteggHeaders } from './interfaces';
|
|
@@ -8,7 +8,7 @@ export class FetchClient {
|
|
|
8
8
|
this.appName = void 0;
|
|
9
9
|
|
|
10
10
|
this.getFronteggContext = () => {
|
|
11
|
-
return
|
|
11
|
+
return ContextHolder.for(this.appName);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
this.prepareUrl = async (url, params) => {
|
|
@@ -121,7 +121,7 @@ export class FetchClient {
|
|
|
121
121
|
this.sendRequest = async opts => {
|
|
122
122
|
var _opts$method, _ref, _opts$credentials;
|
|
123
123
|
|
|
124
|
-
const context = getFronteggContext(
|
|
124
|
+
const context = this.getFronteggContext().getContext();
|
|
125
125
|
const headers = await this.buildRequestHeaders(opts.contentType);
|
|
126
126
|
const url = await this.prepareUrl(opts.url, opts.params);
|
|
127
127
|
const response = await fetch(url, {
|
package/auth/index.js
CHANGED
|
@@ -8,7 +8,6 @@ export * from "./enums";
|
|
|
8
8
|
export { FRONTEGG_SEPARATE_TABS_BY_TENANT } from "./constants";
|
|
9
9
|
export { setTabTenantInSessionStorage, getTabTenantFromSessionStorage, getCurrentUserTenantsFunction, removeTabTenantFromSessionStorage } from './utils';
|
|
10
10
|
import { urls } from "../constants";
|
|
11
|
-
import { getFronteggContext } from '../ContextHolder';
|
|
12
11
|
import { jwtDecode } from "../jwt";
|
|
13
12
|
import { LOAD_AUTHORIZATION_FF } from './interfaces';
|
|
14
13
|
import { ADMIN_PORTAL_ENTITLEMENTS_FF } from '../entitlements/interfaces';
|
|
@@ -17,6 +16,7 @@ import { executeConditionalPromise, getCurrentUserTenantsFunction, getTabTenantF
|
|
|
17
16
|
import { TenantsApi } from "../tenants";
|
|
18
17
|
import { BaseApiClient } from '../BaseApiClient';
|
|
19
18
|
import { EntitlementsApi } from '../entitlements';
|
|
19
|
+
import { ContextHolder } from '../ContextHolder';
|
|
20
20
|
export class AuthenticationApi extends BaseApiClient {
|
|
21
21
|
constructor(appName) {
|
|
22
22
|
super(appName);
|
|
@@ -28,14 +28,14 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
28
28
|
return loginResponse;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
const contextHolder =
|
|
31
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
32
32
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
33
33
|
const me = await this.getMeAndEntitlements();
|
|
34
34
|
const decodedContent = loginResponse.accessToken ? jwtDecode(loginResponse.accessToken) : {};
|
|
35
35
|
|
|
36
36
|
const user = _extends({}, loginResponse, decodedContent, me);
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
contextHolder.setUser(user);
|
|
39
39
|
return user;
|
|
40
40
|
};
|
|
41
41
|
|
|
@@ -46,14 +46,14 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
const contextHolder =
|
|
49
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
50
50
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
51
51
|
const [me, tenants] = await Promise.all([this.getMeAndEntitlements(), this.tenantsApi.getTenants()]);
|
|
52
52
|
const decodedContent = loginResponse.accessToken ? jwtDecode(loginResponse.accessToken) : {};
|
|
53
53
|
|
|
54
54
|
const user = _extends({}, loginResponse, decodedContent, me);
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
contextHolder.setUser(user);
|
|
57
57
|
return {
|
|
58
58
|
user,
|
|
59
59
|
tenants
|
|
@@ -71,7 +71,7 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
const contextHolder =
|
|
74
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
75
75
|
contextHolder.setAccessToken(accessToken);
|
|
76
76
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), getCurrentUserTenantsFunction(this.appName)()]);
|
|
77
77
|
const decodedContent = accessToken ? jwtDecode(accessToken) : {};
|
|
@@ -91,7 +91,7 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
this.generateLoginResponseFromOAuthResponse = async oauthResponse => {
|
|
94
|
-
const contextHolder =
|
|
94
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
95
95
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
96
96
|
const me = await this.getMeAndEntitlements();
|
|
97
97
|
const decodedContent = oauthResponse.id_token ? jwtDecode(oauthResponse.id_token) : {};
|
|
@@ -109,7 +109,7 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
109
109
|
};
|
|
110
110
|
|
|
111
111
|
this.generateLoginResponseFromOAuthResponseV2 = async oauthResponse => {
|
|
112
|
-
const contextHolder =
|
|
112
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
113
113
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
114
114
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), getCurrentUserTenantsFunction(this.appName)()]);
|
|
115
115
|
const decodedContent = oauthResponse.id_token ? jwtDecode(oauthResponse.id_token) : {};
|
|
@@ -904,7 +904,7 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
904
904
|
}
|
|
905
905
|
|
|
906
906
|
shouldLoadEntitlements() {
|
|
907
|
-
if (!
|
|
907
|
+
if (!ContextHolder.for(this.appName).shouldLoadEntitlements()) {
|
|
908
908
|
return false;
|
|
909
909
|
}
|
|
910
910
|
|
package/auth/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextHolder } from '../ContextHolder';
|
|
2
2
|
import { USE_CURRENT_USER_TENANTS_V1_ENDPOINT_FF } from './constants';
|
|
3
3
|
import { FeatureFlags } from '../feature-flags';
|
|
4
4
|
import { UsersApi } from '../users';
|
|
@@ -22,7 +22,7 @@ export function removeTabTenantFromSessionStorage() {
|
|
|
22
22
|
sessionStorage.removeItem(FRONTEGG_SEPARATE_TABS_BY_TENANT);
|
|
23
23
|
}
|
|
24
24
|
export function getTabTenantFromSessionStorage(appName) {
|
|
25
|
-
if (!
|
|
25
|
+
if (!ContextHolder.for(appName).isSessionPerTenantEnabled()) {
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -32,7 +32,7 @@ export function getCurrentUserTenantsFunction(appName) {
|
|
|
32
32
|
const usersApi = new UsersApi(appName);
|
|
33
33
|
const [useCurrentUserTenantsV1] = FeatureFlags.getFeatureFlags([USE_CURRENT_USER_TENANTS_V1_ENDPOINT_FF], appName);
|
|
34
34
|
|
|
35
|
-
if (
|
|
35
|
+
if (ContextHolder.for(appName).isSessionPerTenantEnabled()) {
|
|
36
36
|
return usersApi.getCurrentUserTenantsV1;
|
|
37
37
|
}
|
|
38
38
|
|
package/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { AuthStrategyEnum, MachineToMachineAuthStrategy, SocialLoginProviders }
|
|
|
2
2
|
import { ISubscriptionCancellationPolicy, ISubscriptionStatus, PaymentMethodType, ProviderType } from './subscriptions';
|
|
3
3
|
import { FronteggApiError } from './error';
|
|
4
4
|
import fetch, { FetchClient } from './FetchClient';
|
|
5
|
-
import { ContextHolder, FronteggContext
|
|
5
|
+
import { ContextHolder, FronteggContext } from './ContextHolder';
|
|
6
6
|
import { AuthenticationApi } from './auth';
|
|
7
7
|
import { UsersApi } from './users';
|
|
8
8
|
import { TeamsApi } from './teams';
|
|
@@ -107,19 +107,12 @@ export declare type FronteggApiClient = {
|
|
|
107
107
|
applications: ApplicationsApi;
|
|
108
108
|
};
|
|
109
109
|
declare const createApiClient: (appName: string) => FronteggApiClient;
|
|
110
|
-
export { fetch, FetchClient, ContextHolder, FronteggContext,
|
|
110
|
+
export { fetch, FetchClient, ContextHolder, FronteggContext, api, createApiClient, FronteggApiError, AuthStrategyEnum, SocialLoginProviders, ISubscriptionCancellationPolicy, ISubscriptionStatus, PaymentMethodType, ProviderType, MachineToMachineAuthStrategy, };
|
|
111
111
|
declare const _default: {
|
|
112
112
|
fetch: FetchClient;
|
|
113
113
|
FetchClient: typeof FetchClient;
|
|
114
114
|
ContextHolder: typeof ContextHolder;
|
|
115
115
|
FronteggContext: {
|
|
116
|
-
getContext: () => import("./interfaces").ContextOptions;
|
|
117
|
-
getAccessToken: () => string | null;
|
|
118
|
-
getUser: () => import("./users/interfaces").IGetUsersV2Response | null;
|
|
119
|
-
onRedirectTo: (path: string, opts: import("./interfaces").RedirectOptions) => void;
|
|
120
|
-
logout: (callback?: (() => void) | undefined) => void;
|
|
121
|
-
};
|
|
122
|
-
getFronteggContext: (appName?: string) => {
|
|
123
116
|
getContext: () => import("./interfaces").ContextOptions;
|
|
124
117
|
getAccessToken: () => string | null;
|
|
125
118
|
setAccessToken: (accessToken: string | null) => void;
|
|
@@ -129,8 +122,12 @@ declare const _default: {
|
|
|
129
122
|
setOnRedirectTo: (onRedirectTo: (path: string, opts?: import("./interfaces").RedirectOptions | undefined) => void) => void;
|
|
130
123
|
logout: (callback?: (() => void) | undefined) => void;
|
|
131
124
|
getRequestSource: () => import("./interfaces").RequestSource | null;
|
|
125
|
+
setRequestSource: (requestSource: import("./interfaces").RequestSource | null) => void;
|
|
132
126
|
isSessionPerTenantEnabled: () => boolean;
|
|
133
127
|
shouldLoadEntitlements: () => boolean;
|
|
128
|
+
getAppName: () => string | null;
|
|
129
|
+
setEntitlementsOptions: (entitlementsOptions: import("./ContextHolder").EntitlementsOptions) => void;
|
|
130
|
+
setSessionContext: (sessionContext: import("./interfaces").SessionContext) => void;
|
|
134
131
|
};
|
|
135
132
|
api: {
|
|
136
133
|
auth: AuthenticationApi;
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license Frontegg v3.1.74-alpha.
|
|
1
|
+
/** @license Frontegg v3.1.74-alpha.9437859720
|
|
2
2
|
*
|
|
3
3
|
* This source code is licensed under the MIT license found in the
|
|
4
4
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,7 +7,7 @@ import { AuthStrategyEnum, MachineToMachineAuthStrategy, SocialLoginProviders }
|
|
|
7
7
|
import { ISubscriptionCancellationPolicy, ISubscriptionStatus, PaymentMethodType, ProviderType } from './subscriptions';
|
|
8
8
|
import { FronteggApiError } from './error';
|
|
9
9
|
import fetch, { FetchClient } from './FetchClient';
|
|
10
|
-
import { ContextHolder, FronteggContext
|
|
10
|
+
import { ContextHolder, FronteggContext } from './ContextHolder';
|
|
11
11
|
import DefaultAuthenticationApi, { AuthenticationApi } from './auth';
|
|
12
12
|
import DefaultUsersApi, { UsersApi } from './users';
|
|
13
13
|
import DefaultTeamsApi, { TeamsApi } from './teams';
|
|
@@ -108,13 +108,12 @@ const createApiClient = appName => ({
|
|
|
108
108
|
applications: new ApplicationsApi(appName)
|
|
109
109
|
});
|
|
110
110
|
|
|
111
|
-
export { fetch, FetchClient, ContextHolder, FronteggContext,
|
|
111
|
+
export { fetch, FetchClient, ContextHolder, FronteggContext, api, createApiClient, FronteggApiError, AuthStrategyEnum, SocialLoginProviders, ISubscriptionCancellationPolicy, ISubscriptionStatus, PaymentMethodType, ProviderType, MachineToMachineAuthStrategy };
|
|
112
112
|
export default {
|
|
113
113
|
fetch,
|
|
114
114
|
FetchClient,
|
|
115
115
|
ContextHolder,
|
|
116
116
|
FronteggContext,
|
|
117
|
-
getFronteggContext,
|
|
118
117
|
api,
|
|
119
118
|
createApiClient,
|
|
120
119
|
FronteggApiError,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.FronteggContext = exports.ContextHolder = void 0;
|
|
7
7
|
|
|
8
8
|
class ContextHolder {
|
|
9
9
|
constructor() {
|
|
@@ -21,7 +21,19 @@ class ContextHolder {
|
|
|
21
21
|
this.sessionContext = void 0;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
static default() {
|
|
25
|
+
return ContextHolder.getInstance(DEFAULT_APP_NAME);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static for(appName) {
|
|
29
|
+
return ContextHolder.getInstance(appName);
|
|
30
|
+
}
|
|
31
|
+
|
|
24
32
|
static getInstance(appName = 'default') {
|
|
33
|
+
if (!ContextHolder._apps) {
|
|
34
|
+
ContextHolder._apps = {};
|
|
35
|
+
}
|
|
36
|
+
|
|
25
37
|
if (ContextHolder._apps[appName]) {
|
|
26
38
|
return ContextHolder._apps[appName];
|
|
27
39
|
}
|
|
@@ -30,52 +42,106 @@ class ContextHolder {
|
|
|
30
42
|
return ContextHolder._apps[appName];
|
|
31
43
|
}
|
|
32
44
|
|
|
45
|
+
static createInstance(appName = 'default') {
|
|
46
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
47
|
+
ContextHolder._apps[appName].appName = appName;
|
|
48
|
+
return ContextHolder._apps[appName];
|
|
49
|
+
}
|
|
50
|
+
|
|
33
51
|
static setContext(context, appName = 'default') {
|
|
34
|
-
ContextHolder.
|
|
52
|
+
ContextHolder.for(appName).context = context;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
setContext(context) {
|
|
56
|
+
this.context = context;
|
|
35
57
|
}
|
|
36
58
|
|
|
37
59
|
static setAccessToken(accessToken, appName = 'default') {
|
|
38
|
-
ContextHolder.
|
|
60
|
+
ContextHolder.for(appName).accessToken = accessToken;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
setAccessToken(accessToken) {
|
|
64
|
+
this.accessToken = accessToken;
|
|
39
65
|
}
|
|
40
66
|
|
|
41
67
|
static setUser(user, appName = 'default') {
|
|
42
|
-
ContextHolder.
|
|
68
|
+
ContextHolder.for(appName).user = user;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
setUser(user) {
|
|
72
|
+
this.user = user;
|
|
43
73
|
}
|
|
44
74
|
|
|
45
75
|
static setRequestSource(requestSource, appName = 'default') {
|
|
46
|
-
ContextHolder.
|
|
76
|
+
ContextHolder.for(appName).requestSource = requestSource;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
setRequestSource(requestSource) {
|
|
80
|
+
this.requestSource = requestSource;
|
|
47
81
|
}
|
|
48
82
|
|
|
49
83
|
static setOnRedirectTo(onRedirectTo, appName = 'default') {
|
|
50
|
-
ContextHolder.
|
|
84
|
+
ContextHolder.for(appName).onRedirectTo = onRedirectTo;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
setOnRedirectTo(onRedirectTo) {
|
|
88
|
+
this.onRedirectTo = onRedirectTo;
|
|
51
89
|
}
|
|
52
90
|
|
|
53
91
|
static setLogout(logout, logoutUrl, appName = 'default') {
|
|
54
|
-
ContextHolder.
|
|
92
|
+
const context = ContextHolder.for(appName);
|
|
93
|
+
|
|
94
|
+
context.logout = callback => {
|
|
55
95
|
if (!callback) {
|
|
56
|
-
|
|
96
|
+
context.onRedirectTo(logoutUrl, undefined);
|
|
57
97
|
} else {
|
|
58
98
|
logout(callback);
|
|
59
99
|
}
|
|
60
100
|
};
|
|
61
101
|
}
|
|
62
102
|
|
|
103
|
+
setLogout(logout) {
|
|
104
|
+
this.logout = logout;
|
|
105
|
+
}
|
|
106
|
+
|
|
63
107
|
static setEntitlementsOptions(entitlementsOptions, appName = 'default') {
|
|
64
|
-
ContextHolder.
|
|
108
|
+
ContextHolder.for(appName).entitlementsOptions = entitlementsOptions;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
setEntitlementsOptions(entitlementsOptions) {
|
|
112
|
+
this.entitlementsOptions = entitlementsOptions;
|
|
65
113
|
}
|
|
66
114
|
|
|
67
115
|
static setSessionContext(sessionContext, appName = 'default') {
|
|
68
|
-
ContextHolder.
|
|
116
|
+
ContextHolder.for(appName).sessionContext = sessionContext;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
setSessionContext(sessionContext) {
|
|
120
|
+
this.sessionContext = sessionContext;
|
|
69
121
|
}
|
|
70
122
|
|
|
71
123
|
static setAppName(appName) {
|
|
72
|
-
ContextHolder.
|
|
124
|
+
ContextHolder.for(appName).appName = appName;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
setAppName(appName) {
|
|
128
|
+
this.appName = appName;
|
|
73
129
|
}
|
|
74
130
|
|
|
75
131
|
static getContext(appName = 'default') {
|
|
76
|
-
var _ContextHolder$
|
|
132
|
+
var _ContextHolder$for$co;
|
|
77
133
|
|
|
78
|
-
return (_ContextHolder$
|
|
134
|
+
return (_ContextHolder$for$co = ContextHolder.for(appName).context) != null ? _ContextHolder$for$co : {
|
|
135
|
+
baseUrl: window.location.href,
|
|
136
|
+
tokenResolver: () => 'my-authentication-token',
|
|
137
|
+
logLevel: 'error'
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
getContext() {
|
|
142
|
+
var _this$context;
|
|
143
|
+
|
|
144
|
+
return (_this$context = this.context) != null ? _this$context : {
|
|
79
145
|
baseUrl: window.location.href,
|
|
80
146
|
tokenResolver: () => 'my-authentication-token',
|
|
81
147
|
logLevel: 'error'
|
|
@@ -83,66 +149,89 @@ class ContextHolder {
|
|
|
83
149
|
}
|
|
84
150
|
|
|
85
151
|
static getAccessToken(appName = 'default') {
|
|
86
|
-
return ContextHolder.
|
|
152
|
+
return ContextHolder.for(appName).accessToken;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
getAccessToken() {
|
|
156
|
+
return this.accessToken;
|
|
87
157
|
}
|
|
88
158
|
|
|
89
159
|
static getRequestSource(appName = 'default') {
|
|
90
|
-
return ContextHolder.
|
|
160
|
+
return ContextHolder.for(appName).requestSource;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
getRequestSource() {
|
|
164
|
+
return this.requestSource;
|
|
91
165
|
}
|
|
92
166
|
|
|
93
167
|
static getUser(appName = 'default') {
|
|
94
|
-
return ContextHolder.
|
|
168
|
+
return ContextHolder.for(appName).user;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
getUser() {
|
|
172
|
+
return this.user;
|
|
95
173
|
}
|
|
96
174
|
|
|
97
175
|
static onRedirectTo(path, opts, appName = 'default') {
|
|
98
|
-
return ContextHolder.
|
|
176
|
+
return ContextHolder.for(appName).onRedirectTo(path, opts);
|
|
99
177
|
}
|
|
100
178
|
|
|
101
179
|
static logout(callback, appName = 'default') {
|
|
102
|
-
return ContextHolder.
|
|
180
|
+
return ContextHolder.for(appName).logout(callback);
|
|
103
181
|
}
|
|
104
182
|
|
|
105
183
|
static shouldLoadEntitlements(appName = 'default') {
|
|
106
|
-
var _ContextHolder$
|
|
184
|
+
var _ContextHolder$for$en;
|
|
107
185
|
|
|
108
|
-
return ((_ContextHolder$
|
|
186
|
+
return ((_ContextHolder$for$en = ContextHolder.for(appName).entitlementsOptions) == null ? void 0 : _ContextHolder$for$en.enabled) || false;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
shouldLoadEntitlements() {
|
|
190
|
+
var _this$entitlementsOpt;
|
|
191
|
+
|
|
192
|
+
return ((_this$entitlementsOpt = this.entitlementsOptions) == null ? void 0 : _this$entitlementsOpt.enabled) || false;
|
|
109
193
|
}
|
|
110
194
|
|
|
111
195
|
static isSessionPerTenantEnabled(appName = 'default') {
|
|
112
|
-
var _ContextHolder$
|
|
196
|
+
var _ContextHolder$for$se;
|
|
113
197
|
|
|
114
|
-
return ((_ContextHolder$
|
|
198
|
+
return ((_ContextHolder$for$se = ContextHolder.for(appName).sessionContext) == null ? void 0 : _ContextHolder$for$se.enableSessionPerTenant) || false;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
isSessionPerTenantEnabled() {
|
|
202
|
+
var _this$sessionContext;
|
|
203
|
+
|
|
204
|
+
return ((_this$sessionContext = this.sessionContext) == null ? void 0 : _this$sessionContext.enableSessionPerTenant) || false;
|
|
115
205
|
}
|
|
116
206
|
|
|
117
207
|
static getAppName(appName = 'default') {
|
|
118
|
-
return ContextHolder.
|
|
208
|
+
return ContextHolder.for(appName).appName;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
getAppName() {
|
|
212
|
+
return this.appName;
|
|
119
213
|
}
|
|
120
214
|
|
|
121
215
|
}
|
|
122
216
|
|
|
123
217
|
exports.ContextHolder = ContextHolder;
|
|
124
218
|
ContextHolder._apps = void 0;
|
|
219
|
+
const DEFAULT_APP_NAME = 'default';
|
|
125
220
|
const FronteggContext = {
|
|
126
|
-
getContext: () => ContextHolder.getContext(),
|
|
127
|
-
getAccessToken: () => ContextHolder.getAccessToken(),
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
221
|
+
getContext: () => ContextHolder.getContext(DEFAULT_APP_NAME),
|
|
222
|
+
getAccessToken: () => ContextHolder.getAccessToken(DEFAULT_APP_NAME),
|
|
223
|
+
setAccessToken: accessToken => ContextHolder.setAccessToken(accessToken, DEFAULT_APP_NAME),
|
|
224
|
+
getUser: () => ContextHolder.getUser(DEFAULT_APP_NAME),
|
|
225
|
+
setUser: user => ContextHolder.setUser(user, DEFAULT_APP_NAME),
|
|
226
|
+
onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts, DEFAULT_APP_NAME),
|
|
227
|
+
setOnRedirectTo: onRedirectTo => ContextHolder.setOnRedirectTo(onRedirectTo, DEFAULT_APP_NAME),
|
|
228
|
+
logout: callback => ContextHolder.logout(callback, DEFAULT_APP_NAME),
|
|
229
|
+
getRequestSource: () => ContextHolder.getRequestSource(DEFAULT_APP_NAME),
|
|
230
|
+
setRequestSource: requestSource => ContextHolder.setRequestSource(requestSource, DEFAULT_APP_NAME),
|
|
231
|
+
isSessionPerTenantEnabled: () => ContextHolder.isSessionPerTenantEnabled(DEFAULT_APP_NAME),
|
|
232
|
+
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(DEFAULT_APP_NAME),
|
|
233
|
+
getAppName: () => ContextHolder.getAppName(DEFAULT_APP_NAME),
|
|
234
|
+
setEntitlementsOptions: entitlementsOptions => ContextHolder.setEntitlementsOptions(entitlementsOptions, DEFAULT_APP_NAME),
|
|
235
|
+
setSessionContext: sessionContext => ContextHolder.setSessionContext(sessionContext, DEFAULT_APP_NAME)
|
|
131
236
|
};
|
|
132
|
-
exports.FronteggContext = FronteggContext;
|
|
133
|
-
|
|
134
|
-
const getFronteggContext = (appName = 'default') => ({
|
|
135
|
-
getContext: () => ContextHolder.getContext(appName),
|
|
136
|
-
getAccessToken: () => ContextHolder.getAccessToken(appName),
|
|
137
|
-
setAccessToken: accessToken => ContextHolder.setAccessToken(accessToken, appName),
|
|
138
|
-
getUser: () => ContextHolder.getUser(appName),
|
|
139
|
-
setUser: user => ContextHolder.setUser(user, appName),
|
|
140
|
-
onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts, appName),
|
|
141
|
-
setOnRedirectTo: onRedirectTo => ContextHolder.setOnRedirectTo(onRedirectTo, appName),
|
|
142
|
-
logout: callback => ContextHolder.logout(callback, appName),
|
|
143
|
-
getRequestSource: () => ContextHolder.getRequestSource(appName),
|
|
144
|
-
isSessionPerTenantEnabled: () => ContextHolder.isSessionPerTenantEnabled(appName),
|
|
145
|
-
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(appName)
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
exports.getFronteggContext = getFronteggContext;
|
|
237
|
+
exports.FronteggContext = FronteggContext;
|
package/node/FetchClient.js
CHANGED
|
@@ -22,7 +22,7 @@ class FetchClient {
|
|
|
22
22
|
this.appName = void 0;
|
|
23
23
|
|
|
24
24
|
this.getFronteggContext = () => {
|
|
25
|
-
return
|
|
25
|
+
return _ContextHolder.ContextHolder.for(this.appName);
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
this.prepareUrl = async (url, params) => {
|
|
@@ -135,7 +135,7 @@ class FetchClient {
|
|
|
135
135
|
this.sendRequest = async opts => {
|
|
136
136
|
var _opts$method, _ref, _opts$credentials;
|
|
137
137
|
|
|
138
|
-
const context =
|
|
138
|
+
const context = this.getFronteggContext().getContext();
|
|
139
139
|
const headers = await this.buildRequestHeaders(opts.contentType);
|
|
140
140
|
const url = await this.prepareUrl(opts.url, opts.params);
|
|
141
141
|
const response = await fetch(url, {
|
package/node/auth/index.js
CHANGED
|
@@ -84,8 +84,6 @@ var _utils = require("./utils");
|
|
|
84
84
|
|
|
85
85
|
var _constants2 = require("../constants");
|
|
86
86
|
|
|
87
|
-
var _ContextHolder = require("../ContextHolder");
|
|
88
|
-
|
|
89
87
|
var _jwt = require("../jwt");
|
|
90
88
|
|
|
91
89
|
var _interfaces = require("./interfaces");
|
|
@@ -100,6 +98,8 @@ var _BaseApiClient = require("../BaseApiClient");
|
|
|
100
98
|
|
|
101
99
|
var _entitlements = require("../entitlements");
|
|
102
100
|
|
|
101
|
+
var _ContextHolder = require("../ContextHolder");
|
|
102
|
+
|
|
103
103
|
const _excluded = ["type"],
|
|
104
104
|
_excluded2 = ["type"],
|
|
105
105
|
_excluded3 = ["type"];
|
|
@@ -115,12 +115,13 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
115
115
|
return loginResponse;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
const contextHolder =
|
|
118
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
119
|
+
|
|
119
120
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
120
121
|
const me = await this.getMeAndEntitlements();
|
|
121
122
|
const decodedContent = loginResponse.accessToken ? (0, _jwt.jwtDecode)(loginResponse.accessToken) : {};
|
|
122
123
|
const user = (0, _extends2.default)({}, loginResponse, decodedContent, me);
|
|
123
|
-
|
|
124
|
+
contextHolder.setUser(user);
|
|
124
125
|
return user;
|
|
125
126
|
};
|
|
126
127
|
|
|
@@ -131,12 +132,13 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
131
132
|
};
|
|
132
133
|
}
|
|
133
134
|
|
|
134
|
-
const contextHolder =
|
|
135
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
136
|
+
|
|
135
137
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
136
138
|
const [me, tenants] = await Promise.all([this.getMeAndEntitlements(), this.tenantsApi.getTenants()]);
|
|
137
139
|
const decodedContent = loginResponse.accessToken ? (0, _jwt.jwtDecode)(loginResponse.accessToken) : {};
|
|
138
140
|
const user = (0, _extends2.default)({}, loginResponse, decodedContent, me);
|
|
139
|
-
|
|
141
|
+
contextHolder.setUser(user);
|
|
140
142
|
return {
|
|
141
143
|
user,
|
|
142
144
|
tenants
|
|
@@ -154,7 +156,8 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
154
156
|
};
|
|
155
157
|
}
|
|
156
158
|
|
|
157
|
-
const contextHolder =
|
|
159
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
160
|
+
|
|
158
161
|
contextHolder.setAccessToken(accessToken);
|
|
159
162
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), (0, _utils.getCurrentUserTenantsFunction)(this.appName)()]);
|
|
160
163
|
const decodedContent = accessToken ? (0, _jwt.jwtDecode)(accessToken) : {};
|
|
@@ -173,7 +176,8 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
173
176
|
};
|
|
174
177
|
|
|
175
178
|
this.generateLoginResponseFromOAuthResponse = async oauthResponse => {
|
|
176
|
-
const contextHolder =
|
|
179
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
180
|
+
|
|
177
181
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
178
182
|
const me = await this.getMeAndEntitlements();
|
|
179
183
|
const decodedContent = oauthResponse.id_token ? (0, _jwt.jwtDecode)(oauthResponse.id_token) : {};
|
|
@@ -189,7 +193,8 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
189
193
|
};
|
|
190
194
|
|
|
191
195
|
this.generateLoginResponseFromOAuthResponseV2 = async oauthResponse => {
|
|
192
|
-
const contextHolder =
|
|
196
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
197
|
+
|
|
193
198
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
194
199
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), (0, _utils.getCurrentUserTenantsFunction)(this.appName)()]);
|
|
195
200
|
const decodedContent = oauthResponse.id_token ? (0, _jwt.jwtDecode)(oauthResponse.id_token) : {};
|
|
@@ -980,7 +985,7 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
980
985
|
}
|
|
981
986
|
|
|
982
987
|
shouldLoadEntitlements() {
|
|
983
|
-
if (!
|
|
988
|
+
if (!_ContextHolder.ContextHolder.for(this.appName).shouldLoadEntitlements()) {
|
|
984
989
|
return false;
|
|
985
990
|
}
|
|
986
991
|
|
package/node/auth/utils.js
CHANGED
|
@@ -40,7 +40,7 @@ function removeTabTenantFromSessionStorage() {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
function getTabTenantFromSessionStorage(appName) {
|
|
43
|
-
if (!
|
|
43
|
+
if (!_ContextHolder.ContextHolder.for(appName).isSessionPerTenantEnabled()) {
|
|
44
44
|
return null;
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -52,7 +52,7 @@ function getCurrentUserTenantsFunction(appName) {
|
|
|
52
52
|
|
|
53
53
|
const [useCurrentUserTenantsV1] = _featureFlags.FeatureFlags.getFeatureFlags([_constants.USE_CURRENT_USER_TENANTS_V1_ENDPOINT_FF], appName);
|
|
54
54
|
|
|
55
|
-
if (
|
|
55
|
+
if (_ContextHolder.ContextHolder.for(appName).isSessionPerTenantEnabled()) {
|
|
56
56
|
return usersApi.getCurrentUserTenantsV1;
|
|
57
57
|
}
|
|
58
58
|
|
package/node/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license Frontegg v3.1.74-alpha.
|
|
1
|
+
/** @license Frontegg v3.1.74-alpha.9437859720
|
|
2
2
|
*
|
|
3
3
|
* This source code is licensed under the MIT license found in the
|
|
4
4
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -27,8 +27,7 @@ var _exportNames = {
|
|
|
27
27
|
fetch: true,
|
|
28
28
|
FetchClient: true,
|
|
29
29
|
ContextHolder: true,
|
|
30
|
-
FronteggContext: true
|
|
31
|
-
getFronteggContext: true
|
|
30
|
+
FronteggContext: true
|
|
32
31
|
};
|
|
33
32
|
Object.defineProperty(exports, "AuthStrategyEnum", {
|
|
34
33
|
enumerable: true,
|
|
@@ -115,12 +114,6 @@ Object.defineProperty(exports, "getCurrentUserTenantsFunction", {
|
|
|
115
114
|
return _auth.getCurrentUserTenantsFunction;
|
|
116
115
|
}
|
|
117
116
|
});
|
|
118
|
-
Object.defineProperty(exports, "getFronteggContext", {
|
|
119
|
-
enumerable: true,
|
|
120
|
-
get: function () {
|
|
121
|
-
return _ContextHolder.getFronteggContext;
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
117
|
Object.defineProperty(exports, "getTabTenantFromSessionStorage", {
|
|
125
118
|
enumerable: true,
|
|
126
119
|
get: function () {
|
|
@@ -629,7 +622,6 @@ var _default = {
|
|
|
629
622
|
FetchClient: _FetchClient.FetchClient,
|
|
630
623
|
ContextHolder: _ContextHolder.ContextHolder,
|
|
631
624
|
FronteggContext: _ContextHolder.FronteggContext,
|
|
632
|
-
getFronteggContext: _ContextHolder.getFronteggContext,
|
|
633
625
|
api,
|
|
634
626
|
createApiClient,
|
|
635
627
|
FronteggApiError: _error.FronteggApiError,
|
package/node/tenants/index.js
CHANGED
|
@@ -22,7 +22,7 @@ class TenantsApi extends _BaseApiClient.BaseApiClient {
|
|
|
22
22
|
super(appName);
|
|
23
23
|
|
|
24
24
|
this.switchTenant = async body => {
|
|
25
|
-
if (
|
|
25
|
+
if (_ContextHolder.ContextHolder.for(this.appName).isSessionPerTenantEnabled()) {
|
|
26
26
|
(0, _utils.setTabTenantInSessionStorage)(body.tenantId);
|
|
27
27
|
}
|
|
28
28
|
|
package/package.json
CHANGED
package/tenants/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import { urls } from '../constants';
|
|
3
3
|
import { setTabTenantInSessionStorage } from '../auth/utils';
|
|
4
|
-
import {
|
|
4
|
+
import { ContextHolder } from '../ContextHolder';
|
|
5
5
|
import { BaseApiClient } from '../BaseApiClient';
|
|
6
6
|
export class TenantsApi extends BaseApiClient {
|
|
7
7
|
constructor(appName) {
|
|
8
8
|
super(appName);
|
|
9
9
|
|
|
10
10
|
this.switchTenant = async body => {
|
|
11
|
-
if (
|
|
11
|
+
if (ContextHolder.for(this.appName).isSessionPerTenantEnabled()) {
|
|
12
12
|
setTabTenantInSessionStorage(body.tenantId);
|
|
13
13
|
}
|
|
14
14
|
|