@frontegg/rest-api 3.1.74-alpha.9436511986 → 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 +53 -29
- package/ContextHolder/index.js +133 -40
- package/FetchClient.d.ts +10 -3
- package/FetchClient.js +34 -12
- package/auth/index.js +9 -9
- package/auth/utils.js +3 -3
- package/index.d.ts +12 -36
- package/index.js +3 -4
- package/node/ContextHolder/index.js +134 -44
- package/node/FetchClient.js +29 -14
- package/node/auth/index.js +15 -10
- package/node/auth/utils.js +2 -2
- package/node/index.js +9 -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,112 +12,136 @@ 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
132
|
getContext: () => ContextOptions;
|
|
107
133
|
getAccessToken: () => string | null;
|
|
134
|
+
setAccessToken: (accessToken: string | null) => void;
|
|
108
135
|
getUser: () => IUserProfile | null;
|
|
109
|
-
|
|
110
|
-
logout: (callback?: (() => void) | undefined) => void;
|
|
111
|
-
};
|
|
112
|
-
export declare const getFronteggContext: (appName?: string) => {
|
|
113
|
-
getContext: () => ContextOptions;
|
|
114
|
-
getAccessToken: () => string | null;
|
|
115
|
-
getUser: () => IUserProfile | null;
|
|
136
|
+
setUser: (user: IUserProfile | null) => void;
|
|
116
137
|
onRedirectTo: (path: string, opts?: RedirectOptions | undefined) => void;
|
|
138
|
+
setOnRedirectTo: (onRedirectTo: (path: string, opts?: RedirectOptions | undefined) => void) => void;
|
|
117
139
|
logout: (callback?: (() => void) | undefined) => void;
|
|
118
140
|
getRequestSource: () => RequestSource | null;
|
|
119
|
-
|
|
120
|
-
setUser: (user: IUserProfile | null) => void;
|
|
141
|
+
setRequestSource: (requestSource: RequestSource | null) => void;
|
|
121
142
|
isSessionPerTenantEnabled: () => boolean;
|
|
122
143
|
shouldLoadEntitlements: () => boolean;
|
|
144
|
+
getAppName: () => string | null;
|
|
145
|
+
setEntitlementsOptions: (entitlementsOptions: EntitlementsOptions) => void;
|
|
146
|
+
setSessionContext: (sessionContext: SessionContext) => void;
|
|
123
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,59 +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
|
-
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(appName)
|
|
134
|
-
});
|
|
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.d.ts
CHANGED
|
@@ -22,10 +22,17 @@ export declare class FetchClient {
|
|
|
22
22
|
extractHeadersFromOptions: (options?: UserJwtOptions) => {
|
|
23
23
|
Authorization?: string;
|
|
24
24
|
};
|
|
25
|
+
/** @deprecated use getContextBaseUrl instead */
|
|
26
|
+
static getBaseUrl: (context: ContextOptions, url: string, withFronteggPrefix?: boolean) => string;
|
|
27
|
+
/** @deprecated use getContextBaseUrl instead */
|
|
28
|
+
getBaseUrl: (context: ContextOptions, url: string, withFronteggPrefix?: boolean) => string;
|
|
29
|
+
getContextBaseUrl: (url: string, withFronteggPrefix?: boolean) => string;
|
|
30
|
+
static getMetadataHeaders: (context: ContextOptions) => Record<string, string>;
|
|
31
|
+
/** @deprecated - use getContextMetadataHeaders instead */
|
|
32
|
+
getMetadataHeaders: (context: ContextOptions) => Record<string, string>;
|
|
33
|
+
getContextMetadataHeaders: () => Record<string, string>;
|
|
34
|
+
static getScopedTenant: () => string | null;
|
|
25
35
|
}
|
|
26
|
-
export declare function getBaseUrl(context: ContextOptions, url: string, withFronteggPrefix?: boolean): string;
|
|
27
|
-
export declare function getMetadataHeaders(context: ContextOptions): Record<string, string>;
|
|
28
|
-
export declare function getScopedTenant(): string | null;
|
|
29
36
|
declare const _default: FetchClient;
|
|
30
37
|
/**
|
|
31
38
|
* import FetchClient and use it to make requests to the server for specific application
|
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,12 +8,12 @@ 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) => {
|
|
15
15
|
const context = this.getFronteggContext().getContext();
|
|
16
|
-
const baseUrl =
|
|
16
|
+
const baseUrl = this.getContextBaseUrl(url);
|
|
17
17
|
const paramsToSend = await this.buildQueryParams(context, params);
|
|
18
18
|
let finalUrl = url.startsWith('http') ? url : `${baseUrl}${url}`;
|
|
19
19
|
const hasKeys = Object.keys(paramsToSend).length > 0;
|
|
@@ -90,10 +90,10 @@ export class FetchClient {
|
|
|
90
90
|
|
|
91
91
|
const fronteggContext = this.getFronteggContext();
|
|
92
92
|
const context = fronteggContext.getContext();
|
|
93
|
-
const headers = getMetadataHeaders(context);
|
|
93
|
+
const headers = FetchClient.getMetadataHeaders(context);
|
|
94
94
|
const authToken = await ((_context$tokenResolve = context == null ? void 0 : context.tokenResolver) != null ? _context$tokenResolve : fronteggContext.getAccessToken)();
|
|
95
95
|
const requestSource = fronteggContext.getRequestSource();
|
|
96
|
-
const scopedTenant = getScopedTenant();
|
|
96
|
+
const scopedTenant = FetchClient.getScopedTenant();
|
|
97
97
|
|
|
98
98
|
if (contentType) {
|
|
99
99
|
headers[fronteggHeaders.contentType] = contentType;
|
|
@@ -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, {
|
|
@@ -232,11 +232,30 @@ export class FetchClient {
|
|
|
232
232
|
Authorization: options.jwt
|
|
233
233
|
} : {});
|
|
234
234
|
|
|
235
|
+
this.getBaseUrl = (context, url, withFronteggPrefix = true) => {
|
|
236
|
+
return FetchClient.getBaseUrl(context, url, withFronteggPrefix);
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
this.getContextBaseUrl = (url, withFronteggPrefix = true) => {
|
|
240
|
+
const context = this.getFronteggContext().getContext();
|
|
241
|
+
return this.getBaseUrl(context, url, withFronteggPrefix);
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
this.getMetadataHeaders = context => {
|
|
245
|
+
return FetchClient.getMetadataHeaders(context);
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
this.getContextMetadataHeaders = () => {
|
|
249
|
+
const context = this.getFronteggContext().getContext();
|
|
250
|
+
return FetchClient.getMetadataHeaders(context);
|
|
251
|
+
};
|
|
252
|
+
|
|
235
253
|
this.appName = appName;
|
|
236
254
|
}
|
|
237
255
|
|
|
238
256
|
}
|
|
239
|
-
|
|
257
|
+
|
|
258
|
+
FetchClient.getBaseUrl = (context, url, withFronteggPrefix = true) => {
|
|
240
259
|
let baseUrl;
|
|
241
260
|
|
|
242
261
|
if (typeof context.baseUrl === 'function') {
|
|
@@ -257,8 +276,9 @@ export function getBaseUrl(context, url, withFronteggPrefix = true) {
|
|
|
257
276
|
}
|
|
258
277
|
|
|
259
278
|
return baseUrl;
|
|
260
|
-
}
|
|
261
|
-
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
FetchClient.getMetadataHeaders = context => {
|
|
262
282
|
var _context$metadataHead, _context$metadataHead2;
|
|
263
283
|
|
|
264
284
|
const headers = {};
|
|
@@ -272,8 +292,9 @@ export function getMetadataHeaders(context) {
|
|
|
272
292
|
}
|
|
273
293
|
|
|
274
294
|
return headers;
|
|
275
|
-
}
|
|
276
|
-
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
FetchClient.getScopedTenant = () => {
|
|
277
298
|
const urlParams = new URLSearchParams(window.location.search);
|
|
278
299
|
const scopedTenant = urlParams.get('tenantId');
|
|
279
300
|
|
|
@@ -282,5 +303,6 @@ export function getScopedTenant() {
|
|
|
282
303
|
}
|
|
283
304
|
|
|
284
305
|
return null;
|
|
285
|
-
}
|
|
306
|
+
};
|
|
307
|
+
|
|
286
308
|
export default new FetchClient('default');
|
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
|
|