@frontegg/rest-api 3.1.78 → 3.1.79-alpha.10029056154
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 +120 -29
- package/ContextHolder/index.js +169 -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 +156 -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 +169 -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,237 @@ 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
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static default() {
|
|
100
|
+
return ContextHolder.getInstance(DEFAULT_APP_NAME);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
static for(appName) {
|
|
104
|
+
return ContextHolder.getInstance(appName);
|
|
23
105
|
}
|
|
24
106
|
|
|
25
|
-
static getInstance() {
|
|
26
|
-
if (!ContextHolder.
|
|
27
|
-
ContextHolder.
|
|
107
|
+
static getInstance(appName = 'default') {
|
|
108
|
+
if (!ContextHolder._apps) {
|
|
109
|
+
ContextHolder._apps = {};
|
|
28
110
|
}
|
|
29
111
|
|
|
30
|
-
|
|
112
|
+
if (ContextHolder._apps[appName]) {
|
|
113
|
+
return ContextHolder._apps[appName];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
117
|
+
return ContextHolder._apps[appName];
|
|
31
118
|
}
|
|
32
119
|
|
|
33
|
-
static
|
|
34
|
-
ContextHolder.
|
|
120
|
+
static createInstance(appName = 'default') {
|
|
121
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
122
|
+
ContextHolder._apps[appName].appName = appName;
|
|
123
|
+
return ContextHolder._apps[appName];
|
|
35
124
|
}
|
|
36
125
|
|
|
37
|
-
static
|
|
38
|
-
ContextHolder.
|
|
126
|
+
static setContext(context, appName = 'default') {
|
|
127
|
+
ContextHolder.for(appName).context = context;
|
|
39
128
|
}
|
|
40
129
|
|
|
41
|
-
static
|
|
42
|
-
ContextHolder.
|
|
130
|
+
static setAccessToken(accessToken, appName = DEFAULT_APP_NAME) {
|
|
131
|
+
ContextHolder.for(appName).accessToken = accessToken;
|
|
43
132
|
}
|
|
44
133
|
|
|
45
|
-
static
|
|
46
|
-
ContextHolder.
|
|
134
|
+
static setUser(user, appName = 'default') {
|
|
135
|
+
ContextHolder.for(appName).user = user;
|
|
47
136
|
}
|
|
48
137
|
|
|
49
|
-
static setRequestSource(requestSource) {
|
|
50
|
-
ContextHolder.
|
|
138
|
+
static setRequestSource(requestSource, appName = 'default') {
|
|
139
|
+
ContextHolder.for(appName).requestSource = requestSource;
|
|
51
140
|
}
|
|
52
141
|
|
|
53
|
-
static setOnRedirectTo(onRedirectTo) {
|
|
54
|
-
ContextHolder.
|
|
142
|
+
static setOnRedirectTo(onRedirectTo, appName = 'default') {
|
|
143
|
+
ContextHolder.for(appName).onRedirectTo = onRedirectTo;
|
|
55
144
|
}
|
|
56
145
|
|
|
57
|
-
static setLogout(logout, logoutUrl) {
|
|
58
|
-
ContextHolder.
|
|
146
|
+
static setLogout(logout, logoutUrl, appName = 'default') {
|
|
147
|
+
const context = ContextHolder.for(appName);
|
|
148
|
+
|
|
149
|
+
context.logout = callback => {
|
|
59
150
|
if (!callback) {
|
|
60
|
-
|
|
151
|
+
context.onRedirectTo(logoutUrl, undefined);
|
|
61
152
|
} else {
|
|
62
153
|
logout(callback);
|
|
63
154
|
}
|
|
64
155
|
};
|
|
65
156
|
}
|
|
66
157
|
|
|
67
|
-
static setEntitlementsOptions(entitlementsOptions) {
|
|
68
|
-
ContextHolder.
|
|
158
|
+
static setEntitlementsOptions(entitlementsOptions, appName = 'default') {
|
|
159
|
+
ContextHolder.for(appName).entitlementsOptions = entitlementsOptions;
|
|
69
160
|
}
|
|
70
161
|
|
|
71
|
-
static setSessionContext(sessionContext) {
|
|
72
|
-
|
|
73
|
-
instance.sessionContext = sessionContext;
|
|
162
|
+
static setSessionContext(sessionContext, appName = 'default') {
|
|
163
|
+
ContextHolder.for(appName).sessionContext = sessionContext;
|
|
74
164
|
}
|
|
75
165
|
|
|
76
166
|
static setAppName(appName) {
|
|
77
|
-
ContextHolder.
|
|
167
|
+
ContextHolder.for(appName).appName = appName;
|
|
78
168
|
}
|
|
79
169
|
|
|
80
|
-
static getContext() {
|
|
81
|
-
var _ContextHolder$
|
|
170
|
+
static getContext(appName = 'default') {
|
|
171
|
+
var _ContextHolder$for$co;
|
|
82
172
|
|
|
83
|
-
return (_ContextHolder$
|
|
173
|
+
return (_ContextHolder$for$co = ContextHolder.for(appName).context) != null ? _ContextHolder$for$co : {
|
|
84
174
|
baseUrl: window.location.href,
|
|
85
175
|
tokenResolver: () => 'my-authentication-token',
|
|
86
176
|
logLevel: 'error'
|
|
87
177
|
};
|
|
88
178
|
}
|
|
89
179
|
|
|
90
|
-
static getAccessToken() {
|
|
91
|
-
return ContextHolder.
|
|
180
|
+
static getAccessToken(appName = 'default') {
|
|
181
|
+
return ContextHolder.for(appName).accessToken;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
static getRequestSource(appName = 'default') {
|
|
185
|
+
return ContextHolder.for(appName).requestSource;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
static getBasename(appName = 'default') {
|
|
189
|
+
return ContextHolder.for(appName).basename;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
getBasename() {
|
|
193
|
+
return this.basename;
|
|
92
194
|
}
|
|
93
195
|
|
|
94
|
-
static
|
|
95
|
-
|
|
196
|
+
static setBasename(basename, appName = DEFAULT_APP_NAME) {
|
|
197
|
+
ContextHolder.for(appName).basename = basename;
|
|
96
198
|
}
|
|
97
199
|
|
|
98
|
-
|
|
99
|
-
|
|
200
|
+
setBasename(basename) {
|
|
201
|
+
this.basename = basename;
|
|
100
202
|
}
|
|
101
203
|
|
|
102
|
-
static
|
|
103
|
-
return ContextHolder.
|
|
204
|
+
static getUser(appName = 'default') {
|
|
205
|
+
return ContextHolder.for(appName).user;
|
|
104
206
|
}
|
|
105
207
|
|
|
106
|
-
static onRedirectTo(path, opts) {
|
|
107
|
-
return ContextHolder.
|
|
208
|
+
static onRedirectTo(path, opts, appName = 'default') {
|
|
209
|
+
return ContextHolder.for(appName).onRedirectTo(path, opts);
|
|
108
210
|
}
|
|
109
211
|
|
|
110
|
-
static logout(callback) {
|
|
111
|
-
return ContextHolder.
|
|
212
|
+
static logout(callback, appName = 'default') {
|
|
213
|
+
return ContextHolder.for(appName).logout(callback);
|
|
112
214
|
}
|
|
113
215
|
|
|
114
|
-
static shouldLoadEntitlements() {
|
|
115
|
-
var _ContextHolder$
|
|
216
|
+
static shouldLoadEntitlements(appName = 'default') {
|
|
217
|
+
var _ContextHolder$for$en;
|
|
116
218
|
|
|
117
|
-
return ((_ContextHolder$
|
|
219
|
+
return ((_ContextHolder$for$en = ContextHolder.for(appName).entitlementsOptions) == null ? void 0 : _ContextHolder$for$en.enabled) || false;
|
|
118
220
|
}
|
|
119
221
|
|
|
120
|
-
static isSessionPerTenantEnabled() {
|
|
121
|
-
var _ContextHolder$
|
|
222
|
+
static isSessionPerTenantEnabled(appName = 'default') {
|
|
223
|
+
var _ContextHolder$for$se;
|
|
122
224
|
|
|
123
|
-
return ((_ContextHolder$
|
|
225
|
+
return ((_ContextHolder$for$se = ContextHolder.for(appName).sessionContext) == null ? void 0 : _ContextHolder$for$se.enableSessionPerTenant) || false;
|
|
124
226
|
}
|
|
125
227
|
|
|
126
|
-
static getAppName() {
|
|
127
|
-
return ContextHolder.
|
|
228
|
+
static getAppName(appName = 'default') {
|
|
229
|
+
return ContextHolder.for(appName).appName;
|
|
128
230
|
}
|
|
129
231
|
|
|
130
232
|
}
|
|
131
233
|
|
|
132
234
|
exports.ContextHolder = ContextHolder;
|
|
133
|
-
ContextHolder.
|
|
235
|
+
ContextHolder._apps = void 0;
|
|
236
|
+
const DEFAULT_APP_NAME = 'default';
|
|
134
237
|
const FronteggContext = {
|
|
135
|
-
getContext: () => ContextHolder.getContext(),
|
|
136
|
-
getAccessToken: () => ContextHolder.getAccessToken(),
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
238
|
+
getContext: () => ContextHolder.getContext(DEFAULT_APP_NAME),
|
|
239
|
+
getAccessToken: () => ContextHolder.getAccessToken(DEFAULT_APP_NAME),
|
|
240
|
+
setAccessToken: accessToken => ContextHolder.setAccessToken(accessToken, DEFAULT_APP_NAME),
|
|
241
|
+
getUser: () => ContextHolder.getUser(DEFAULT_APP_NAME),
|
|
242
|
+
setUser: user => ContextHolder.setUser(user, DEFAULT_APP_NAME),
|
|
243
|
+
onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts, DEFAULT_APP_NAME),
|
|
244
|
+
setOnRedirectTo: onRedirectTo => ContextHolder.setOnRedirectTo(onRedirectTo, DEFAULT_APP_NAME),
|
|
245
|
+
logout: callback => ContextHolder.logout(callback, DEFAULT_APP_NAME),
|
|
246
|
+
getRequestSource: () => ContextHolder.getRequestSource(DEFAULT_APP_NAME),
|
|
247
|
+
setRequestSource: requestSource => ContextHolder.setRequestSource(requestSource, DEFAULT_APP_NAME),
|
|
248
|
+
isSessionPerTenantEnabled: () => ContextHolder.isSessionPerTenantEnabled(DEFAULT_APP_NAME),
|
|
249
|
+
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(DEFAULT_APP_NAME),
|
|
250
|
+
getAppName: () => ContextHolder.getAppName(DEFAULT_APP_NAME),
|
|
251
|
+
setEntitlementsOptions: entitlementsOptions => ContextHolder.setEntitlementsOptions(entitlementsOptions, DEFAULT_APP_NAME),
|
|
252
|
+
setSessionContext: sessionContext => ContextHolder.setSessionContext(sessionContext, DEFAULT_APP_NAME),
|
|
253
|
+
getBasename: () => ContextHolder.getBasename(DEFAULT_APP_NAME),
|
|
254
|
+
setBasename: basename => ContextHolder.setBasename(basename, DEFAULT_APP_NAME)
|
|
140
255
|
};
|
|
141
256
|
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;
|