oidc-spa 6.5.2 → 6.6.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 (81) hide show
  1. package/mock/oidc.js +6 -5
  2. package/mock/oidc.js.map +1 -1
  3. package/oidc/AuthResponse.d.ts +6 -0
  4. package/oidc/AuthResponse.js +59 -0
  5. package/oidc/AuthResponse.js.map +1 -0
  6. package/oidc/Oidc.d.ts +19 -8
  7. package/oidc/createOidc.d.ts +4 -4
  8. package/oidc/createOidc.js +366 -298
  9. package/oidc/createOidc.js.map +1 -1
  10. package/oidc/evtIsUserActive.d.ts +15 -0
  11. package/oidc/{isUserActive.js → evtIsUserActive.js} +29 -12
  12. package/oidc/evtIsUserActive.js.map +1 -0
  13. package/oidc/handleOidcCallback.d.ts +8 -1
  14. package/oidc/handleOidcCallback.js +68 -13
  15. package/oidc/handleOidcCallback.js.map +1 -1
  16. package/oidc/loginOrGoToAuthServer.d.ts +5 -4
  17. package/oidc/loginOrGoToAuthServer.js +190 -227
  18. package/oidc/loginOrGoToAuthServer.js.map +1 -1
  19. package/oidc/loginPropagationToOtherTabs.d.ts +17 -0
  20. package/oidc/loginPropagationToOtherTabs.js +41 -0
  21. package/oidc/loginPropagationToOtherTabs.js.map +1 -0
  22. package/oidc/loginSilent.d.ts +1 -5
  23. package/oidc/loginSilent.js +3 -51
  24. package/oidc/loginSilent.js.map +1 -1
  25. package/oidc/logoutPropagationToOtherTabs.js +1 -1
  26. package/oidc/logoutPropagationToOtherTabs.js.map +1 -1
  27. package/oidc/oidcClientTsUserToTokens.d.ts +1 -1
  28. package/oidc/oidcClientTsUserToTokens.js +45 -23
  29. package/oidc/oidcClientTsUserToTokens.js.map +1 -1
  30. package/oidc/ongoingLoginOrRefreshProcesses.d.ts +16 -0
  31. package/oidc/ongoingLoginOrRefreshProcesses.js +102 -0
  32. package/oidc/ongoingLoginOrRefreshProcesses.js.map +1 -0
  33. package/oidc/persistedAuthState.d.ts +16 -3
  34. package/oidc/persistedAuthState.js +35 -4
  35. package/oidc/persistedAuthState.js.map +1 -1
  36. package/package.json +36 -21
  37. package/react/react.js +8 -14
  38. package/react/react.js.map +1 -1
  39. package/src/mock/oidc.ts +14 -3
  40. package/src/oidc/AuthResponse.ts +26 -0
  41. package/src/oidc/Oidc.ts +19 -4
  42. package/src/oidc/createOidc.ts +288 -251
  43. package/src/oidc/{isUserActive.ts → evtIsUserActive.ts} +36 -10
  44. package/src/oidc/handleOidcCallback.ts +73 -12
  45. package/src/oidc/loginOrGoToAuthServer.ts +94 -87
  46. package/src/oidc/loginPropagationToOtherTabs.ts +63 -0
  47. package/src/oidc/loginSilent.ts +2 -20
  48. package/src/oidc/logoutPropagationToOtherTabs.ts +2 -2
  49. package/src/oidc/oidcClientTsUserToTokens.ts +74 -35
  50. package/src/oidc/ongoingLoginOrRefreshProcesses.ts +60 -0
  51. package/src/oidc/persistedAuthState.ts +66 -8
  52. package/src/react/react.tsx +8 -16
  53. package/src/tools/{ephemeralSessionStorage.ts → EphemeralSessionStorage.ts} +59 -27
  54. package/src/tools/Evt.ts +56 -0
  55. package/src/tools/StatefulEvt.ts +38 -0
  56. package/src/tools/subscribeToUserInteraction.ts +0 -1
  57. package/src/tools/workerTimers.ts +10 -12
  58. package/tools/EphemeralSessionStorage.d.ts +12 -0
  59. package/tools/{ephemeralSessionStorage.js → EphemeralSessionStorage.js} +29 -16
  60. package/tools/EphemeralSessionStorage.js.map +1 -0
  61. package/tools/Evt.d.ts +11 -0
  62. package/tools/{AwaitableEventEmitter.js → Evt.js} +24 -8
  63. package/tools/Evt.js.map +1 -0
  64. package/tools/StatefulEvt.d.ts +12 -0
  65. package/tools/StatefulEvt.js +24 -0
  66. package/tools/StatefulEvt.js.map +1 -0
  67. package/tools/subscribeToUserInteraction.js +2 -3
  68. package/tools/subscribeToUserInteraction.js.map +1 -1
  69. package/tools/workerTimers.js +11 -13
  70. package/tools/workerTimers.js.map +1 -1
  71. package/oidc/isUserActive.d.ts +0 -13
  72. package/oidc/isUserActive.js.map +0 -1
  73. package/src/tools/AwaitableEventEmitter.ts +0 -33
  74. package/src/tools/StatefulObservable.ts +0 -52
  75. package/tools/AwaitableEventEmitter.d.ts +0 -5
  76. package/tools/AwaitableEventEmitter.js.map +0 -1
  77. package/tools/StatefulObservable.d.ts +0 -12
  78. package/tools/StatefulObservable.js +0 -33
  79. package/tools/StatefulObservable.js.map +0 -1
  80. package/tools/ephemeralSessionStorage.d.ts +0 -3
  81. package/tools/ephemeralSessionStorage.js.map +0 -1
