oidc-spa 6.1.6 → 6.1.8

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 (43) hide show
  1. package/oidc/StateData.d.ts +1 -1
  2. package/oidc/StateData.js +9 -4
  3. package/oidc/StateData.js.map +1 -1
  4. package/oidc/{configHash.d.ts → configId.d.ts} +1 -1
  5. package/oidc/configId.js +7 -0
  6. package/oidc/configId.js.map +1 -0
  7. package/oidc/createOidc.d.ts +10 -3
  8. package/oidc/createOidc.js +99 -82
  9. package/oidc/createOidc.js.map +1 -1
  10. package/oidc/handleOidcCallback.d.ts +8 -2
  11. package/oidc/handleOidcCallback.js +88 -119
  12. package/oidc/handleOidcCallback.js.map +1 -1
  13. package/oidc/index.d.ts +0 -1
  14. package/oidc/index.js +1 -3
  15. package/oidc/index.js.map +1 -1
  16. package/oidc/loginSilent.d.ts +3 -3
  17. package/oidc/loginSilent.js +4 -4
  18. package/oidc/loginSilent.js.map +1 -1
  19. package/oidc/logoutPropagationToOtherTabs.d.ts +2 -2
  20. package/oidc/logoutPropagationToOtherTabs.js +8 -8
  21. package/oidc/logoutPropagationToOtherTabs.js.map +1 -1
  22. package/package.json +11 -11
  23. package/react/react.js +0 -3
  24. package/react/react.js.map +1 -1
  25. package/src/oidc/StateData.ts +12 -5
  26. package/src/oidc/configId.ts +3 -0
  27. package/src/oidc/createOidc.ts +67 -39
  28. package/src/oidc/handleOidcCallback.ts +25 -9
  29. package/src/oidc/index.ts +0 -1
  30. package/src/oidc/loginSilent.ts +7 -7
  31. package/src/oidc/logoutPropagationToOtherTabs.ts +12 -14
  32. package/src/react/react.tsx +1 -11
  33. package/src/tools/generateUrlSafeRandom.ts +26 -0
  34. package/tools/generateUrlSafeRandom.d.ts +3 -0
  35. package/tools/generateUrlSafeRandom.js +51 -0
  36. package/tools/generateUrlSafeRandom.js.map +1 -0
  37. package/oidc/configHash.js +0 -8
  38. package/oidc/configHash.js.map +0 -1
  39. package/src/oidc/configHash.ts +0 -5
  40. package/src/tools/fnv1aHash.ts +0 -8
  41. package/tools/fnv1aHash.d.ts +0 -1
  42. package/tools/fnv1aHash.js +0 -12
  43. package/tools/fnv1aHash.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  export type StateData = StateData.IFrame | StateData.Redirect;
