oidc-spa 7.1.9 → 7.2.0-rc.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.
Files changed (172) hide show
  1. package/backend.js +235 -352
  2. package/backend.js.map +1 -1
  3. package/core/AuthResponse.js +12 -49
  4. package/core/AuthResponse.js.map +1 -1
  5. package/core/Oidc.d.ts +1 -2
  6. package/core/OidcInitializationError.d.ts +2 -2
  7. package/core/OidcInitializationError.js +230 -297
  8. package/core/OidcInitializationError.js.map +1 -1
  9. package/core/OidcMetadata.js +1 -1
  10. package/core/OidcMetadata.js.map +1 -1
  11. package/core/StateData.d.ts +5 -5
  12. package/core/StateData.js +25 -25
  13. package/core/StateData.js.map +1 -1
  14. package/core/configId.js +1 -1
  15. package/core/configId.js.map +1 -1
  16. package/core/createOidc.d.ts +8 -0
  17. package/core/createOidc.js +999 -1294
  18. package/core/createOidc.js.map +1 -1
  19. package/core/evtIsUserActive.js +26 -27
  20. package/core/evtIsUserActive.js.map +1 -1
  21. package/core/handleOidcCallback.js +99 -154
  22. package/core/handleOidcCallback.js.map +1 -1
  23. package/core/iframeMessageProtection.d.ts +1 -1
  24. package/core/iframeMessageProtection.js +43 -108
  25. package/core/iframeMessageProtection.js.map +1 -1
  26. package/core/index.d.ts +1 -1
  27. package/core/index.js +3 -3
  28. package/core/index.js.map +1 -1
  29. package/core/initialLocationHref.js +1 -1
  30. package/core/initialLocationHref.js.map +1 -1
  31. package/core/isNewBrowserSession.js +8 -8
  32. package/core/isNewBrowserSession.js.map +1 -1
  33. package/core/loginOrGoToAuthServer.d.ts +1 -1
  34. package/core/loginOrGoToAuthServer.js +188 -310
  35. package/core/loginOrGoToAuthServer.js.map +1 -1
  36. package/core/loginPropagationToOtherTabs.js +15 -16
  37. package/core/loginPropagationToOtherTabs.js.map +1 -1
  38. package/core/loginSilent.d.ts +2 -3
  39. package/core/loginSilent.js +118 -214
  40. package/core/loginSilent.js.map +1 -1
  41. package/core/logoutPropagationToOtherTabs.js +15 -16
  42. package/core/logoutPropagationToOtherTabs.js.map +1 -1
  43. package/core/oidcClientTsUserToTokens.d.ts +1 -1
  44. package/core/oidcClientTsUserToTokens.js +75 -72
  45. package/core/oidcClientTsUserToTokens.js.map +1 -1
  46. package/core/ongoingLoginOrRefreshProcesses.js +23 -89
  47. package/core/ongoingLoginOrRefreshProcesses.js.map +1 -1
  48. package/core/persistedAuthState.js +13 -13
  49. package/core/persistedAuthState.js.map +1 -1
  50. package/entrypoint.js +9 -9
  51. package/entrypoint.js.map +1 -1
  52. package/index.d.ts +1 -1
  53. package/index.js +1 -2
  54. package/index.js.map +1 -1
  55. package/keycloak/index.d.ts +3 -0
  56. package/keycloak/index.js +8 -0
  57. package/keycloak/index.js.map +1 -0
  58. package/keycloak/isKeycloak.d.ts +3 -0
  59. package/keycloak/isKeycloak.js +20 -0
  60. package/keycloak/isKeycloak.js.map +1 -0
  61. package/keycloak/keycloak-js/Keycloak.d.ts +284 -0
  62. package/keycloak/keycloak-js/Keycloak.js +778 -0
  63. package/keycloak/keycloak-js/Keycloak.js.map +1 -0
  64. package/keycloak/keycloak-js/index.d.ts +2 -0
  65. package/keycloak/keycloak-js/index.js +6 -0
  66. package/keycloak/keycloak-js/index.js.map +1 -0
  67. package/keycloak/keycloak-js/types.d.ts +361 -0
  68. package/keycloak/keycloak-js/types.js +3 -0
  69. package/keycloak/keycloak-js/types.js.map +1 -0
  70. package/keycloak/keycloakIssuerUriParsed.d.ts +9 -0
  71. package/keycloak/keycloakIssuerUriParsed.js +19 -0
  72. package/keycloak/keycloakIssuerUriParsed.js.map +1 -0
  73. package/keycloak/keycloakUtils.d.ts +37 -0
  74. package/keycloak/keycloakUtils.js +47 -0
  75. package/keycloak/keycloakUtils.js.map +1 -0
  76. package/keycloak-js.d.ts +1 -0
  77. package/keycloak-js.js +18 -0
  78. package/keycloak-js.js.map +1 -0
  79. package/mock/oidc.js +147 -194
  80. package/mock/oidc.js.map +1 -1
  81. package/mock/react.js +2 -2
  82. package/mock/react.js.map +1 -1
  83. package/package.json +38 -9
  84. package/react/react.js +133 -244
  85. package/react/react.js.map +1 -1
  86. package/src/core/AuthResponse.ts +2 -0
  87. package/src/core/Oidc.ts +1 -2
  88. package/src/core/OidcInitializationError.ts +30 -30
  89. package/src/core/OidcMetadata.ts +1 -1
  90. package/src/core/StateData.ts +24 -24
  91. package/src/core/createOidc.ts +24 -31
  92. package/src/core/handleOidcCallback.ts +44 -23
  93. package/src/core/iframeMessageProtection.ts +11 -10
  94. package/src/core/index.ts +1 -1
  95. package/src/core/loginOrGoToAuthServer.ts +1 -1
  96. package/src/core/loginSilent.ts +14 -11
  97. package/src/core/oidcClientTsUserToTokens.ts +1 -1
  98. package/src/index.ts +1 -7
  99. package/src/keycloak/index.ts +8 -0
  100. package/src/keycloak/isKeycloak.ts +23 -0
  101. package/src/keycloak/keycloak-js/Keycloak.ts +1097 -0
  102. package/src/keycloak/keycloak-js/index.ts +2 -0
  103. package/src/keycloak/keycloak-js/types.ts +442 -0
  104. package/src/keycloak/keycloakIssuerUriParsed.ts +29 -0
  105. package/src/keycloak/keycloakUtils.ts +90 -0
  106. package/src/keycloak-js.ts +1 -0
  107. package/src/react/react.tsx +17 -1
  108. package/src/tools/decodeJwt.ts +95 -2
  109. package/src/tools/parseKeycloakIssuerUri.ts +11 -30
  110. package/src/vendor/frontend/oidc-client-ts.ts +1 -0
  111. package/src/vendor/frontend/tsafe.ts +1 -0
  112. package/tools/Deferred.js +13 -35
  113. package/tools/Deferred.js.map +1 -1
  114. package/tools/EphemeralSessionStorage.js +46 -48
  115. package/tools/EphemeralSessionStorage.js.map +1 -1
  116. package/tools/Evt.js +14 -14
  117. package/tools/Evt.js.map +1 -1
  118. package/tools/StatefulEvt.js +5 -5
  119. package/tools/StatefulEvt.js.map +1 -1
  120. package/tools/asymmetricEncryption.js +81 -172
  121. package/tools/asymmetricEncryption.js.map +1 -1
  122. package/tools/base64.js +2 -2
  123. package/tools/base64.js.map +1 -1
  124. package/tools/createObjectThatThrowsIfAccessed.js +13 -61
  125. package/tools/createObjectThatThrowsIfAccessed.js.map +1 -1
  126. package/tools/decodeJwt.d.ts +25 -2
  127. package/tools/decodeJwt.js +61 -3
  128. package/tools/decodeJwt.js.map +1 -1
  129. package/tools/generateUrlSafeRandom.js +5 -30
  130. package/tools/generateUrlSafeRandom.js.map +1 -1
  131. package/tools/getDownlinkAndRtt.js +8 -30
  132. package/tools/getDownlinkAndRtt.js.map +1 -1
  133. package/tools/getIsOnline.js +3 -3
  134. package/tools/getIsOnline.js.map +1 -1
  135. package/tools/getIsValidRemoteJson.js +12 -59
  136. package/tools/getIsValidRemoteJson.js.map +1 -1
  137. package/tools/getPrUserInteraction.js +4 -4
  138. package/tools/getPrUserInteraction.js.map +1 -1
  139. package/tools/getUserEnvironmentInfo.js +17 -12
  140. package/tools/getUserEnvironmentInfo.js.map +1 -1
  141. package/tools/haveSharedParentDomain.js +5 -5
  142. package/tools/haveSharedParentDomain.js.map +1 -1
  143. package/tools/isDev.js +2 -2
  144. package/tools/isDev.js.map +1 -1
  145. package/tools/parseKeycloakIssuerUri.d.ts +2 -0
  146. package/tools/parseKeycloakIssuerUri.js +11 -42
  147. package/tools/parseKeycloakIssuerUri.js.map +1 -1
  148. package/tools/readExpirationTimeInJwt.js +4 -4
  149. package/tools/readExpirationTimeInJwt.js.map +1 -1
  150. package/tools/startCountdown.js +17 -65
  151. package/tools/startCountdown.js.map +1 -1
  152. package/tools/subscribeToUserInteraction.js +17 -66
  153. package/tools/subscribeToUserInteraction.js.map +1 -1
  154. package/tools/toFullyQualifiedUrl.js +7 -7
  155. package/tools/toFullyQualifiedUrl.js.map +1 -1
  156. package/tools/toHumanReadableDuration.js +13 -13
  157. package/tools/toHumanReadableDuration.js.map +1 -1
  158. package/tools/urlSearchParams.js +28 -50
  159. package/tools/urlSearchParams.js.map +1 -1
  160. package/tools/workerTimers.js +10 -10
  161. package/tools/workerTimers.js.map +1 -1
  162. package/vendor/frontend/oidc-client-ts.d.ts +1 -0
  163. package/vendor/frontend/oidc-client-ts.js +3686 -0
  164. package/vendor/frontend/tsafe.d.ts +1 -0
  165. package/vendor/frontend/tsafe.js +1 -1
  166. package/core/trustedFetch.d.ts +0 -2
  167. package/core/trustedFetch.js +0 -12
  168. package/core/trustedFetch.js.map +0 -1
  169. package/src/core/trustedFetch.ts +0 -9
  170. package/src/vendor/frontend/oidc-client-ts-and-jwt-decode.ts +0 -4
  171. package/vendor/frontend/oidc-client-ts-and-jwt-decode.d.ts +0 -3
  172. package/vendor/frontend/oidc-client-ts-and-jwt-decode.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"loginPropagationToOtherTabs.js","sourceRoot":"","sources":["../src/core/loginPropagationToOtherTabs.ts"],"names":[],"mappings":";;AAiBA,wDASC;AAED,gDAsBC;AAlDD,kDAAsD;AACtD,8CAA6C;AAE7C,IAAM,aAAa,GAAG;IAClB,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACrD,CAAC;AAOF,SAAS,cAAc,CAAC,MAA4B;IACxC,IAAA,QAAQ,GAAK,MAAM,SAAX,CAAY;IAC5B,OAAO,qCAA8B,QAAQ,CAAE,CAAC;AACpD,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAA4B;IACvD,IAAA,QAAQ,GAAK,MAAM,SAAX,CAAY;IAE5B,IAAM,OAAO,GAAY;QACrB,QAAQ,UAAA;QACR,aAAa,EAAE,aAAa,CAAC,aAAa;KAC7C,CAAC;IAEF,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAA4B;IACnD,IAAA,QAAQ,GAAK,MAAM,SAAX,CAAY;IAE5B,IAAM,cAAc,GAAG,IAAI,mBAAQ,EAAQ,CAAC;IAE5C,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC,CAAC;IAEnE,OAAO,CAAC,SAAS,GAAG,UAAC,EAAiB;YAAT,OAAO,UAAA;QAChC,IAAA,cAAM,EAAC,IAAA,UAAE,EAAU,OAAO,CAAC,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,cAAc,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAM,eAAe,GAAG,cAAc,CAAC,EAAE,CAAC;IAE1C,OAAO,EAAE,eAAe,iBAAA,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"loginPropagationToOtherTabs.js","sourceRoot":"","sources":["../src/core/loginPropagationToOtherTabs.ts"],"names":[],"mappings":";;AAiBA,wDASC;AAED,gDAsBC;AAlDD,oDAAsD;AACtD,gDAA6C;AAE7C,MAAM,aAAa,GAAG;IAClB,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACrD,CAAC;AAOF,SAAS,cAAc,CAAC,MAA4B;IAChD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC5B,OAAO,8BAA8B,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAA4B;IAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,MAAM,OAAO,GAAY;QACrB,QAAQ;QACR,aAAa,EAAE,aAAa,CAAC,aAAa;KAC7C,CAAC;IAEF,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAA4B;IAC3D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,MAAM,cAAc,GAAG,IAAI,mBAAQ,EAAQ,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEnE,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,IAAA,cAAM,EAAC,IAAA,UAAE,EAAU,OAAO,CAAC,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,cAAc,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,cAAc,CAAC,EAAE,CAAC;IAE1C,OAAO,EAAE,eAAe,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,5 +1,4 @@
