@emilgroup/account-sdk 1.49.1-beta.17 → 1.49.1-beta.18

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/README.md CHANGED
@@ -17,11 +17,11 @@ Although this package can be used in both TypeScript and JavaScript, it is inten
17
17
  Navigate to the folder of your consuming project and run one of the following commands:
18
18
 
19
19
  ```
20
- npm install @emilgroup/account-sdk@1.49.1-beta.17 --save
20
+ npm install @emilgroup/account-sdk@1.49.1-beta.18 --save
21
21
  ```
22
22
  or
23
23
  ```
24
- yarn add @emilgroup/account-sdk@1.49.1-beta.17
24
+ yarn add @emilgroup/account-sdk@1.49.1-beta.18
25
25
  ```
26
26
 
27
27
  And then you can import `AccountsApi`.
@@ -67,10 +67,8 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
67
67
  // http bearer authentication required
68
68
  await setBearerAuthToObject(localVarHeaderParameter, configuration)
69
69
 
70
- // Only Authorization falls back to the configured token; an empty value is never sent.
71
- const authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
72
- if (authorizationValue) {
73
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
70
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
71
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
74
72
  }
75
73
 
76
74
 
@@ -117,10 +115,8 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
117
115
  // http bearer authentication required
118
116
  await setBearerAuthToObject(localVarHeaderParameter, configuration)
119
117
 
120
- // Only Authorization falls back to the configured token; an empty value is never sent.
121
- const authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
122
- if (authorizationValue) {
123
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
118
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
119
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
124
120
  }
125
121
 
126
122
 
@@ -169,10 +165,8 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
169
165
  localVarQueryParameter['expand'] = expand;
170
166
  }
171
167
 
172
- // Only Authorization falls back to the configured token; an empty value is never sent.
173
- const authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
174
- if (authorizationValue) {
175
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
168
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
169
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
176
170
  }
177
171
 
178
172
 
@@ -221,10 +215,8 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
221
215
  localVarQueryParameter['expand'] = expand;
222
216
  }
223
217
 
224
- // Only Authorization falls back to the configured token; an empty value is never sent.
225
- const authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
226
- if (authorizationValue) {
227
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
218
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
219
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
228
220
  }
229
221
 
230
222
 
@@ -299,10 +291,8 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
299
291
  localVarQueryParameter['filters'] = filters;
300
292
  }
301
293
 
302
- // Only Authorization falls back to the configured token; an empty value is never sent.
303
- const authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
304
- if (authorizationValue) {
305
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
294
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
295
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
306
296
  }
307
297
 
308
298
 
@@ -349,10 +339,8 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
349
339
  // http bearer authentication required
350
340
  await setBearerAuthToObject(localVarHeaderParameter, configuration)
351
341
 
352
- // Only Authorization falls back to the configured token; an empty value is never sent.
353
- const authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
354
- if (authorizationValue) {
355
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
342
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
343
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
356
344
  }
357
345
 
358
346
 
package/base.ts CHANGED
@@ -32,20 +32,9 @@ export const COLLECTION_FORMATS = {
32
32
  pipes: "|",
33
33
  };
34
34
 
35
- export interface SessionClass {
36
- sub: string;
37
- username?: string;
38
- email?: string;
39
- tenantSlug?: string;
40
- permissions?: string;
41
- expiresAt?: number;
42
- }
43
-
44
35
  export interface LoginClass {
45
36
  accessToken: string;
46
37
  permissions: string;
47
- authMode?: string;
48
- session?: SessionClass;
49
38
  }
50
39
 