2
2
  export declare namespace StateData {
3
3
  type Common = {
4
- configHash: string;
4
+ configId: string;
5
5
  };
6
6
  export type IFrame = Common & {
7
7
  context: "iframe";
package/oidc/StateData.js CHANGED
@@ -8,14 +8,19 @@ exports.clearStateStore = clearStateStore;
8
8
  exports.getStateData = getStateData;
9
9
  exports.markStateDataAsProcessedByCallback = markStateDataAsProcessedByCallback;
10
10
  var tsafe_1 = require("../vendor/frontend/tsafe");
11
- var fnv1aHash_1 = require("../tools/fnv1aHash");
12
- var STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX = "fa93b2c1c";
11
+ var generateUrlSafeRandom_1 = require("../tools/generateUrlSafeRandom");
12
+ var STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX = "b2lkYy1zcGEu";
13
+ var RANDOM_STRING_LENGTH = 32 - STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX.length;
13
14
  function generateStateQueryParamValue() {
14
- return "".concat(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX).concat((0, fnv1aHash_1.fnv1aHash)("".concat(Math.random())));
15
+ return "".concat(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX).concat((0, generateUrlSafeRandom_1.generateUrlSafeRandom)({
16
+ length: RANDOM_STRING_LENGTH
17
+ }));
15
18
  }
16
19
  function getIsStatQueryParamValue(params) {
17
20
  var maybeStateQueryParamValue = params.maybeStateQueryParamValue;
18
- return maybeStateQueryParamValue.startsWith(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX);
21
+ return (maybeStateQueryParamValue.startsWith(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX) &&
22
+ maybeStateQueryParamValue.length ===
23
+ STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX.length + RANDOM_STRING_LENGTH);
19
24
  }
20
25
  exports.STATE_STORE_KEY_PREFIX = "oidc.";
21
26
  function getKey(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"StateData.js","sourceRoot":"","sources":["../src/oidc/StateData.ts"],"names":[],"mappings":";;;AAoCA,oEAEC;AAED,4DAIC;AAID,wBAIC;AA6BD,0CAGC;AAED,oCAUC;AAED,gFAWC;AA7GD,kDAA6D;AAC7D,gDAA+C;AAiC/C,IAAM,yCAAyC,GAAG,WAAW,CAAC;AAE9D,SAAgB,4BAA4B;IACxC,OAAO,UAAG,yCAAyC,SAAG,IAAA,qBAAS,EAAC,UAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC,CAAE,CAAC;AAC1F,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAA6C;IAC1E,IAAA,yBAAyB,GAAK,MAAM,0BAAX,CAAY;IAE7C,OAAO,yBAAyB,CAAC,UAAU,CAAC,yCAAyC,CAAC,CAAC;AAC3F,CAAC;AAEY,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAE9C,SAAgB,MAAM,CAAC,MAAwC;IACnD,IAAA,oBAAoB,GAAK,MAAM,qBAAX,CAAY;IAExC,OAAO,UAAG,8BAAsB,SAAG,oBAAoB,CAAE,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,MAAwC;IACnD,IAAA,oBAAoB,GAAK,MAAM,qBAAX,CAAY;IAExC,IAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,oBAAoB,sBAAA,EAAE,CAAC,CAAC,CAAC;IAEpE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE7B,IAAA,cAAM,EACF,IAAA,iBAAS,EACL,GAAG,EACH,GAAG,YAAY,MAAM,IAAI,GAAG,CAAC,IAAI,YAAY,MAAM,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAC9F,CACJ,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,MAAkE;IAC7E,IAAA,oBAAoB,GAAU,MAAM,qBAAhB,EAAE,GAAG,GAAK,MAAM,IAAX,CAAY;IAE7C,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,oBAAoB,sBAAA,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,SAAgB,eAAe,CAAC,MAAwC;IAC5D,IAAA,oBAAoB,GAAK,MAAM,qBAAX,CAAY;IACxC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,oBAAoB,sBAAA,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,YAAY,CAAC,MAAwC;IACzD,IAAA,oBAAoB,GAAK,MAAM,qBAAX,CAAY;IAExC,IAAM,UAAU,GAAG,aAAa,CAAC,EAAE,oBAAoB,sBAAA,EAAE,CAAC,CAAC;IAE3D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC;AAC3B,CAAC;AAED,SAAgB,kCAAkC,CAAC,MAAwC;IAC/E,IAAA,oBAAoB,GAAK,MAAM,qBAAX,CAAY;IAExC,IAAM,GAAG,GAAG,aAAa,CAAC,EAAE,oBAAoB,sBAAA,EAAE,CAAC,CAAC;IAEpD,IAAA,cAAM,EAAC,GAAG,KAAK,SAAS,CAAC,CAAC;IAC1B,IAAA,cAAM,EAAC,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;IAExC,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAE3C,aAAa,CAAC,EAAE,oBAAoB,sBAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"StateData.js","sourceRoot":"","sources":["../src/oidc/StateData.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare function getConfigHash(params: {
1
+ export declare function getConfigId(params: {
2
2
  issuerUri: string;
3
3
  clientId: string;
4
4
  }): string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConfigId = getConfigId;
4
+ function getConfigId(params) {
5
+ return "".concat(params.issuerUri, ":").concat(params.clientId);
6
+ }
7
+ //# sourceMappingURL=configId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configId.js","sourceRoot":"","sources":["../src/oidc/configId.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAFD,SAAgB,WAAW,CAAC,MAA+C;IACvE,OAAO,UAAG,MAAM,CAAC,SAAS,cAAI,MAAM,CAAC,QAAQ,CAAE,CAAC;AACpD,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { StatefulObservable } from "../tools/StatefulObservable";
1
2
  import type { Oidc } from "./Oidc";
2
3
  import { type AwaitableEventEmitter } from "../tools/AwaitableEventEmitter";
3
4
  export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false> = {
@@ -69,8 +70,14 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
69
70
  };
70
71
  declare global {
71
72
  interface Window {
72
- "__oidc-spa.prOidcByConfigHash": Map<string, Promise<Oidc<any>>>;
73
- "__oidc-spa.evtAuthResponseHandled": AwaitableEventEmitter<void>;
73
+ "__oidc-spa.createOidc.GlobalContext": {
74
+ prOidcByConfigId: Map<string, Promise<Oidc<any>>>;
75
+ evtAuthResponseHandled: AwaitableEventEmitter<void>;
76
+ URL_real: typeof URL;
77
+ $isUserActive: StatefulObservable<boolean> | undefined;
78
+ hasLoginBeenCalled: boolean;
79
+ hasLogoutBeenCalled: boolean;
80
+ };
74
81
  }
75
82
  }
76
83
  /** @see: https://docs.oidc-spa.dev/v/v6/usage */
@@ -79,6 +86,6 @@ export declare function createOidc_nonMemoized<DecodedIdToken extends Record<str
79
86
  issuerUri: string;
80
87
  clientId: string;
81
88
  scopes: string[];
82
- configHash: string;
89
+ configId: string;
83
90
  log: typeof console.log | undefined;
84
91
  }): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
@@ -93,7 +93,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
93
93
  }
94
94
  return to.concat(ar || Array.prototype.slice.call(from));
95
95
  };
96
- var _a, _b;
96
+ var _a;
97
97
  Object.defineProperty(exports, "__esModule", { value: true });
98
98
  exports.createOidc = createOidc;
99
99
  exports.createOidc_nonMemoized = createOidc_nonMemoized;
@@ -110,19 +110,27 @@ var toFullyQualifiedUrl_1 = require("../tools/toFullyQualifiedUrl");
110
110
  var OidcInitializationError_1 = require("./OidcInitializationError");
111
111
  var StateData_1 = require("./StateData");
112
112
  var logoutPropagationToOtherTabs_1 = require("./logoutPropagationToOtherTabs");
113
- var configHash_1 = require("./configHash");
113
+ var configId_1 = require("./configId");
114
114
  var oidcClientTsUserToTokens_1 = require("./oidcClientTsUserToTokens");
115
115
  var loginSilent_1 = require("./loginSilent");
116
116
  var handleOidcCallback_1 = require("./handleOidcCallback");
117
117
  var AwaitableEventEmitter_1 = require("../tools/AwaitableEventEmitter");
118
118
  // NOTE: Replaced at build time
119
- var VERSION = "6.1.6";
120
- (_a = window["__oidc-spa.prOidcByConfigHash"]) !== null && _a !== void 0 ? _a : (window["__oidc-spa.prOidcByConfigHash"] = new Map());
121
- (_b = window["__oidc-spa.evtAuthResponseHandled"]) !== null && _b !== void 0 ? _b : (window["__oidc-spa.evtAuthResponseHandled"] = (0, AwaitableEventEmitter_1.createAwaitableEventEmitter)());
119
+ var VERSION = "6.1.8";
120
+ (0, handleOidcCallback_1.handleOidcCallback)();
121
+ (_a = window["__oidc-spa.createOidc.GlobalContext"]) !== null && _a !== void 0 ? _a : (window["__oidc-spa.createOidc.GlobalContext"] = {
122
+ prOidcByConfigId: new Map(),
123
+ evtAuthResponseHandled: (0, AwaitableEventEmitter_1.createAwaitableEventEmitter)(),
124
+ URL_real: window.URL,
125
+ $isUserActive: undefined,
126
+ hasLoginBeenCalled: false,
127
+ hasLogoutBeenCalled: false
128
+ });
129
+ var globalContext = window["__oidc-spa.createOidc.GlobalContext"];
122
130
  /** @see: https://docs.oidc-spa.dev/v/v6/usage */
123
131
  function createOidc(params) {
124
132
  return __awaiter(this, void 0, void 0, function () {
125
- var _a, _b, name_1, value, issuerUri_params, clientId, _c, scopes, debugLogs, rest, issuerUri, log, configHash, prOidc, dOidc, oidc;
133
+ var _a, _b, name_1, value, issuerUri_params, clientId, _c, scopes, debugLogs, rest, issuerUri, log, configId, prOidcByConfigId, prOidc, dOidc, oidc;
126
134
  var e_1, _d;
127
135
  return __generator(this, function (_e) {
128
136
  switch (_e.label) {
@@ -168,9 +176,10 @@ function createOidc(params) {
168
176
  }
169
177
  });
170
178
  })();
171
- configHash = (0, configHash_1.getConfigHash)({ issuerUri: issuerUri, clientId: clientId });
179
+ configId = (0, configId_1.getConfigId)({ issuerUri: issuerUri, clientId: clientId });
180
+ prOidcByConfigId = globalContext.prOidcByConfigId;
172
181
  use_previous_instance: {
173
- prOidc = window["__oidc-spa.prOidcByConfigHash"].get(configHash);
182
+ prOidc = prOidcByConfigId.get(configId);
174
183
  if (prOidc === undefined) {
175
184
  break use_previous_instance;
176
185
  }
@@ -186,12 +195,12 @@ function createOidc(params) {
186
195
  return [2 /*return*/, prOidc];
187
196
  }
188
197
  dOidc = new Deferred_1.Deferred();
189
- window["__oidc-spa.prOidcByConfigHash"].set(configHash, dOidc.pr);
198
+ prOidcByConfigId.set(configId, dOidc.pr);
190
199
  return [4 /*yield*/, createOidc_nonMemoized(rest, {
191
200
  issuerUri: issuerUri,
192
201
  clientId: clientId,
193
202
  scopes: scopes,
194
- configHash: configHash,
203
+ configId: configId,
195
204
  log: log
196
205
  })];
197
206
  case 1:
@@ -202,19 +211,15 @@ function createOidc(params) {
202
211
  });
203
212
  });
204
213
  }
