@frontegg/rest-api 3.1.74-alpha.9436935127 → 3.1.74-alpha.9437937621
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.d.ts +54 -0
- package/auth/index.js +37 -9
- package/auth/utils.js +3 -3
- package/index.d.ts +10 -9
- package/index.js +6 -4
- package/node/ContextHolder/index.js +134 -45
- package/node/FetchClient.js +2 -2
- package/node/auth/index.js +42 -10
- package/node/auth/utils.js +2 -2
- package/node/index.js +6 -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.d.ts
CHANGED
|
@@ -6,9 +6,11 @@ import { ISamlRolesGroup } from "../teams/interfaces";
|
|
|
6
6
|
import { IAcceptInvitation, IActivateAccount, IAllowedToRememberMfaDevice, ICreateSamlGroup, IDeleteApiToken, IDisableMfa, IEnrollMfaResponse, IForgotPassword, IGetActivateAccountStrategy, IGetActivateAccountStrategyResponse, IGetUserById, IGetUserPasswordConfig, ILogin, ILoginResponse, ILoginViaSocialLogin, ILoginViaSocialLoginResponse, ILoginWithMfa, IOidcPostLogin, IOidcConfiguration, IPostLogin, IPreLogin, IRecoverMFAToken, IResendActivationEmail, IResetPassword, ISamlConfiguration, ISamlVendorConfigResponse, ISignUpResponse, ISignUpUser, ISocialLoginProviderConfiguration, ITenantApiTokensData, IUpdateSamlConfiguration, IUpdateSamlGroup, IUpdateSamlRoles, IUpdateSamlVendorMetadata, IUpdateTenantApiTokensData, IUpdateUserApiTokensData, IUserApiTokensData, IUserIdResponse, IVendorConfig, IVerifyMfa, IVerifyMfaResponse, TestConfig, ISSOPublicConfiguration, IPreLoginWithIdpTypeResponse, IPasswordlessPreLogin, IPasswordlessPostLogin, ICreateSSODomain, IVerifyInviteToken, ISSODomain, ISSOConfigurationDefaultRoles, ISSOConfiguration, IUpdateSSOConfiguration, IOidcPostLoginV2, IExchangeOAuthTokens, IOAuthTokenResponse, ISocialLoginProviderConfigurationV2, ILoginResponseV2, IResetPhoneNumber, IVerifyResetPhoneNumber, IChangePhoneNumber, IVerifyResetPhoneNumberResponse, IResetPhoneNumberResponse, IWebAuthnPreLogin, IWebAuthnPostLogin, IVerifyNewWebAuthnDevice, IWebAuthnPreLoginResponse, ICreateNewDeviceSessionResponse, IAuthStrategiesConfig, ISessionResponse, IChangePhoneNumberWithVerification, IChangePhoneNumberWithVerificationResponse, IVerifyChangePhoneNumber, ISessionConfigurations, IResendInvitationEmail, IPreEnrollMFA, IEnrollMFAAuthenticatorApp, IPreEnrollMFASMS, IEnrollMFASMS, IEnrollMFAWebAuthn, IPreEnrollMFAAuthenticatorAppResponse, IPreEnrollMFAWebAuthnResponse, IVerifyMFAAuthenticatorApp, IPreVerifyMFA, IPreVerifyMFASMSResponse, IVerifyMFASMS, IPreVerifyMFAWebAuthnResponse, IVerifyMFAWebAuthn, IPreEnrollMFASMSResponse, IPreDisableMFASMSResponse, IDisableMFASMS, IDisableMFAWebAuthn, IPreDisableMFAWebAuthnResponse, UserMFADevicesResponse, WithoutMFAToken, IMFAStrategiesResponse, IOAuthLogout, IGetUserAccessTokens, IGetTenantAccessTokens, IDeleteAccessToken, ICreateTenantAccessTokenData, ICreateUserAccessTokenData, IWebAuthnDevices, ICustomSocialLoginProviderConfigurationV1, ILoginResponseV3, IPreVerifyMFAEmailCodeResponse, IVerifyMFAEmailCode, ICreateOrUpdateSSOConfigurationByMetadataUrl, GenerateStepUpRequest, GenerateStepUpResponse } from './interfaces';
|
|
7
7
|
import { IGetUserAuthorizationResponse, IUserProfile } from "../users/interfaces";
|
|
8
8
|
import { BaseApiClient } from '../BaseApiClient';
|
|
9
|
+
import { SecurityPolicyApi } from './secutiry-poilicy';
|
|
9
10
|
export declare class AuthenticationApi extends BaseApiClient {
|
|
10
11
|
private tenantsApi;
|
|
11
12
|
private entitlementsApi;
|
|
13
|
+
securityPolicy: SecurityPolicyApi;
|
|
12
14
|
constructor(appName: string);
|
|
13
15
|
generateLoginResponse: (loginResponse: ILoginResponse) => Promise<ILoginResponse>;
|
|
14
16
|
generateLoginResponseV2: (loginResponse: ILoginResponse) => Promise<ILoginResponseV2>;
|
|
@@ -765,6 +767,58 @@ export declare class AuthenticationApi extends BaseApiClient {
|
|
|
765
767
|
* This request returns the step up details to continue step up, or the generated login response when stepped up JWT received from the BE
|
|
766
768
|
*/
|
|
767
769
|
generateStepupSession: (body: GenerateStepUpRequest) => Promise<GenerateStepUpResponse | ILoginResponseV3>;
|
|
770
|
+
/** @deprecated use api.auth.securityPolicy.getGlobalSecurityPolicy() or api.securityPolicy.getGlobalSecurityPolicy() instead */
|
|
771
|
+
getGlobalSecurityPolicy: () => Promise<import("./interfaces").ISecurityPolicy>;
|
|
772
|
+
/** @deprecated use api.auth.securityPolicy.getMfaPolicy() or api.securityPolicy.getMfaPolicy() instead */
|
|
773
|
+
getMfaPolicy: () => Promise<import("./interfaces").ISecurityPolicyMfa>;
|
|
774
|
+
/** @deprecated use api.auth.securityPolicy.getVendorMfaPolicy() or api.securityPolicy.getVendorMfaPolicy() instead */
|
|
775
|
+
getVendorMfaPolicy: () => Promise<import("./interfaces").ISecurityPolicyMfa>;
|
|
776
|
+
/** @deprecated use api.auth.securityPolicy.saveMfaPolicy() or api.securityPolicy.saveMfaPolicy() instead */
|
|
777
|
+
saveMfaPolicy: (body: import("./interfaces").ISaveSecurityPolicyMfa) => Promise<import("./interfaces").ISecurityPolicyMfa>;
|
|
778
|
+
/** @deprecated use api.auth.securityPolicy.getLockoutPolicy() or api.securityPolicy.getLockoutPolicy() instead */
|
|
779
|
+
getLockoutPolicy: () => Promise<import("./interfaces").ISecurityPolicyLockout>;
|
|
780
|
+
/** @deprecated use api.auth.securityPolicy.getVendorLockoutPolicy() or api.securityPolicy.getVendorLockoutPolicy() instead */
|
|
781
|
+
getVendorLockoutPolicy: () => Promise<import("./interfaces").ISecurityPolicyLockout>;
|
|
782
|
+
/** @deprecated use api.auth.securityPolicy.saveLockoutPolicy() or api.securityPolicy.saveLockoutPolicy() instead */
|
|
783
|
+
saveLockoutPolicy: (body: import("./interfaces").ISaveSecurityPolicyLockout) => Promise<import("./interfaces").ISecurityPolicyLockout>;
|
|
784
|
+
/** @deprecated use api.auth.securityPolicy.getCaptchaPolicy() or api.securityPolicy.getCaptchaPolicy() instead */
|
|
785
|
+
getCaptchaPolicy: () => Promise<import("./interfaces").ISecurityPolicyCaptcha | null>;
|
|
786
|
+
/** @deprecated use api.auth.securityPolicy.getPasswordHistoryPolicy() or api.securityPolicy.getPasswordHistoryPolicy() instead */
|
|
787
|
+
getPasswordHistoryPolicy: () => Promise<import("./interfaces").ISecurityPolicyPasswordHistory>;
|
|
788
|
+
/** @deprecated use api.auth.securityPolicy.getVendorPasswordHistoryPolicy() or api.securityPolicy.getVendorPasswordHistoryPolicy() instead */
|
|
789
|
+
getVendorPasswordHistoryPolicy: () => Promise<import("./interfaces").ISecurityPolicyPasswordHistory>;
|
|
790
|
+
/** @deprecated use api.auth.securityPolicy.savePasswordHistoryPolicy() or api.securityPolicy.savePasswordHistoryPolicy() instead */
|
|
791
|
+
savePasswordHistoryPolicy: (body: import("./interfaces").ISaveSecurityPolicyPasswordHistory) => Promise<import("./interfaces").ISecurityPolicyPasswordHistory>;
|
|
792
|
+
/** @deprecated use api.auth.securityPolicy.getPasswordConfigPolicy() or api.securityPolicy.getPasswordConfigPolicy() instead */
|
|
793
|
+
getPasswordConfigPolicy: () => Promise<Partial<TestConfig>>;
|
|
794
|
+
/** @deprecated use api.auth.securityPolicy.getDomainRestrictions() or api.securityPolicy.getDomainRestrictions() instead */
|
|
795
|
+
getDomainRestrictions: () => Promise<{
|
|
796
|
+
items: import("./interfaces").DomainRestriction[];
|
|
797
|
+
}>;
|
|
798
|
+
/** @deprecated use api.auth.securityPolicy.getDomainRestrictionsConfig() or api.securityPolicy.getDomainRestrictionsConfig() instead */
|
|
799
|
+
getDomainRestrictionsConfig: () => Promise<import("./interfaces").DomainRestrictionConfig>;
|
|
800
|
+
/** @deprecated use api.auth.securityPolicy.createDomainRestriction() or api.securityPolicy.createDomainRestriction() instead */
|
|
801
|
+
createDomainRestriction: (body: import("./interfaces").CreateDomainRestriction) => Promise<import("./interfaces").DomainRestriction>;
|
|
802
|
+
/** @deprecated use api.auth.securityPolicy.updateDomainRestrictionConfig() or api.securityPolicy.updateDomainRestrictionConfig() instead */
|
|
803
|
+
updateDomainRestrictionConfig: (body: import("./interfaces").UpdateDomainRestrictionsConfig) => Promise<import("./interfaces").DomainRestrictionConfig>;
|
|
804
|
+
/** @deprecated use api.auth.securityPolicy.deleteDomainRestriction() or api.securityPolicy.deleteDomainRestriction() instead */
|
|
805
|
+
deleteDomainRestriction: (id: string) => Promise<void>;
|
|
806
|
+
/** @deprecated use api.auth.securityPolicy.getIPRestrictions() or api.securityPolicy.getIPRestrictions() instead */
|
|
807
|
+
getIPRestrictions: (params: import("./interfaces").GetIPRestrictionsParams) => Promise<import("..").FronteggPaginationResult<import("./interfaces").IpRestriction[]>>;
|
|
808
|
+
/** @deprecated use api.auth.securityPolicy.getIPRestrictionsConfig() or api.securityPolicy.getIPRestrictionsConfig() instead */
|
|
809
|
+
getIPRestrictionsConfig: () => Promise<import("./interfaces").IPRestrictionsConfig>;
|
|
810
|
+
/** @deprecated use api.auth.securityPolicy.createIPRestriction() or api.securityPolicy.createIPRestriction() instead */
|
|
811
|
+
createIPRestriction: (body: import("./interfaces").CreateIpRestriction) => Promise<void>;
|
|
812
|
+
/** @deprecated use api.auth.securityPolicy.bulkCreateIPRestriction() or api.securityPolicy.bulkCreateIPRestriction() instead */
|
|
813
|
+
bulkCreateIPRestriction: (body: import("./interfaces").BulkCreateIpRestriction) => Promise<void>;
|
|
814
|
+
/** @deprecated use api.auth.securityPolicy.updateIPRestrictionConfig() or api.securityPolicy.updateIPRestrictionConfig() instead */
|
|
815
|
+
updateIPRestrictionConfig: (body: import("./interfaces").IPRestrictionsConfig) => Promise<void>;
|
|
816
|
+
/** @deprecated use api.auth.securityPolicy.deleteIPRestriction() or api.securityPolicy.deleteIPRestriction() instead */
|
|
817
|
+
deleteIPRestriction: (id: string) => Promise<void>;
|
|
818
|
+
/** @deprecated use api.auth.securityPolicy.testCurrentIp() or api.securityPolicy.testCurrentIp() instead */
|
|
819
|
+
testCurrentIp: () => Promise<import("./interfaces").IPValidResponse>;
|
|
820
|
+
/** @deprecated use api.auth.securityPolicy.testCurrentIpInAllowList() or api.securityPolicy.testCurrentIpInAllowList() instead */
|
|
821
|
+
testCurrentIpInAllowList: () => Promise<import("./interfaces").IPValidResponse>;
|
|
768
822
|
}
|
|
769
823
|
declare const _default: AuthenticationApi;
|
|
770
824
|
export default _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,25 +16,28 @@ 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
|
+
import { SecurityPolicyApi } from './secutiry-poilicy';
|
|
20
21
|
export class AuthenticationApi extends BaseApiClient {
|
|
21
22
|
constructor(appName) {
|
|
22
23
|
super(appName);
|
|
23
24
|
this.tenantsApi = new TenantsApi(this.appName);
|
|
24
25
|
this.entitlementsApi = new EntitlementsApi(this.appName);
|
|
26
|
+
this.securityPolicy = new SecurityPolicyApi(this.appName);
|
|
25
27
|
|
|
26
28
|
this.generateLoginResponse = async loginResponse => {
|
|
27
29
|
if (!loginResponse.accessToken) {
|
|
28
30
|
return loginResponse;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
const contextHolder =
|
|
33
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
32
34
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
33
35
|
const me = await this.getMeAndEntitlements();
|
|
34
36
|
const decodedContent = loginResponse.accessToken ? jwtDecode(loginResponse.accessToken) : {};
|
|
35
37
|
|
|
36
38
|
const user = _extends({}, loginResponse, decodedContent, me);
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
contextHolder.setUser(user);
|
|
39
41
|
return user;
|
|
40
42
|
};
|
|
41
43
|
|
|
@@ -46,14 +48,14 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
|
|
49
|
-
const contextHolder =
|
|
51
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
50
52
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
51
53
|
const [me, tenants] = await Promise.all([this.getMeAndEntitlements(), this.tenantsApi.getTenants()]);
|
|
52
54
|
const decodedContent = loginResponse.accessToken ? jwtDecode(loginResponse.accessToken) : {};
|
|
53
55
|
|
|
54
56
|
const user = _extends({}, loginResponse, decodedContent, me);
|
|
55
57
|
|
|
56
|
-
|
|
58
|
+
contextHolder.setUser(user);
|
|
57
59
|
return {
|
|
58
60
|
user,
|
|
59
61
|
tenants
|
|
@@ -71,7 +73,7 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
71
73
|
};
|
|
72
74
|
}
|
|
73
75
|
|
|
74
|
-
const contextHolder =
|
|
76
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
75
77
|
contextHolder.setAccessToken(accessToken);
|
|
76
78
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), getCurrentUserTenantsFunction(this.appName)()]);
|
|
77
79
|
const decodedContent = accessToken ? jwtDecode(accessToken) : {};
|
|
@@ -91,7 +93,7 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
91
93
|
};
|
|
92
94
|
|
|
93
95
|
this.generateLoginResponseFromOAuthResponse = async oauthResponse => {
|
|
94
|
-
const contextHolder =
|
|
96
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
95
97
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
96
98
|
const me = await this.getMeAndEntitlements();
|
|
97
99
|
const decodedContent = oauthResponse.id_token ? jwtDecode(oauthResponse.id_token) : {};
|
|
@@ -109,7 +111,7 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
109
111
|
};
|
|
110
112
|
|
|
111
113
|
this.generateLoginResponseFromOAuthResponseV2 = async oauthResponse => {
|
|
112
|
-
const contextHolder =
|
|
114
|
+
const contextHolder = ContextHolder.for(this.appName);
|
|
113
115
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
114
116
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), getCurrentUserTenantsFunction(this.appName)()]);
|
|
115
117
|
const decodedContent = oauthResponse.id_token ? jwtDecode(oauthResponse.id_token) : {};
|
|
@@ -901,10 +903,36 @@ export class AuthenticationApi extends BaseApiClient {
|
|
|
901
903
|
|
|
902
904
|
return this.generateLoginResponseV3(data);
|
|
903
905
|
};
|
|
906
|
+
|
|
907
|
+
this.getGlobalSecurityPolicy = this.securityPolicy.getGlobalSecurityPolicy.bind(this.securityPolicy);
|
|
908
|
+
this.getMfaPolicy = this.securityPolicy.getMfaPolicy.bind(this.securityPolicy);
|
|
909
|
+
this.getVendorMfaPolicy = this.securityPolicy.getVendorMfaPolicy.bind(this.securityPolicy);
|
|
910
|
+
this.saveMfaPolicy = this.securityPolicy.saveMfaPolicy.bind(this.securityPolicy);
|
|
911
|
+
this.getLockoutPolicy = this.securityPolicy.getLockoutPolicy.bind(this.securityPolicy);
|
|
912
|
+
this.getVendorLockoutPolicy = this.securityPolicy.getVendorLockoutPolicy.bind(this.securityPolicy);
|
|
913
|
+
this.saveLockoutPolicy = this.securityPolicy.saveLockoutPolicy.bind(this.securityPolicy);
|
|
914
|
+
this.getCaptchaPolicy = this.securityPolicy.getCaptchaPolicy.bind(this.securityPolicy);
|
|
915
|
+
this.getPasswordHistoryPolicy = this.securityPolicy.getPasswordHistoryPolicy.bind(this.securityPolicy);
|
|
916
|
+
this.getVendorPasswordHistoryPolicy = this.securityPolicy.getVendorPasswordHistoryPolicy.bind(this.securityPolicy);
|
|
917
|
+
this.savePasswordHistoryPolicy = this.securityPolicy.savePasswordHistoryPolicy.bind(this.securityPolicy);
|
|
918
|
+
this.getPasswordConfigPolicy = this.securityPolicy.getPasswordConfigPolicy.bind(this.securityPolicy);
|
|
919
|
+
this.getDomainRestrictions = this.securityPolicy.getDomainRestrictions.bind(this.securityPolicy);
|
|
920
|
+
this.getDomainRestrictionsConfig = this.securityPolicy.getDomainRestrictionsConfig.bind(this.securityPolicy);
|
|
921
|
+
this.createDomainRestriction = this.securityPolicy.createDomainRestriction.bind(this.securityPolicy);
|
|
922
|
+
this.updateDomainRestrictionConfig = this.securityPolicy.updateDomainRestrictionConfig.bind(this.securityPolicy);
|
|
923
|
+
this.deleteDomainRestriction = this.securityPolicy.deleteDomainRestriction.bind(this.securityPolicy);
|
|
924
|
+
this.getIPRestrictions = this.securityPolicy.getIPRestrictions.bind(this.securityPolicy);
|
|
925
|
+
this.getIPRestrictionsConfig = this.securityPolicy.getIPRestrictionsConfig.bind(this.securityPolicy);
|
|
926
|
+
this.createIPRestriction = this.securityPolicy.createIPRestriction.bind(this.securityPolicy);
|
|
927
|
+
this.bulkCreateIPRestriction = this.securityPolicy.bulkCreateIPRestriction.bind(this.securityPolicy);
|
|
928
|
+
this.updateIPRestrictionConfig = this.securityPolicy.updateIPRestrictionConfig.bind(this.securityPolicy);
|
|
929
|
+
this.deleteIPRestriction = this.securityPolicy.deleteIPRestriction.bind(this.securityPolicy);
|
|
930
|
+
this.testCurrentIp = this.securityPolicy.testCurrentIp.bind(this.securityPolicy);
|
|
931
|
+
this.testCurrentIpInAllowList = this.securityPolicy.testCurrentIpInAllowList.bind(this.securityPolicy);
|
|
904
932
|
}
|
|
905
933
|
|
|
906
934
|
shouldLoadEntitlements() {
|
|
907
|
-
if (!
|
|
935
|
+
if (!ContextHolder.for(this.appName).shouldLoadEntitlements()) {
|
|
908
936
|
return false;
|
|
909
937
|
}
|
|
910
938
|
|
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,8 +2,9 @@ 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
|
+
import { SecurityPolicyApi } from './auth/secutiry-poilicy';
|
|
7
8
|
import { UsersApi } from './users';
|
|
8
9
|
import { TeamsApi } from './teams';
|
|
9
10
|
import { MetadataApi } from './metadata';
|
|
@@ -60,6 +61,7 @@ export * from './applications/interfaces';
|
|
|
60
61
|
*/
|
|
61
62
|
declare const api: {
|
|
62
63
|
auth: AuthenticationApi;
|
|
64
|
+
securityPolicy: SecurityPolicyApi;
|
|
63
65
|
teams: TeamsApi;
|
|
64
66
|
metadata: MetadataApi;
|
|
65
67
|
reports: ReportsApi;
|
|
@@ -84,6 +86,7 @@ declare const api: {
|
|
|
84
86
|
};
|
|
85
87
|
export declare type FronteggApiClient = {
|
|
86
88
|
auth: AuthenticationApi;
|
|
89
|
+
securityPolicy: SecurityPolicyApi;
|
|
87
90
|
teams: TeamsApi;
|
|
88
91
|
metadata: MetadataApi;
|
|
89
92
|
reports: ReportsApi;
|
|
@@ -107,19 +110,12 @@ export declare type FronteggApiClient = {
|
|
|
107
110
|
applications: ApplicationsApi;
|
|
108
111
|
};
|
|
109
112
|
declare const createApiClient: (appName: string) => FronteggApiClient;
|
|
110
|
-
export { fetch, FetchClient, ContextHolder, FronteggContext,
|
|
113
|
+
export { fetch, FetchClient, ContextHolder, FronteggContext, api, createApiClient, FronteggApiError, AuthStrategyEnum, SocialLoginProviders, ISubscriptionCancellationPolicy, ISubscriptionStatus, PaymentMethodType, ProviderType, MachineToMachineAuthStrategy, };
|
|
111
114
|
declare const _default: {
|
|
112
115
|
fetch: FetchClient;
|
|
113
116
|
FetchClient: typeof FetchClient;
|
|
114
117
|
ContextHolder: typeof ContextHolder;
|
|
115
118
|
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
119
|
getContext: () => import("./interfaces").ContextOptions;
|
|
124
120
|
getAccessToken: () => string | null;
|
|
125
121
|
setAccessToken: (accessToken: string | null) => void;
|
|
@@ -129,11 +125,16 @@ declare const _default: {
|
|
|
129
125
|
setOnRedirectTo: (onRedirectTo: (path: string, opts?: import("./interfaces").RedirectOptions | undefined) => void) => void;
|
|
130
126
|
logout: (callback?: (() => void) | undefined) => void;
|
|
131
127
|
getRequestSource: () => import("./interfaces").RequestSource | null;
|
|
128
|
+
setRequestSource: (requestSource: import("./interfaces").RequestSource | null) => void;
|
|
132
129
|
isSessionPerTenantEnabled: () => boolean;
|
|
133
130
|
shouldLoadEntitlements: () => boolean;
|
|
131
|
+
getAppName: () => string | null;
|
|
132
|
+
setEntitlementsOptions: (entitlementsOptions: import("./ContextHolder").EntitlementsOptions) => void;
|
|
133
|
+
setSessionContext: (sessionContext: import("./interfaces").SessionContext) => void;
|
|
134
134
|
};
|
|
135
135
|
api: {
|
|
136
136
|
auth: AuthenticationApi;
|
|
137
|
+
securityPolicy: SecurityPolicyApi;
|
|
137
138
|
teams: TeamsApi;
|
|
138
139
|
metadata: MetadataApi;
|
|
139
140
|
reports: ReportsApi;
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license Frontegg v3.1.74-alpha.
|
|
1
|
+
/** @license Frontegg v3.1.74-alpha.9437937621
|
|
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,8 +7,9 @@ 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
|
+
import DefaultSecurityPolicyApi, { SecurityPolicyApi } from './auth/secutiry-poilicy';
|
|
12
13
|
import DefaultUsersApi, { UsersApi } from './users';
|
|
13
14
|
import DefaultTeamsApi, { TeamsApi } from './teams';
|
|
14
15
|
import DefaultMetadataApi, { MetadataApi } from './metadata';
|
|
@@ -60,6 +61,7 @@ export * from './user-phone-numbers/interfaces';
|
|
|
60
61
|
export * from './applications/interfaces';
|
|
61
62
|
const api = {
|
|
62
63
|
auth: DefaultAuthenticationApi,
|
|
64
|
+
securityPolicy: DefaultSecurityPolicyApi,
|
|
63
65
|
teams: DefaultTeamsApi,
|
|
64
66
|
metadata: DefaultMetadataApi,
|
|
65
67
|
reports: DefaultReportsApi,
|
|
@@ -85,6 +87,7 @@ const api = {
|
|
|
85
87
|
|
|
86
88
|
const createApiClient = appName => ({
|
|
87
89
|
auth: new AuthenticationApi(appName),
|
|
90
|
+
securityPolicy: new SecurityPolicyApi(appName),
|
|
88
91
|
teams: new TeamsApi(appName),
|
|
89
92
|
metadata: new MetadataApi(appName),
|
|
90
93
|
reports: new ReportsApi(appName),
|
|
@@ -108,13 +111,12 @@ const createApiClient = appName => ({
|
|
|
108
111
|
applications: new ApplicationsApi(appName)
|
|
109
112
|
});
|
|
110
113
|
|
|
111
|
-
export { fetch, FetchClient, ContextHolder, FronteggContext,
|
|
114
|
+
export { fetch, FetchClient, ContextHolder, FronteggContext, api, createApiClient, FronteggApiError, AuthStrategyEnum, SocialLoginProviders, ISubscriptionCancellationPolicy, ISubscriptionStatus, PaymentMethodType, ProviderType, MachineToMachineAuthStrategy };
|
|
112
115
|
export default {
|
|
113
116
|
fetch,
|
|
114
117
|
FetchClient,
|
|
115
118
|
ContextHolder,
|
|
116
119
|
FronteggContext,
|
|
117
|
-
getFronteggContext,
|
|
118
120
|
api,
|
|
119
121
|
createApiClient,
|
|
120
122
|
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"];
|
|
@@ -109,18 +109,20 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
109
109
|
super(appName);
|
|
110
110
|
this.tenantsApi = new _tenants.TenantsApi(this.appName);
|
|
111
111
|
this.entitlementsApi = new _entitlements.EntitlementsApi(this.appName);
|
|
112
|
+
this.securityPolicy = new _secutiryPoilicy.SecurityPolicyApi(this.appName);
|
|
112
113
|
|
|
113
114
|
this.generateLoginResponse = async loginResponse => {
|
|
114
115
|
if (!loginResponse.accessToken) {
|
|
115
116
|
return loginResponse;
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
const contextHolder =
|
|
119
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
120
|
+
|
|
119
121
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
120
122
|
const me = await this.getMeAndEntitlements();
|
|
121
123
|
const decodedContent = loginResponse.accessToken ? (0, _jwt.jwtDecode)(loginResponse.accessToken) : {};
|
|
122
124
|
const user = (0, _extends2.default)({}, loginResponse, decodedContent, me);
|
|
123
|
-
|
|
125
|
+
contextHolder.setUser(user);
|
|
124
126
|
return user;
|
|
125
127
|
};
|
|
126
128
|
|
|
@@ -131,12 +133,13 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
131
133
|
};
|
|
132
134
|
}
|
|
133
135
|
|
|
134
|
-
const contextHolder =
|
|
136
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
137
|
+
|
|
135
138
|
contextHolder.setAccessToken(loginResponse.accessToken);
|
|
136
139
|
const [me, tenants] = await Promise.all([this.getMeAndEntitlements(), this.tenantsApi.getTenants()]);
|
|
137
140
|
const decodedContent = loginResponse.accessToken ? (0, _jwt.jwtDecode)(loginResponse.accessToken) : {};
|
|
138
141
|
const user = (0, _extends2.default)({}, loginResponse, decodedContent, me);
|
|
139
|
-
|
|
142
|
+
contextHolder.setUser(user);
|
|
140
143
|
return {
|
|
141
144
|
user,
|
|
142
145
|
tenants
|
|
@@ -154,7 +157,8 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
154
157
|
};
|
|
155
158
|
}
|
|
156
159
|
|
|
157
|
-
const contextHolder =
|
|
160
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
161
|
+
|
|
158
162
|
contextHolder.setAccessToken(accessToken);
|
|
159
163
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), (0, _utils.getCurrentUserTenantsFunction)(this.appName)()]);
|
|
160
164
|
const decodedContent = accessToken ? (0, _jwt.jwtDecode)(accessToken) : {};
|
|
@@ -173,7 +177,8 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
173
177
|
};
|
|
174
178
|
|
|
175
179
|
this.generateLoginResponseFromOAuthResponse = async oauthResponse => {
|
|
176
|
-
const contextHolder =
|
|
180
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
181
|
+
|
|
177
182
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
178
183
|
const me = await this.getMeAndEntitlements();
|
|
179
184
|
const decodedContent = oauthResponse.id_token ? (0, _jwt.jwtDecode)(oauthResponse.id_token) : {};
|
|
@@ -189,7 +194,8 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
189
194
|
};
|
|
190
195
|
|
|
191
196
|
this.generateLoginResponseFromOAuthResponseV2 = async oauthResponse => {
|
|
192
|
-
const contextHolder =
|
|
197
|
+
const contextHolder = _ContextHolder.ContextHolder.for(this.appName);
|
|
198
|
+
|
|
193
199
|
contextHolder.setAccessToken(oauthResponse.id_token);
|
|
194
200
|
const [me, currentUserTenants] = await Promise.all([this.getMeAndEntitlements(), (0, _utils.getCurrentUserTenantsFunction)(this.appName)()]);
|
|
195
201
|
const decodedContent = oauthResponse.id_token ? (0, _jwt.jwtDecode)(oauthResponse.id_token) : {};
|
|
@@ -977,10 +983,36 @@ class AuthenticationApi extends _BaseApiClient.BaseApiClient {
|
|
|
977
983
|
|
|
978
984
|
return this.generateLoginResponseV3(data);
|
|
979
985
|
};
|
|
986
|
+
|
|
987
|
+
this.getGlobalSecurityPolicy = this.securityPolicy.getGlobalSecurityPolicy.bind(this.securityPolicy);
|
|
988
|
+
this.getMfaPolicy = this.securityPolicy.getMfaPolicy.bind(this.securityPolicy);
|
|
989
|
+
this.getVendorMfaPolicy = this.securityPolicy.getVendorMfaPolicy.bind(this.securityPolicy);
|
|
990
|
+
this.saveMfaPolicy = this.securityPolicy.saveMfaPolicy.bind(this.securityPolicy);
|
|
991
|
+
this.getLockoutPolicy = this.securityPolicy.getLockoutPolicy.bind(this.securityPolicy);
|
|
992
|
+
this.getVendorLockoutPolicy = this.securityPolicy.getVendorLockoutPolicy.bind(this.securityPolicy);
|
|
993
|
+
this.saveLockoutPolicy = this.securityPolicy.saveLockoutPolicy.bind(this.securityPolicy);
|
|
994
|
+
this.getCaptchaPolicy = this.securityPolicy.getCaptchaPolicy.bind(this.securityPolicy);
|
|
995
|
+
this.getPasswordHistoryPolicy = this.securityPolicy.getPasswordHistoryPolicy.bind(this.securityPolicy);
|
|
996
|
+
this.getVendorPasswordHistoryPolicy = this.securityPolicy.getVendorPasswordHistoryPolicy.bind(this.securityPolicy);
|
|
997
|
+
this.savePasswordHistoryPolicy = this.securityPolicy.savePasswordHistoryPolicy.bind(this.securityPolicy);
|
|
998
|
+
this.getPasswordConfigPolicy = this.securityPolicy.getPasswordConfigPolicy.bind(this.securityPolicy);
|
|
999
|
+
this.getDomainRestrictions = this.securityPolicy.getDomainRestrictions.bind(this.securityPolicy);
|
|
1000
|
+
this.getDomainRestrictionsConfig = this.securityPolicy.getDomainRestrictionsConfig.bind(this.securityPolicy);
|
|
1001
|
+
this.createDomainRestriction = this.securityPolicy.createDomainRestriction.bind(this.securityPolicy);
|
|
1002
|
+
this.updateDomainRestrictionConfig = this.securityPolicy.updateDomainRestrictionConfig.bind(this.securityPolicy);
|
|
1003
|
+
this.deleteDomainRestriction = this.securityPolicy.deleteDomainRestriction.bind(this.securityPolicy);
|
|
1004
|
+
this.getIPRestrictions = this.securityPolicy.getIPRestrictions.bind(this.securityPolicy);
|
|
1005
|
+
this.getIPRestrictionsConfig = this.securityPolicy.getIPRestrictionsConfig.bind(this.securityPolicy);
|
|
1006
|
+
this.createIPRestriction = this.securityPolicy.createIPRestriction.bind(this.securityPolicy);
|
|
1007
|
+
this.bulkCreateIPRestriction = this.securityPolicy.bulkCreateIPRestriction.bind(this.securityPolicy);
|
|
1008
|
+
this.updateIPRestrictionConfig = this.securityPolicy.updateIPRestrictionConfig.bind(this.securityPolicy);
|
|
1009
|
+
this.deleteIPRestriction = this.securityPolicy.deleteIPRestriction.bind(this.securityPolicy);
|
|
1010
|
+
this.testCurrentIp = this.securityPolicy.testCurrentIp.bind(this.securityPolicy);
|
|
1011
|
+
this.testCurrentIpInAllowList = this.securityPolicy.testCurrentIpInAllowList.bind(this.securityPolicy);
|
|
980
1012
|
}
|
|
981
1013
|
|
|
982
1014
|
shouldLoadEntitlements() {
|
|
983
|
-
if (!
|
|
1015
|
+
if (!_ContextHolder.ContextHolder.for(this.appName).shouldLoadEntitlements()) {
|
|
984
1016
|
return false;
|
|
985
1017
|
}
|
|
986
1018
|
|
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.9437937621
|
|
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 () {
|
|
@@ -150,6 +143,8 @@ var _FetchClient = _interopRequireWildcard(require("./FetchClient"));
|
|
|
150
143
|
|
|
151
144
|
var _ContextHolder = require("./ContextHolder");
|
|
152
145
|
|
|
146
|
+
var _secutiryPoilicy = _interopRequireWildcard(require("./auth/secutiry-poilicy"));
|
|
147
|
+
|
|
153
148
|
var _users = _interopRequireWildcard(require("./users"));
|
|
154
149
|
|
|
155
150
|
var _teams = _interopRequireWildcard(require("./teams"));
|
|
@@ -574,6 +569,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
574
569
|
|
|
575
570
|
const api = {
|
|
576
571
|
auth: _auth.default,
|
|
572
|
+
securityPolicy: _secutiryPoilicy.default,
|
|
577
573
|
teams: _teams.default,
|
|
578
574
|
metadata: _metadata.default,
|
|
579
575
|
reports: _reports.default,
|
|
@@ -600,6 +596,7 @@ exports.api = api;
|
|
|
600
596
|
|
|
601
597
|
const createApiClient = appName => ({
|
|
602
598
|
auth: new _auth.AuthenticationApi(appName),
|
|
599
|
+
securityPolicy: new _secutiryPoilicy.SecurityPolicyApi(appName),
|
|
603
600
|
teams: new _teams.TeamsApi(appName),
|
|
604
601
|
metadata: new _metadata.MetadataApi(appName),
|
|
605
602
|
reports: new _reports.ReportsApi(appName),
|
|
@@ -629,7 +626,6 @@ var _default = {
|
|
|
629
626
|
FetchClient: _FetchClient.FetchClient,
|
|
630
627
|
ContextHolder: _ContextHolder.ContextHolder,
|
|
631
628
|
FronteggContext: _ContextHolder.FronteggContext,
|
|
632
|
-
getFronteggContext: _ContextHolder.getFronteggContext,
|
|
633
629
|
api,
|
|
634
630
|
createApiClient,
|
|
635
631
|
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
|
|