51
40
  export interface SwitchWorkspaceRequest {
@@ -56,8 +45,6 @@ export interface SwitchWorkspaceRequest {
56
45
  export interface SwitchWorkspaceResponseClass {
57
46
  accessToken: string;
58
47
  permissions: string;
59
- authMode?: string;
60
- session?: SessionClass;
61
48
  }
62
49
 
63
50
  export enum Environment {
@@ -90,19 +77,10 @@ interface TokenData {
90
77
  accessToken?: string;
91
78
  username?: string;
92
79
  permissions?: string;
93
- // 'both' or 'session' when authservice keeps the tokens in a server session.
94
- authMode?: string;
95
- sub?: string;
96
80
  }
97
81
 
98
82
  const NETWORK_ERROR_MESSAGE = "Network Error";
99
83
  const TOKEN_DATA = 'APP_TOKEN';
100
- // Sent only to authservice, to ask for a server session.
101
- const AUTH_MODE_HEADER = 'X-Emil-Auth-Mode';
102
- // Names the account on every call; one browser session can hold several.
103
- const ACCOUNT_HEADER = 'X-Emil-Account';
104
- const SESSION_MODES = ['both', 'session'];
105
- const RESEND_SAFE_METHODS = ['get', 'head', 'options'];
106
84
 
107
85
  /**
108
86
  *
@@ -124,18 +102,10 @@ export class BaseAPI {
124
102
  this.configuration = configuration;
125
103
  this.basePath = configuration.basePath || this.basePath;
126
104
 
127
- if (configuration.cookieAuth) {
128
- this.configuration.username = this.configuration.username || this.tokenData.username;
129
- }
130
-
131
- if (this.usesSession()) {
132
- this.useSessionAuth();
133
- } else {
134
- // Use config token if provided, otherwise use tokenData token
135
- const configToken = this.configuration.accessToken;
136
- const storedToken = accessToken ? `Bearer ${accessToken}` : '';
137
- this.configuration.accessToken = configToken || storedToken;
138
- }
105
+ // Use config token if provided, otherwise use tokenData token
106
+ const configToken = this.configuration.accessToken;
107
+ const storedToken = accessToken ? `Bearer ${accessToken}` : '';
108
+ this.configuration.accessToken = configToken || storedToken;
139
109
  } else {
140
110
  const { accessToken, username } = this.tokenData;
141
111
 
@@ -149,107 +119,6 @@ export class BaseAPI {
149
119
  this.attachInterceptor(axios);
150
120
  }
151
121
 
152
- // The app's own account wins over APP_TOKEN, which holds whichever tab wrote last.
153
- private sessionAccount(): string | undefined {
154
- return this.configuration.account || this.tokenData.sub;
155
- }
156
-
157
- // Apps may pass the address as the second argument only; authservice is on the same host.
158
- private authBasePath(): string {
159
- return this.configuration.basePath || this.basePath;
160
- }
161
-
162
- private usesSession(): boolean {
163
- return !!this.configuration.cookieAuth && SESSION_MODES.indexOf(this.tokenData.authMode) !== -1 && !!this.sessionAccount();
164
- }
165
-
166
- private useSessionAuth() {
167
- const { headers, ...baseOptions } = this.configuration.baseOptions || {};
168
- this.configuration.accessToken = '';
169
- this.configuration.baseOptions = {
170
- ...baseOptions,
171
- withCredentials: true,
172
- headers: { ...headers, [ACCOUNT_HEADER]: this.sessionAccount() },
173
- };
174
- }
175
-
176
- private useHeaderAuth(accessToken: string) {
177
- this.configuration.accessToken = accessToken ? `Bearer ${accessToken}` : '';
178
- this.tokenData.accessToken = accessToken;
179
- delete this.tokenData.authMode;
180
- delete this.tokenData.sub;
181
- if (this.configuration.cookieAuth) {
182
- const { withCredentials, headers, ...baseOptions } = this.configuration.baseOptions || {};
183
- const { [ACCOUNT_HEADER]: account, ...otherHeaders } = headers || {};
184
- this.configuration.baseOptions = { ...baseOptions, headers: otherHeaders };
185
- }
186
- }
187
-
188
- private applyTokenReply({ accessToken, authMode, session }: LoginClass) {
189
- if (this.configuration.cookieAuth && SESSION_MODES.indexOf(authMode) !== -1 && session?.sub) {
190
- this.tokenData.authMode = authMode;
191
- this.tokenData.sub = session.sub;
192
- if (this.configuration.account) {
193
- // A workspace switch moves the app to another account.
194
- this.configuration.account = session.sub;
195
- }
196
- // Both keeps the token for apps not moved yet; session mode keeps no token at all.
197
- if (authMode === 'both' && accessToken) {
198
- this.tokenData.accessToken = accessToken;
199
- } else {
200
- delete this.tokenData.accessToken;
201
- }
202
- this.useSessionAuth();
203
- } else {
204
- this.useHeaderAuth(accessToken);
205
- }
206
- }
207
-
208
- private sessionHeaders(): Record<string, string> {
209
- if (!this.configuration.cookieAuth) {
210
- return {};
211
- }
212
- return {
213
- [AUTH_MODE_HEADER]: 'session',
214
- ...(this.usesSession() && { [ACCOUNT_HEADER]: this.sessionAccount() }),
215
- };
216
- }
217
-
218
- private withCurrentAuth(config: AxiosRequestConfig): AxiosRequestConfig {
219
- delete config.headers['Authorization'];
220
- delete config.headers[ACCOUNT_HEADER];
221
- if (this.usesSession()) {
222
- config.headers[ACCOUNT_HEADER] = this.sessionAccount();
223
- config.withCredentials = true;
224
- } else if (this.configuration.accessToken) {
225
- config.headers['Authorization'] = this.configuration.accessToken;
226
- }
227
- return config;
228
- }
229
-
230
- // Both keeps the token, so a session call the browser could not complete can be sent again with it.
231
- private canRetryWithToken(config: AxiosRequestConfig): boolean {
232
- return !!config.withCredentials && !!config.headers?.[ACCOUNT_HEADER]
233
- && !!this.tokenData.accessToken && this.tokenData.authMode !== 'session';
234
- }
235
-
236
- // A network error can come after the server ran the call, so only a call that is safe to repeat is sent again.
237
- private canResend(config: AxiosRequestConfig): boolean {
238
- return RESEND_SAFE_METHODS.indexOf((config.method || 'get').toLowerCase()) !== -1
239
- || Object.keys(config.headers || {}).some((name) => name.toLowerCase() === 'idempotency-key');
240
- }
241
-
242
- private switchToToken() {
243
- this.useHeaderAuth(this.tokenData.accessToken);
244
- this.storeTokenData(this.tokenData);
245
- }
246
-
247
- private retryWithToken(axios: AxiosInstance, config: AxiosRequestConfig) {
248
- this.switchToToken();
249
- config.withCredentials = false;
250
- return axios(this.withCurrentAuth(config));
251
- }
252
-
253
122
  selectEnvironment(env: Environment) {
254
123
  this.selectBasePath(env);
255
124
  }
@@ -269,8 +138,8 @@ export class BaseAPI {
269
138
  async authorize(username: string, password: string, targetWorkspace?: string): Promise<void> {
270
139
  const options: AxiosRequestConfig = {
271
140
  method: 'POST',
272
- url: `${this.authBasePath()}/authservice/v1/login`,
273
- headers: { 'Content-Type': 'application/json', ...(this.configuration.cookieAuth && { [AUTH_MODE_HEADER]: 'session' }) },
141
+ url: `${this.configuration.basePath}/authservice/v1/login`,
142
+ headers: { 'Content-Type': 'application/json' },
274
143
  data: {
275
144
  username,
276
145
  password,
@@ -280,10 +149,13 @@ export class BaseAPI {
280
149
 
281
150
  const response = await globalAxios.request<LoginClass>(options);
282
151
 
152
+ const { data: { accessToken, permissions } } = response;
153
+
283
154
  this.configuration.username = username;
155
+ this.configuration.accessToken = `Bearer ${accessToken}`;
284
156
  this.tokenData.username = username;
285
- this.tokenData.permissions = response.data.permissions;
286
- this.applyTokenReply(response.data);
157
+ this.tokenData.accessToken = accessToken;
158
+ this.tokenData.permissions = permissions;
287
159
 
288
160
  // Switch workspace if provided
289
161
  if (targetWorkspace) {
@@ -303,11 +175,10 @@ export class BaseAPI {
303
175
  async switchWorkspace(targetWorkspace: string): Promise<void> {
304
176
  const options: AxiosRequestConfig = {
305
177
  method: 'POST',
306
- url: `${this.authBasePath()}/authservice/v1/workspaces/switch`,
178
+ url: `${this.configuration.basePath}/authservice/v1/workspaces/switch`,
307
179
  headers: {
308
180
  'Content-Type': 'application/json',
309
- ...this.sessionHeaders(),
310
- ...(!this.usesSession() && !!this.configuration.accessToken && { 'Authorization': this.configuration.accessToken as string }),
181
+ 'Authorization': `Bearer ${this.configuration.accessToken}`,
311
182
  },
312
183
  data: {
313
184
  username: this.configuration.username,
@@ -318,8 +189,11 @@ export class BaseAPI {
318
189
 
319
190
  const response = await globalAxios.request<SwitchWorkspaceResponseClass>(options);
320
191
 
321
- this.tokenData.permissions = response.data.permissions;
322
- this.applyTokenReply(response.data);
192
+ const { data: { accessToken, permissions } } = response;
193
+
194
+ this.configuration.accessToken = `Bearer ${accessToken}`;
195
+ this.tokenData.accessToken = accessToken;
196
+ this.tokenData.permissions = permissions;
323
197
 
324
198
  this.storeTokenData({
325
199
  ...this.tokenData
@@ -345,10 +219,9 @@ export class BaseAPI {
345
219
 
346
220
  const options: AxiosRequestConfig = {
347
221
  method: 'POST',
348
- url: `${this.authBasePath()}/authservice/v1/refresh-token`,
222
+ url: `${this.configuration.basePath}/authservice/v1/refresh-token`,
349
223
  headers: {
350
224
  'Content-Type': 'application/json',
351
- ...this.sessionHeaders(),
352
225
  },
353
226
  data: { username: username },
354
227
  withCredentials: true,
@@ -389,22 +262,20 @@ export class BaseAPI {
389
262
  && !originalConfig._retry) {
390
263
  originalConfig._retry = true;
391
264
  try {
392
- const reply = await this.refreshTokenInternal();
393
- this.tokenData.permissions = reply.permissions;
394
- this.applyTokenReply(reply);
395
- this.storeTokenData(this.tokenData);
265
+ const { accessToken: tokenString, permissions } = await this.refreshTokenInternal();
266
+ const accessToken = `Bearer ${tokenString}`;
267
+ this.tokenData.permissions = permissions;
396
268
 
397
- if (!this.usesSession()) {
398
- return axios(this.withCurrentAuth(originalConfig));
399
- }
269
+ delete originalConfig.headers['Authorization']
270
+
271
+ originalConfig.headers['Authorization'] = accessToken;
400
272
 
401
- // Both mode: if the browser does not send the session cookie (another site), use the token.
402
- return axios(this.withCurrentAuth(originalConfig)).catch((retryError) => {
403
- if (retryError?.response?.status !== 401 || !this.tokenData.accessToken) {
404
- return Promise.reject(retryError);
405
- }
406
- return this.retryWithToken(axios, originalConfig);
407
- });
273
+ this.configuration.accessToken = accessToken;
274
+ this.tokenData.accessToken = tokenString;
275
+
276
+ this.storeTokenData(this.tokenData);
277
+
278
+ return axios(originalConfig);
408
279
  } catch (_error) {
409
280
  if (_error.response && _error.response.data) {
410
281
  return Promise.reject(_error.response.data);
@@ -412,30 +283,26 @@ export class BaseAPI {
412
283
  return Promise.reject(_error);
413
284
  }
414
285
  }
415
- } else if (err.message === NETWORK_ERROR_MESSAGE && this.canRetryWithToken(originalConfig)) {
416
- // Both mode: the browser blocked the session call or hid its reply; later calls use the token.
417
- if (!this.canResend(originalConfig)) {
418
- this.switchToToken();
419
- return Promise.reject(err);
420
- }
421
- return this.retryWithToken(axios, originalConfig);
422
286
  } else if (err.message === NETWORK_ERROR_MESSAGE
423
- && (originalConfig.headers.hasOwnProperty('Authorization')
424
- || (this.configuration.cookieAuth && originalConfig.withCredentials && this.canResend(originalConfig)))
287
+ && originalConfig.headers.hasOwnProperty('Authorization')
425
288
  && _retry_count < 4
426
289
  ) {
427
290
  _retry_count++;
428
291
  try {
429
- // In session mode an unreadable 401 (no CORS headers on the error reply) also lands here.
430
- const reply = await this.refreshTokenInternal();
431
- this.tokenData.permissions = reply.permissions;
292
+ const { accessToken: tokenString, permissions } = await this.refreshTokenInternal();
293
+ const accessToken = `Bearer ${tokenString}`;
294
+ this.tokenData.permissions = permissions;
432
295
 
433
296
  _retry = true;
434
- this.applyTokenReply(reply);
297
+ originalConfig.headers['Authorization'] = accessToken;
298
+
299
+ this.configuration.accessToken = accessToken;
300
+ this.tokenData.accessToken = tokenString;
301
+
435
302
  this.storeTokenData(this.tokenData);
436
303
 
437
304
  return axios.request({
438
- ...this.withCurrentAuth(originalConfig),
305
+ ...originalConfig,
439
306
  });
440
307
  } catch (_error) {
441
308
  if (_error.response && _error.response.data) {
package/common.ts CHANGED
@@ -130,10 +130,9 @@ export const toPathString = function (url: URL) {
130
130
  * @export
131
131
  */
132
132
  export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
133
- // Typed by hand: since axios 1.20, request() returns an internal axios type that SDK declarations cannot name.
134
- return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH): Promise<R> => {
133
+ return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
135
134
  const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};
136
- return axios.request<T, R>(axiosRequestArgs) as Promise<R>;
135
+ return axios.request<T, R>(axiosRequestArgs);
137
136
  };
138
137
  }