205
- var $isUserActive = undefined;
206
- var URL_real = window.URL;
207
- var hasLoginBeenCalled = false;
208
- var hasLogoutBeenCalled = false;
209
214
  function createOidc_nonMemoized(params, preProcessedParams) {
210
215
  return __awaiter(this, void 0, void 0, function () {
211
- var transformUrlBeforeRedirect, extraQueryParamsOrGetter, extraTokenParamsOrGetter, homeUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _a, autoLogoutParams, _b, autoLogin, postLoginRedirectUrl, __clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, issuerUri, clientId, scopes, configHash, log, _c, getExtraQueryParams, getExtraTokenParams, homeAndCallbackUrl, USER_LOGGED_IN_KEY, stateQueryParamValue_instance, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, loginOrGoToAuthServer, BROWSER_SESSION_NOT_FIRST_INIT_KEY, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, oidc, prOtherTabLogout, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1;
216
+ var transformUrlBeforeRedirect, extraQueryParamsOrGetter, extraTokenParamsOrGetter, homeUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _a, autoLogoutParams, _b, autoLogin, postLoginRedirectUrl, __clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, issuerUri, clientId, scopes, configId, log, _c, getExtraQueryParams, getExtraTokenParams, homeAndCallbackUrl, isHandled, USER_LOGGED_IN_KEY, stateQueryParamValue_instance, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, loginOrGoToAuthServer, BROWSER_SESSION_NOT_FIRST_INIT_KEY, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, oidc, prOtherTabLogout, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1;
212
217
  var _this = this;
213
218
  return __generator(this, function (_d) {
214
219
  switch (_d.label) {
215
220
  case 0:
216
221
  transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, extraQueryParamsOrGetter = params.extraQueryParams, extraTokenParamsOrGetter = params.extraTokenParams, homeUrl_params = params.homeUrl, decodedIdTokenSchema = params.decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _a = params.autoLogoutParams, autoLogoutParams = _a === void 0 ? { redirectTo: "current page" } : _a, _b = params.autoLogin, autoLogin = _b === void 0 ? false : _b, postLoginRedirectUrl = params.postLoginRedirectUrl, __clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = params.__clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
217
- issuerUri = preProcessedParams.issuerUri, clientId = preProcessedParams.clientId, scopes = preProcessedParams.scopes, configHash = preProcessedParams.configHash, log = preProcessedParams.log;
222
+ issuerUri = preProcessedParams.issuerUri, clientId = preProcessedParams.clientId, scopes = preProcessedParams.scopes, configId = preProcessedParams.configId, log = preProcessedParams.log;
218
223
  _c = __read([extraQueryParamsOrGetter, extraTokenParamsOrGetter].map(function (valueOrGetter) {
219
224
  if (typeof valueOrGetter === "function") {
220
225
  return valueOrGetter;
@@ -233,13 +238,17 @@ function createOidc_nonMemoized(params, preProcessedParams) {
233
238
  issuerUri: issuerUri,
234
239
  clientId: clientId,
235
240
  scopes: scopes,
236
- configHash: configHash,
241
+ configId: configId,
237
242
  homeAndCallbackUrl: homeAndCallbackUrl
238
243
  });
239
- return [4 /*yield*/, (0, handleOidcCallback_1.handleOidcCallback)()];
244
+ isHandled = (0, handleOidcCallback_1.handleOidcCallback)().isHandled;
245
+ if (!isHandled) return [3 /*break*/, 2];
246
+ return [4 /*yield*/, new Promise(function () { })];
240
247
  case 1:
241
248
  _d.sent();
242
- USER_LOGGED_IN_KEY = "oidc-spa.user-logged-in:".concat(configHash);
249
+ _d.label = 2;
250
+ case 2:
251
+ USER_LOGGED_IN_KEY = "oidc-spa.user-logged-in:".concat(configId);
243
252
  localStorage.removeItem(USER_LOGGED_IN_KEY);
244
253
  stateQueryParamValue_instance = (0, StateData_1.generateStateQueryParamValue)();
245
254
  oidcClientTsUserManager = new oidc_client_ts_and_jwt_decode_1.UserManager({
@@ -269,7 +278,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
269
278
  };
270
279
  };
271
280
  loginOrGoToAuthServer = function (params) { return __awaiter(_this, void 0, void 0, function () {
272
- var extraQueryParams_fromLoginFn, redirectUrl_params, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirectUrl, URL_1, redirectMethod, extraQueryParams;
281
+ var extraQueryParams_fromLoginFn, redirectUrl_params, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirectUrl, URL_real_1, URL_1, redirectMethod, extraQueryParams;
273
282
  return __generator(this, function (_a) {
274
283
  switch (_a.label) {
275
284
  case 0:
@@ -279,11 +288,11 @@ function createOidc_nonMemoized(params, preProcessedParams) {
279
288
  // When the app is hosted on https (so not in dev mode) the browser will restore the state of the app
280
289
  // instead of reloading the page.
281
290
  if (rest.action === "login") {
282
- if (hasLoginBeenCalled) {
291
+ if (globalContext.hasLoginBeenCalled) {
283
292
  log === null || log === void 0 ? void 0 : log("login() has already been called, ignoring the call");
284
293
  return [2 /*return*/, new Promise(function () { })];
285
294
  }
286
- hasLoginBeenCalled = true;
295
+ globalContext.hasLoginBeenCalled = true;
287
296
  callback_1 = function () {
288
297
  if (document.visibilityState === "visible") {
289
298
  document.removeEventListener("visibilitychange", callback_1);
@@ -306,7 +315,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
306
315
  }
307
316
  else {
308
317
  log === null || log === void 0 ? void 0 : log("and the user doesn't seem to be authenticated, avoiding a reload");
309
- hasLoginBeenCalled = false;
318
+ globalContext.hasLoginBeenCalled = false;
310
319
  }
311
320
  }
312
321
  }
@@ -326,16 +335,17 @@ function createOidc_nonMemoized(params, preProcessedParams) {
326
335
  // used internally by oidc-client-ts. It's save to do so since this is the
327
336
  // last thing that will be done before the redirect.
328
337
  {
338
+ URL_real_1 = globalContext.URL_real;
329
339
  URL_1 = function () {
330
340
  var args = [];
331
341
  for (var _i = 0; _i < arguments.length; _i++) {
332
342
  args[_i] = arguments[_i];
333
343
  }
334
- var urlInstance = new (URL_real.bind.apply(URL_real, __spreadArray([void 0], __read(args), false)))();
344
+ var urlInstance = new (URL_real_1.bind.apply(URL_real_1, __spreadArray([void 0], __read(args), false)))();
335
345
  return new Proxy(urlInstance, {
336
346
  get: function (target, prop) {
337
347
  if (prop === "href") {
338
- Object.defineProperty(window, "URL", { value: URL_real });
348
+ Object.defineProperty(window, "URL", { value: URL_real_1 });
339
349
  var url_1 = urlInstance.href;
340
350
  [
341
351
  [getExtraQueryParams === null || getExtraQueryParams === void 0 ? void 0 : getExtraQueryParams(), transformUrlBeforeRedirect],
@@ -420,7 +430,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
420
430
  redirectUrl: redirectUrl,
421
431
  extraQueryParams: extraQueryParams,
422
432
  hasBeenProcessedByCallback: false,
423
- configHash: configHash,
433
+ configId: configId,
424
434
  action: "login"
425
435
  }),
426
436
  redirectMethod: redirectMethod
@@ -431,9 +441,9 @@ function createOidc_nonMemoized(params, preProcessedParams) {
431
441
  }
432
442
  });
433
443
  }); };
434
- BROWSER_SESSION_NOT_FIRST_INIT_KEY = "oidc-spa.browser-session-not-first-init:".concat(configHash);
444
+ BROWSER_SESSION_NOT_FIRST_INIT_KEY = "oidc-spa.browser-session-not-first-init:".concat(configId);
435
445
  return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
436
- var authResponse, stateData, _a, authResponseUrl, oidcClientTsUser, error_1, error_3, authResponseUrl, _b, result_loginSilent, authResponse, oidcClientTsUser, error_2, error_4;
446
+ var authResponse, stateData, evtAuthResponseHandled_1, prHandled, _a, authResponseUrl, oidcClientTsUser, error_1, error_3, authResponseUrl, _b, result_loginSilent, authResponse, oidcClientTsUser, error_2, error_4;
437
447
  return __generator(this, function (_c) {
438
448
  switch (_c.label) {
439
449
  case 0:
@@ -455,40 +465,47 @@ function createOidc_nonMemoized(params, preProcessedParams) {
455
465
  return authResponse;
456
466
  })();
457
467
  if (authResponse === undefined) {
458
- return [3 /*break*/, 13];
468
+ return [3 /*break*/, 15];
459
469
  }
460
470
  stateData = (0, StateData_1.getStateData)({ stateQueryParamValue: authResponse["state"] });
461
471
  (0, tsafe_1.assert)(stateData !== undefined);
462
472
  (0, tsafe_1.assert)(stateData.context === "redirect");
463
- if (!(stateData.configHash !== configHash)) return [3 /*break*/, 2];
464
- return [4 /*yield*/, window["__oidc-spa.evtAuthResponseHandled"].waitFor()];
473
+ evtAuthResponseHandled_1 = globalContext.evtAuthResponseHandled;
474
+ if (!(stateData.configId !== configId)) return [3 /*break*/, 4];
475
+ prHandled = evtAuthResponseHandled_1.waitFor();
476
+ return [4 /*yield*/, Promise.resolve()];
465
477
  case 1:
466
478
  _c.sent();
467
- return [3 /*break*/, 13];
479
+ if (!(sessionStorage.getItem(handleOidcCallback_1.AUTH_RESPONSE_KEY) === null)) return [3 /*break*/, 3];
480
+ return [4 /*yield*/, prHandled];
468
481
  case 2:
482
+ _c.sent();
483
+ _c.label = 3;
484
+ case 3: return [3 /*break*/, 15];
485
+ case 4:
469
486
  sessionStorage.removeItem(handleOidcCallback_1.AUTH_RESPONSE_KEY);
470
487
  _a = stateData.action;
471
488
  switch (_a) {
472
- case "login": return [3 /*break*/, 3];
473
- case "logout": return [3 /*break*/, 8];
489
+ case "login": return [3 /*break*/, 5];
490
+ case "logout": return [3 /*break*/, 10];
474
491
  }
475
- return [3 /*break*/, 13];
476
- case 3:
492
+ return [3 /*break*/, 15];
493
+ case 5:
477
494
  log === null || log === void 0 ? void 0 : log("Handling login redirect auth response", authResponse);
478
495
  authResponseUrl = (0, loginSilent_1.authResponseToUrl)(authResponse);
479
496
  oidcClientTsUser = undefined;
480
- _c.label = 4;
481
- case 4:
482
- _c.trys.push([4, 6, , 7]);
497
+ _c.label = 6;
498
+ case 6:
499
+ _c.trys.push([6, 8, , 9]);
483
500
  return [4 /*yield*/, oidcClientTsUserManager
484
501
  .signinRedirectCallback(authResponseUrl)
485
502
  .finally(function () {
486
- window["__oidc-spa.evtAuthResponseHandled"].post();
503
+ evtAuthResponseHandled_1.post();
487
504
  })];
488
- case 5:
505
+ case 7:
489
506
  oidcClientTsUser = _c.sent();
490
- return [3 /*break*/, 7];
491
- case 6:
507
+ return [3 /*break*/, 9];
508
+ case 8:
492
509
  error_1 = _c.sent();
493
510
  (0, tsafe_1.assert)(error_1 instanceof Error);
494
511
  if (error_1.message === "Failed to fetch") {
@@ -501,11 +518,11 @@ function createOidc_nonMemoized(params, preProcessedParams) {
501
518
  error_3 = authResponse["error"];
502
519
  if (error_3 !== undefined) {
503
520
  log === null || log === void 0 ? void 0 : log("The auth server responded with: ".concat(error_3, ", trying to restore from the http only cookie"));
504
- return [3 /*break*/, 13];
521
+ return [3 /*break*/, 15];
505
522
  }
506
523
  }
507
524
  return [2 /*return*/, error_1];
508
- case 7:
525
+ case 9:
509
526
  sessionStorage.removeItem(BROWSER_SESSION_NOT_FIRST_INIT_KEY);
510
527
  return [2 /*return*/, {
511
528
  oidcClientTsUser: oidcClientTsUser,
@@ -520,37 +537,37 @@ function createOidc_nonMemoized(params, preProcessedParams) {
520
537
  }))
521
538
  }
522
539
  }];
523
- case 8:
540
+ case 10:
524
541
  log === null || log === void 0 ? void 0 : log("Handling logout redirect auth response", authResponse);
525
542
  authResponseUrl = (0, loginSilent_1.authResponseToUrl)(authResponse);
526
- _c.label = 9;
527
- case 9:
528
- _c.trys.push([9, 11, , 12]);
543
+ _c.label = 11;
544
+ case 11:
545
+ _c.trys.push([11, 13, , 14]);
529
546
  return [4 /*yield*/, oidcClientTsUserManager.signoutRedirectCallback(authResponseUrl)];
530
- case 10:
547
+ case 12:
531
548
  _c.sent();
532
- return [3 /*break*/, 12];
533
- case 11:
549
+ return [3 /*break*/, 14];
550
+ case 13:
534
551
  _b = _c.sent();
535
- return [3 /*break*/, 12];
536
- case 12:
537
- window["__oidc-spa.evtAuthResponseHandled"].post();
552
+ return [3 /*break*/, 14];
553
+ case 14:
554
+ evtAuthResponseHandled_1.post();
538
555
  (0, logoutPropagationToOtherTabs_1.notifyOtherTabOfLogout)({
539
- configHash: configHash,
556
+ configId: configId,
540
557
  redirectUrl: stateData.redirectUrl,
541
558
  sessionId: stateData.sessionId
542
559
  });
543
560
  // NOTE: The user is no longer logged in.
544
561
  return [2 /*return*/, undefined];
545
- case 13:
562
+ case 15:
546
563
  log === null || log === void 0 ? void 0 : log("Trying to restore the auth from the http only cookie (silent signin with iframe)");
547
564
  return [4 /*yield*/, (0, loginSilent_1.loginSilent)({
548
565
  oidcClientTsUserManager: oidcClientTsUserManager,
549
566
  stateQueryParamValue_instance: stateQueryParamValue_instance,
550
- configHash: configHash,
567
+ configId: configId,
551
568
  getExtraTokenParams: getExtraTokenParams
552
569
  })];
553
- case 14:
570
+ case 16:
554
571
  result_loginSilent = _c.sent();
555
572
  if (!result_loginSilent.isSuccess) {
556
573
  switch (result_loginSilent.cause) {
@@ -570,14 +587,14 @@ function createOidc_nonMemoized(params, preProcessedParams) {
570
587
  authResponse = result_loginSilent.authResponse;
571
588
  log === null || log === void 0 ? void 0 : log("Silent signin auth response", authResponse);
572
589
  oidcClientTsUser = undefined;
573
- _c.label = 15;
574
- case 15:
575
- _c.trys.push([15, 17, , 18]);
590
+ _c.label = 17;
591
+ case 17:
592
+ _c.trys.push([17, 19, , 20]);
576
593
  return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback((0, loginSilent_1.authResponseToUrl)(authResponse))];
577
- case 16:
594
+ case 18:
578
595
  oidcClientTsUser = _c.sent();
579
- return [3 /*break*/, 18];
580
- case 17:
596
+ return [3 /*break*/, 20];
597
+ case 19:
581
598
  error_2 = _c.sent();
582
599
  (0, tsafe_1.assert)(error_2 instanceof Error);
583
600
  if (error_2.message === "Failed to fetch") {
@@ -596,17 +613,17 @@ function createOidc_nonMemoized(params, preProcessedParams) {
596
613
  ? "(authentication_required just means that there's no active session for the user)"
597
614
  : ""
598
615
  ].join(""));
599
- return [3 /*break*/, 19];
616
+ return [3 /*break*/, 21];
600
617
  }
601
618
  }
602
619
  return [2 /*return*/, error_2];
603
- case 18:
620
+ case 20:
604
621
  log === null || log === void 0 ? void 0 : log("Successful silent signed in");
605
622
  return [2 /*return*/, {
606
623
  oidcClientTsUser: oidcClientTsUser,
607
624
  backFromAuthServer: undefined
608
625
  }];
609
- case 19:
626
+ case 21:
610
627
  // NOTE: The user is not logged in.
611
628
  return [2 /*return*/, undefined];
612
629
  }
@@ -655,7 +672,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
655
672
  }
656
673
  return { tokens: tokens, backFromAuthServer: backFromAuthServer };
657
674
  })];
658
- case 2:
675
+ case 3:
659
676
  resultOfLoginProcess = _d.sent();
660
677
  common = {
661
678
  params: {
@@ -691,24 +708,24 @@ function createOidc_nonMemoized(params, preProcessedParams) {
691
708
  // @ts-expect-error: We know what we are doing.
692
709
  return [2 /*return*/, oidc_1];
693
710
  }
694
- if (!(resultOfLoginProcess === undefined)) return [3 /*break*/, 5];
711
+ if (!(resultOfLoginProcess === undefined)) return [3 /*break*/, 6];
695
712
  log === null || log === void 0 ? void 0 : log("User not logged in");
696
- if (!autoLogin) return [3 /*break*/, 4];
713
+ if (!autoLogin) return [3 /*break*/, 5];
697
714
  log === null || log === void 0 ? void 0 : log("Authentication is required everywhere on this app, redirecting to the login page");
698
715
  return [4 /*yield*/, loginOrGoToAuthServer({
699
716
  action: "login",
700
717
  doesCurrentHrefRequiresAuth: true,
701
718
  redirectUrl: postLoginRedirectUrl
702
719
  })];
703
- case 3:
704
- _d.sent();
705
- _d.label = 4;
706
720
  case 4:
721
+ _d.sent();
722
+ _d.label = 5;
723
+ case 5:
707
724
  startTrackingLastPublicRoute();
708
725
  oidc_2 = (0, tsafe_1.id)(__assign(__assign({}, common), { isUserLoggedIn: false, login: function (params) { return loginOrGoToAuthServer(__assign({ action: "login" }, params)); }, initializationError: undefined }));
709
726
  // @ts-expect-error: We know what we are doing.
710
727
  return [2 /*return*/, oidc_2];
711
- case 5:
728
+ case 6:
712
729
  log === null || log === void 0 ? void 0 : log("User is logged in");
713
730
  localStorage.setItem(USER_LOGGED_IN_KEY, "true");
714
731
  currentTokens = resultOfLoginProcess.tokens;
@@ -719,11 +736,11 @@ function createOidc_nonMemoized(params, preProcessedParams) {
719
736
  return __generator(this, function (_a) {
720
737
  switch (_a.label) {
721
738
  case 0:
722
- if (hasLogoutBeenCalled) {
739
+ if (globalContext.hasLogoutBeenCalled) {
723
740
  log === null || log === void 0 ? void 0 : log("logout() has already been called, ignoring the call");
724
741
  return [2 /*return*/, new Promise(function () { })];
725
742
  }
726
- hasLogoutBeenCalled = true;
743
+ globalContext.hasLogoutBeenCalled = true;
727
744
  document.addEventListener("visibilitychange", function () {
728
745
  if (document.visibilityState === "visible") {
729
746
  location.reload();
@@ -745,7 +762,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
745
762
  sessionId = (0, decodeJwt_1.decodeJwt)(oidc.getTokens().idToken).sid;
746
763
  return [4 /*yield*/, oidcClientTsUserManager.signoutRedirect({
747
764
  state: (0, tsafe_1.id)({
748
- configHash: configHash,
765
+ configId: configId,
749
766
  context: "redirect",
750
767
  redirectUrl: postLogoutRedirectUrl,
751
768
  hasBeenProcessedByCallback: false,
@@ -808,7 +825,7 @@ function createOidc_nonMemoized(params, preProcessedParams) {
808
825
  })() }));
809
826
  {
810
827
  prOtherTabLogout = (0, logoutPropagationToOtherTabs_1.getPrOtherTabLogout)({
811
- configHash: configHash,
828
+ configId: configId,
812
829
  homeUrl: homeAndCallbackUrl,
813
830
  sessionId: (0, decodeJwt_1.decodeJwt)(oidc.getTokens().idToken).sid
814
831
  }).prOtherTabLogout;
@@ -922,12 +939,12 @@ function createOidc_nonMemoized(params, preProcessedParams) {
922
939
  }
923
940
  }).startCountdown;
924
941
  stopCountdown_1 = undefined;
925
- if ($isUserActive === undefined) {
926
- $isUserActive = (0, createIsUserActive_1.createIsUserActive)({
942
+ if (globalContext.$isUserActive === undefined) {
943
+ globalContext.$isUserActive = (0, createIsUserActive_1.createIsUserActive)({
927
944
  theUserIsConsideredInactiveAfterMsOfInactivity: 5000
928
945
  }).$isUserActive;
929
946
  }
930
- $isUserActive.subscribe(function (isUserActive) {
947
+ globalContext.$isUserActive.subscribe(function (isUserActive) {
931
948
  if (isUserActive) {
932
949
  if (stopCountdown_1 !== undefined) {
933
950
  stopCountdown_1();