@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.
Files changed (122) hide show
  1. package/BaseApiClient.d.ts +16 -0
  2. package/BaseApiClient.js +39 -0
  3. package/ContextHolder/index.d.ts +108 -27
  4. package/ContextHolder/index.js +155 -50
  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 +154 -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 +155 -50
  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 +130 -138
  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 +35 -131
  108. package/teams/index.js +122 -93
  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
@@ -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.instance) {
26
- ContextHolder.instance = new ContextHolder();
106
+ static getInstance(appName = 'default') {
107
+ if (!ContextHolder._apps) {
108
+ ContextHolder._apps = {};
27
109
  }
28
110
 
29
- return ContextHolder.instance;
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 setContext(context) {
33
- ContextHolder.getInstance().context = context;
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 setAccessToken(accessToken) {
37
- ContextHolder.getInstance().accessToken = accessToken;
125
+ static setContext(context, appName = 'default') {
126
+ ContextHolder.for(appName).context = context;
38
127
  }
39
128
 
40
- static setUser(user) {
41
- ContextHolder.getInstance().user = user;
129
+ static setAccessToken(accessToken, appName = 'default') {
130
+ ContextHolder.for(appName).accessToken = accessToken;
42
131
  }
43
132
 
44
- static setRequestSource(requestSource) {
45
- ContextHolder.getInstance().requestSource = requestSource;
133
+ static setUser(user, appName = 'default') {
134
+ ContextHolder.for(appName).user = user;
46
135
  }
47
136
 
48
- static setOnRedirectTo(onRedirectTo) {
49
- ContextHolder.getInstance().onRedirectTo = onRedirectTo;
137
+ static setRequestSource(requestSource, appName = 'default') {
138
+ ContextHolder.for(appName).requestSource = requestSource;
50
139
  }
51
140
 
52
- static setLogout(logout, logoutUrl) {
53
- ContextHolder.getInstance().logout = callback => {
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
- ContextHolder.onRedirectTo(logoutUrl);
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.getInstance().entitlementsOptions = entitlementsOptions;
157
+ static setEntitlementsOptions(entitlementsOptions, appName = 'default') {
158
+ ContextHolder.for(appName).entitlementsOptions = entitlementsOptions;
64
159
  }
65
160
 
66
- static setSessionContext(sessionContext) {
67
- const instance = ContextHolder.getInstance();
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.getInstance().appName = appName;
166
+ ContextHolder.for(appName).appName = appName;
73
167
  }
74
168
 
75
- static getContext() {
76
- var _ContextHolder$getIns;
169
+ static getContext(appName = 'default') {
170
+ var _ContextHolder$for$co;
77
171
 
78
- return (_ContextHolder$getIns = ContextHolder.getInstance().context) != null ? _ContextHolder$getIns : {
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.getInstance().accessToken;
179
+ static getAccessToken(appName = 'default') {
180
+ return ContextHolder.for(appName).accessToken;
87
181
  }
88
182
 
89
- static getRequestSource() {
90
- return ContextHolder.getInstance().requestSource;
183
+ static getRequestSource(appName = 'default') {
184
+ return ContextHolder.for(appName).requestSource;
91
185
  }
92
186
 
93
- static getUser() {
94
- return ContextHolder.getInstance().user;
187
+ static getUser(appName = 'default') {
188
+ return ContextHolder.for(appName).user;
95
189
  }
96
190
 
97
- static onRedirectTo(path, opts) {
98
- return ContextHolder.getInstance().onRedirectTo(path, opts);
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.getInstance().logout(callback);
195
+ static logout(callback, appName = 'default') {
196
+ return ContextHolder.for(appName).logout(callback);
103
197
  }
104
198
 
105
- static shouldLoadEntitlements() {
106
- var _ContextHolder$getIns2;
199
+ static shouldLoadEntitlements(appName = 'default') {
200
+ var _ContextHolder$for$en;
107
201
 
108
- return ((_ContextHolder$getIns2 = ContextHolder.getInstance().entitlementsOptions) == null ? void 0 : _ContextHolder$getIns2.enabled) || false;
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$getIns3;
205
+ static isSessionPerTenantEnabled(appName = 'default') {
206
+ var _ContextHolder$for$se;
113
207
 
114
- return ((_ContextHolder$getIns3 = ContextHolder.getInstance().sessionContext) == null ? void 0 : _ContextHolder$getIns3.enableSessionPerTenant) || false;
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.getInstance().appName;
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.instance = void 0;
218
+ ContextHolder._apps = void 0;
219
+ const DEFAULT_APP_NAME = 'default';
125
220
  const FronteggContext = {
126
- getContext: () => ContextHolder.getContext(),
127
- getAccessToken: () => ContextHolder.getAccessToken(),
128
- getUser: () => ContextHolder.getUser(),
129
- onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts),
130
- logout: callback => ContextHolder.logout(callback)
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.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;