@frontegg/rest-api 3.1.78 → 3.1.79-alpha.9987430273
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/BaseApiClient.d.ts +16 -0
- package/BaseApiClient.js +39 -0
- package/ContextHolder/index.d.ts +113 -28
- package/ContextHolder/index.js +163 -54
- package/FetchClient.d.ts +42 -0
- package/FetchClient.js +308 -0
- package/account-settings/index.d.ts +19 -7
- package/account-settings/index.js +23 -13
- package/applications/index.d.ts +49 -44
- package/applications/index.js +51 -37
- package/audits/index.d.ts +27 -15
- package/audits/index.js +27 -17
- package/auth/index.d.ts +817 -768
- package/auth/index.js +902 -721
- package/auth/secutiry-poilicy/index.d.ts +58 -102
- package/auth/secutiry-poilicy/index.js +122 -90
- package/auth/utils.d.ts +2 -2
- package/auth/utils.js +9 -8
- package/connectivity/index.d.ts +126 -27
- package/connectivity/index.js +147 -114
- package/directory/index.d.ts +31 -22
- package/directory/index.js +27 -15
- package/entitlements/index.d.ts +14 -8
- package/entitlements/index.js +12 -4
- package/feature-flags/index.d.ts +8 -2
- package/feature-flags/index.js +16 -8
- package/groups/index.d.ts +73 -49
- package/groups/index.js +64 -45
- package/impersonate/index.d.ts +15 -6
- package/impersonate/index.js +13 -5
- package/index.d.ts +154 -108
- package/index.js +109 -78
- package/interfaces.d.ts +10 -0
- package/metadata/index.d.ts +67 -7
- package/metadata/index.js +52 -32
- package/node/BaseApiClient.js +49 -0
- package/node/ContextHolder/index.js +163 -54
- package/node/FetchClient.js +326 -0
- package/node/account-settings/index.js +27 -16
- package/node/applications/index.js +51 -44
- package/node/audits/index.js +31 -20
- package/node/auth/index.js +768 -1035
- package/node/auth/secutiry-poilicy/index.js +125 -136
- package/node/auth/utils.js +9 -7
- package/node/connectivity/index.js +148 -187
- package/node/directory/index.js +29 -20
- package/node/entitlements/index.js +18 -5
- package/node/feature-flags/index.js +21 -9
- package/node/groups/index.js +65 -63
- package/node/impersonate/index.js +18 -5
- package/node/index.js +116 -71
- package/node/metadata/index.js +61 -52
- package/node/notifications/index.js +37 -27
- package/node/reports/index.js +78 -70
- package/node/roles/index.js +56 -51
- package/node/security-center/index.js +21 -9
- package/node/sub-tenants/index.js +90 -89
- package/node/subscriptions/index.js +69 -107
- package/node/subscriptions/invoices.js +25 -17
- package/node/subscriptions/managedSubscriptions.js +32 -27
- package/node/subscriptions/paymentMethods.js +27 -20
- package/node/subscriptions/paymentProviders.js +15 -6
- package/node/subscriptions/plans.js +17 -9
- package/node/subscriptions/providers/stripe/index.js +26 -21
- package/node/subscriptions/subscriptions.js +32 -27
- package/node/subscriptions/summaries.js +15 -6
- package/node/subscriptions/tenantConfiguration.js +17 -9
- package/node/subscriptions/vendorPublicConfigurations.js +15 -6
- package/node/teams/index.js +138 -148
- package/node/tenants/index.js +65 -60
- package/node/user-phone-numbers/index.js +32 -24
- package/node/users/index.js +58 -53
- package/node/vendor/index.js +17 -6
- package/notifications/index.d.ts +22 -16
- package/notifications/index.js +33 -22
- package/package.json +1 -1
- package/reports/index.d.ts +50 -44
- package/reports/index.js +75 -62
- package/roles/index.d.ts +44 -38
- package/roles/index.js +57 -41
- package/security-center/index.d.ts +14 -2
- package/security-center/index.js +15 -6
- package/sub-tenants/index.d.ts +57 -15
- package/sub-tenants/index.js +88 -68
- package/subscriptions/index.d.ts +56 -11
- package/subscriptions/index.js +58 -11
- package/subscriptions/invoices.d.ts +16 -13
- package/subscriptions/invoices.js +24 -14
- package/subscriptions/managedSubscriptions.d.ts +18 -15
- package/subscriptions/managedSubscriptions.js +33 -22
- package/subscriptions/paymentMethods.d.ts +16 -13
- package/subscriptions/paymentMethods.js +26 -17
- package/subscriptions/paymentProviders.d.ts +8 -5
- package/subscriptions/paymentProviders.js +11 -4
- package/subscriptions/plans.d.ts +11 -8
- package/subscriptions/plans.js +14 -6
- package/subscriptions/providers/stripe/index.d.ts +24 -21
- package/subscriptions/providers/stripe/index.js +27 -16
- package/subscriptions/subscriptions.d.ts +24 -21
- package/subscriptions/subscriptions.js +33 -22
- package/subscriptions/summaries.d.ts +7 -4
- package/subscriptions/summaries.js +10 -3
- package/subscriptions/tenantConfiguration.d.ts +6 -3
- package/subscriptions/tenantConfiguration.js +15 -7
- package/subscriptions/vendorPublicConfigurations.d.ts +5 -2
- package/subscriptions/vendorPublicConfigurations.js +11 -4
- package/teams/index.d.ts +37 -139
- package/teams/index.js +130 -99
- package/tenants/index.d.ts +25 -37
- package/tenants/index.js +62 -46
- package/user-phone-numbers/index.d.ts +32 -26
- package/user-phone-numbers/index.js +32 -19
- package/users/index.d.ts +21 -15
- package/users/index.js +60 -44
- package/vendor/index.d.ts +12 -6
- package/vendor/index.js +11 -4
- package/fetch.d.ts +0 -24
- package/fetch.js +0 -265
- package/node/fetch.js +0 -306
- package/node/subscriptions/providers/index.js +0 -18
- package/subscriptions/providers/index.d.ts +0 -1
- package/subscriptions/providers/index.js +0 -1
|
@@ -20,122 +20,231 @@ class ContextHolder {
|
|
|
20
20
|
this.appName = null;
|
|
21
21
|
this.sessionContext = void 0;
|
|
22
22
|
this.basename = null;
|
|
23
|
+
|
|
24
|
+
this.setContext = context => {
|
|
25
|
+
this.context = context;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
this.setAccessToken = accessToken => {
|
|
29
|
+
this.accessToken = accessToken;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
this.setUser = user => {
|
|
33
|
+
this.user = user;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
this.setRequestSource = requestSource => {
|
|
37
|
+
this.requestSource = requestSource;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
this.setOnRedirectTo = onRedirectTo => {
|
|
41
|
+
this.onRedirectTo = onRedirectTo;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
this.setLogout = logout => {
|
|
45
|
+
this.logout = logout;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
this.setEntitlementsOptions = entitlementsOptions => {
|
|
49
|
+
this.entitlementsOptions = entitlementsOptions;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
this.setSessionContext = sessionContext => {
|
|
53
|
+
this.sessionContext = sessionContext;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
this.setAppName = appName => {
|
|
57
|
+
this.appName = appName;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
this.getContext = () => {
|
|
61
|
+
var _this$context;
|
|
62
|
+
|
|
63
|
+
return (_this$context = this.context) != null ? _this$context : {
|
|
64
|
+
baseUrl: window.location.href,
|
|
65
|
+
tokenResolver: () => 'my-authentication-token',
|
|
66
|
+
logLevel: 'error'
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
this.getAccessToken = () => {
|
|
71
|
+
return this.accessToken;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
this.getRequestSource = () => {
|
|
75
|
+
return this.requestSource;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
this.getUser = () => {
|
|
79
|
+
return this.user;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
this.shouldLoadEntitlements = () => {
|
|
83
|
+
var _this$entitlementsOpt;
|
|
84
|
+
|
|
85
|
+
return ((_this$entitlementsOpt = this.entitlementsOptions) == null ? void 0 : _this$entitlementsOpt.enabled) || false;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
this.isSessionPerTenantEnabled = () => {
|
|
89
|
+
var _this$sessionContext;
|
|
90
|
+
|
|
91
|
+
return ((_this$sessionContext = this.sessionContext) == null ? void 0 : _this$sessionContext.enableSessionPerTenant) || false;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
this.getAppName = () => {
|
|
95
|
+
return this.appName;
|
|
96
|
+
};
|
|
23
97
|
}
|
|
24
98
|
|
|
25
|
-
static
|
|
26
|
-
|
|
27
|
-
|
|
99
|
+
static default() {
|
|
100
|
+
return ContextHolder.getInstance(DEFAULT_APP_NAME);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
static for(appName) {
|
|
104
|
+
return ContextHolder.getInstance(appName);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static getInstance(appName = 'default') {
|
|
108
|
+
if (!ContextHolder._apps) {
|
|
109
|
+
ContextHolder._apps = {};
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (ContextHolder._apps[appName]) {
|
|
113
|
+
return ContextHolder._apps[appName];
|
|
28
114
|
}
|
|
29
115
|
|
|
30
|
-
|
|
116
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
117
|
+
return ContextHolder._apps[appName];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static createInstance(appName = 'default') {
|
|
121
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
122
|
+
ContextHolder._apps[appName].appName = appName;
|
|
123
|
+
return ContextHolder._apps[appName];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
static setContext(context, appName = 'default') {
|
|
127
|
+
ContextHolder.for(appName).context = context;
|
|
31
128
|
}
|
|
32
129
|
|
|
33
|
-
static
|
|
34
|
-
ContextHolder.
|
|
130
|
+
static setAccessToken(accessToken, appName = DEFAULT_APP_NAME) {
|
|
131
|
+
ContextHolder.for(appName).accessToken = accessToken;
|
|
35
132
|
}
|
|
36
133
|
|
|
37
|
-
static
|
|
38
|
-
ContextHolder.
|
|
134
|
+
static setBasename(basename, appName = DEFAULT_APP_NAME) {
|
|
135
|
+
ContextHolder.for(appName).basename = basename;
|
|
39
136
|
}
|
|
40
137
|
|
|
41
|
-
|
|
42
|
-
|
|
138
|
+
setBasename(basename) {
|
|
139
|
+
this.basename = basename;
|
|
43
140
|
}
|
|
44
141
|
|
|
45
|
-
static
|
|
46
|
-
ContextHolder.
|
|
142
|
+
static setUser(user, appName = 'default') {
|
|
143
|
+
ContextHolder.for(appName).user = user;
|
|
47
144
|
}
|
|
48
145
|
|
|
49
|
-
static setRequestSource(requestSource) {
|
|
50
|
-
ContextHolder.
|
|
146
|
+
static setRequestSource(requestSource, appName = 'default') {
|
|
147
|
+
ContextHolder.for(appName).requestSource = requestSource;
|
|
51
148
|
}
|
|
52
149
|
|
|
53
|
-
static setOnRedirectTo(onRedirectTo) {
|
|
54
|
-
ContextHolder.
|
|
150
|
+
static setOnRedirectTo(onRedirectTo, appName = 'default') {
|
|
151
|
+
ContextHolder.for(appName).onRedirectTo = onRedirectTo;
|
|
55
152
|
}
|
|
56
153
|
|
|
57
|
-
static setLogout(logout, logoutUrl) {
|
|
58
|
-
ContextHolder.
|
|
154
|
+
static setLogout(logout, logoutUrl, appName = 'default') {
|
|
155
|
+
const context = ContextHolder.for(appName);
|
|
156
|
+
|
|
157
|
+
context.logout = callback => {
|
|
59
158
|
if (!callback) {
|
|
60
|
-
|
|
159
|
+
context.onRedirectTo(logoutUrl, undefined);
|
|
61
160
|
} else {
|
|
62
161
|
logout(callback);
|
|
63
162
|
}
|
|
64
163
|
};
|
|
65
164
|
}
|
|
66
165
|
|
|
67
|
-
static setEntitlementsOptions(entitlementsOptions) {
|
|
68
|
-
ContextHolder.
|
|
166
|
+
static setEntitlementsOptions(entitlementsOptions, appName = 'default') {
|
|
167
|
+
ContextHolder.for(appName).entitlementsOptions = entitlementsOptions;
|
|
69
168
|
}
|
|
70
169
|
|
|
71
|
-
static setSessionContext(sessionContext) {
|
|
72
|
-
|
|
73
|
-
instance.sessionContext = sessionContext;
|
|
170
|
+
static setSessionContext(sessionContext, appName = 'default') {
|
|
171
|
+
ContextHolder.for(appName).sessionContext = sessionContext;
|
|
74
172
|
}
|
|
75
173
|
|
|
76
174
|
static setAppName(appName) {
|
|
77
|
-
ContextHolder.
|
|
175
|
+
ContextHolder.for(appName).appName = appName;
|
|
78
176
|
}
|
|
79
177
|
|
|
80
|
-
static getContext() {
|
|
81
|
-
var _ContextHolder$
|
|
178
|
+
static getContext(appName = 'default') {
|
|
179
|
+
var _ContextHolder$for$co;
|
|
82
180
|
|
|
83
|
-
return (_ContextHolder$
|
|
181
|
+
return (_ContextHolder$for$co = ContextHolder.for(appName).context) != null ? _ContextHolder$for$co : {
|
|
84
182
|
baseUrl: window.location.href,
|
|
85
183
|
tokenResolver: () => 'my-authentication-token',
|
|
86
184
|
logLevel: 'error'
|
|
87
185
|
};
|
|
88
186
|
}
|
|
89
187
|
|
|
90
|
-
static getAccessToken() {
|
|
91
|
-
return ContextHolder.
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
static getRequestSource() {
|
|
95
|
-
return ContextHolder.getInstance().requestSource;
|
|
188
|
+
static getAccessToken(appName = 'default') {
|
|
189
|
+
return ContextHolder.for(appName).accessToken;
|
|
96
190
|
}
|
|
97
191
|
|
|
98
|
-
static
|
|
99
|
-
return ContextHolder.
|
|
192
|
+
static getRequestSource(appName = 'default') {
|
|
193
|
+
return ContextHolder.for(appName).requestSource;
|
|
100
194
|
}
|
|
101
195
|
|
|
102
196
|
static getBasename() {
|
|
103
197
|
return ContextHolder.getInstance().basename;
|
|
104
198
|
}
|
|
105
199
|
|
|
106
|
-
static
|
|
107
|
-
return ContextHolder.
|
|
200
|
+
static getUser(appName = 'default') {
|
|
201
|
+
return ContextHolder.for(appName).user;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
static onRedirectTo(path, opts, appName = 'default') {
|
|
205
|
+
return ContextHolder.for(appName).onRedirectTo(path, opts);
|
|
108
206
|
}
|
|
109
207
|
|
|
110
|
-
static logout(callback) {
|
|
111
|
-
return ContextHolder.
|
|
208
|
+
static logout(callback, appName = 'default') {
|
|
209
|
+
return ContextHolder.for(appName).logout(callback);
|
|
112
210
|
}
|
|
113
211
|
|
|
114
|
-
static shouldLoadEntitlements() {
|
|
115
|
-
var _ContextHolder$
|
|
212
|
+
static shouldLoadEntitlements(appName = 'default') {
|
|
213
|
+
var _ContextHolder$for$en;
|
|
116
214
|
|
|
117
|
-
return ((_ContextHolder$
|
|
215
|
+
return ((_ContextHolder$for$en = ContextHolder.for(appName).entitlementsOptions) == null ? void 0 : _ContextHolder$for$en.enabled) || false;
|
|
118
216
|
}
|
|
119
217
|
|
|
120
|
-
static isSessionPerTenantEnabled() {
|
|
121
|
-
var _ContextHolder$
|
|
218
|
+
static isSessionPerTenantEnabled(appName = 'default') {
|
|
219
|
+
var _ContextHolder$for$se;
|
|
122
220
|
|
|
123
|
-
return ((_ContextHolder$
|
|
221
|
+
return ((_ContextHolder$for$se = ContextHolder.for(appName).sessionContext) == null ? void 0 : _ContextHolder$for$se.enableSessionPerTenant) || false;
|
|
124
222
|
}
|
|
125
223
|
|
|
126
|
-
static getAppName() {
|
|
127
|
-
return ContextHolder.
|
|
224
|
+
static getAppName(appName = 'default') {
|
|
225
|
+
return ContextHolder.for(appName).appName;
|
|
128
226
|
}
|
|
129
227
|
|
|
130
228
|
}
|
|
131
229
|
|
|
132
230
|
exports.ContextHolder = ContextHolder;
|
|
133
|
-
ContextHolder.
|
|
231
|
+
ContextHolder._apps = void 0;
|
|
232
|
+
const DEFAULT_APP_NAME = 'default';
|
|
134
233
|
const FronteggContext = {
|
|
135
|
-
getContext: () => ContextHolder.getContext(),
|
|
136
|
-
getAccessToken: () => ContextHolder.getAccessToken(),
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
234
|
+
getContext: () => ContextHolder.getContext(DEFAULT_APP_NAME),
|
|
235
|
+
getAccessToken: () => ContextHolder.getAccessToken(DEFAULT_APP_NAME),
|
|
236
|
+
setAccessToken: accessToken => ContextHolder.setAccessToken(accessToken, DEFAULT_APP_NAME),
|
|
237
|
+
getUser: () => ContextHolder.getUser(DEFAULT_APP_NAME),
|
|
238
|
+
setUser: user => ContextHolder.setUser(user, DEFAULT_APP_NAME),
|
|
239
|
+
onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts, DEFAULT_APP_NAME),
|
|
240
|
+
setOnRedirectTo: onRedirectTo => ContextHolder.setOnRedirectTo(onRedirectTo, DEFAULT_APP_NAME),
|
|
241
|
+
logout: callback => ContextHolder.logout(callback, DEFAULT_APP_NAME),
|
|
242
|
+
getRequestSource: () => ContextHolder.getRequestSource(DEFAULT_APP_NAME),
|
|
243
|
+
setRequestSource: requestSource => ContextHolder.setRequestSource(requestSource, DEFAULT_APP_NAME),
|
|
244
|
+
isSessionPerTenantEnabled: () => ContextHolder.isSessionPerTenantEnabled(DEFAULT_APP_NAME),
|
|
245
|
+
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(DEFAULT_APP_NAME),
|
|
246
|
+
getAppName: () => ContextHolder.getAppName(DEFAULT_APP_NAME),
|
|
247
|
+
setEntitlementsOptions: entitlementsOptions => ContextHolder.setEntitlementsOptions(entitlementsOptions, DEFAULT_APP_NAME),
|
|
248
|
+
setSessionContext: sessionContext => ContextHolder.setSessionContext(sessionContext, DEFAULT_APP_NAME)
|
|
140
249
|
};
|
|
141
250
|
exports.FronteggContext = FronteggContext;
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.FetchClient = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _ContextHolder = require("./ContextHolder");
|
|
13
|
+
|
|
14
|
+
var _error = require("./error");
|
|
15
|
+
|
|
16
|
+
var _constants = require("./constants");
|
|
17
|
+
|
|
18
|
+
var _interfaces = require("./interfaces");
|
|
19
|
+
|
|
20
|
+
class FetchClient {
|
|
21
|
+
constructor(appName) {
|
|
22
|
+
this.appName = void 0;
|
|
23
|
+
|
|
24
|
+
this.getFronteggContext = () => {
|
|
25
|
+
return _ContextHolder.ContextHolder.for(this.appName);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
this.prepareUrl = async (url, params) => {
|
|
29
|
+
const context = this.getFronteggContext().getContext();
|
|
30
|
+
const baseUrl = this.getContextBaseUrl(url);
|
|
31
|
+
const paramsToSend = await this.buildQueryParams(context, params);
|
|
32
|
+
let finalUrl = url.startsWith('http') ? url : `${baseUrl}${url}`;
|
|
33
|
+
const hasKeys = Object.keys(paramsToSend).length > 0;
|
|
34
|
+
|
|
35
|
+
if (paramsToSend && hasKeys) {
|
|
36
|
+
const urlParams = new URLSearchParams(paramsToSend);
|
|
37
|
+
finalUrl += `?${urlParams}`;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return finalUrl;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
this.buildQueryParams = async (context, params) => {
|
|
44
|
+
if (!params) {
|
|
45
|
+
params = {};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const additionalQueryParams = await this.getAdditionalQueryParams(context);
|
|
49
|
+
|
|
50
|
+
for (const queryParam of additionalQueryParams) {
|
|
51
|
+
params[queryParam.key] = queryParam.value;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const keys = Object.keys(params);
|
|
55
|
+
|
|
56
|
+
for (const key of keys) {
|
|
57
|
+
const value = params[key];
|
|
58
|
+
params[key] = typeof value === 'object' ? JSON.stringify(value) : value;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return params;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
this.getAdditionalQueryParams = async context => {
|
|
65
|
+
let output = [];
|
|
66
|
+
|
|
67
|
+
if (context.additionalQueryParamsResolver) {
|
|
68
|
+
output = await context.additionalQueryParamsResolver();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return output;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
this.getAdditionalHeaders = async context => {
|
|
75
|
+
let output = [];
|
|
76
|
+
|
|
77
|
+
if (context.additionalHeadersResolver) {
|
|
78
|
+
output = await context.additionalHeadersResolver();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (context.tenantResolver) {
|
|
82
|
+
const resolvedTenantResult = await context.tenantResolver();
|
|
83
|
+
|
|
84
|
+
if (!!(resolvedTenantResult != null && resolvedTenantResult.tenant)) {
|
|
85
|
+
output.push({
|
|
86
|
+
key: 'frontegg-login-alias',
|
|
87
|
+
value: resolvedTenantResult.tenant
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (context.appId) {
|
|
93
|
+
output.push({
|
|
94
|
+
key: 'frontegg-requested-application-id',
|
|
95
|
+
value: context.appId
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return output;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
this.buildRequestHeaders = async contentType => {
|
|
103
|
+
var _context$tokenResolve;
|
|
104
|
+
|
|
105
|
+
const fronteggContext = this.getFronteggContext();
|
|
106
|
+
const context = fronteggContext.getContext();
|
|
107
|
+
const headers = FetchClient.getMetadataHeaders(context);
|
|
108
|
+
const authToken = await ((_context$tokenResolve = context == null ? void 0 : context.tokenResolver) != null ? _context$tokenResolve : fronteggContext.getAccessToken)();
|
|
109
|
+
const requestSource = fronteggContext.getRequestSource();
|
|
110
|
+
const scopedTenant = FetchClient.getScopedTenant();
|
|
111
|
+
|
|
112
|
+
if (contentType) {
|
|
113
|
+
headers[_interfaces.fronteggHeaders.contentType] = contentType;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (requestSource) {
|
|
117
|
+
headers[_interfaces.fronteggHeaders.source] = requestSource;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (authToken) {
|
|
121
|
+
headers.Authorization = `Bearer ${authToken}`;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (scopedTenant) {
|
|
125
|
+
headers[_interfaces.fronteggHeaders.scopedTenant] = scopedTenant;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
for (const additionalHeader of await this.getAdditionalHeaders(context)) {
|
|
129
|
+
headers[`${additionalHeader.key}`] = `${additionalHeader.value}`;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return headers;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
this.sendRequest = async opts => {
|
|
136
|
+
var _opts$method, _ref, _opts$credentials;
|
|
137
|
+
|
|
138
|
+
const context = this.getFronteggContext().getContext();
|
|
139
|
+
const headers = await this.buildRequestHeaders(opts.contentType);
|
|
140
|
+
const url = await this.prepareUrl(opts.url, opts.params);
|
|
141
|
+
const response = await fetch(url, {
|
|
142
|
+
body: opts.body ? opts.contentType === 'application/json' ? JSON.stringify(opts.body) : opts.body : null,
|
|
143
|
+
method: (_opts$method = opts.method) != null ? _opts$method : 'GET',
|
|
144
|
+
headers: (0, _extends2.default)({}, headers, opts.headers),
|
|
145
|
+
credentials: (_ref = (_opts$credentials = opts.credentials) != null ? _opts$credentials : context.requestCredentials) != null ? _ref : 'same-origin'
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
if (response.status === 302) {
|
|
149
|
+
window.location.href = await response.text();
|
|
150
|
+
return new Promise(() => {});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (!response.ok) {
|
|
154
|
+
var _context$logLevel, _context$logLevel2;
|
|
155
|
+
|
|
156
|
+
if (response.status === 413) {
|
|
157
|
+
throw new _error.FronteggApiError('Error request is too large', response.status);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
let errorMessage;
|
|
161
|
+
let isJsonResponse = true;
|
|
162
|
+
|
|
163
|
+
try {
|
|
164
|
+
errorMessage = await response.text();
|
|
165
|
+
errorMessage = JSON.parse(errorMessage);
|
|
166
|
+
} catch (e) {
|
|
167
|
+
isJsonResponse = false;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (errorMessage.errors) {
|
|
171
|
+
errorMessage = errorMessage.errors.join(', ');
|
|
172
|
+
} else if (typeof errorMessage !== 'string') {
|
|
173
|
+
errorMessage = `Error ${response.status} - ${response.statusText}`;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (response.status >= 400 && response.status < 500 && ['warn'].includes((_context$logLevel = context.logLevel) != null ? _context$logLevel : '')) console.warn(errorMessage);else if (response.status === 500 && ['warn', 'error'].includes((_context$logLevel2 = context.logLevel) != null ? _context$logLevel2 : '')) console.error(errorMessage);
|
|
177
|
+
throw new _error.FronteggApiError(isJsonResponse ? errorMessage : _constants.GENERIC_ERROR_MESSAGE, response.status);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (!opts.responseType || opts.responseType === 'json') {
|
|
181
|
+
try {
|
|
182
|
+
return await response.json();
|
|
183
|
+
} catch (e) {
|
|
184
|
+
return {};
|
|
185
|
+
}
|
|
186
|
+
} else if (opts.responseType === 'blob') {
|
|
187
|
+
const {
|
|
188
|
+
outputFileName
|
|
189
|
+
} = opts.params;
|
|
190
|
+
return await response.blob().then(blob => URL.createObjectURL(blob)).then(url => {
|
|
191
|
+
const tempLink = document.createElement('a');
|
|
192
|
+
tempLink.href = url;
|
|
193
|
+
tempLink.setAttribute('download', outputFileName || 'output');
|
|
194
|
+
tempLink.click();
|
|
195
|
+
});
|
|
196
|
+
} else {
|
|
197
|
+
return await response.text();
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
this.get = async (url, params, opts) => this.sendRequest((0, _extends2.default)({
|
|
202
|
+
url,
|
|
203
|
+
method: 'GET',
|
|
204
|
+
contentType: 'application/json',
|
|
205
|
+
params
|
|
206
|
+
}, opts));
|
|
207
|
+
|
|
208
|
+
this.post = async (url, body, opts) => this.sendRequest((0, _extends2.default)({
|
|
209
|
+
url,
|
|
210
|
+
method: 'POST',
|
|
211
|
+
contentType: 'application/json',
|
|
212
|
+
body
|
|
213
|
+
}, opts));
|
|
214
|
+
|
|
215
|
+
this.patch = async (url, body, opts) => this.sendRequest((0, _extends2.default)({
|
|
216
|
+
url,
|
|
217
|
+
method: 'PATCH',
|
|
218
|
+
contentType: 'application/json',
|
|
219
|
+
body
|
|
220
|
+
}, opts));
|
|
221
|
+
|
|
222
|
+
this.put = async (url, body, opts) => this.sendRequest((0, _extends2.default)({
|
|
223
|
+
url,
|
|
224
|
+
method: 'PUT',
|
|
225
|
+
contentType: 'application/json',
|
|
226
|
+
body
|
|
227
|
+
}, opts));
|
|
228
|
+
|
|
229
|
+
this.delete = async (url, body, opts) => this.sendRequest((0, _extends2.default)({
|
|
230
|
+
url,
|
|
231
|
+
method: 'DELETE',
|
|
232
|
+
contentType: 'application/json',
|
|
233
|
+
body
|
|
234
|
+
}, opts));
|
|
235
|
+
|
|
236
|
+
this.postDownload = async (url, body, params, opts) => this.sendRequest((0, _extends2.default)({
|
|
237
|
+
url,
|
|
238
|
+
method: 'POST',
|
|
239
|
+
contentType: 'application/json',
|
|
240
|
+
responseType: 'blob',
|
|
241
|
+
body,
|
|
242
|
+
params
|
|
243
|
+
}, opts));
|
|
244
|
+
|
|
245
|
+
this.extractHeadersFromOptions = (options = {}) => (0, _extends2.default)({}, options.jwt ? {
|
|
246
|
+
Authorization: options.jwt
|
|
247
|
+
} : {});
|
|
248
|
+
|
|
249
|
+
this.getBaseUrl = (context, url, withFronteggPrefix = true) => {
|
|
250
|
+
return FetchClient.getBaseUrl(context, url, withFronteggPrefix);
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
this.getContextBaseUrl = (url, withFronteggPrefix = true) => {
|
|
254
|
+
const context = this.getFronteggContext().getContext();
|
|
255
|
+
return this.getBaseUrl(context, url, withFronteggPrefix);
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
this.getMetadataHeaders = context => {
|
|
259
|
+
return FetchClient.getMetadataHeaders(context);
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
this.getContextMetadataHeaders = () => {
|
|
263
|
+
const context = this.getFronteggContext().getContext();
|
|
264
|
+
return FetchClient.getMetadataHeaders(context);
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
this.appName = appName;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
exports.FetchClient = FetchClient;
|
|
273
|
+
|
|
274
|
+
FetchClient.getBaseUrl = (context, url, withFronteggPrefix = true) => {
|
|
275
|
+
let baseUrl;
|
|
276
|
+
|
|
277
|
+
if (typeof context.baseUrl === 'function') {
|
|
278
|
+
baseUrl = context.baseUrl(url);
|
|
279
|
+
} else {
|
|
280
|
+
baseUrl = context.baseUrl;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
const prefix = context.urlPrefix || 'frontegg';
|
|
284
|
+
const removePrefix = prefix === 'frontegg' && !withFronteggPrefix;
|
|
285
|
+
|
|
286
|
+
if (!baseUrl.endsWith('/')) {
|
|
287
|
+
baseUrl += '/';
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (!baseUrl.endsWith(prefix) && !removePrefix) {
|
|
291
|
+
baseUrl += prefix;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return baseUrl;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
FetchClient.getMetadataHeaders = context => {
|
|
298
|
+
var _context$metadataHead, _context$metadataHead2;
|
|
299
|
+
|
|
300
|
+
const headers = {};
|
|
301
|
+
|
|
302
|
+
if (context != null && (_context$metadataHead = context.metadataHeaders) != null && _context$metadataHead.fronteggSdkVersion) {
|
|
303
|
+
headers[_interfaces.fronteggHeaders.fronteggSdkVersion] = context.metadataHeaders.fronteggSdkVersion;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (context != null && (_context$metadataHead2 = context.metadataHeaders) != null && _context$metadataHead2.framework) {
|
|
307
|
+
headers[_interfaces.fronteggHeaders.frameWork] = context.metadataHeaders.framework;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
return headers;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
FetchClient.getScopedTenant = () => {
|
|
314
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
315
|
+
const scopedTenant = urlParams.get('tenantId');
|
|
316
|
+
|
|
317
|
+
if (scopedTenant) {
|
|
318
|
+
return scopedTenant;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return null;
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
var _default = new FetchClient('default');
|
|
325
|
+
|
|
326
|
+
exports.default = _default;
|
|
@@ -3,26 +3,37 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.getSettings = getSettings;
|
|
8
|
-
exports.updateSettings = updateSettings;
|
|
6
|
+
exports.default = exports.AccountSettingsApi = void 0;
|
|
9
7
|
|
|
10
8
|
var _constants = require("../constants");
|
|
11
9
|
|
|
12
|
-
var
|
|
10
|
+
var _BaseApiClient = require("../BaseApiClient");
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
class AccountSettingsApi extends _BaseApiClient.BaseApiClient {
|
|
13
|
+
constructor(appName) {
|
|
14
|
+
super(appName);
|
|
15
|
+
|
|
16
|
+
this.updateSettings = async (body, options) => {
|
|
17
|
+
return this.put(_constants.urls.tenants.accountSettings.v1, body, {
|
|
18
|
+
headers: this.extractHeadersFromOptions(options)
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
this.getSettings = async options => {
|
|
23
|
+
return this.get(_constants.urls.tenants.accountSettings.v1, undefined, {
|
|
24
|
+
headers: this.extractHeadersFromOptions(options)
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
this.getPublicSettings = async () => {
|
|
29
|
+
return this.get(`${_constants.urls.tenants.accountSettings.v1}/public`);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
19
32
|
|
|
20
|
-
async function getSettings(options) {
|
|
21
|
-
return (0, _fetch.Get)(_constants.urls.tenants.accountSettings.v1, undefined, {
|
|
22
|
-
headers: (0, _fetch.extractHeadersFromOptions)(options)
|
|
23
|
-
});
|
|
24
33
|
}
|
|
25
34
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
exports.AccountSettingsApi = AccountSettingsApi;
|
|
36
|
+
|
|
37
|
+
var _default = new AccountSettingsApi('default');
|
|
38
|
+
|
|
39
|
+
exports.default = _default;
|