@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.
Files changed (122) hide show
  1. package/BaseApiClient.d.ts +16 -0
  2. package/BaseApiClient.js +39 -0
  3. package/ContextHolder/index.d.ts +120 -29
  4. package/ContextHolder/index.js +169 -54
  5. package/FetchClient.d.ts +42 -0
  6. package/FetchClient.js +308 -0
  7. package/account-settings/index.d.ts +19 -7
  8. package/account-settings/index.js +23 -13
  9. package/applications/index.d.ts +49 -44
  10. package/applications/index.js +51 -37
  11. package/audits/index.d.ts +27 -15
  12. package/audits/index.js +27 -17
  13. package/auth/index.d.ts +817 -768
  14. package/auth/index.js +902 -721
  15. package/auth/secutiry-poilicy/index.d.ts +58 -102
  16. package/auth/secutiry-poilicy/index.js +122 -90
  17. package/auth/utils.d.ts +2 -2
  18. package/auth/utils.js +9 -8
  19. package/connectivity/index.d.ts +126 -27
  20. package/connectivity/index.js +147 -114
  21. package/directory/index.d.ts +31 -22
  22. package/directory/index.js +27 -15
  23. package/entitlements/index.d.ts +14 -8
  24. package/entitlements/index.js +12 -4
  25. package/feature-flags/index.d.ts +8 -2
  26. package/feature-flags/index.js +16 -8
  27. package/groups/index.d.ts +73 -49
  28. package/groups/index.js +64 -45
  29. package/impersonate/index.d.ts +15 -6
  30. package/impersonate/index.js +13 -5
  31. package/index.d.ts +156 -108
  32. package/index.js +109 -78
  33. package/interfaces.d.ts +10 -0
  34. package/metadata/index.d.ts +67 -7
  35. package/metadata/index.js +52 -32
  36. package/node/BaseApiClient.js +49 -0
  37. package/node/ContextHolder/index.js +169 -54
  38. package/node/FetchClient.js +326 -0
  39. package/node/account-settings/index.js +27 -16
  40. package/node/applications/index.js +51 -44
  41. package/node/audits/index.js +31 -20
  42. package/node/auth/index.js +768 -1035
  43. package/node/auth/secutiry-poilicy/index.js +125 -136
  44. package/node/auth/utils.js +9 -7
  45. package/node/connectivity/index.js +148 -187
  46. package/node/directory/index.js +29 -20
  47. package/node/entitlements/index.js +18 -5
  48. package/node/feature-flags/index.js +21 -9
  49. package/node/groups/index.js +65 -63
  50. package/node/impersonate/index.js +18 -5
  51. package/node/index.js +116 -71
  52. package/node/metadata/index.js +61 -52
  53. package/node/notifications/index.js +37 -27
  54. package/node/reports/index.js +78 -70
  55. package/node/roles/index.js +56 -51
  56. package/node/security-center/index.js +21 -9
  57. package/node/sub-tenants/index.js +90 -89
  58. package/node/subscriptions/index.js +69 -107
  59. package/node/subscriptions/invoices.js +25 -17
  60. package/node/subscriptions/managedSubscriptions.js +32 -27
  61. package/node/subscriptions/paymentMethods.js +27 -20
  62. package/node/subscriptions/paymentProviders.js +15 -6
  63. package/node/subscriptions/plans.js +17 -9
  64. package/node/subscriptions/providers/stripe/index.js +26 -21
  65. package/node/subscriptions/subscriptions.js +32 -27
  66. package/node/subscriptions/summaries.js +15 -6
  67. package/node/subscriptions/tenantConfiguration.js +17 -9
  68. package/node/subscriptions/vendorPublicConfigurations.js +15 -6
  69. package/node/teams/index.js +138 -148
  70. package/node/tenants/index.js +65 -60
  71. package/node/user-phone-numbers/index.js +32 -24
  72. package/node/users/index.js +58 -53
  73. package/node/vendor/index.js +17 -6
  74. package/notifications/index.d.ts +22 -16
  75. package/notifications/index.js +33 -22
  76. package/package.json +1 -1
  77. package/reports/index.d.ts +50 -44
  78. package/reports/index.js +75 -62
  79. package/roles/index.d.ts +44 -38
  80. package/roles/index.js +57 -41
  81. package/security-center/index.d.ts +14 -2
  82. package/security-center/index.js +15 -6
  83. package/sub-tenants/index.d.ts +57 -15
  84. package/sub-tenants/index.js +88 -68
  85. package/subscriptions/index.d.ts +56 -11
  86. package/subscriptions/index.js +58 -11
  87. package/subscriptions/invoices.d.ts +16 -13
  88. package/subscriptions/invoices.js +24 -14
  89. package/subscriptions/managedSubscriptions.d.ts +18 -15
  90. package/subscriptions/managedSubscriptions.js +33 -22
  91. package/subscriptions/paymentMethods.d.ts +16 -13
  92. package/subscriptions/paymentMethods.js +26 -17
  93. package/subscriptions/paymentProviders.d.ts +8 -5
  94. package/subscriptions/paymentProviders.js +11 -4
  95. package/subscriptions/plans.d.ts +11 -8
  96. package/subscriptions/plans.js +14 -6
  97. package/subscriptions/providers/stripe/index.d.ts +24 -21
  98. package/subscriptions/providers/stripe/index.js +27 -16
  99. package/subscriptions/subscriptions.d.ts +24 -21
  100. package/subscriptions/subscriptions.js +33 -22
  101. package/subscriptions/summaries.d.ts +7 -4
  102. package/subscriptions/summaries.js +10 -3
  103. package/subscriptions/tenantConfiguration.d.ts +6 -3
  104. package/subscriptions/tenantConfiguration.js +15 -7
  105. package/subscriptions/vendorPublicConfigurations.d.ts +5 -2
  106. package/subscriptions/vendorPublicConfigurations.js +11 -4
  107. package/teams/index.d.ts +37 -139
  108. package/teams/index.js +130 -99
  109. package/tenants/index.d.ts +25 -37
  110. package/tenants/index.js +62 -46
  111. package/user-phone-numbers/index.d.ts +32 -26
  112. package/user-phone-numbers/index.js +32 -19
  113. package/users/index.d.ts +21 -15
  114. package/users/index.js +60 -44
  115. package/vendor/index.d.ts +12 -6
  116. package/vendor/index.js +11 -4
  117. package/fetch.d.ts +0 -24
  118. package/fetch.js +0 -265
  119. package/node/fetch.js +0 -306
  120. package/node/subscriptions/providers/index.js +0 -18
  121. package/subscriptions/providers/index.d.ts +0 -1
  122. 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.instance) {
27
- ContextHolder.instance = new ContextHolder();
107
+ static getInstance(appName = 'default') {
108
+ if (!ContextHolder._apps) {
109
+ ContextHolder._apps = {};
28
110
  }
29
111
 
30
- return ContextHolder.instance;
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 setContext(context) {
34
- ContextHolder.getInstance().context = context;
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 setAccessToken(accessToken) {
38
- ContextHolder.getInstance().accessToken = accessToken;
126
+ static setContext(context, appName = 'default') {
127
+ ContextHolder.for(appName).context = context;
39
128
  }
40
129
 
41
- static setUser(user) {
42
- ContextHolder.getInstance().user = user;
130
+ static setAccessToken(accessToken, appName = DEFAULT_APP_NAME) {
131
+ ContextHolder.for(appName).accessToken = accessToken;
43
132
  }
44
133
 
45
- static setBasename(basename) {
46
- ContextHolder.getInstance().basename = basename;
134
+ static setUser(user, appName = 'default') {
135
+ ContextHolder.for(appName).user = user;
47
136
  }
48
137
 
49
- static setRequestSource(requestSource) {
50
- ContextHolder.getInstance().requestSource = requestSource;
138
+ static setRequestSource(requestSource, appName = 'default') {
139
+ ContextHolder.for(appName).requestSource = requestSource;
51
140
  }
52
141
 
53
- static setOnRedirectTo(onRedirectTo) {
54
- ContextHolder.getInstance().onRedirectTo = onRedirectTo;
142
+ static setOnRedirectTo(onRedirectTo, appName = 'default') {
143
+ ContextHolder.for(appName).onRedirectTo = onRedirectTo;
55
144
  }
56
145
 
57
- static setLogout(logout, logoutUrl) {
58
- ContextHolder.getInstance().logout = callback => {
146
+ static setLogout(logout, logoutUrl, appName = 'default') {
147
+ const context = ContextHolder.for(appName);
148
+
149
+ context.logout = callback => {
59
150
  if (!callback) {
60
- ContextHolder.onRedirectTo(logoutUrl);
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.getInstance().entitlementsOptions = entitlementsOptions;
158
+ static setEntitlementsOptions(entitlementsOptions, appName = 'default') {
159
+ ContextHolder.for(appName).entitlementsOptions = entitlementsOptions;
69
160
  }
70
161
 
71
- static setSessionContext(sessionContext) {
72
- const instance = ContextHolder.getInstance();
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.getInstance().appName = appName;
167
+ ContextHolder.for(appName).appName = appName;
78
168
  }
79
169
 
80
- static getContext() {
81
- var _ContextHolder$getIns;
170
+ static getContext(appName = 'default') {
171
+ var _ContextHolder$for$co;
82
172
 
83
- return (_ContextHolder$getIns = ContextHolder.getInstance().context) != null ? _ContextHolder$getIns : {
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.getInstance().accessToken;
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 getRequestSource() {
95
- return ContextHolder.getInstance().requestSource;
196
+ static setBasename(basename, appName = DEFAULT_APP_NAME) {
197
+ ContextHolder.for(appName).basename = basename;
96
198
  }
97
199
 
98
- static getUser() {
99
- return ContextHolder.getInstance().user;
200
+ setBasename(basename) {
201
+ this.basename = basename;
100
202
  }
101
203
 
102
- static getBasename() {
103
- return ContextHolder.getInstance().basename;
204
+ static getUser(appName = 'default') {
205
+ return ContextHolder.for(appName).user;
104
206
  }
105
207
 
106
- static onRedirectTo(path, opts) {
107
- return ContextHolder.getInstance().onRedirectTo(path, opts);
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.getInstance().logout(callback);
212
+ static logout(callback, appName = 'default') {
213
+ return ContextHolder.for(appName).logout(callback);
112
214
  }
113
215
 
114
- static shouldLoadEntitlements() {
115
- var _ContextHolder$getIns2;
216
+ static shouldLoadEntitlements(appName = 'default') {
217
+ var _ContextHolder$for$en;
116
218
 
117
- return ((_ContextHolder$getIns2 = ContextHolder.getInstance().entitlementsOptions) == null ? void 0 : _ContextHolder$getIns2.enabled) || false;
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$getIns3;
222
+ static isSessionPerTenantEnabled(appName = 'default') {
223
+ var _ContextHolder$for$se;
122
224
 
123
- return ((_ContextHolder$getIns3 = ContextHolder.getInstance().sessionContext) == null ? void 0 : _ContextHolder$getIns3.enableSessionPerTenant) || false;
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.getInstance().appName;
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.instance = void 0;
235
+ ContextHolder._apps = void 0;
236
+ const DEFAULT_APP_NAME = 'default';
134
237
  const FronteggContext = {
135
- getContext: () => ContextHolder.getContext(),
136
- getAccessToken: () => ContextHolder.getAccessToken(),
137
- getUser: () => ContextHolder.getUser(),
138
- onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts),
139
- logout: callback => ContextHolder.logout(callback)
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.getPublicSettings = getPublicSettings;
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 _fetch = require("../fetch");
10
+ var _BaseApiClient = require("../BaseApiClient");
13
11
 
14
- async function updateSettings(body, options) {
15
- return (0, _fetch.Put)(_constants.urls.tenants.accountSettings.v1, body, {
16
- headers: (0, _fetch.extractHeadersFromOptions)(options)
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
- async function getPublicSettings() {
27
- return (0, _fetch.Get)(`${_constants.urls.tenants.accountSettings.v1}/public`);
28
- }
35
+ exports.AccountSettingsApi = AccountSettingsApi;
36
+
37
+ var _default = new AccountSettingsApi('default');
38
+
39
+ exports.default = _default;