1
- import type { UserManager as OidcClientTsUserManager } from "../vendor/frontend/oidc-client-ts-and-jwt-decode";
2
- import type { User as OidcClientTsUser } from "../vendor/frontend/oidc-client-ts-and-jwt-decode";
1
+ import type { UserManager as OidcClientTsUserManager, User as OidcClientTsUser } from "../vendor/frontend/oidc-client-ts";
3
2
  import { type AuthResponse } from "./AuthResponse";
4
3
  type ResultOfLoginSilent = {
5
4
  outcome: "got auth response from iframe";
@@ -13,7 +12,7 @@ type ResultOfLoginSilent = {
13
12
  };
14
13
  export declare function loginSilent(params: {
15
14
  oidcClientTsUserManager: OidcClientTsUserManager;
16
- stateQueryParamValue_instance: string;
15
+ stateUrlParamValue_instance: string;
17
16
  configId: string;
18
17
  transformUrlBeforeRedirect: ((params: {
19
18
  authorizationUrl: string;
@@ -1,224 +1,128 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loginSilent = loginSilent;
4
+ const Deferred_1 = require("../tools/Deferred");
5
+ const tsafe_1 = require("../vendor/frontend/tsafe");
6
+ const StateData_1 = require("./StateData");
7
+ const getDownlinkAndRtt_1 = require("../tools/getDownlinkAndRtt");
8
+ const isDev_1 = require("../tools/isDev");
9
+ const urlSearchParams_1 = require("../tools/urlSearchParams");
10
+ const iframeMessageProtection_1 = require("./iframeMessageProtection");
11
+ async function loginSilent(params) {
12
+ const { oidcClientTsUserManager, stateUrlParamValue_instance, configId, transformUrlBeforeRedirect, getExtraQueryParams, getExtraTokenParams, autoLogin } = params;
13
+ const dResult = new Deferred_1.Deferred();
14
+ const timeoutDelayMs = (() => {
15
+ if (autoLogin) {
16
+ return 25000;
17
+ }
18
+ const downlinkAndRtt = (0, getDownlinkAndRtt_1.getDownlinkAndRtt)();
19
+ const isDev = (0, isDev_1.getIsDev)();
20
+ // Base delay is the minimum delay we should wait in any case
21
+ const BASE_DELAY_MS = isDev ? 9000 : 7000;
22
+ if (downlinkAndRtt === undefined) {
23
+ return BASE_DELAY_MS;
24
+ }
25
+ const { downlink, rtt } = downlinkAndRtt;
26
+ // Calculate dynamic delay based on RTT and downlink
27
+ // Add 1 to downlink to avoid division by zero
28
+ const dynamicDelay = rtt * 2.5 + BASE_DELAY_MS / (downlink + 1);
29
+ return Math.max(BASE_DELAY_MS, dynamicDelay);
30
+ })();
31
+ const { decodeEncryptedAuth, getIsEncryptedAuthResponse, clearSessionStoragePublicKey } = await (0, iframeMessageProtection_1.initIframeMessageProtection)({
32
+ stateUrlParamValue: stateUrlParamValue_instance
9
33
  });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __values = (this && this.__values) || function(o) {
39
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
- if (m) return m.call(o);
41
- if (o && typeof o.length === "number") return {
42
- next: function () {
43
- if (o && i >= o.length) o = void 0;
44
- return { value: o && o[i++], done: !o };
34
+ const timer = setTimeout(async () => {
35
+ dResult.resolve({
36
+ outcome: "failure",
37
+ cause: "timeout"
38
+ });
39
+ }, timeoutDelayMs);
40
+ const listener = async (event) => {
41
+ if (event.origin !== window.location.origin) {
42
+ return;
43
+ }
44
+ if (!getIsEncryptedAuthResponse({
45
+ message: event.data
46
+ })) {
47
+ return;
45
48
  }
49
+ const { authResponse } = await decodeEncryptedAuth({ encryptedAuthResponse: event.data });
50
+ const stateData = (0, StateData_1.getStateData)({ stateUrlParamValue: authResponse.state });
51
+ (0, tsafe_1.assert)(stateData !== undefined, "765645");
52
+ (0, tsafe_1.assert)(stateData.context === "iframe", "250711");
53
+ if (stateData.configId !== configId) {
54
+ return;
55
+ }
56
+ clearTimeout(timer);
57
+ window.removeEventListener("message", listener);
58
+ dResult.resolve({
59
+ outcome: "got auth response from iframe",
60
+ authResponse
61
+ });
46
62
  };
47
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
- };
49
- var __read = (this && this.__read) || function (o, n) {
50
- var m = typeof Symbol === "function" && o[Symbol.iterator];
51
- if (!m) return o;
52
- var i = m.call(o), r, ar = [], e;
53
- try {
54
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
- }
56
- catch (error) { e = { error: error }; }
57
- finally {
58
- try {
59
- if (r && !r.done && (m = i["return"])) m.call(i);
63
+ window.addEventListener("message", listener, false);
64
+ const transformUrl_oidcClientTs = (url) => {
65
+ add_extra_query_params: {
66
+ if (getExtraQueryParams === undefined) {
67
+ break add_extra_query_params;
68
+ }
69
+ const extraQueryParams = getExtraQueryParams({ isSilent: true, url });
70
+ for (const [name, value] of Object.entries(extraQueryParams)) {
71
+ if (value === undefined) {
72
+ continue;
73
+ }
74
+ url = (0, urlSearchParams_1.addOrUpdateSearchParam)({ url, name, value, encodeMethod: "www-form" });
75
+ }
60
76
  }
61
- finally { if (e) throw e.error; }
62
- }
63
- return ar;
64
- };
65
- Object.defineProperty(exports, "__esModule", { value: true });
66
- exports.loginSilent = loginSilent;
67
- var Deferred_1 = require("../tools/Deferred");
68
- var tsafe_1 = require("../vendor/frontend/tsafe");
69
- var StateData_1 = require("./StateData");
70
- var getDownlinkAndRtt_1 = require("../tools/getDownlinkAndRtt");
71
- var isDev_1 = require("../tools/isDev");
72
- var urlSearchParams_1 = require("../tools/urlSearchParams");
73
- var iframeMessageProtection_1 = require("./iframeMessageProtection");
74
- function loginSilent(params) {
75
- return __awaiter(this, void 0, void 0, function () {
76
- var oidcClientTsUserManager, stateQueryParamValue_instance, configId, transformUrlBeforeRedirect, getExtraQueryParams, getExtraTokenParams, autoLogin, dResult, timeoutDelayMs, _a, decodeEncryptedAuth, getIsEncryptedAuthResponse, clearSessionStoragePublicKey, timeout, listener, transformUrl_oidcClientTs;
77
- var _this = this;
78
- return __generator(this, function (_b) {
79
- switch (_b.label) {
80
- case 0:
81
- oidcClientTsUserManager = params.oidcClientTsUserManager, stateQueryParamValue_instance = params.stateQueryParamValue_instance, configId = params.configId, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, getExtraQueryParams = params.getExtraQueryParams, getExtraTokenParams = params.getExtraTokenParams, autoLogin = params.autoLogin;
82
- dResult = new Deferred_1.Deferred();
83
- timeoutDelayMs = (function () {
84
- if (autoLogin) {
85
- return 25000;
86
- }
87
- var downlinkAndRtt = (0, getDownlinkAndRtt_1.getDownlinkAndRtt)();
88
- var isDev = (0, isDev_1.getIsDev)();
89
- // Base delay is the minimum delay we should wait in any case
90
- var BASE_DELAY_MS = isDev ? 9000 : 7000;
91
- if (downlinkAndRtt === undefined) {
92
- return BASE_DELAY_MS;
93
- }
94
- var downlink = downlinkAndRtt.downlink, rtt = downlinkAndRtt.rtt;
95
- // Calculate dynamic delay based on RTT and downlink
96
- // Add 1 to downlink to avoid division by zero
97
- var dynamicDelay = rtt * 2.5 + BASE_DELAY_MS / (downlink + 1);
98
- return Math.max(BASE_DELAY_MS, dynamicDelay);
99
- })();
100
- return [4 /*yield*/, (0, iframeMessageProtection_1.initIframeMessageProtection)({
101
- stateQueryParamValue: stateQueryParamValue_instance
102
- })];
103
- case 1:
104
- _a = _b.sent(), decodeEncryptedAuth = _a.decodeEncryptedAuth, getIsEncryptedAuthResponse = _a.getIsEncryptedAuthResponse, clearSessionStoragePublicKey = _a.clearSessionStoragePublicKey;
105
- timeout = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
106
- return __generator(this, function (_a) {
107
- dResult.resolve({
108
- outcome: "failure",
109
- cause: "timeout"
110
- });
111
- return [2 /*return*/];
112
- });
113
- }); }, timeoutDelayMs);
114
- listener = function (event) { return __awaiter(_this, void 0, void 0, function () {
115
- var authResponse, stateData;
116
- return __generator(this, function (_a) {
117
- switch (_a.label) {
118
- case 0:
119
- if (event.origin !== window.location.origin) {
120
- return [2 /*return*/];
121
- }
122
- if (!getIsEncryptedAuthResponse({
123
- message: event.data
124
- })) {
125
- return [2 /*return*/];
126
- }
127
- return [4 /*yield*/, decodeEncryptedAuth({ encryptedAuthResponse: event.data })];
128
- case 1:
129
- authResponse = (_a.sent()).authResponse;
130
- stateData = (0, StateData_1.getStateData)({ stateQueryParamValue: authResponse.state });
131
- (0, tsafe_1.assert)(stateData !== undefined, "765645");
132
- (0, tsafe_1.assert)(stateData.context === "iframe", "250711");
133
- if (stateData.configId !== configId) {
134
- return [2 /*return*/];
135
- }
136
- clearTimeout(timeout);
137
- window.removeEventListener("message", listener);
138
- dResult.resolve({
139
- outcome: "got auth response from iframe",
140
- authResponse: authResponse
141
- });
142
- return [2 /*return*/];
143
- }
144
- });
145
- }); };
146
- window.addEventListener("message", listener, false);
147
- transformUrl_oidcClientTs = function (url) {
148
- var e_1, _a;
149
- add_extra_query_params: {
150
- if (getExtraQueryParams === undefined) {
151
- break add_extra_query_params;
152
- }
153
- var extraQueryParams = getExtraQueryParams({ isSilent: true, url: url });
154
- try {
155
- for (var _b = __values(Object.entries(extraQueryParams)), _c = _b.next(); !_c.done; _c = _b.next()) {
156
- var _d = __read(_c.value, 2), name_1 = _d[0], value = _d[1];
157
- if (value === undefined) {
158
- continue;
159
- }
160
- url = (0, urlSearchParams_1.addOrUpdateSearchParam)({ url: url, name: name_1, value: value, encodeMethod: "www-form" });
161
- }
162
- }
163
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
164
- finally {
165
- try {
166
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
167
- }
168
- finally { if (e_1) throw e_1.error; }
169
- }
170
- }
171
- apply_transform_url: {
172
- if (transformUrlBeforeRedirect === undefined) {
173
- break apply_transform_url;
174
- }
175
- url = transformUrlBeforeRedirect({ authorizationUrl: url, isSilent: true });
176
- }
177
- return url;
178
- };
179
- oidcClientTsUserManager
180
- .signinSilent({
181
- state: (0, tsafe_1.id)({
182
- context: "iframe",
183
- configId: configId
184
- }),
185
- silentRequestTimeoutInSeconds: timeoutDelayMs / 1000,
186
- extraTokenParams: getExtraTokenParams === undefined ? undefined : (0, tsafe_1.noUndefined)(getExtraTokenParams()),
187
- transformUrl: transformUrl_oidcClientTs
188
- })
189
- .then(function (oidcClientTsUser) {
190
- (0, tsafe_1.assert)(oidcClientTsUser !== null, "oidcClientTsUser is not supposed to be null here");
191
- clearTimeout(timeout);
192
- dResult.resolve({
193
- outcome: "token refreshed using refresh token",
194
- oidcClientTsUser: oidcClientTsUser
195
- });
196
- }, function (error) {
197
- if (error.message === "Failed to fetch") {
198
- // NOTE: If we got an error here it means that the fetch to the
199
- // well-known oidc endpoint failed.
200
- // This usually means that the server is down or that the issuerUri
201
- // is not pointing to a valid oidc server.
202
- // It could be a CORS error on the well-known endpoint but it's unlikely.
203
- clearTimeout(timeout);
204
- dResult.resolve({
205
- outcome: "failure",
206
- cause: "can't reach well-known oidc endpoint"
207
- });
208
- return;
209
- }
210
- // NOTE: Here, except error on our understanding there can't be any other
211
- // error than timeout so we fail silently and let the timeout expire.
212
- });
213
- dResult.pr.then(function (result) {
214
- clearSessionStoragePublicKey();
215
- if (result.outcome === "failure") {
216
- (0, StateData_1.clearStateStore)({ stateQueryParamValue: stateQueryParamValue_instance });
217
- }
218
- });
219
- return [2 /*return*/, dResult.pr];
77
+ apply_transform_url: {
78
+ if (transformUrlBeforeRedirect === undefined) {
79
+ break apply_transform_url;
220
80
  }
81
+ url = transformUrlBeforeRedirect({ authorizationUrl: url, isSilent: true });
82
+ }
83
+ return url;
84
+ };
85
+ oidcClientTsUserManager
86
+ .signinSilent({
87
+ state: (0, tsafe_1.id)({
88
+ context: "iframe",
89
+ configId
90
+ }),
91
+ silentRequestTimeoutInSeconds: timeoutDelayMs / 1000,
92
+ extraTokenParams: getExtraTokenParams === undefined ? undefined : (0, tsafe_1.noUndefined)(getExtraTokenParams()),
93
+ transformUrl: transformUrl_oidcClientTs
94
+ })
95
+ .then(oidcClientTsUser => {
96
+ (0, tsafe_1.assert)(oidcClientTsUser !== null, "oidcClientTsUser is not supposed to be null here");
97
+ clearTimeout(timer);
98
+ window.removeEventListener("message", listener);
99
+ dResult.resolve({
100
+ outcome: "token refreshed using refresh token",
101
+ oidcClientTsUser
221
102
  });
103
+ }, (error) => {
104
+ if (error.message === "Failed to fetch") {
105
+ // NOTE: If we got an error here it means that the fetch to the
106
+ // well-known oidc endpoint failed.
107
+ // This usually means that the server is down or that the issuerUri
108
+ // is not pointing to a valid oidc server.
109
+ // It could be a CORS error on the well-known endpoint but it's unlikely.
110
+ clearTimeout(timer);
111
+ dResult.resolve({
112
+ outcome: "failure",
113
+ cause: "can't reach well-known oidc endpoint"
114
+ });
115
+ return;
116
+ }
117
+ // NOTE: Here, except error on our understanding there can't be any other
118
+ // error than timeout so we fail silently and let the timeout expire.
119
+ });
120
+ dResult.pr.then(result => {
121
+ clearSessionStoragePublicKey();
122
+ if (result.outcome === "failure") {
123
+ (0, StateData_1.clearStateStore)({ stateUrlParamValue: stateUrlParamValue_instance });
124
+ }
222
125
  });
126
+ return dResult.pr;
223
127
  }
224
128
  //# sourceMappingURL=loginSilent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../src/core/loginSilent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,kCAoLC;AA5MD,8CAA6C;AAC7C,kDAAmE;AACnE,yCAA4E;AAC5E,gEAA+D;AAC/D,wCAA0C;AAG1C,4DAAkE;AAClE,qEAAwE;AAgBxE,SAAsB,WAAW,CAAC,MAejC;;;;;;;oBAEO,uBAAuB,GAOvB,MAAM,wBAPiB,EACvB,6BAA6B,GAM7B,MAAM,8BANuB,EAC7B,QAAQ,GAKR,MAAM,SALE,EACR,0BAA0B,GAI1B,MAAM,2BAJoB,EAC1B,mBAAmB,GAGnB,MAAM,oBAHa,EACnB,mBAAmB,GAEnB,MAAM,oBAFa,EACnB,SAAS,GACT,MAAM,UADG,CACF;oBAEL,OAAO,GAAG,IAAI,mBAAQ,EAAuB,CAAC;oBAE9C,cAAc,GAAW,CAAC;wBAC5B,IAAI,SAAS,EAAE,CAAC;4BACZ,OAAO,KAAM,CAAC;wBAClB,CAAC;wBAED,IAAM,cAAc,GAAG,IAAA,qCAAiB,GAAE,CAAC;wBAC3C,IAAM,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAC;wBAEzB,6DAA6D;wBAC7D,IAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,IAAK,CAAC;wBAE5C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;4BAC/B,OAAO,aAAa,CAAC;wBACzB,CAAC;wBAEO,IAAA,QAAQ,GAAU,cAAc,SAAxB,EAAE,GAAG,GAAK,cAAc,IAAnB,CAAoB;wBAEzC,oDAAoD;wBACpD,8CAA8C;wBAC9C,IAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,aAAa,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;wBAEhE,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;oBACjD,CAAC,CAAC,EAAE,CAAC;oBAGD,qBAAM,IAAA,qDAA2B,EAAC;4BAC9B,oBAAoB,EAAE,6BAA6B;yBACtD,CAAC,EAAA;;oBAHA,KACF,SAEE,EAHE,mBAAmB,yBAAA,EAAE,0BAA0B,gCAAA,EAAE,4BAA4B,kCAAA;oBAK/E,OAAO,GAAG,UAAU,CAAC;;4BACvB,OAAO,CAAC,OAAO,CAAC;gCACZ,OAAO,EAAE,SAAS;gCAClB,KAAK,EAAE,SAAS;6BACnB,CAAC,CAAC;;;yBACN,EAAE,cAAc,CAAC,CAAC;oBAEb,QAAQ,GAAG,UAAO,KAAmB;;;;;oCACvC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wCAC1C,sBAAO;oCACX,CAAC;oCAED,IACI,CAAC,0BAA0B,CAAC;wCACxB,OAAO,EAAE,KAAK,CAAC,IAAI;qCACtB,CAAC,EACJ,CAAC;wCACC,sBAAO;oCACX,CAAC;oCAEwB,qBAAM,mBAAmB,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAA;;oCAAjF,YAAY,GAAK,CAAA,SAAgE,CAAA,aAArE;oCAEd,SAAS,GAAG,IAAA,wBAAY,EAAC,EAAE,oBAAoB,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;oCAE7E,IAAA,cAAM,EAAC,SAAS,KAAK,SAAS,EAAE,QAAQ,CAAC,CAAC;oCAC1C,IAAA,cAAM,EAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC;oCAEjD,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;wCAClC,sBAAO;oCACX,CAAC;oCAED,YAAY,CAAC,OAAO,CAAC,CAAC;oCAEtB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;oCAEhD,OAAO,CAAC,OAAO,CAAC;wCACZ,OAAO,EAAE,+BAA+B;wCACxC,YAAY,cAAA;qCACf,CAAC,CAAC;;;;yBACN,CAAC;oBAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAE9C,yBAAyB,GAAG,UAAC,GAAW;;wBAC1C,sBAAsB,EAAE,CAAC;4BACrB,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gCACpC,MAAM,sBAAsB,CAAC;4BACjC,CAAC;4BAED,IAAM,gBAAgB,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;;gCAEtE,KAA4B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA,gBAAA,4BAAE,CAAC;oCAApD,IAAA,KAAA,mBAAa,EAAZ,MAAI,QAAA,EAAE,KAAK,QAAA;oCACnB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wCACtB,SAAS;oCACb,CAAC;oCACD,GAAG,GAAG,IAAA,wCAAsB,EAAC,EAAE,GAAG,KAAA,EAAE,IAAI,QAAA,EAAE,KAAK,OAAA,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;gCACjF,CAAC;;;;;;;;;wBACL,CAAC;wBAED,mBAAmB,EAAE,CAAC;4BAClB,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gCAC3C,MAAM,mBAAmB,CAAC;4BAC9B,CAAC;4BACD,GAAG,GAAG,0BAA0B,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;wBAChF,CAAC;wBAED,OAAO,GAAG,CAAC;oBACf,CAAC,CAAC;oBAEF,uBAAuB;yBAClB,YAAY,CAAC;wBACV,KAAK,EAAE,IAAA,UAAE,EAAmB;4BACxB,OAAO,EAAE,QAAQ;4BACjB,QAAQ,UAAA;yBACX,CAAC;wBACF,6BAA6B,EAAE,cAAc,GAAG,IAAI;wBACpD,gBAAgB,EACZ,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,mBAAmB,EAAE,CAAC;wBACtF,YAAY,EAAE,yBAAyB;qBAC1C,CAAC;yBACD,IAAI,CACD,UAAA,gBAAgB;wBACZ,IAAA,cAAM,EAAC,gBAAgB,KAAK,IAAI,EAAE,kDAAkD,CAAC,CAAC;wBAEtF,YAAY,CAAC,OAAO,CAAC,CAAC;wBAEtB,OAAO,CAAC,OAAO,CAAC;4BACZ,OAAO,EAAE,qCAAqC;4BAC9C,gBAAgB,kBAAA;yBACnB,CAAC,CAAC;oBACP,CAAC,EACD,UAAC,KAAY;wBACT,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;4BACtC,+DAA+D;4BAC/D,mCAAmC;4BACnC,mEAAmE;4BACnE,0CAA0C;4BAC1C,yEAAyE;4BAEzE,YAAY,CAAC,OAAO,CAAC,CAAC;4BAEtB,OAAO,CAAC,OAAO,CAAC;gCACZ,OAAO,EAAE,SAAS;gCAClB,KAAK,EAAE,sCAAsC;6BAChD,CAAC,CAAC;4BAEH,OAAO;wBACX,CAAC;wBAED,yEAAyE;wBACzE,qEAAqE;oBACzE,CAAC,CACJ,CAAC;oBAEN,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,UAAA,MAAM;wBAClB,4BAA4B,EAAE,CAAC;wBAE/B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;4BAC/B,IAAA,2BAAe,EAAC,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,CAAC,CAAC;wBAC7E,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,sBAAO,OAAO,CAAC,EAAE,EAAC;;;;CACrB"}
1
+ {"version":3,"file":"loginSilent.js","sourceRoot":"","sources":["../src/core/loginSilent.ts"],"names":[],"mappings":"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"}
@@ -2,29 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.notifyOtherTabsOfLogout = notifyOtherTabsOfLogout;
4
4
  exports.getPrOtherTabLogout = getPrOtherTabLogout;
5
- var tsafe_1 = require("../vendor/frontend/tsafe");
6
- var Deferred_1 = require("../tools/Deferred");
7
- var globalContext = {
5
+ const tsafe_1 = require("../vendor/frontend/tsafe");
6
+ const Deferred_1 = require("../tools/Deferred");
7
+ const globalContext = {
8
8
  appInstanceId: Math.random().toString(36).slice(2)
9
9
  };
10
10
  function getChannelName(params) {
11
- var sessionIdOrConfigId = params.sessionIdOrConfigId;
12
- return "oidc-spa:logout-propagation:".concat(sessionIdOrConfigId);
11
+ const { sessionIdOrConfigId } = params;
12
+ return `oidc-spa:logout-propagation:${sessionIdOrConfigId}`;
13
13
  }
14
14
  function notifyOtherTabsOfLogout(params) {
15
- var configId = params.configId, sessionId = params.sessionId;
16
- var message = {
17
- configId: configId,
15
+ const { configId, sessionId } = params;
16
+ const message = {
17
+ configId,
18
18
  appInstanceId: globalContext.appInstanceId
19
19
  };
20
- new BroadcastChannel(getChannelName({ sessionIdOrConfigId: sessionId !== null && sessionId !== void 0 ? sessionId : configId })).postMessage(message);
20
+ new BroadcastChannel(getChannelName({ sessionIdOrConfigId: sessionId ?? configId })).postMessage(message);
21
21
  }
22
22
  function getPrOtherTabLogout(params) {
23
- var sessionId = params.sessionId, configId = params.configId;
24
- var dOtherTabLogout = new Deferred_1.Deferred();
25
- var channel = new BroadcastChannel(getChannelName({ sessionIdOrConfigId: sessionId !== null && sessionId !== void 0 ? sessionId : configId }));
26
- channel.onmessage = function (_a) {
27
- var message = _a.data;
23
+ const { sessionId, configId } = params;
24
+ const dOtherTabLogout = new Deferred_1.Deferred();
25
+ const channel = new BroadcastChannel(getChannelName({ sessionIdOrConfigId: sessionId ?? configId }));
26
+ channel.onmessage = ({ data: message }) => {
28
27
  (0, tsafe_1.assert)((0, tsafe_1.is)(message));
29
28
  if (message.appInstanceId === globalContext.appInstanceId) {
30
29
  return;
@@ -32,7 +31,7 @@ function getPrOtherTabLogout(params) {
32
31
  channel.close();
33
32
  dOtherTabLogout.resolve();
34
33
  };
35
- var prOtherTabLogout = dOtherTabLogout.pr;
36
- return { prOtherTabLogout: prOtherTabLogout };
34
+ const prOtherTabLogout = dOtherTabLogout.pr;
35
+ return { prOtherTabLogout };
37
36
  }
38
37
  //# sourceMappingURL=logoutPropagationToOtherTabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logoutPropagationToOtherTabs.js","sourceRoot":"","sources":["../src/core/logoutPropagationToOtherTabs.ts"],"names":[],"mappings":";;AAiBA,0DAWC;AAED,kDAsBC;AApDD,kDAAsD;AACtD,8CAA6C;AAE7C,IAAM,aAAa,GAAG;IAClB,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACrD,CAAC;AAOF,SAAS,cAAc,CAAC,MAAuC;IACnD,IAAA,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IACvC,OAAO,sCAA+B,mBAAmB,CAAE,CAAC;AAChE,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAA2D;IACvF,IAAA,QAAQ,GAAgB,MAAM,SAAtB,EAAE,SAAS,GAAK,MAAM,UAAX,CAAY;IAEvC,IAAM,OAAO,GAAY;QACrB,QAAQ,UAAA;QACR,aAAa,EAAE,aAAa,CAAC,aAAa;KAC7C,CAAC;IAEF,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAC5F,OAAO,CACV,CAAC;AACN,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAA2D;IACnF,IAAA,SAAS,GAAe,MAAM,UAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;IAEvC,IAAM,eAAe,GAAG,IAAI,mBAAQ,EAAQ,CAAC;IAE7C,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAErG,OAAO,CAAC,SAAS,GAAG,UAAC,EAAiB;YAAT,OAAO,UAAA;QAChC,IAAA,cAAM,EAAC,IAAA,UAAE,EAAU,OAAO,CAAC,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,eAAe,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC;IAE5C,OAAO,EAAE,gBAAgB,kBAAA,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"logoutPropagationToOtherTabs.js","sourceRoot":"","sources":["../src/core/logoutPropagationToOtherTabs.ts"],"names":[],"mappings":";;AAiBA,0DAWC;AAED,kDAsBC;AApDD,oDAAsD;AACtD,gDAA6C;AAE7C,MAAM,aAAa,GAAG;IAClB,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACrD,CAAC;AAOF,SAAS,cAAc,CAAC,MAAuC;IAC3D,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;IACvC,OAAO,+BAA+B,mBAAmB,EAAE,CAAC;AAChE,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAA2D;IAC/F,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEvC,MAAM,OAAO,GAAY;QACrB,QAAQ;QACR,aAAa,EAAE,aAAa,CAAC,aAAa;KAC7C,CAAC;IAEF,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAC5F,OAAO,CACV,CAAC;AACN,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAA2D;IAC3F,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEvC,MAAM,eAAe,GAAG,IAAI,mBAAQ,EAAQ,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAErG,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACtC,IAAA,cAAM,EAAC,IAAA,UAAE,EAAU,OAAO,CAAC,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,eAAe,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC;IAE5C,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { User as OidcClientTsUser } from "../vendor/frontend/oidc-client-ts-and-jwt-decode";
1
+ import type { User as OidcClientTsUser } from "../vendor/frontend/oidc-client-ts";
2
2
  import type { Oidc } from "./Oidc";
3
3
  export declare function oidcClientTsUserToTokens<DecodedIdToken extends Record<string, unknown>>(params: {
4
4
  oidcClientTsUser: OidcClientTsUser;