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