@cosmotech/core 1.18.0 → 1.18.1
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/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +6 -0
- package/dist/index.cjs.js +74 -39
- package/dist/index.esm.js +74 -39
- package/package.json +1 -1
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## **1.18.1** <sub><sup>2024-09-17 (3629ee8...3629ee8)</sup></sub>
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- add mechanism to refresh tokens for Keycloak auth provider ([3629ee8](https://github.com/Cosmo-Tech/webapp-component-core/commit/3629ee8))
|
|
6
|
+
|
|
1
7
|
## **1.18.0** <sub><sup>2024-09-11 (cc08ecb...54ff3ae)</sup></sub>
|
|
2
8
|
|
|
3
9
|
### 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,
|
|
@@ -57303,7 +57320,7 @@ var redirectOnAuthSuccess = () => {
|
|
|
57303
57320
|
var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
57304
57321
|
var _ref2 = _asyncToGenerator(function* (tokenReq, account) {
|
|
57305
57322
|
if (!tokenReq) {
|
|
57306
|
-
console.warn('No
|
|
57323
|
+
console.warn('No token request provided');
|
|
57307
57324
|
tokenReq = {};
|
|
57308
57325
|
}
|
|
57309
57326
|
tokenReq.account = account;
|
|
@@ -57317,7 +57334,7 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57317
57334
|
return;
|
|
57318
57335
|
} else if (((_silentTokenFetchErro = silentTokenFetchError.errorMessage) === null || _silentTokenFetchErro === void 0 ? void 0 : _silentTokenFetchErro.indexOf('interaction_required')) !== -1) {
|
|
57319
57336
|
msalApp.acquireTokenRedirect(tokenReq).then(tokenRes => tokenRes) // Token acquired with interaction
|
|
57320
|
-
.catch(tokenRedirectError => tokenRedirectError);
|
|
57337
|
+
.catch(tokenRedirectError => console.error(tokenRedirectError));
|
|
57321
57338
|
}
|
|
57322
57339
|
throw silentTokenFetchError;
|
|
57323
57340
|
});
|
|
@@ -57326,25 +57343,28 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57326
57343
|
return _ref2.apply(this, arguments);
|
|
57327
57344
|
};
|
|
57328
57345
|
}();
|
|
57346
|
+
|
|
57347
|
+
// When forceRefresh is set to true, existing tokens in browser storage are ignored and new tokens are retrieved with
|
|
57348
|
+
// a silent request
|
|
57329
57349
|
var acquireTokens = /*#__PURE__*/function () {
|
|
57330
57350
|
var _ref3 = _asyncToGenerator(function* () {
|
|
57331
57351
|
var _msalApp$getAllAccoun;
|
|
57352
|
+
var forceRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
57332
57353
|
if (!checkInit()) return;
|
|
57333
|
-
|
|
57334
|
-
|
|
57335
|
-
|
|
57336
|
-
|
|
57337
|
-
|
|
57338
|
-
|
|
57339
|
-
|
|
57340
|
-
|
|
57354
|
+
if (!forceRefresh) {
|
|
57355
|
+
var idToken = readFromStorage('authIdToken');
|
|
57356
|
+
var accessToken = readFromStorage('authAccessToken');
|
|
57357
|
+
var authenticated = readFromStorage('authAuthenticated') === 'true';
|
|
57358
|
+
if (authenticated && idToken != null && accessToken != null) {
|
|
57359
|
+
return {
|
|
57360
|
+
accessToken,
|
|
57361
|
+
idToken
|
|
57362
|
+
};
|
|
57363
|
+
}
|
|
57341
57364
|
}
|
|
57342
57365
|
var account = (_msalApp$getAllAccoun = msalApp.getAllAccounts()) === null || _msalApp$getAllAccoun === void 0 ? void 0 : _msalApp$getAllAccoun[0];
|
|
57343
|
-
|
|
57344
|
-
|
|
57345
|
-
return undefined;
|
|
57346
|
-
}
|
|
57347
|
-
return yield _acquireTokensByRequestAndAccount(tokenReq, account);
|
|
57366
|
+
if (account === undefined) return;
|
|
57367
|
+
return yield _acquireTokensByRequestAndAccount(config.accessRequest, account);
|
|
57348
57368
|
});
|
|
57349
57369
|
return function acquireTokens() {
|
|
57350
57370
|
return _ref3.apply(this, arguments);
|
|
@@ -57398,6 +57418,10 @@ var signOut = () => {
|
|
|
57398
57418
|
var isAsync = () => {
|
|
57399
57419
|
return false;
|
|
57400
57420
|
};
|
|
57421
|
+
var _updateTokensInStorage = tokens => {
|
|
57422
|
+
if (tokens !== null && tokens !== void 0 && tokens.idToken) writeToStorage('authIdToken', tokens.idToken);
|
|
57423
|
+
if (tokens !== null && tokens !== void 0 && tokens.accessToken) writeToStorage('authAccessToken', tokens.accessToken);
|
|
57424
|
+
};
|
|
57401
57425
|
var _extractRolesFromAccessToken = accessToken => {
|
|
57402
57426
|
var result = [];
|
|
57403
57427
|
if (accessToken) {
|
|
@@ -57415,33 +57439,33 @@ var isUserSignedIn = /*#__PURE__*/function () {
|
|
|
57415
57439
|
authData.authenticated = true;
|
|
57416
57440
|
return true;
|
|
57417
57441
|
}
|
|
57418
|
-
|
|
57419
|
-
|
|
57420
|
-
|
|
57421
|
-
|
|
57422
|
-
|
|
57423
|
-
|
|
57424
|
-
|
|
57425
|
-
|
|
57426
|
-
|
|
57427
|
-
|
|
57428
|
-
|
|
57429
|
-
|
|
57430
|
-
|
|
57442
|
+
try {
|
|
57443
|
+
// Resume interaction if one is already in progress
|
|
57444
|
+
if (readFromStorage('authInteractionInProgress') === name) {
|
|
57445
|
+
clearFromStorage('authInteractionInProgress');
|
|
57446
|
+
var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
|
|
57447
|
+
if (locationHashParameters.has('state')) {
|
|
57448
|
+
var _config2;
|
|
57449
|
+
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)) {
|
|
57450
|
+
msalApp.handleRedirectPromise().then(handleResponse); // Resume redirect workflow process
|
|
57451
|
+
} else if (locationHashParameters.has('iss')) {
|
|
57452
|
+
var _config3;
|
|
57453
|
+
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;
|
|
57454
|
+
var urlIssuer = locationHashParameters.get('iss');
|
|
57455
|
+
console.warn("Issuer found in url \"".concat(urlIssuer, "\" does not match keycloak configuration: \"").concat(configIssuer, "\""));
|
|
57456
|
+
}
|
|
57431
57457
|
}
|
|
57432
57458
|
}
|
|
57433
|
-
}
|
|
57434
57459
|
|
|
57435
|
-
|
|
57436
|
-
|
|
57437
|
-
|
|
57438
|
-
|
|
57439
|
-
|
|
57440
|
-
|
|
57441
|
-
|
|
57442
|
-
|
|
57443
|
-
|
|
57444
|
-
return true;
|
|
57460
|
+
// Otherwise, try to acquire a token silently to implement SSO
|
|
57461
|
+
var tokens = yield acquireTokens();
|
|
57462
|
+
_updateTokensInStorage(tokens);
|
|
57463
|
+
if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) {
|
|
57464
|
+
authData.roles = _extractRolesFromAccessToken(tokens.accessToken);
|
|
57465
|
+
return true;
|
|
57466
|
+
}
|
|
57467
|
+
} catch (e) {
|
|
57468
|
+
console.error(e);
|
|
57445
57469
|
}
|
|
57446
57470
|
return false;
|
|
57447
57471
|
});
|
|
@@ -57449,6 +57473,16 @@ var isUserSignedIn = /*#__PURE__*/function () {
|
|
|
57449
57473
|
return _ref4.apply(this, arguments);
|
|
57450
57474
|
};
|
|
57451
57475
|
}();
|
|
57476
|
+
var refreshTokens = /*#__PURE__*/function () {
|
|
57477
|
+
var _ref5 = _asyncToGenerator(function* () {
|
|
57478
|
+
var tokens = yield acquireTokens(true);
|
|
57479
|
+
_updateTokensInStorage(tokens);
|
|
57480
|
+
return tokens;
|
|
57481
|
+
});
|
|
57482
|
+
return function refreshTokens() {
|
|
57483
|
+
return _ref5.apply(this, arguments);
|
|
57484
|
+
};
|
|
57485
|
+
}();
|
|
57452
57486
|
var getUserEmail = () => {
|
|
57453
57487
|
var _authData$userEmail, _msalApp$getAllAccoun2;
|
|
57454
57488
|
if (!checkInit()) return;
|
|
@@ -57484,6 +57518,7 @@ var AuthKeycloakRedirect = /*#__PURE__*/Object.freeze({
|
|
|
57484
57518
|
isAsync: isAsync,
|
|
57485
57519
|
isUserSignedIn: isUserSignedIn,
|
|
57486
57520
|
name: name,
|
|
57521
|
+
refreshTokens: refreshTokens,
|
|
57487
57522
|
setConfig: setConfig,
|
|
57488
57523
|
signIn: signIn,
|
|
57489
57524
|
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,
|
|
@@ -57301,7 +57318,7 @@ var redirectOnAuthSuccess = () => {
|
|
|
57301
57318
|
var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
57302
57319
|
var _ref2 = _asyncToGenerator(function* (tokenReq, account) {
|
|
57303
57320
|
if (!tokenReq) {
|
|
57304
|
-
console.warn('No
|
|
57321
|
+
console.warn('No token request provided');
|
|
57305
57322
|
tokenReq = {};
|
|
57306
57323
|
}
|
|
57307
57324
|
tokenReq.account = account;
|
|
@@ -57315,7 +57332,7 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57315
57332
|
return;
|
|
57316
57333
|
} else if (((_silentTokenFetchErro = silentTokenFetchError.errorMessage) === null || _silentTokenFetchErro === void 0 ? void 0 : _silentTokenFetchErro.indexOf('interaction_required')) !== -1) {
|
|
57317
57334
|
msalApp.acquireTokenRedirect(tokenReq).then(tokenRes => tokenRes) // Token acquired with interaction
|
|
57318
|
-
.catch(tokenRedirectError => tokenRedirectError);
|
|
57335
|
+
.catch(tokenRedirectError => console.error(tokenRedirectError));
|
|
57319
57336
|
}
|
|
57320
57337
|
throw silentTokenFetchError;
|
|
57321
57338
|
});
|
|
@@ -57324,25 +57341,28 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57324
57341
|
return _ref2.apply(this, arguments);
|
|
57325
57342
|
};
|
|
57326
57343
|
}();
|
|
57344
|
+
|
|
57345
|
+
// When forceRefresh is set to true, existing tokens in browser storage are ignored and new tokens are retrieved with
|
|
57346
|
+
// a silent request
|
|
57327
57347
|
var acquireTokens = /*#__PURE__*/function () {
|
|
57328
57348
|
var _ref3 = _asyncToGenerator(function* () {
|
|
57329
57349
|
var _msalApp$getAllAccoun;
|
|
57350
|
+
var forceRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
57330
57351
|
if (!checkInit()) return;
|
|
57331
|
-
|
|
57332
|
-
|
|
57333
|
-
|
|
57334
|
-
|
|
57335
|
-
|
|
57336
|
-
|
|
57337
|
-
|
|
57338
|
-
|
|
57352
|
+
if (!forceRefresh) {
|
|
57353
|
+
var idToken = readFromStorage('authIdToken');
|
|
57354
|
+
var accessToken = readFromStorage('authAccessToken');
|
|
57355
|
+
var authenticated = readFromStorage('authAuthenticated') === 'true';
|
|
57356
|
+
if (authenticated && idToken != null && accessToken != null) {
|
|
57357
|
+
return {
|
|
57358
|
+
accessToken,
|
|
57359
|
+
idToken
|
|
57360
|
+
};
|
|
57361
|
+
}
|
|
57339
57362
|
}
|
|
57340
57363
|
var account = (_msalApp$getAllAccoun = msalApp.getAllAccounts()) === null || _msalApp$getAllAccoun === void 0 ? void 0 : _msalApp$getAllAccoun[0];
|
|
57341
|
-
|
|
57342
|
-
|
|
57343
|
-
return undefined;
|
|
57344
|
-
}
|
|
57345
|
-
return yield _acquireTokensByRequestAndAccount(tokenReq, account);
|
|
57364
|
+
if (account === undefined) return;
|
|
57365
|
+
return yield _acquireTokensByRequestAndAccount(config.accessRequest, account);
|
|
57346
57366
|
});
|
|
57347
57367
|
return function acquireTokens() {
|
|
57348
57368
|
return _ref3.apply(this, arguments);
|
|
@@ -57396,6 +57416,10 @@ var signOut = () => {
|
|
|
57396
57416
|
var isAsync = () => {
|
|
57397
57417
|
return false;
|
|
57398
57418
|
};
|
|
57419
|
+
var _updateTokensInStorage = tokens => {
|
|
57420
|
+
if (tokens !== null && tokens !== void 0 && tokens.idToken) writeToStorage('authIdToken', tokens.idToken);
|
|
57421
|
+
if (tokens !== null && tokens !== void 0 && tokens.accessToken) writeToStorage('authAccessToken', tokens.accessToken);
|
|
57422
|
+
};
|
|
57399
57423
|
var _extractRolesFromAccessToken = accessToken => {
|
|
57400
57424
|
var result = [];
|
|
57401
57425
|
if (accessToken) {
|
|
@@ -57413,33 +57437,33 @@ var isUserSignedIn = /*#__PURE__*/function () {
|
|
|
57413
57437
|
authData.authenticated = true;
|
|
57414
57438
|
return true;
|
|
57415
57439
|
}
|
|
57416
|
-
|
|
57417
|
-
|
|
57418
|
-
|
|
57419
|
-
|
|
57420
|
-
|
|
57421
|
-
|
|
57422
|
-
|
|
57423
|
-
|
|
57424
|
-
|
|
57425
|
-
|
|
57426
|
-
|
|
57427
|
-
|
|
57428
|
-
|
|
57440
|
+
try {
|
|
57441
|
+
// Resume interaction if one is already in progress
|
|
57442
|
+
if (readFromStorage('authInteractionInProgress') === name) {
|
|
57443
|
+
clearFromStorage('authInteractionInProgress');
|
|
57444
|
+
var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
|
|
57445
|
+
if (locationHashParameters.has('state')) {
|
|
57446
|
+
var _config2;
|
|
57447
|
+
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)) {
|
|
57448
|
+
msalApp.handleRedirectPromise().then(handleResponse); // Resume redirect workflow process
|
|
57449
|
+
} else if (locationHashParameters.has('iss')) {
|
|
57450
|
+
var _config3;
|
|
57451
|
+
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;
|
|
57452
|
+
var urlIssuer = locationHashParameters.get('iss');
|
|
57453
|
+
console.warn("Issuer found in url \"".concat(urlIssuer, "\" does not match keycloak configuration: \"").concat(configIssuer, "\""));
|
|
57454
|
+
}
|
|
57429
57455
|
}
|
|
57430
57456
|
}
|
|
57431
|
-
}
|
|
57432
57457
|
|
|
57433
|
-
|
|
57434
|
-
|
|
57435
|
-
|
|
57436
|
-
|
|
57437
|
-
|
|
57438
|
-
|
|
57439
|
-
|
|
57440
|
-
|
|
57441
|
-
|
|
57442
|
-
return true;
|
|
57458
|
+
// Otherwise, try to acquire a token silently to implement SSO
|
|
57459
|
+
var tokens = yield acquireTokens();
|
|
57460
|
+
_updateTokensInStorage(tokens);
|
|
57461
|
+
if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) {
|
|
57462
|
+
authData.roles = _extractRolesFromAccessToken(tokens.accessToken);
|
|
57463
|
+
return true;
|
|
57464
|
+
}
|
|
57465
|
+
} catch (e) {
|
|
57466
|
+
console.error(e);
|
|
57443
57467
|
}
|
|
57444
57468
|
return false;
|
|
57445
57469
|
});
|
|
@@ -57447,6 +57471,16 @@ var isUserSignedIn = /*#__PURE__*/function () {
|
|
|
57447
57471
|
return _ref4.apply(this, arguments);
|
|
57448
57472
|
};
|
|
57449
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
|
+
}();
|
|
57450
57484
|
var getUserEmail = () => {
|
|
57451
57485
|
var _authData$userEmail, _msalApp$getAllAccoun2;
|
|
57452
57486
|
if (!checkInit()) return;
|
|
@@ -57482,6 +57516,7 @@ var AuthKeycloakRedirect = /*#__PURE__*/Object.freeze({
|
|
|
57482
57516
|
isAsync: isAsync,
|
|
57483
57517
|
isUserSignedIn: isUserSignedIn,
|
|
57484
57518
|
name: name,
|
|
57519
|
+
refreshTokens: refreshTokens,
|
|
57485
57520
|
setConfig: setConfig,
|
|
57486
57521
|
signIn: signIn,
|
|
57487
57522
|
signOut: signOut
|