139
138
 
package/configuration.ts CHANGED
@@ -21,8 +21,6 @@ export interface ConfigurationParameters {
21
21
  basePath?: string;
22
22
  baseOptions?: any;
23
23
  formDataCtor?: new () => any;
24
- cookieAuth?: boolean;
25
- account?: string;
26
24
  }
27
25
 
28
26
  export class Configuration {
@@ -76,22 +74,6 @@ export class Configuration {
76
74
  */
77
75
  formDataCtor?: new () => any;
78
76
 
79
- /**
80
- * Use a server session when authservice makes one; otherwise the token, as without this option.
81
- * Set `account` too, so each SDK object keeps its own account.
82
- *
83
- * @type {boolean}
84
- * @memberof Configuration
85
- */
86
- cookieAuth?: boolean;
87
- /**
88
- * The session account (Cognito sub) this app shows, so the SDK never takes another tab's account.
89
- *
90
- * @type {string}
91
- * @memberof Configuration
92
- */
93
- account?: string;
94
-
95
77
  constructor(param: ConfigurationParameters = {}) {
96
78
  this.apiKey = param.apiKey;
97
79
  this.username = param.username;
@@ -100,8 +82,6 @@ export class Configuration {
100
82
  this.basePath = param.basePath;
101
83
  this.baseOptions = param.baseOptions;
102
84
  this.formDataCtor = param.formDataCtor;
103
- this.cookieAuth = param.cookieAuth;
104
- this.account = param.account;
105
85
  }
106
86
 
107
87
  /**
@@ -408,7 +408,7 @@ export declare class AccountsApi extends BaseAPI {
408
408
  * @throws {RequiredError}
409
409
  * @memberof AccountsApi
410
410
  */
411
- createAccount(requestParameters: AccountsApiCreateAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<CreateAccountResponseClass, any, {}, any>>;
411
+ createAccount(requestParameters: AccountsApiCreateAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<CreateAccountResponseClass, any, {}>>;
412
412
  /**
413
413
  * Permanently deletes the account. Supply the unique code that was returned when you created the account and this will delete it. **Required Permissions** \"partner-management.partners.delete\"
414
414
  * @summary Delete the account
@@ -417,7 +417,7 @@ export declare class AccountsApi extends BaseAPI {
417
417
  * @throws {RequiredError}
418
418
  * @memberof AccountsApi
419
419
  */
420
- deleteAccount(requestParameters: AccountsApiDeleteAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}, any>>;
420
+ deleteAccount(requestParameters: AccountsApiDeleteAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
421
421
  /**
422
422
  * Retrieves the details of the account that was previously created. Supply the unique account code that was returned when you created it and Emil Api will return the corresponding account information. **Required Permissions** \"partner-management.partners.view\"
423
423
  * @summary Retrieve the account
@@ -426,7 +426,7 @@ export declare class AccountsApi extends BaseAPI {
426
426
  * @throws {RequiredError}
427
427
  * @memberof AccountsApi
428
428
  */
429
- getAccount(requestParameters: AccountsApiGetAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<GetAccountResponseClass, any, {}, any>>;
429
+ getAccount(requestParameters: AccountsApiGetAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<GetAccountResponseClass, any, {}>>;
430
430
  /**
431
431
  * Retrieves the details of the account that was previously created. Supply the email that was returned when you created it and Emil Api will return the corresponding account information. Email matching is case-insensitive. **Required Permissions** \"partner-management.partners.view\"
432
432
  * @summary Retrieve the account
@@ -435,7 +435,7 @@ export declare class AccountsApi extends BaseAPI {
435
435
  * @throws {RequiredError}
436
436
  * @memberof AccountsApi
437
437
  */
438
- getAccountByEmail(requestParameters: AccountsApiGetAccountByEmailRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<GetAccountResponseClass, any, {}, any>>;
438
+ getAccountByEmail(requestParameters: AccountsApiGetAccountByEmailRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<GetAccountResponseClass, any, {}>>;
439
439
  /**
440
440
  * Returns a list of accounts you have previously created. The accounts are returned in sorted order, with the oldest one appearing first. For more information about pagination, read the Pagination documentation. **Required Permissions** \"partner-management.partners.view\"
441
441
  * @summary List accounts
@@ -444,7 +444,7 @@ export declare class AccountsApi extends BaseAPI {
444
444
  * @throws {RequiredError}
445
445
  * @memberof AccountsApi
446
446
  */
447
- listAccounts(requestParameters?: AccountsApiListAccountsRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<ListAccountsResponseClass, any, {}, any>>;
447
+ listAccounts(requestParameters?: AccountsApiListAccountsRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<ListAccountsResponseClass, any, {}>>;
448
448
  /**
449
449
  * Updates the specified account by setting the values of the parameters passed. Any parameters not provided will be left unchanged. **Required Permissions** \"partner-management.partners.update\"
450
450
  * @summary Update the account
@@ -453,5 +453,5 @@ export declare class AccountsApi extends BaseAPI {
453
453
  * @throws {RequiredError}
454
454
  * @memberof AccountsApi
455
455
  */
456
- updateAccount(requestParameters: AccountsApiUpdateAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<UpdateAccountResponseClass, any, {}, any>>;
456
+ updateAccount(requestParameters: AccountsApiUpdateAccountRequest, options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<UpdateAccountResponseClass, any, {}>>;
457
457
  }
@@ -103,7 +103,7 @@ var AccountsApiAxiosParamCreator = function (configuration) {
103
103
  createAccount: function (createAccountRequestDto, authorization, options) {
104
104
  if (options === void 0) { options = {}; }
105
105
  return __awaiter(_this, void 0, void 0, function () {
106
- var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, authorizationValue, headersFromBaseOptions;
106
+ var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
107
107
  return __generator(this, function (_a) {
108
108
  switch (_a.label) {
109
109
  case 0:
@@ -120,16 +120,13 @@ var AccountsApiAxiosParamCreator = function (configuration) {
120
120
  localVarQueryParameter = {};
121
121
  // authentication bearer required
122
122
  // http bearer authentication required
123
- return [4 /*yield*/, (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration)
124
- // Only Authorization falls back to the configured token; an empty value is never sent.
125
- ];
123
+ return [4 /*yield*/, (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration)];
126
124
  case 1:
127
125
  // authentication bearer required
128
126
  // http bearer authentication required
129
127
  _a.sent();
130
- authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
131
- if (authorizationValue) {
132
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
128
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
129
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
133
130
  }
134
131
  localVarHeaderParameter['Content-Type'] = 'application/json';
135
132
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -155,7 +152,7 @@ var AccountsApiAxiosParamCreator = function (configuration) {
155
152
  deleteAccount: function (code, authorization, options) {
156
153
  if (options === void 0) { options = {}; }
157
154
  return __awaiter(_this, void 0, void 0, function () {
158
- var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, authorizationValue, headersFromBaseOptions;
155
+ var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
159
156
  return __generator(this, function (_a) {
160
157
  switch (_a.label) {
161
158
  case 0:
@@ -173,16 +170,13 @@ var AccountsApiAxiosParamCreator = function (configuration) {
173
170
  localVarQueryParameter = {};
174
171
  // authentication bearer required
175
172
  // http bearer authentication required
176
- return [4 /*yield*/, (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration)
177
- // Only Authorization falls back to the configured token; an empty value is never sent.
178
- ];
173
+ return [4 /*yield*/, (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration)];
179
174
  case 1:
180
175
  // authentication bearer required
181
176
  // http bearer authentication required
182
177
  _a.sent();
183
- authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
184
- if (authorizationValue) {
185
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
178
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
179
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
186
180
  }
187
181
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
188
182
  headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -207,7 +201,7 @@ var AccountsApiAxiosParamCreator = function (configuration) {
207
201
  getAccount: function (code, authorization, expand, options) {
208
202
  if (options === void 0) { options = {}; }
209
203
  return __awaiter(_this, void 0, void 0, function () {
210
- var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, authorizationValue, headersFromBaseOptions;
204
+ var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
211
205
  return __generator(this, function (_a) {
212
206
  switch (_a.label) {
213
207
  case 0:
@@ -233,9 +227,8 @@ var AccountsApiAxiosParamCreator = function (configuration) {
233
227
  if (expand !== undefined) {
234
228
  localVarQueryParameter['expand'] = expand;
235
229
  }
236
- authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
237
- if (authorizationValue) {
238
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
230
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
231
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
239
232
  }
240
233
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
241
234
  headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -260,7 +253,7 @@ var AccountsApiAxiosParamCreator = function (configuration) {
260
253
  getAccountByEmail: function (email, authorization, expand, options) {
261
254
  if (options === void 0) { options = {}; }
262
255
  return __awaiter(_this, void 0, void 0, function () {
263
- var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, authorizationValue, headersFromBaseOptions;
256
+ var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
264
257
  return __generator(this, function (_a) {
265
258
  switch (_a.label) {
266
259
  case 0:
@@ -286,9 +279,8 @@ var AccountsApiAxiosParamCreator = function (configuration) {
286
279
  if (expand !== undefined) {
287
280
  localVarQueryParameter['expand'] = expand;
288
281
  }
289
- authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
290
- if (authorizationValue) {
291
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
282
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
283
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
292
284
  }
293
285
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
294
286
  headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -318,7 +310,7 @@ var AccountsApiAxiosParamCreator = function (configuration) {
318
310
  listAccounts: function (authorization, pageSize, pageToken, filter, search, order, expand, filters, options) {
319
311
  if (options === void 0) { options = {}; }
320
312
  return __awaiter(_this, void 0, void 0, function () {
321
- var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, authorizationValue, headersFromBaseOptions;
313
+ var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
322
314
  return __generator(this, function (_a) {
323
315
  switch (_a.label) {
324
316
  case 0:
@@ -359,9 +351,8 @@ var AccountsApiAxiosParamCreator = function (configuration) {
359
351
  if (filters !== undefined) {
360
352
  localVarQueryParameter['filters'] = filters;
361
353
  }
362
- authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
363
- if (authorizationValue) {
364
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
354
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
355
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
365
356
  }
366
357
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
367
358
  headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -386,7 +377,7 @@ var AccountsApiAxiosParamCreator = function (configuration) {
386
377
  updateAccount: function (code, updateAccountRequestDto, authorization, options) {
387
378
  if (options === void 0) { options = {}; }
388
379
  return __awaiter(_this, void 0, void 0, function () {
389
- var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, authorizationValue, headersFromBaseOptions;
380
+ var localVarPath, localVarUrlObj, baseOptions, baseAccessToken, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
390
381
  return __generator(this, function (_a) {
391
382
  switch (_a.label) {
392
383
  case 0:
@@ -406,16 +397,13 @@ var AccountsApiAxiosParamCreator = function (configuration) {
406
397
  localVarQueryParameter = {};
407
398
  // authentication bearer required
408
399
  // http bearer authentication required
409
- return [4 /*yield*/, (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration)
410
- // Only Authorization falls back to the configured token; an empty value is never sent.
411
- ];
400
+ return [4 /*yield*/, (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration)];
412
401
  case 1:
413
402
  // authentication bearer required
414
403
  // http bearer authentication required
415
404
  _a.sent();
416
- authorizationValue = 'Authorization'.toLowerCase() === 'authorization' ? (authorization || baseAccessToken) : authorization;
417
- if (authorizationValue) {
418
- localVarHeaderParameter['Authorization'] = String(authorizationValue);
405
+ if (authorization !== undefined && authorization !== null || baseAccessToken !== undefined && baseAccessToken !== null) {
406
+ localVarHeaderParameter['Authorization'] = String(authorization ? authorization : baseAccessToken);
419
407
  }
420
408
  localVarHeaderParameter['Content-Type'] = 'application/json';
421
409
  (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
@@ -66,5 +66,5 @@ export declare class HealthApi extends BaseAPI {
66
66
  * @throws {RequiredError}
67
67
  * @memberof HealthApi
68
68
  */
69
- check(options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<InlineResponse200, any, {}, any>>;
69
+ check(options?: AxiosRequestConfig): Promise<import("axios").AxiosResponse<InlineResponse200, any, {}>>;
70
70
  }
package/dist/base.d.ts CHANGED
@@ -22,19 +22,9 @@ export declare const COLLECTION_FORMATS: {
22
22
  tsv: string;
23
23
  pipes: string;
24
24
  };
25
- export interface SessionClass {
26
- sub: string;
27
- username?: string;
28
- email?: string;
29
- tenantSlug?: string;
30
- permissions?: string;
31
- expiresAt?: number;
32
- }
33
25
  export interface LoginClass {
34
26
  accessToken: string;
35
27
  permissions: string;
36
- authMode?: string;
37
- session?: SessionClass;
38
28
  }
39
29
  export interface SwitchWorkspaceRequest {
40
30
  username: string;
@@ -43,8 +33,6 @@ export interface SwitchWorkspaceRequest {
43
33
  export interface SwitchWorkspaceResponseClass {
44
34
  accessToken: string;
45
35
  permissions: string;
46
- authMode?: string;
47
- session?: SessionClass;
48
36
  }
49
37
  export declare enum Environment {
50
38
  Production = "https://apiv2.emil.de",
@@ -75,18 +63,6 @@ export declare class BaseAPI {
75
63
  protected configuration: Configuration | undefined;
76
64
  private tokenData?;
77
65
  constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
78
- private sessionAccount;
79
- private authBasePath;
80
- private usesSession;
81
- private useSessionAuth;
82
- private useHeaderAuth;
83
- private applyTokenReply;
84
- private sessionHeaders;
85
- private withCurrentAuth;
86
- private canRetryWithToken;
87
- private canResend;
88
- private switchToToken;
89
- private retryWithToken;
90
66
  selectEnvironment(env: Environment): void;
91
67
  selectBasePath(path: string): void;
92
68
  getPermissions(): Array<string>;
package/dist/base.js CHANGED
@@ -74,17 +74,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
74
74
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
75
75
  }
76
76
  };
77
- var __rest = (this && this.__rest) || function (s, e) {
78
- var t = {};
79
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
80
- t[p] = s[p];
81
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
82
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
83
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
84
- t[p[i]] = s[p[i]];
85
- }
86
- return t;
87
- };
88
77
  var __importDefault = (this && this.__importDefault) || function (mod) {
89
78
  return (mod && mod.__esModule) ? mod : { "default": mod };
90
79
  };
@@ -123,12 +112,6 @@ function resetRetry() {
123
112
  exports.resetRetry = resetRetry;
124
113
  var NETWORK_ERROR_MESSAGE = "Network Error";
125
114
  var TOKEN_DATA = 'APP_TOKEN';
126
- // Sent only to authservice, to ask for a server session.
127
- var AUTH_MODE_HEADER = 'X-Emil-Auth-Mode';
128
- // Names the account on every call; one browser session can hold several.
129
- var ACCOUNT_HEADER = 'X-Emil-Account';
130
- var SESSION_MODES = ['both', 'session'];
131
- var RESEND_SAFE_METHODS = ['get', 'head', 'options'];
132
115
  /**
133
116
  *
134
117
  * @export
@@ -145,18 +128,10 @@ var BaseAPI = /** @class */ (function () {
145
128
  var accessToken = this.tokenData.accessToken;
146
129
  this.configuration = configuration;
147
130
  this.basePath = configuration.basePath || this.basePath;
148
- if (configuration.cookieAuth) {
149
- this.configuration.username = this.configuration.username || this.tokenData.username;
150
- }
151
- if (this.usesSession()) {
152
- this.useSessionAuth();
153
- }
154
- else {
155
- // Use config token if provided, otherwise use tokenData token
156
- var configToken = this.configuration.accessToken;
157
- var storedToken = accessToken ? "Bearer ".concat(accessToken) : '';
158
- this.configuration.accessToken = configToken || storedToken;
159
- }
131
+ // Use config token if provided, otherwise use tokenData token
132
+ var configToken = this.configuration.accessToken;
133
+ var storedToken = accessToken ? "Bearer ".concat(accessToken) : '';
134
+ this.configuration.accessToken = configToken || storedToken;
160
135
  }
161
136
  else {
162
137
  var _a = this.tokenData, accessToken = _a.accessToken, username = _a.username;
@@ -168,95 +143,6 @@ var BaseAPI = /** @class */ (function () {
168
143
  }
169
144
  this.attachInterceptor(axios);
170
145
  }
171
- // The app's own account wins over APP_TOKEN, which holds whichever tab wrote last.
172
- BaseAPI.prototype.sessionAccount = function () {
173
- return this.configuration.account || this.tokenData.sub;
174
- };
175
- // Apps may pass the address as the second argument only; authservice is on the same host.
176
- BaseAPI.prototype.authBasePath = function () {
177
- return this.configuration.basePath || this.basePath;
178
- };
179
- BaseAPI.prototype.usesSession = function () {
180
- return !!this.configuration.cookieAuth && SESSION_MODES.indexOf(this.tokenData.authMode) !== -1 && !!this.sessionAccount();
181
- };
182
- BaseAPI.prototype.useSessionAuth = function () {
183
- var _a;
184
- var _b = this.configuration.baseOptions || {}, headers = _b.headers, baseOptions = __rest(_b, ["headers"]);
185
- this.configuration.accessToken = '';
186
- this.configuration.baseOptions = __assign(__assign({}, baseOptions), { withCredentials: true, headers: __assign(__assign({}, headers), (_a = {}, _a[ACCOUNT_HEADER] = this.sessionAccount(), _a)) });
187
- };
188
- BaseAPI.prototype.useHeaderAuth = function (accessToken) {
189
- this.configuration.accessToken = accessToken ? "Bearer ".concat(accessToken) : '';
190
- this.tokenData.accessToken = accessToken;
191
- delete this.tokenData.authMode;
192
- delete this.tokenData.sub;
193
- if (this.configuration.cookieAuth) {
194
- var _a = this.configuration.baseOptions || {}, withCredentials = _a.withCredentials, headers = _a.headers, baseOptions = __rest(_a, ["withCredentials", "headers"]);
195
- var _b = headers || {}, _c = ACCOUNT_HEADER, account = _b[_c], otherHeaders = __rest(_b, [typeof _c === "symbol" ? _c : _c + ""]);
196
- this.configuration.baseOptions = __assign(__assign({}, baseOptions), { headers: otherHeaders });
197
- }
198
- };
199
- BaseAPI.prototype.applyTokenReply = function (_a) {
200
- var accessToken = _a.accessToken, authMode = _a.authMode, session = _a.session;
201
- if (this.configuration.cookieAuth && SESSION_MODES.indexOf(authMode) !== -1 && (session === null || session === void 0 ? void 0 : session.sub)) {
202
- this.tokenData.authMode = authMode;
203
- this.tokenData.sub = session.sub;
204
- if (this.configuration.account) {
205
- // A workspace switch moves the app to another account.
206
- this.configuration.account = session.sub;
207
- }
208
- // Both keeps the token for apps not moved yet; session mode keeps no token at all.
209
- if (authMode === 'both' && accessToken) {
210
- this.tokenData.accessToken = accessToken;
211
- }
212
- else {
213
- delete this.tokenData.accessToken;
214
- }
215
- this.useSessionAuth();
216
- }
217
- else {
218
- this.useHeaderAuth(accessToken);
219
- }
220
- };
221
- BaseAPI.prototype.sessionHeaders = function () {
222
- var _a, _b;
223
- if (!this.configuration.cookieAuth) {
224
- return {};
225
- }
226
- return __assign((_a = {}, _a[AUTH_MODE_HEADER] = 'session', _a), (this.usesSession() && (_b = {}, _b[ACCOUNT_HEADER] = this.sessionAccount(), _b)));
227
- };
228
- BaseAPI.prototype.withCurrentAuth = function (config) {
229
- delete config.headers['Authorization'];
230
- delete config.headers[ACCOUNT_HEADER];
231
- if (this.usesSession()) {
232
- config.headers[ACCOUNT_HEADER] = this.sessionAccount();
233
- config.withCredentials = true;
234
- }
235
- else if (this.configuration.accessToken) {
236
- config.headers['Authorization'] = this.configuration.accessToken;
237
- }
238
- return config;
239
- };
240
- // Both keeps the token, so a session call the browser could not complete can be sent again with it.
241
- BaseAPI.prototype.canRetryWithToken = function (config) {
242
- var _a;
243
- return !!config.withCredentials && !!((_a = config.headers) === null || _a === void 0 ? void 0 : _a[ACCOUNT_HEADER])
244
- && !!this.tokenData.accessToken && this.tokenData.authMode !== 'session';
245
- };
246
- // A network error can come after the server ran the call, so only a call that is safe to repeat is sent again.
247
- BaseAPI.prototype.canResend = function (config) {
248
- return RESEND_SAFE_METHODS.indexOf((config.method || 'get').toLowerCase()) !== -1
249
- || Object.keys(config.headers || {}).some(function (name) { return name.toLowerCase() === 'idempotency-key'; });
250
- };
251
- BaseAPI.prototype.switchToToken = function () {
252
- this.useHeaderAuth(this.tokenData.accessToken);
253
- this.storeTokenData(this.tokenData);
254
- };
255
- BaseAPI.prototype.retryWithToken = function (axios, config) {
256
- this.switchToToken();
257
- config.withCredentials = false;
258
- return axios(this.withCurrentAuth(config));
259
- };
260
146
  BaseAPI.prototype.selectEnvironment = function (env) {
261
147
  this.selectBasePath(env);
262
148
  };
@@ -272,15 +158,14 @@ var BaseAPI = /** @class */ (function () {
272
158
  };
273
159
  BaseAPI.prototype.authorize = function (username, password, targetWorkspace) {
274
160
  return __awaiter(this, void 0, void 0, function () {
275
- var options, response;
276
- var _a;
161
+ var options, response, _a, accessToken, permissions;
277
162
  return __generator(this, function (_b) {
278
163
  switch (_b.label) {
279
164
  case 0:
280
165
  options = {
281
166
  method: 'POST',
282
- url: "".concat(this.authBasePath(), "/authservice/v1/login"),
283
- headers: __assign({ 'Content-Type': 'application/json' }, (this.configuration.cookieAuth && (_a = {}, _a[AUTH_MODE_HEADER] = 'session', _a))),
167
+ url: "".concat(this.configuration.basePath, "/authservice/v1/login"),
168
+ headers: { 'Content-Type': 'application/json' },
284
169
  data: {
285
170
  username: username,
286
171
  password: password,
@@ -290,10 +175,12 @@ var BaseAPI = /** @class */ (function () {
290
175
  return [4 /*yield*/, axios_1.default.request(options)];
291
176
  case 1:
292
177
  response = _b.sent();
178
+ _a = response.data, accessToken = _a.accessToken, permissions = _a.permissions;
293
179
  this.configuration.username = username;
180
+ this.configuration.accessToken = "Bearer ".concat(accessToken);
294
181
  this.tokenData.username = username;
295
- this.tokenData.permissions = response.data.permissions;
296
- this.applyTokenReply(response.data);
182
+ this.tokenData.accessToken = accessToken;
183
+ this.tokenData.permissions = permissions;
297
184
  if (!targetWorkspace) return [3 /*break*/, 3];
298
185
  return [4 /*yield*/, this.switchWorkspace(targetWorkspace)];
299
186
  case 2:
@@ -312,14 +199,17 @@ var BaseAPI = /** @class */ (function () {
312
199
  };
313
200
  BaseAPI.prototype.switchWorkspace = function (targetWorkspace) {
314
201
  return __awaiter(this, void 0, void 0, function () {
315
- var options, response;
316
- return __generator(this, function (_a) {
317
- switch (_a.label) {
202
+ var options, response, _a, accessToken, permissions;
203
+ return __generator(this, function (_b) {
204
+ switch (_b.label) {
318
205
  case 0:
319
206
  options = {
320
207
  method: 'POST',
321
- url: "".concat(this.authBasePath(), "/authservice/v1/workspaces/switch"),
322
- headers: __assign(__assign({ 'Content-Type': 'application/json' }, this.sessionHeaders()), (!this.usesSession() && !!this.configuration.accessToken && { 'Authorization': this.configuration.accessToken })),
208
+ url: "".concat(this.configuration.basePath, "/authservice/v1/workspaces/switch"),
209
+ headers: {
210
+ 'Content-Type': 'application/json',
211
+ 'Authorization': "Bearer ".concat(this.configuration.accessToken),
212
+ },
323
213
  data: {
324
214
  username: this.configuration.username,
325
215
  targetWorkspace: targetWorkspace,
@@ -328,9 +218,11 @@ var BaseAPI = /** @class */ (function () {
328
218
  };
329
219
  return [4 /*yield*/, axios_1.default.request(options)];
330
220
  case 1:
331
- response = _a.sent();
332
- this.tokenData.permissions = response.data.permissions;
333
- this.applyTokenReply(response.data);
221
+ response = _b.sent();
222
+ _a = response.data, accessToken = _a.accessToken, permissions = _a.permissions;
223
+ this.configuration.accessToken = "Bearer ".concat(accessToken);
224
+ this.tokenData.accessToken = accessToken;
225
+ this.tokenData.permissions = permissions;
334
226
  this.storeTokenData(__assign({}, this.tokenData));
335
227
  return [2 /*return*/];
336
228
  }
@@ -357,8 +249,10 @@ var BaseAPI = /** @class */ (function () {
357
249
  });
358
250
  options = {
359
251
  method: 'POST',
360
- url: "".concat(this.authBasePath(), "/authservice/v1/refresh-token"),
361
- headers: __assign({ 'Content-Type': 'application/json' }, this.sessionHeaders()),
252
+ url: "".concat(this.configuration.basePath, "/authservice/v1/refresh-token"),
253
+ headers: {
254
+ 'Content-Type': 'application/json',
255
+ },
362
256
  data: { username: username },
363
257
  withCredentials: true,
364
258
  };
@@ -391,75 +285,62 @@ var BaseAPI = /** @class */ (function () {
391
285
  axios.interceptors.response.use(function (res) {
392
286
  return res;
393
287
  }, function (err) { return __awaiter(_this, void 0, void 0, function () {
394
- var originalConfig, reply, _error_1, reply, _error_2;
395
- var _this = this;
396
- return __generator(this, function (_a) {
397
- switch (_a.label) {
288
+ var originalConfig, _a, tokenString, permissions, accessToken, _error_1, _b, tokenString, permissions, accessToken, _error_2;
289
+ return __generator(this, function (_c) {
290
+ switch (_c.label) {
398
291
  case 0:
399
292
  originalConfig = err.config;
400
293
  if (!(err.response && !(err.response instanceof XMLHttpRequest))) return [3 /*break*/, 5];
401
294
  if (!((err.response.status === 401 || err.response.status === 403)
402
295
  && !originalConfig._retry)) return [3 /*break*/, 4];
403
296
  originalConfig._retry = true;
404
- _a.label = 1;
297
+ _c.label = 1;
405
298
  case 1:
406
- _a.trys.push([1, 3, , 4]);
299
+ _c.trys.push([1, 3, , 4]);
407
300
  return [4 /*yield*/, this.refreshTokenInternal()];
408
301
  case 2:
409
- reply = _a.sent();
410
- this.tokenData.permissions = reply.permissions;
411
- this.applyTokenReply(reply);
302
+ _a = _c.sent(), tokenString = _a.accessToken, permissions = _a.permissions;
303
+ accessToken = "Bearer ".concat(tokenString);
304
+ this.tokenData.permissions = permissions;
305
+ delete originalConfig.headers['Authorization'];
306
+ originalConfig.headers['Authorization'] = accessToken;
307
+ this.configuration.accessToken = accessToken;
308
+ this.tokenData.accessToken = tokenString;
412
309
  this.storeTokenData(this.tokenData);
413
- if (!this.usesSession()) {
414
- return [2 /*return*/, axios(this.withCurrentAuth(originalConfig))];
415
- }
416
- // Both mode: if the browser does not send the session cookie (another site), use the token.
417
- return [2 /*return*/, axios(this.withCurrentAuth(originalConfig)).catch(function (retryError) {
418
- var _a;
419
- if (((_a = retryError === null || retryError === void 0 ? void 0 : retryError.response) === null || _a === void 0 ? void 0 : _a.status) !== 401 || !_this.tokenData.accessToken) {
420
- return Promise.reject(retryError);
421
- }
422
- return _this.retryWithToken(axios, originalConfig);
423
- })];
310
+ return [2 /*return*/, axios(originalConfig)];
424
311
  case 3:
425
- _error_1 = _a.sent();
312
+ _error_1 = _c.sent();
426
313
  if (_error_1.response && _error_1.response.data) {
427
314
  return [2 /*return*/, Promise.reject(_error_1.response.data)];
428
315
  }
429
316
  return [2 /*return*/, Promise.reject(_error_1)];
430
- case 4: return [3 /*break*/, 10];
317
+ case 4: return [3 /*break*/, 9];
431
318
  case 5:
432
- if (!(err.message === NETWORK_ERROR_MESSAGE && this.canRetryWithToken(originalConfig))) return [3 /*break*/, 6];
433
- // Both mode: the browser blocked the session call or hid its reply; later calls use the token.
434
- if (!this.canResend(originalConfig)) {
435
- this.switchToToken();
436
- return [2 /*return*/, Promise.reject(err)];
437
- }
438
- return [2 /*return*/, this.retryWithToken(axios, originalConfig)];
439
- case 6:
440
319
  if (!(err.message === NETWORK_ERROR_MESSAGE
441
- && (originalConfig.headers.hasOwnProperty('Authorization')
442
- || (this.configuration.cookieAuth && originalConfig.withCredentials && this.canResend(originalConfig)))
443
- && _retry_count < 4)) return [3 /*break*/, 10];
320
+ && originalConfig.headers.hasOwnProperty('Authorization')
321
+ && _retry_count < 4)) return [3 /*break*/, 9];
444
322
  _retry_count++;
445
- _a.label = 7;
446
- case 7:
447
- _a.trys.push([7, 9, , 10]);
323
+ _c.label = 6;
324
+ case 6:
325
+ _c.trys.push([6, 8, , 9]);
448
326
  return [4 /*yield*/, this.refreshTokenInternal()];
449
- case 8:
450
- reply = _a.sent();
451
- this.tokenData.permissions = reply.permissions;
327
+ case 7:
328
+ _b = _c.sent(), tokenString = _b.accessToken, permissions = _b.permissions;
329
+ accessToken = "Bearer ".concat(tokenString);
330
+ this.tokenData.permissions = permissions;
452
331
  _retry = true;
453
- this.applyTokenReply(reply);
332
+ originalConfig.headers['Authorization'] = accessToken;
333
+ this.configuration.accessToken = accessToken;
334
+ this.tokenData.accessToken = tokenString;
454
335
  this.storeTokenData(this.tokenData);
455
- return [2 /*return*/, axios.request(__assign({}, this.withCurrentAuth(originalConfig)))];
456
- case 9:
457
- _error_2 = _a.sent();
336
+ return [2 /*return*/, axios.request(__assign({}, originalConfig))];
337
+ case 8:
338
+ _error_2 = _c.sent();
458
339
  if (_error_2.response && _error_2.response.data) {
459
340
  return [2 /*return*/, Promise.reject(_error_2.response.data)];
460
341
  }
461
342
  return [2 /*return*/, Promise.reject(_error_2)];
462
- case 10: return [2 /*return*/, Promise.reject(err)];
343
+ case 9: return [2 /*return*/, Promise.reject(err)];
463
344
  }
464
345
  });
465
346
  }); });
package/dist/common.d.ts CHANGED
@@ -62,7 +62,7 @@ export declare const toPathString: (url: URL) => string;
62
62
  *
63
63
  * @export
64
64
  */
65
- export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) => <T = unknown, R = AxiosResponse<T, any, {}, any>>(axios?: AxiosInstance, basePath?: string) => Promise<R>;
65
+ export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) => <T = unknown, R = AxiosResponse<T, any, {}>>(axios?: AxiosInstance, basePath?: string) => Promise<R>;
66
66
  /**
67
67
  * EMIL AccountService
68
68
  * The EMIL AccountService API description
package/dist/common.js CHANGED
@@ -233,7 +233,6 @@ exports.toPathString = toPathString;
233
233
  * @export
234
234
  */
235
235
  var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
236
- // Typed by hand: since axios 1.20, request() returns an internal axios type that SDK declarations cannot name.
237
236
  return function (axios, basePath) {
238
237
  if (axios === void 0) { axios = globalAxios; }
239
238
  if (basePath === void 0) { basePath = BASE_PATH; }
@@ -17,8 +17,6 @@ export interface ConfigurationParameters {
17
17
  basePath?: string;
18
18
  baseOptions?: any;
19
19
  formDataCtor?: new () => any;
20
- cookieAuth?: boolean;
21
- account?: string;
22
20
  }
23
21
  export declare class Configuration {
24
22
  /**
@@ -70,21 +68,6 @@ export declare class Configuration {
70
68
  * @type {new () => FormData}
71
69
  */
72
70
  formDataCtor?: new () => any;
73
- /**
74
- * Use a server session when authservice makes one; otherwise the token, as without this option.
75
- * Set `account` too, so each SDK object keeps its own account.
76
- *
77
- * @type {boolean}
78
- * @memberof Configuration
79
- */
80
- cookieAuth?: boolean;
81
- /**
82
- * The session account (Cognito sub) this app shows, so the SDK never takes another tab's account.
83
- *
84
- * @type {string}
85
- * @memberof Configuration
86
- */
87
- account?: string;
88
71
  constructor(param?: ConfigurationParameters);
89
72
  /**
90
73
  * Check if the given MIME is a JSON MIME.
@@ -24,8 +24,6 @@ var Configuration = /** @class */ (function () {
24
24
  this.basePath = param.basePath;
25
25
  this.baseOptions = param.baseOptions;
26
26
  this.formDataCtor = param.formDataCtor;
27
- this.cookieAuth = param.cookieAuth;
28
- this.account = param.account;
29
27
  }
30
28
  /**
31
29
  * Check if the given MIME is a JSON MIME.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emilgroup/account-sdk",
3
- "version": "1.49.1-beta.17",
3
+ "version": "1.49.1-beta.18",
4
4
  "description": "OpenAPI client for @emilgroup/account-sdk",
5
5
  "author": "OpenAPI-Generator Contributors",
6
6
  "keywords": [
@@ -18,7 +18,7 @@
18
18
  "prepare": "npm run build"
19
19
  },
20
20
  "dependencies": {
21
- "axios": "1.20.0"
21
+ "axios": "1.18.0"
22
22
  },
23
23
  "devDependencies": {
24
24