@cosmotech/core 1.18.0 → 1.18.2

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.
Binary file
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## **1.18.2** <sub><sup>2024-09-23 (e619d7e...e619d7e)</sup></sub>
2
+
3
+ ### Bug Fixes
4
+
5
+ - fix empty user roles when using Keycloak auth provider ([e619d7e](https://github.com/Cosmo-Tech/webapp-component-core/commit/e619d7e))
6
+
7
+ ## **1.18.1** <sub><sup>2024-09-17 (3629ee8...3629ee8)</sup></sub>
8
+
9
+ ### Bug Fixes
10
+
11
+ - add mechanism to refresh tokens for Keycloak auth provider ([3629ee8](https://github.com/Cosmo-Tech/webapp-component-core/commit/3629ee8))
12
+
1
13
  ## **1.18.0** <sub><sup>2024-09-11 (cc08ecb...54ff3ae)</sup></sub>
2
14
 
3
15
  ### Features
package/dist/index.cjs.js CHANGED
@@ -41408,6 +41408,22 @@ function isUserSignedIn$2(callback) {
41408
41408
  }
41409
41409
  return currentProvider.isUserSignedIn(callback);
41410
41410
  }
41411
+ function refreshTokens$1() {
41412
+ return _refreshTokens.apply(this, arguments);
41413
+ }
41414
+ function _refreshTokens() {
41415
+ _refreshTokens = _asyncToGenerator(function* () {
41416
+ if (currentProvider === undefined) {
41417
+ return;
41418
+ }
41419
+ if (!currentProvider.refreshTokens) {
41420
+ console.warn('Method refreshTokens is not implemented in the current authentication provider');
41421
+ return;
41422
+ }
41423
+ return currentProvider.refreshTokens();
41424
+ });
41425
+ return _refreshTokens.apply(this, arguments);
41426
+ }
41411
41427
  function getUserEmail$2() {
41412
41428
  if (currentProvider === undefined) {
41413
41429
  return undefined;
@@ -41445,6 +41461,7 @@ var Auth = {
41445
41461
  signOut: signOut$2,
41446
41462
  onAuthStateChanged,
41447
41463
  isUserSignedIn: isUserSignedIn$2,
41464
+ refreshTokens: refreshTokens$1,
41448
41465
  getUserEmail: getUserEmail$2,
41449
41466
  getUserName: getUserName$2,
41450
41467
  getUserId: getUserId$2,
@@ -57270,7 +57287,6 @@ var readFromStorage = key => localStorage.getItem(key);
57270
57287
  var clearFromStorage = key => localStorage.removeItem(key);
57271
57288
  var name = 'auth-keycloakRedirect';
57272
57289
  var authData = {
57273
- authenticated: readFromStorage('authAuthenticated') === 'true',
57274
57290
  accountId: undefined,
57275
57291
  userEmail: undefined,
57276
57292
  username: undefined,
@@ -57303,7 +57319,7 @@ var redirectOnAuthSuccess = () => {
57303
57319
  var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
57304
57320
  var _ref2 = _asyncToGenerator(function* (tokenReq, account) {
57305
57321
  if (!tokenReq) {
57306
- console.warn('No base access token request provided');
57322
+ console.warn('No token request provided');
57307
57323
  tokenReq = {};
57308
57324
  }
57309
57325
  tokenReq.account = account;
@@ -57317,7 +57333,7 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
57317
57333
  return;
57318
57334
  } else if (((_silentTokenFetchErro = silentTokenFetchError.errorMessage) === null || _silentTokenFetchErro === void 0 ? void 0 : _silentTokenFetchErro.indexOf('interaction_required')) !== -1) {
57319
57335
  msalApp.acquireTokenRedirect(tokenReq).then(tokenRes => tokenRes) // Token acquired with interaction
57320
- .catch(tokenRedirectError => tokenRedirectError); // Token retrieval failed
57336
+ .catch(tokenRedirectError => console.error(tokenRedirectError));
57321
57337
  }
57322
57338
  throw silentTokenFetchError;
57323
57339
  });
@@ -57326,25 +57342,27 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
57326
57342
  return _ref2.apply(this, arguments);
57327
57343
  };
57328
57344
  }();
57345
+
57346
+ // When forceRefresh is set to true, existing tokens in browser storage are ignored and new tokens are retrieved with
57347
+ // a silent request
57329
57348
  var acquireTokens = /*#__PURE__*/function () {
57330
57349
  var _ref3 = _asyncToGenerator(function* () {
57331
57350
  var _msalApp$getAllAccoun;
57351
+ var forceRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
57332
57352
  if (!checkInit()) return;
57333
- var idToken = readFromStorage('authIdToken');
57334
- var accessToken = readFromStorage('authAccessToken');
57335
- var authenticated = readFromStorage('authAuthenticated') === 'true';
57336
- if (authenticated && idToken != null && accessToken != null) {
57353
+ if (!forceRefresh && readFromStorage('authAuthenticated') === 'true') {
57354
+ var idToken = readFromStorage('authIdToken');
57355
+ var accessToken = readFromStorage('authAccessToken');
57337
57356
  return {
57338
57357
  accessToken,
57339
57358
  idToken
57340
57359
  };
57341
57360
  }
57342
57361
  var account = (_msalApp$getAllAccoun = msalApp.getAllAccounts()) === null || _msalApp$getAllAccoun === void 0 ? void 0 : _msalApp$getAllAccoun[0];
57343
- var tokenReq = config.accessRequest;
57344
- if (account === undefined) {
57345
- return undefined;
57346
- }
57347
- return yield _acquireTokensByRequestAndAccount(tokenReq, account);
57362
+ if (account === undefined) return;
57363
+ var tokens = yield _acquireTokensByRequestAndAccount(config.accessRequest, account);
57364
+ _updateTokensInStorage(tokens);
57365
+ return tokens;
57348
57366
  });
57349
57367
  return function acquireTokens() {
57350
57368
  return _ref3.apply(this, arguments);
@@ -57353,12 +57371,10 @@ var acquireTokens = /*#__PURE__*/function () {
57353
57371
  var handleResponse = response => {
57354
57372
  if (response != null) {
57355
57373
  var account = response.account;
57374
+ _updateTokensInStorage(response);
57356
57375
  writeToStorage('authIdTokenPopup', response.idToken);
57357
- writeToStorage('authIdToken', response.idToken);
57358
- writeToStorage('authAccessToken', response.accessToken);
57359
57376
  writeToStorage('authAuthenticated', 'true');
57360
57377
  writeToStorage('authAccountId', account.homeAccountId);
57361
- authData.authenticated = true;
57362
57378
  authData.accountId = account.homeAccountId;
57363
57379
  authData.userEmail = account.username; // In MSAL account data, username property contains user email
57364
57380
  authData.username = account.name;
@@ -57398,50 +57414,56 @@ var signOut = () => {
57398
57414
  var isAsync = () => {
57399
57415
  return false;
57400
57416
  };
57417
+ var _updateTokensInStorage = tokens => {
57418
+ if (tokens !== null && tokens !== void 0 && tokens.idToken) writeToStorage('authIdToken', tokens.idToken);
57419
+ if (tokens !== null && tokens !== void 0 && tokens.accessToken) {
57420
+ writeToStorage('authAccessToken', tokens.accessToken);
57421
+ authData.roles = _extractRolesFromAccessToken(tokens.accessToken);
57422
+ }
57423
+ };
57401
57424
  var _extractRolesFromAccessToken = accessToken => {
57402
57425
  var result = [];
57403
57426
  if (accessToken) {
57404
57427
  var decodedToken = JSON.parse(atob(accessToken.split('.')[1]));
57405
- if (decodedToken !== null && decodedToken !== void 0 && decodedToken.roles) {
57406
- result = decodedToken === null || decodedToken === void 0 ? void 0 : decodedToken.roles;
57407
- }
57428
+ // The exact key to use may depend from keycloak client & API configuration
57429
+ if (decodedToken !== null && decodedToken !== void 0 && decodedToken.roles) result = decodedToken.roles;else if (decodedToken !== null && decodedToken !== void 0 && decodedToken.userRoles) result = decodedToken.userRoles;
57408
57430
  }
57409
57431
  return result;
57410
57432
  };
57411
57433
  var isUserSignedIn = /*#__PURE__*/function () {
57412
57434
  var _ref4 = _asyncToGenerator(function* () {
57413
- if (authData.authenticated) return true;
57414
57435
  if (readFromStorage('authAuthenticated') === 'true') {
57415
- authData.authenticated = true;
57436
+ // Restore roles from access token if necessary (roles in auhtData may be lost after login redirection)
57437
+ if (authData.roles.length === 0) {
57438
+ var accessToken = readFromStorage('authAccessToken');
57439
+ if (accessToken) authData.roles = _extractRolesFromAccessToken(accessToken);
57440
+ }
57416
57441
  return true;
57417
57442
  }
57418
-
57419
- // Resume interaction if one is already in progress
57420
- if (readFromStorage('authInteractionInProgress') === name) {
57421
- clearFromStorage('authInteractionInProgress');
57422
- var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
57423
- if (locationHashParameters.has('state')) {
57424
- var _config2;
57425
- if (locationHashParameters.has('iss', (_config2 = config) === null || _config2 === void 0 || (_config2 = _config2.msalConfig) === null || _config2 === void 0 || (_config2 = _config2.auth) === null || _config2 === void 0 || (_config2 = _config2.authorityMetadata) === null || _config2 === void 0 ? void 0 : _config2.issuer)) {
57426
- // Resume redirect workflow process
57427
- msalApp.handleRedirectPromise().then(handleResponse);
57428
- } else if (locationHashParameters.has('iss')) {
57429
- var _config3;
57430
- console.warn('Issuer found in url ("' + ((_config3 = config) === null || _config3 === void 0 || (_config3 = _config3.msalConfig) === null || _config3 === void 0 || (_config3 = _config3.auth) === null || _config3 === void 0 || (_config3 = _config3.authorityMetadata) === null || _config3 === void 0 ? void 0 : _config3.issuer) + '") does not match the keycloak configuration ("' + locationHashParameters.get('iss') + '")');
57443
+ try {
57444
+ // Resume interaction if one is already in progress
57445
+ if (readFromStorage('authInteractionInProgress') === name) {
57446
+ clearFromStorage('authInteractionInProgress');
57447
+ var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
57448
+ if (locationHashParameters.has('state')) {
57449
+ var _config2;
57450
+ if (locationHashParameters.has('iss', (_config2 = config) === null || _config2 === void 0 || (_config2 = _config2.msalConfig) === null || _config2 === void 0 || (_config2 = _config2.auth) === null || _config2 === void 0 || (_config2 = _config2.authorityMetadata) === null || _config2 === void 0 ? void 0 : _config2.issuer)) {
57451
+ msalApp.handleRedirectPromise().then(handleResponse); // Resume redirect workflow process
57452
+ } else if (locationHashParameters.has('iss')) {
57453
+ var _config3;
57454
+ var configIssuer = (_config3 = config) === null || _config3 === void 0 || (_config3 = _config3.msalConfig) === null || _config3 === void 0 || (_config3 = _config3.auth) === null || _config3 === void 0 || (_config3 = _config3.authorityMetadata) === null || _config3 === void 0 ? void 0 : _config3.issuer;
57455
+ var urlIssuer = locationHashParameters.get('iss');
57456
+ console.warn("Issuer found in url \"".concat(urlIssuer, "\" does not match keycloak configuration: \"").concat(configIssuer, "\""));
57457
+ }
57431
57458
  }
57432
57459
  }
57433
- }
57434
57460
 
57435
- // Otherwise, try to acquire a token silently to implement SSO
57436
- var tokens = yield acquireTokens();
57437
- if ((tokens === null || tokens === void 0 ? void 0 : tokens.idToken) !== undefined) {
57438
- writeToStorage('authIdToken', tokens.idToken);
57439
- }
57440
- if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) {
57441
- var accessToken = tokens.accessToken;
57442
- authData.roles = _extractRolesFromAccessToken(accessToken);
57443
- writeToStorage('authAccessToken', accessToken);
57444
- return true;
57461
+ // Otherwise, try to acquire a token silently to implement SSO
57462
+ var tokens = yield acquireTokens();
57463
+ _updateTokensInStorage(tokens);
57464
+ if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) return true;
57465
+ } catch (e) {
57466
+ console.error(e);
57445
57467
  }
57446
57468
  return false;
57447
57469
  });
@@ -57449,6 +57471,16 @@ var isUserSignedIn = /*#__PURE__*/function () {
57449
57471
  return _ref4.apply(this, arguments);
57450
57472
  };
57451
57473
  }();
57474
+ var refreshTokens = /*#__PURE__*/function () {
57475
+ var _ref5 = _asyncToGenerator(function* () {
57476
+ var tokens = yield acquireTokens(true);
57477
+ _updateTokensInStorage(tokens);
57478
+ return tokens;
57479
+ });
57480
+ return function refreshTokens() {
57481
+ return _ref5.apply(this, arguments);
57482
+ };
57483
+ }();
57452
57484
  var getUserEmail = () => {
57453
57485
  var _authData$userEmail, _msalApp$getAllAccoun2;
57454
57486
  if (!checkInit()) return;
@@ -57484,6 +57516,7 @@ var AuthKeycloakRedirect = /*#__PURE__*/Object.freeze({
57484
57516
  isAsync: isAsync,
57485
57517
  isUserSignedIn: isUserSignedIn,
57486
57518
  name: name,
57519
+ refreshTokens: refreshTokens,
57487
57520
  setConfig: setConfig,
57488
57521
  signIn: signIn,
57489
57522
  signOut: signOut
package/dist/index.esm.js CHANGED
@@ -41406,6 +41406,22 @@ function isUserSignedIn$2(callback) {
41406
41406
  }
41407
41407
  return currentProvider.isUserSignedIn(callback);
41408
41408
  }
41409
+ function refreshTokens$1() {
41410
+ return _refreshTokens.apply(this, arguments);
41411
+ }
41412
+ function _refreshTokens() {
41413
+ _refreshTokens = _asyncToGenerator(function* () {
41414
+ if (currentProvider === undefined) {
41415
+ return;
41416
+ }
41417
+ if (!currentProvider.refreshTokens) {
41418
+ console.warn('Method refreshTokens is not implemented in the current authentication provider');
41419
+ return;
41420
+ }
41421
+ return currentProvider.refreshTokens();
41422
+ });
41423
+ return _refreshTokens.apply(this, arguments);
41424
+ }
41409
41425
  function getUserEmail$2() {
41410
41426
  if (currentProvider === undefined) {
41411
41427
  return undefined;
@@ -41443,6 +41459,7 @@ var Auth = {
41443
41459
  signOut: signOut$2,
41444
41460
  onAuthStateChanged,
41445
41461
  isUserSignedIn: isUserSignedIn$2,
41462
+ refreshTokens: refreshTokens$1,
41446
41463
  getUserEmail: getUserEmail$2,
41447
41464
  getUserName: getUserName$2,
41448
41465
  getUserId: getUserId$2,
@@ -57268,7 +57285,6 @@ var readFromStorage = key => localStorage.getItem(key);
57268
57285
  var clearFromStorage = key => localStorage.removeItem(key);
57269
57286
  var name = 'auth-keycloakRedirect';
57270
57287
  var authData = {
57271
- authenticated: readFromStorage('authAuthenticated') === 'true',
57272
57288
  accountId: undefined,
57273
57289
  userEmail: undefined,
57274
57290
  username: undefined,
@@ -57301,7 +57317,7 @@ var redirectOnAuthSuccess = () => {
57301
57317
  var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
57302
57318
  var _ref2 = _asyncToGenerator(function* (tokenReq, account) {
57303
57319
  if (!tokenReq) {
57304
- console.warn('No base access token request provided');
57320
+ console.warn('No token request provided');
57305
57321
  tokenReq = {};
57306
57322
  }
57307
57323
  tokenReq.account = account;
@@ -57315,7 +57331,7 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
57315
57331
  return;
57316
57332
  } else if (((_silentTokenFetchErro = silentTokenFetchError.errorMessage) === null || _silentTokenFetchErro === void 0 ? void 0 : _silentTokenFetchErro.indexOf('interaction_required')) !== -1) {
57317
57333
  msalApp.acquireTokenRedirect(tokenReq).then(tokenRes => tokenRes) // Token acquired with interaction
57318
- .catch(tokenRedirectError => tokenRedirectError); // Token retrieval failed
57334
+ .catch(tokenRedirectError => console.error(tokenRedirectError));
57319
57335
  }
57320
57336
  throw silentTokenFetchError;
57321
57337
  });
@@ -57324,25 +57340,27 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
57324
57340
  return _ref2.apply(this, arguments);
57325
57341
  };
57326
57342
  }();
57343
+
57344
+ // When forceRefresh is set to true, existing tokens in browser storage are ignored and new tokens are retrieved with
57345
+ // a silent request
57327
57346
  var acquireTokens = /*#__PURE__*/function () {
57328
57347
  var _ref3 = _asyncToGenerator(function* () {
57329
57348
  var _msalApp$getAllAccoun;
57349
+ var forceRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
57330
57350
  if (!checkInit()) return;
57331
- var idToken = readFromStorage('authIdToken');
57332
- var accessToken = readFromStorage('authAccessToken');
57333
- var authenticated = readFromStorage('authAuthenticated') === 'true';
57334
- if (authenticated && idToken != null && accessToken != null) {
57351
+ if (!forceRefresh && readFromStorage('authAuthenticated') === 'true') {
57352
+ var idToken = readFromStorage('authIdToken');
57353
+ var accessToken = readFromStorage('authAccessToken');
57335
57354
  return {
57336
57355
  accessToken,
57337
57356
  idToken
57338
57357
  };
57339
57358
  }
57340
57359
  var account = (_msalApp$getAllAccoun = msalApp.getAllAccounts()) === null || _msalApp$getAllAccoun === void 0 ? void 0 : _msalApp$getAllAccoun[0];
57341
- var tokenReq = config.accessRequest;
57342
- if (account === undefined) {
57343
- return undefined;
57344
- }
57345
- return yield _acquireTokensByRequestAndAccount(tokenReq, account);
57360
+ if (account === undefined) return;
57361
+ var tokens = yield _acquireTokensByRequestAndAccount(config.accessRequest, account);
57362
+ _updateTokensInStorage(tokens);
57363
+ return tokens;
57346
57364
  });
57347
57365
  return function acquireTokens() {
57348
57366
  return _ref3.apply(this, arguments);
@@ -57351,12 +57369,10 @@ var acquireTokens = /*#__PURE__*/function () {
57351
57369
  var handleResponse = response => {
57352
57370
  if (response != null) {
57353
57371
  var account = response.account;
57372
+ _updateTokensInStorage(response);
57354
57373
  writeToStorage('authIdTokenPopup', response.idToken);
57355
- writeToStorage('authIdToken', response.idToken);
57356
- writeToStorage('authAccessToken', response.accessToken);
57357
57374
  writeToStorage('authAuthenticated', 'true');
57358
57375
  writeToStorage('authAccountId', account.homeAccountId);
57359
- authData.authenticated = true;
57360
57376
  authData.accountId = account.homeAccountId;
57361
57377
  authData.userEmail = account.username; // In MSAL account data, username property contains user email
57362
57378
  authData.username = account.name;
@@ -57396,50 +57412,56 @@ var signOut = () => {
57396
57412
  var isAsync = () => {
57397
57413
  return false;
57398
57414
  };
57415
+ var _updateTokensInStorage = tokens => {
57416
+ if (tokens !== null && tokens !== void 0 && tokens.idToken) writeToStorage('authIdToken', tokens.idToken);
57417
+ if (tokens !== null && tokens !== void 0 && tokens.accessToken) {
57418
+ writeToStorage('authAccessToken', tokens.accessToken);
57419
+ authData.roles = _extractRolesFromAccessToken(tokens.accessToken);
57420
+ }
57421
+ };
57399
57422
  var _extractRolesFromAccessToken = accessToken => {
57400
57423
  var result = [];
57401
57424
  if (accessToken) {
57402
57425
  var decodedToken = JSON.parse(atob(accessToken.split('.')[1]));
57403
- if (decodedToken !== null && decodedToken !== void 0 && decodedToken.roles) {
57404
- result = decodedToken === null || decodedToken === void 0 ? void 0 : decodedToken.roles;
57405
- }
57426
+ // The exact key to use may depend from keycloak client & API configuration
57427
+ if (decodedToken !== null && decodedToken !== void 0 && decodedToken.roles) result = decodedToken.roles;else if (decodedToken !== null && decodedToken !== void 0 && decodedToken.userRoles) result = decodedToken.userRoles;
57406
57428
  }
57407
57429
  return result;
57408
57430
  };
57409
57431
  var isUserSignedIn = /*#__PURE__*/function () {
57410
57432
  var _ref4 = _asyncToGenerator(function* () {
57411
- if (authData.authenticated) return true;
57412
57433
  if (readFromStorage('authAuthenticated') === 'true') {
57413
- authData.authenticated = true;
57434
+ // Restore roles from access token if necessary (roles in auhtData may be lost after login redirection)
57435
+ if (authData.roles.length === 0) {
57436
+ var accessToken = readFromStorage('authAccessToken');
57437
+ if (accessToken) authData.roles = _extractRolesFromAccessToken(accessToken);
57438
+ }
57414
57439
  return true;
57415
57440
  }
57416
-
57417
- // Resume interaction if one is already in progress
57418
- if (readFromStorage('authInteractionInProgress') === name) {
57419
- clearFromStorage('authInteractionInProgress');
57420
- var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
57421
- if (locationHashParameters.has('state')) {
57422
- var _config2;
57423
- if (locationHashParameters.has('iss', (_config2 = config) === null || _config2 === void 0 || (_config2 = _config2.msalConfig) === null || _config2 === void 0 || (_config2 = _config2.auth) === null || _config2 === void 0 || (_config2 = _config2.authorityMetadata) === null || _config2 === void 0 ? void 0 : _config2.issuer)) {
57424
- // Resume redirect workflow process
57425
- msalApp.handleRedirectPromise().then(handleResponse);
57426
- } else if (locationHashParameters.has('iss')) {
57427
- var _config3;
57428
- console.warn('Issuer found in url ("' + ((_config3 = config) === null || _config3 === void 0 || (_config3 = _config3.msalConfig) === null || _config3 === void 0 || (_config3 = _config3.auth) === null || _config3 === void 0 || (_config3 = _config3.authorityMetadata) === null || _config3 === void 0 ? void 0 : _config3.issuer) + '") does not match the keycloak configuration ("' + locationHashParameters.get('iss') + '")');
57441
+ try {
57442
+ // Resume interaction if one is already in progress
57443
+ if (readFromStorage('authInteractionInProgress') === name) {
57444
+ clearFromStorage('authInteractionInProgress');
57445
+ var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
57446
+ if (locationHashParameters.has('state')) {
57447
+ var _config2;
57448
+ if (locationHashParameters.has('iss', (_config2 = config) === null || _config2 === void 0 || (_config2 = _config2.msalConfig) === null || _config2 === void 0 || (_config2 = _config2.auth) === null || _config2 === void 0 || (_config2 = _config2.authorityMetadata) === null || _config2 === void 0 ? void 0 : _config2.issuer)) {
57449
+ msalApp.handleRedirectPromise().then(handleResponse); // Resume redirect workflow process
57450
+ } else if (locationHashParameters.has('iss')) {
57451
+ var _config3;
57452
+ var configIssuer = (_config3 = config) === null || _config3 === void 0 || (_config3 = _config3.msalConfig) === null || _config3 === void 0 || (_config3 = _config3.auth) === null || _config3 === void 0 || (_config3 = _config3.authorityMetadata) === null || _config3 === void 0 ? void 0 : _config3.issuer;
57453
+ var urlIssuer = locationHashParameters.get('iss');
57454
+ console.warn("Issuer found in url \"".concat(urlIssuer, "\" does not match keycloak configuration: \"").concat(configIssuer, "\""));
57455
+ }
57429
57456
  }
57430
57457
  }
57431
- }
57432
57458
 
57433
- // Otherwise, try to acquire a token silently to implement SSO
57434
- var tokens = yield acquireTokens();
57435
- if ((tokens === null || tokens === void 0 ? void 0 : tokens.idToken) !== undefined) {
57436
- writeToStorage('authIdToken', tokens.idToken);
57437
- }
57438
- if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) {
57439
- var accessToken = tokens.accessToken;
57440
- authData.roles = _extractRolesFromAccessToken(accessToken);
57441
- writeToStorage('authAccessToken', accessToken);
57442
- return true;
57459
+ // Otherwise, try to acquire a token silently to implement SSO
57460
+ var tokens = yield acquireTokens();
57461
+ _updateTokensInStorage(tokens);
57462
+ if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) return true;
57463
+ } catch (e) {
57464
+ console.error(e);
57443
57465
  }
57444
57466
  return false;
57445
57467
  });
@@ -57447,6 +57469,16 @@ var isUserSignedIn = /*#__PURE__*/function () {
57447
57469
  return _ref4.apply(this, arguments);
57448
57470
  };
57449
57471
  }();
57472
+ var refreshTokens = /*#__PURE__*/function () {
57473
+ var _ref5 = _asyncToGenerator(function* () {
57474
+ var tokens = yield acquireTokens(true);
57475
+ _updateTokensInStorage(tokens);
57476
+ return tokens;
57477
+ });
57478
+ return function refreshTokens() {
57479
+ return _ref5.apply(this, arguments);
57480
+ };
57481
+ }();
57450
57482
  var getUserEmail = () => {
57451
57483
  var _authData$userEmail, _msalApp$getAllAccoun2;
57452
57484
  if (!checkInit()) return;
@@ -57482,6 +57514,7 @@ var AuthKeycloakRedirect = /*#__PURE__*/Object.freeze({
57482
57514
  isAsync: isAsync,
57483
57515
  isUserSignedIn: isUserSignedIn,
57484
57516
  name: name,
57517
+ refreshTokens: refreshTokens,
57485
57518
  setConfig: setConfig,
57486
57519
  signIn: signIn,
57487
57520
  signOut: signOut
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmotech/core",
3
- "version": "1.18.0",
3
+ "version": "1.18.2",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",