@@ -1,40 +1,4 @@
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());
9
- });
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;
13
- return g = { next: verb(0), "throw": verb(1), "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
2
  var __rest = (this && this.__rest) || function (s, e) {
39
3
  var t = {};
40
4
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -84,213 +48,212 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
84
48
  };
85
49
  var _a;
86
50
  Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.getPrSafelyRestoredFromBfCacheAfterLoginBackNavigation = getPrSafelyRestoredFromBfCacheAfterLoginBackNavigation;
87
52
  exports.createLoginOrGoToAuthServer = createLoginOrGoToAuthServer;
88
53
  var toFullyQualifiedUrl_1 = require("../tools/toFullyQualifiedUrl");
89
54
  var tsafe_1 = require("../vendor/frontend/tsafe");
55
+ var StatefulEvt_1 = require("../tools/StatefulEvt");
56
+ var Deferred_1 = require("../tools/Deferred");
90
57
  var GLOBAL_CONTEXT_KEY = "__oidc-spa.loginOrGoToAuthSever.globalContext";
91
58
  (_a = window[GLOBAL_CONTEXT_KEY]) !== null && _a !== void 0 ? _a : (window[GLOBAL_CONTEXT_KEY] = {
92
- hasLoginBeenCalled: false,
93
- URL_real: window.URL
59
+ evtHasLoginBeenCalled: (0, StatefulEvt_1.createStatefulEvt)(function () { return false; })
94
60
  });
95
61
  var globalContext = window[GLOBAL_CONTEXT_KEY];
62
+ function getPrSafelyRestoredFromBfCacheAfterLoginBackNavigation() {
63
+ var dOut = new Deferred_1.Deferred();
64
+ var unsubscribe = globalContext.evtHasLoginBeenCalled.subscribe(function (hasLoginBeenCalled) {
65
+ if (!hasLoginBeenCalled) {
66
+ unsubscribe();
67
+ dOut.resolve();
68
+ }
69
+ }).unsubscribe;
70
+ return dOut.pr;
71
+ }
96
72
  function createLoginOrGoToAuthServer(params) {
97
- var configId = params.configId, oidcClientTsUserManager = params.oidcClientTsUserManager, getExtraQueryParams = params.getExtraQueryParams, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, homeAndCallbackUrl = params.homeAndCallbackUrl, log = params.log;
98
- var LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_RETURNING_OIDC_LOGGED_IN = "oidc-spa.login-redirect-initiated:".concat(configId);
73
+ var configId = params.configId, oidcClientTsUserManager = params.oidcClientTsUserManager, getExtraQueryParams = params.getExtraQueryParams, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, homeAndCallbackUrl = params.homeAndCallbackUrl, evtIsUserLoggedIn = params.evtIsUserLoggedIn, log = params.log;
74
+ var LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_USER_LOGGED_IN = "oidc-spa.login-redirect-initiated:".concat(configId);
99
75
  var lastPublicUrl = undefined;
100
76
  function loginOrGoToAuthServer(params) {
101
- return __awaiter(this, void 0, void 0, function () {
102
- var redirectUrl_params, extraQueryParams_local, transformUrlBeforeRedirect_local, rest, callback_1, redirectUrl, transformUrl_oidcClientTs, redirectMethod, extraQueryParams;
103
- return __generator(this, function (_a) {
104
- switch (_a.label) {
105
- case 0:
106
- redirectUrl_params = params.redirectUrl, extraQueryParams_local = params.extraQueryParams_local, transformUrlBeforeRedirect_local = params.transformUrlBeforeRedirect_local, rest = __rest(params, ["redirectUrl", "extraQueryParams_local", "transformUrlBeforeRedirect_local"]);
107
- log === null || log === void 0 ? void 0 : log("Calling loginOrGoToAuthServer", { params: params });
108
- login_specific_handling: {
109
- if (rest.action !== "login") {
110
- break login_specific_handling;
111
- }
112
- if (globalContext.hasLoginBeenCalled) {
113
- log === null || log === void 0 ? void 0 : log("login() has already been called, ignoring the call");
114
- return [2 /*return*/, new Promise(function () { })];
115
- }
116
- globalContext.hasLoginBeenCalled = true;
117
- bf_cache_handling: {
118
- if (rest.doForceReloadOnBfCache) {
119
- document.removeEventListener("visibilitychange", function () {
120
- if (document.visibilityState === "visible") {
121
- location.reload();
122
- }
123
- });
124
- break bf_cache_handling;
125
- }
126
- localStorage.setItem(LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_RETURNING_OIDC_LOGGED_IN, "true");
127
- callback_1 = function () {
128
- if (document.visibilityState === "visible") {
129
- document.removeEventListener("visibilitychange", callback_1);
130
- log === null || log === void 0 ? void 0 : log("We came back from the login pages and the state of the app has been restored");
131
- if (rest.doNavigateBackToLastPublicUrlIfTheTheUserNavigateBack) {
132
- if (lastPublicUrl !== undefined) {
133
- log === null || log === void 0 ? void 0 : log("Loading last public route: ".concat(lastPublicUrl));
134
- window.location.href = lastPublicUrl;
135
- }
136
- else {
137
- log === null || log === void 0 ? void 0 : log("We don't know the last public route, navigating back in history");
138
- window.history.back();
139
- }
140
- }
141
- else {
142
- log === null || log === void 0 ? void 0 : log("The current page doesn't require auth...");
143
- if (localStorage.getItem(LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_RETURNING_OIDC_LOGGED_IN) === null) {
144
- log === null || log === void 0 ? void 0 : log("but the user is now authenticated, reloading the page");
145
- location.reload();
146
- }
147
- else {
148
- log === null || log === void 0 ? void 0 : log("and the user doesn't seem to be authenticated, avoiding a reload");
149
- globalContext.hasLoginBeenCalled = false;
150
- }
151
- }
152
- }
153
- };
154
- log === null || log === void 0 ? void 0 : log("Start listening to visibility change event");
155
- document.addEventListener("visibilitychange", callback_1);
156
- }
77
+ var redirectUrl_params = params.redirectUrl, extraQueryParams_local = params.extraQueryParams_local, transformUrlBeforeRedirect_local = params.transformUrlBeforeRedirect_local, rest = __rest(params, ["redirectUrl", "extraQueryParams_local", "transformUrlBeforeRedirect_local"]);
78
+ log === null || log === void 0 ? void 0 : log("Calling loginOrGoToAuthServer", { params: params });
79
+ login_specific_handling: {
80
+ if (rest.action !== "login") {
81
+ break login_specific_handling;
82
+ }
83
+ if (globalContext.evtHasLoginBeenCalled.current) {
84
+ log === null || log === void 0 ? void 0 : log("login() has already been called, ignoring the call");
85
+ return new Promise(function () { });
86
+ }
87
+ globalContext.evtHasLoginBeenCalled.current = true;
88
+ bf_cache_handling: {
89
+ if (rest.doForceReloadOnBfCache) {
90
+ window.removeEventListener("pageshow", function () {
91
+ location.reload();
92
+ });
93
+ break bf_cache_handling;
94
+ }
95
+ localStorage.setItem(LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_USER_LOGGED_IN, "true");
96
+ var callback_1 = function () {
97
+ window.removeEventListener("pageshow", callback_1);
98
+ log === null || log === void 0 ? void 0 : log("We came back from the login pages and the state of the app has been restored");
99
+ if (rest.doNavigateBackToLastPublicUrlIfTheTheUserNavigateBack) {
100
+ if (lastPublicUrl !== undefined) {
101
+ log === null || log === void 0 ? void 0 : log("Loading last public route: ".concat(lastPublicUrl));
102
+ window.location.href = lastPublicUrl;
103
+ }
104
+ else {
105
+ log === null || log === void 0 ? void 0 : log("We don't know the last public route, navigating back in history");
106
+ window.history.back();
107
+ }
108
+ }
109
+ else {
110
+ log === null || log === void 0 ? void 0 : log("The current page doesn't require auth...");
111
+ if (localStorage.getItem(LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_USER_LOGGED_IN) === null) {
112
+ log === null || log === void 0 ? void 0 : log("but the user is now authenticated, reloading the page");
113
+ location.reload();
114
+ }
115
+ else {
116
+ log === null || log === void 0 ? void 0 : log("and the user doesn't seem to be authenticated, avoiding a reload");
117
+ globalContext.evtHasLoginBeenCalled.current = false;
118
+ }
119
+ }
120
+ };
121
+ window.addEventListener("pageshow", callback_1);
122
+ }
123
+ }
124
+ var redirectUrl = (0, toFullyQualifiedUrl_1.toFullyQualifiedUrl)({
125
+ urlish: redirectUrl_params,
126
+ doAssertNoQueryParams: false
127
+ });
128
+ log === null || log === void 0 ? void 0 : log("redirectUrl: ".concat(redirectUrl));
129
+ var transformUrl_oidcClientTs = function (url) {
130
+ [
131
+ [getExtraQueryParams === null || getExtraQueryParams === void 0 ? void 0 : getExtraQueryParams(), transformUrlBeforeRedirect],
132
+ [extraQueryParams_local, transformUrlBeforeRedirect_local]
133
+ ].forEach(function (_a) {
134
+ var e_1, _b;
135
+ var _c = __read(_a, 2), extraQueryParams = _c[0], transformUrlBeforeRedirect = _c[1];
136
+ add_extra_query_params: {
137
+ if (extraQueryParams === undefined) {
138
+ break add_extra_query_params;
139
+ }
140
+ var url_obj = new URL(url);
141
+ try {
142
+ for (var _d = __values(Object.entries(extraQueryParams)), _e = _d.next(); !_e.done; _e = _d.next()) {
143
+ var _f = __read(_e.value, 2), name_1 = _f[0], value = _f[1];
144
+ url_obj.searchParams.set(name_1, value);
145
+ }
146
+ }
147
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
148
+ finally {
149
+ try {
150
+ if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
157
151
  }
158
- redirectUrl = (0, toFullyQualifiedUrl_1.toFullyQualifiedUrl)({
159
- urlish: redirectUrl_params,
160
- doAssertNoQueryParams: false
161
- });
162
- log === null || log === void 0 ? void 0 : log("redirectUrl: ".concat(redirectUrl));
163
- transformUrl_oidcClientTs = function (url) {
164
- [
165
- [getExtraQueryParams === null || getExtraQueryParams === void 0 ? void 0 : getExtraQueryParams(), transformUrlBeforeRedirect],
166
- [extraQueryParams_local, transformUrlBeforeRedirect_local]
167
- ].forEach(function (_a) {
168
- var e_1, _b;
169
- var _c = __read(_a, 2), extraQueryParams = _c[0], transformUrlBeforeRedirect = _c[1];
170
- add_extra_query_params: {
171
- if (extraQueryParams === undefined) {
172
- break add_extra_query_params;
173
- }
174
- var url_obj = new URL(url);
175
- try {
176
- for (var _d = __values(Object.entries(extraQueryParams)), _e = _d.next(); !_e.done; _e = _d.next()) {
177
- var _f = __read(_e.value, 2), name_1 = _f[0], value = _f[1];
178
- url_obj.searchParams.set(name_1, value);
179
- }
180
- }
181
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
182
- finally {
183
- try {
184
- if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
185
- }
186
- finally { if (e_1) throw e_1.error; }
187
- }
188
- url = url_obj.href;
189
- }
190
- apply_transform_before_redirect: {
191
- if (transformUrlBeforeRedirect === undefined) {
192
- break apply_transform_before_redirect;
193
- }
194
- url = transformUrlBeforeRedirect(url);
195
- }
196
- });
197
- return url;
198
- };
199
- redirectMethod = (function () {
200
- switch (rest.action) {
201
- case "login":
202
- return rest.doNavigateBackToLastPublicUrlIfTheTheUserNavigateBack
203
- ? "replace"
204
- : "assign";
205
- case "go to auth server":
206
- return "assign";
207
- }
208
- })();
209
- log === null || log === void 0 ? void 0 : log("redirectMethod: ".concat(redirectMethod));
210
- extraQueryParams = (function () {
211
- var e_2, _a;
212
- var extraQueryParams = extraQueryParams_local !== null && extraQueryParams_local !== void 0 ? extraQueryParams_local : {};
213
- read_query_params_added_by_transform_before_redirect: {
214
- if (transformUrlBeforeRedirect_local === undefined) {
215
- break read_query_params_added_by_transform_before_redirect;
216
- }
217
- var url_afterTransform = void 0;
218
- try {
219
- url_afterTransform = transformUrlBeforeRedirect_local("https://dummy.com");
220
- }
221
- catch (_b) {
222
- break read_query_params_added_by_transform_before_redirect;
223
- }
224
- try {
225
- for (var _c = __values(new URL(url_afterTransform).searchParams), _d = _c.next(); !_d.done; _d = _c.next()) {
226
- var _e = __read(_d.value, 2), name_2 = _e[0], value = _e[1];
227
- extraQueryParams[name_2] = value;
228
- }
229
- }
230
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
231
- finally {
232
- try {
233
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
234
- }
235
- finally { if (e_2) throw e_2.error; }
236
- }
237
- }
238
- return { extraQueryParams: extraQueryParams };
239
- })().extraQueryParams;
240
- return [4 /*yield*/, oidcClientTsUserManager.signinRedirect({
241
- state: (0, tsafe_1.id)({
242
- context: "redirect",
243
- redirectUrl: redirectUrl,
244
- extraQueryParams: extraQueryParams,
245
- hasBeenProcessedByCallback: false,
246
- configId: configId,
247
- action: "login",
248
- redirectUrl_consentRequiredCase: (function () {
249
- switch (rest.action) {
250
- case "login":
251
- return lastPublicUrl !== null && lastPublicUrl !== void 0 ? lastPublicUrl : homeAndCallbackUrl;
252
- case "go to auth server":
253
- return redirectUrl;
254
- }
255
- })()
256
- }),
257
- redirectMethod: redirectMethod,
258
- prompt: (function () {
259
- switch (rest.action) {
260
- case "go to auth server":
261
- return undefined;
262
- case "login":
263
- return rest.doForceInteraction ? "consent" : undefined;
264
- }
265
- tsafe_1.assert;
266
- })(),
267
- transformUrl: transformUrl_oidcClientTs
268
- })];
269
- case 1:
270
- _a.sent();
271
- return [2 /*return*/, new Promise(function () { })];
152
+ finally { if (e_1) throw e_1.error; }
153
+ }
154
+ url = url_obj.href;
155
+ }
156
+ apply_transform_before_redirect: {
157
+ if (transformUrlBeforeRedirect === undefined) {
158
+ break apply_transform_before_redirect;
159
+ }
160
+ url = transformUrlBeforeRedirect(url);
272
161
  }
273
162
  });
274
- });
275
- }
276
- function toCallBeforeReturningOidcLoggedIn() {
277
- localStorage.removeItem(LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_RETURNING_OIDC_LOGGED_IN);
278
- }
279
- function toCallBeforeReturningOidcNotLoggedIn() {
280
- var realPushState = history.pushState.bind(history);
281
- history.pushState = function pushState() {
282
- var args = [];
283
- for (var _i = 0; _i < arguments.length; _i++) {
284
- args[_i] = arguments[_i];
285
- }
286
- lastPublicUrl = window.location.href;
287
- return realPushState.apply(void 0, __spreadArray([], __read(args), false));
163
+ return url;
288
164
  };
165
+ var redirectMethod = (function () {
166
+ switch (rest.action) {
167
+ case "login":
168
+ return rest.doNavigateBackToLastPublicUrlIfTheTheUserNavigateBack
169
+ ? "replace"
170
+ : "assign";
171
+ case "go to auth server":
172
+ return "assign";
173
+ }
174
+ })();
175
+ log === null || log === void 0 ? void 0 : log("redirectMethod: ".concat(redirectMethod));
176
+ var extraQueryParams = (function () {
177
+ var e_2, _a;
178
+ var extraQueryParams = extraQueryParams_local !== null && extraQueryParams_local !== void 0 ? extraQueryParams_local : {};
179
+ read_query_params_added_by_transform_before_redirect: {
180
+ if (transformUrlBeforeRedirect_local === undefined) {
181
+ break read_query_params_added_by_transform_before_redirect;
182
+ }
183
+ var url_afterTransform = void 0;
184
+ try {
185
+ url_afterTransform = transformUrlBeforeRedirect_local("https://dummy.com");
186
+ }
187
+ catch (_b) {
188
+ break read_query_params_added_by_transform_before_redirect;
189
+ }
190
+ try {
191
+ for (var _c = __values(new URL(url_afterTransform).searchParams), _d = _c.next(); !_d.done; _d = _c.next()) {
192
+ var _e = __read(_d.value, 2), name_2 = _e[0], value = _e[1];
193
+ extraQueryParams[name_2] = value;
194
+ }
195
+ }
196
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
197
+ finally {
198
+ try {
199
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
200
+ }
201
+ finally { if (e_2) throw e_2.error; }
202
+ }
203
+ }
204
+ return { extraQueryParams: extraQueryParams };
205
+ })().extraQueryParams;
206
+ return oidcClientTsUserManager
207
+ .signinRedirect({
208
+ state: (0, tsafe_1.id)({
209
+ context: "redirect",
210
+ redirectUrl: redirectUrl,
211
+ extraQueryParams: extraQueryParams,
212
+ hasBeenProcessedByCallback: false,
213
+ configId: configId,
214
+ action: "login",
215
+ redirectUrl_consentRequiredCase: (function () {
216
+ switch (rest.action) {
217
+ case "login":
218
+ return lastPublicUrl !== null && lastPublicUrl !== void 0 ? lastPublicUrl : homeAndCallbackUrl;
219
+ case "go to auth server":
220
+ return redirectUrl;
221
+ }
222
+ })()
223
+ }),
224
+ redirectMethod: redirectMethod,
225
+ prompt: (function () {
226
+ switch (rest.action) {
227
+ case "go to auth server":
228
+ return undefined;
229
+ case "login":
230
+ return rest.doForceInteraction ? "consent" : undefined;
231
+ }
232
+ tsafe_1.assert;
233
+ })(),
234
+ transformUrl: transformUrl_oidcClientTs
235
+ })
236
+ .then(function () { return new Promise(function () { }); });
289
237
  }
238
+ var unsubscribe = evtIsUserLoggedIn.subscribe(function (isLoggedIn) {
239
+ unsubscribe();
240
+ if (isLoggedIn) {
241
+ localStorage.removeItem(LOCAL_STORAGE_KEY_TO_CLEAR_WHEN_USER_LOGGED_IN);
242
+ }
243
+ else {
244
+ var realPushState_1 = history.pushState.bind(history);
245
+ history.pushState = function pushState() {
246
+ var args = [];
247
+ for (var _i = 0; _i < arguments.length; _i++) {
248
+ args[_i] = arguments[_i];
249
+ }
250
+ lastPublicUrl = window.location.href;
251
+ return realPushState_1.apply(void 0, __spreadArray([], __read(args), false));
252
+ };
253
+ }
254
+ }).unsubscribe;
290
255
  return {
291
- loginOrGoToAuthServer: loginOrGoToAuthServer,
292
- toCallBeforeReturningOidcLoggedIn: toCallBeforeReturningOidcLoggedIn,
293
- toCallBeforeReturningOidcNotLoggedIn: toCallBeforeReturningOidcNotLoggedIn
256
+ loginOrGoToAuthServer: loginOrGoToAuthServer
294
257
  };
295
258
  }
296
259
  //# sourceMappingURL=loginOrGoToAuthServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loginOrGoToAuthServer.js","sourceRoot":"","sources":["../src/oidc/loginOrGoToAuthServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loginOrGoToAuthServer.js","sourceRoot":"","sources":["../src/oidc/loginOrGoToAuthServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ declare const GLOBAL_CONTEXT_KEY = "__oidc-spa.loginPropagationToOtherTabs.globalContext";
2
+ declare global {
3
+ interface Window {
4
+ [GLOBAL_CONTEXT_KEY]: {
5
+ appInstanceId: string;
6
+ };
7
+ }
8
+ }
9
+ export declare function notifyOtherTabsOfLogin(params: {
10
+ configId: string;
11
+ }): void;
12
+ export declare function getPrOtherTabLogin(params: {
13
+ configId: string;
14
+ }): {
15
+ prOtherTabLogin: Promise<void>;
16
+ };
17
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.notifyOtherTabsOfLogin = notifyOtherTabsOfLogin;
5
+ exports.getPrOtherTabLogin = getPrOtherTabLogin;
6
+ var tsafe_1 = require("../vendor/frontend/tsafe");
7
+ var Deferred_1 = require("../tools/Deferred");
8
+ var GLOBAL_CONTEXT_KEY = "__oidc-spa.loginPropagationToOtherTabs.globalContext";
9
+ (_a = window[GLOBAL_CONTEXT_KEY]) !== null && _a !== void 0 ? _a : (window[GLOBAL_CONTEXT_KEY] = {
10
+ appInstanceId: Math.random().toString(36).slice(2)
11
+ });
12
+ var globalContext = window[GLOBAL_CONTEXT_KEY];
13
+ function getChannelName(params) {
14
+ var configId = params.configId;
15
+ return "oidc-spa:login-propagation:".concat(configId);
16
+ }
17
+ function notifyOtherTabsOfLogin(params) {
18
+ var configId = params.configId;
19
+ var message = {
20
+ configId: configId,
21
+ appInstanceId: globalContext.appInstanceId
22
+ };
23
+ new BroadcastChannel(getChannelName({ configId: configId })).postMessage(message);
24
+ }
25
+ function getPrOtherTabLogin(params) {
26
+ var configId = params.configId;
27
+ var dOtherTabLogin = new Deferred_1.Deferred();
28
+ var channel = new BroadcastChannel(getChannelName({ configId: configId }));
29
+ channel.onmessage = function (_a) {
30
+ var message = _a.data;
31
+ (0, tsafe_1.assert)((0, tsafe_1.is)(message));
32
+ if (message.appInstanceId === globalContext.appInstanceId) {
33
+ return;
34
+ }
35
+ channel.close();
36
+ dOtherTabLogin.resolve();
37
+ };
38
+ var prOtherTabLogin = dOtherTabLogin.pr;
39
+ return { prOtherTabLogin: prOtherTabLogin };
40
+ }
41
+ //# sourceMappingURL=loginPropagationToOtherTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginPropagationToOtherTabs.js","sourceRoot":"","sources":["../src/oidc/loginPropagationToOtherTabs.ts"],"names":[],"mappings":";;;AA6BA,wDASC;AAED,gDAsBC;AA9DD,kDAAsD;AACtD,8CAA6C;AAE7C,IAAM,kBAAkB,GAAG,sDAAsD,CAAC;AAUlF,MAAA,MAAM,CAAC,kBAAkB,qCAAzB,MAAM,CAAC,kBAAkB,IAAM;IAC3B,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACrD,EAAC;AAEF,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAOjD,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,10 +1,6 @@
1
1
  import type { UserManager as OidcClientTsUserManager } from "../vendor/frontend/oidc-client-ts-and-jwt-decode";
2
2
  import type { User as OidcClientTsUser } from "../vendor/frontend/oidc-client-ts-and-jwt-decode";
3
- export type AuthResponse = {
4
- state: string;
5
- [key: string]: string;
6
- };
7
- export declare function authResponseToUrl(authResponse: AuthResponse): string;
3
+ import { type AuthResponse } from "./AuthResponse";
8
4
  type ResultOfLoginSilent = {
9
5
  outcome: "got auth response from iframe";
10
6
  authResponse: AuthResponse;