oidc-spa 7.1.7 → 7.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.
- package/core/createOidc.js +1 -1
- package/core/handleOidcCallback.d.ts +2 -0
- package/core/handleOidcCallback.js +26 -5
- package/core/handleOidcCallback.js.map +1 -1
- package/entrypoint.js +1 -0
- package/entrypoint.js.map +1 -1
- package/package.json +1 -1
- package/src/core/handleOidcCallback.ts +37 -5
- package/src/entrypoint.ts +6 -1
package/core/createOidc.js
CHANGED
|
@@ -125,7 +125,7 @@ var trustedFetch_1 = require("./trustedFetch");
|
|
|
125
125
|
var getIsOnline_1 = require("../tools/getIsOnline");
|
|
126
126
|
(0, handleOidcCallback_1.handleOidcCallback)();
|
|
127
127
|
// NOTE: Replaced at build time
|
|
128
|
-
var VERSION = "7.1.
|
|
128
|
+
var VERSION = "7.1.8";
|
|
129
129
|
var globalContext = {
|
|
130
130
|
prOidcByConfigId: new Map(),
|
|
131
131
|
hasLogoutBeenCalled: (0, tsafe_1.id)(false),
|
|
@@ -3,6 +3,8 @@ import type { AuthResponse } from "./AuthResponse";
|
|
|
3
3
|
export declare function handleOidcCallback(): {
|
|
4
4
|
isHandled: boolean;
|
|
5
5
|
};
|
|
6
|
+
declare const moveRedirectAuthResponseFromSessionStorageToMemory: () => void;
|
|
7
|
+
export { moveRedirectAuthResponseFromSessionStorageToMemory };
|
|
6
8
|
export declare function retrieveRedirectAuthResponseAndStateData(params: {
|
|
7
9
|
configId: string;
|
|
8
10
|
}): {
|
|
@@ -47,6 +47,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
47
47
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
48
|
};
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.moveRedirectAuthResponseFromSessionStorageToMemory = void 0;
|
|
50
51
|
exports.handleOidcCallback = handleOidcCallback;
|
|
51
52
|
exports.retrieveRedirectAuthResponseAndStateData = retrieveRedirectAuthResponseAndStateData;
|
|
52
53
|
var StateData_1 = require("./StateData");
|
|
@@ -177,8 +178,17 @@ function handleOidcCallback_nonMemoized() {
|
|
|
177
178
|
}
|
|
178
179
|
var _a = (function () {
|
|
179
180
|
var AUTH_RESPONSES_KEY = "oidc-spa:authResponses";
|
|
181
|
+
var authResponses_movedToMemoryFromSessionStorage = undefined;
|
|
182
|
+
// NOTE: Here we note that we can re-write on session storage some auth response
|
|
183
|
+
// after earlyInit in retrieveRedirectAuthResponseAndStateData
|
|
184
|
+
// In situation where there are more than one client in the same app and we can't use iframe,
|
|
185
|
+
// we can have one client that has to redirect before the response has been dealt with.
|
|
186
|
+
// In most case it won't happen if the init sequence is deterministic but the client
|
|
187
|
+
// can be instantiated at any time really.
|
|
188
|
+
// So the move to memory of the response is fully effective only when theres one client.
|
|
180
189
|
function writeRedirectAuthResponses(params) {
|
|
181
190
|
var authResponses = params.authResponses;
|
|
191
|
+
authResponses_movedToMemoryFromSessionStorage = undefined;
|
|
182
192
|
if (authResponses.length === 0) {
|
|
183
193
|
sessionStorage.removeItem(AUTH_RESPONSES_KEY);
|
|
184
194
|
return;
|
|
@@ -186,14 +196,27 @@ var _a = (function () {
|
|
|
186
196
|
sessionStorage.setItem(AUTH_RESPONSES_KEY, JSON.stringify(authResponses));
|
|
187
197
|
}
|
|
188
198
|
function readRedirectAuthResponses() {
|
|
199
|
+
if (authResponses_movedToMemoryFromSessionStorage !== undefined) {
|
|
200
|
+
return authResponses_movedToMemoryFromSessionStorage;
|
|
201
|
+
}
|
|
189
202
|
var raw = sessionStorage.getItem(AUTH_RESPONSES_KEY);
|
|
190
203
|
if (raw === null) {
|
|
191
204
|
return [];
|
|
192
205
|
}
|
|
193
206
|
return JSON.parse(raw);
|
|
194
207
|
}
|
|
195
|
-
|
|
196
|
-
|
|
208
|
+
function moveRedirectAuthResponseFromSessionStorageToMemory() {
|
|
209
|
+
var authResponses = readRedirectAuthResponses();
|
|
210
|
+
writeRedirectAuthResponses({ authResponses: [] });
|
|
211
|
+
authResponses_movedToMemoryFromSessionStorage = authResponses;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
writeRedirectAuthResponses: writeRedirectAuthResponses,
|
|
215
|
+
readRedirectAuthResponses: readRedirectAuthResponses,
|
|
216
|
+
moveRedirectAuthResponseFromSessionStorageToMemory: moveRedirectAuthResponseFromSessionStorageToMemory
|
|
217
|
+
};
|
|
218
|
+
})(), readRedirectAuthResponses = _a.readRedirectAuthResponses, writeRedirectAuthResponses = _a.writeRedirectAuthResponses, moveRedirectAuthResponseFromSessionStorageToMemory = _a.moveRedirectAuthResponseFromSessionStorageToMemory;
|
|
219
|
+
exports.moveRedirectAuthResponseFromSessionStorageToMemory = moveRedirectAuthResponseFromSessionStorageToMemory;
|
|
197
220
|
function retrieveRedirectAuthResponseAndStateData(params) {
|
|
198
221
|
var e_2, _a;
|
|
199
222
|
var configId = params.configId;
|
|
@@ -223,9 +246,7 @@ function retrieveRedirectAuthResponseAndStateData(params) {
|
|
|
223
246
|
}
|
|
224
247
|
finally { if (e_2) throw e_2.error; }
|
|
225
248
|
}
|
|
226
|
-
|
|
227
|
-
writeRedirectAuthResponses({ authResponses: authResponses });
|
|
228
|
-
}
|
|
249
|
+
writeRedirectAuthResponses({ authResponses: authResponses });
|
|
229
250
|
return authResponseAndStateData;
|
|
230
251
|
}
|
|
231
252
|
function reloadOnBfCacheNavigation() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../src/core/handleOidcCallback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../src/core/handleOidcCallback.ts"],"names":[],"mappings":"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"}
|
package/entrypoint.js
CHANGED
|
@@ -7,6 +7,7 @@ function oidcEarlyInit(params) {
|
|
|
7
7
|
var isHandled = (0, handleOidcCallback_1.handleOidcCallback)().isHandled;
|
|
8
8
|
var shouldLoadApp = !isHandled;
|
|
9
9
|
if (shouldLoadApp) {
|
|
10
|
+
(0, handleOidcCallback_1.moveRedirectAuthResponseFromSessionStorageToMemory)();
|
|
10
11
|
if (freezeXMLHttpRequest) {
|
|
11
12
|
var XMLHttpRequest_trusted = globalThis.XMLHttpRequest;
|
|
12
13
|
Object.freeze(XMLHttpRequest_trusted.prototype);
|
package/entrypoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["src/entrypoint.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["src/entrypoint.ts"],"names":[],"mappings":";;AAKA,sCAwCC;AA7CD,gEAGmC;AAEnC,SAAgB,aAAa,CAAC,MAA+D;IACnF,IAAA,KAAwC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EAAlD,WAAW,iBAAA,EAAE,oBAAoB,0BAAiB,CAAC;IAEnD,IAAA,SAAS,GAAK,IAAA,uCAAkB,GAAE,UAAzB,CAA0B;IAE3C,IAAM,aAAa,GAAG,CAAC,SAAS,CAAC;IAEjC,IAAI,aAAa,EAAE,CAAC;QAChB,IAAA,uEAAkD,GAAE,CAAC;QAErD,IAAI,oBAAoB,EAAE,CAAC;YACvB,IAAM,sBAAsB,GAAG,UAAU,CAAC,cAAc,CAAC;YAEzD,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAEtC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE;gBAChD,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,sBAAsB;aAChC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,IAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;YAEvC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAE7B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE;gBACvC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,aAAa;aACvB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,EAAE,aAAa,eAAA,EAAE,CAAC;AAC7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -159,11 +159,27 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
|
|
|
159
159
|
return { isHandled };
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
const {
|
|
162
|
+
const {
|
|
163
|
+
readRedirectAuthResponses,
|
|
164
|
+
writeRedirectAuthResponses,
|
|
165
|
+
moveRedirectAuthResponseFromSessionStorageToMemory
|
|
166
|
+
} = (() => {
|
|
163
167
|
const AUTH_RESPONSES_KEY = "oidc-spa:authResponses";
|
|
164
168
|
|
|
169
|
+
let authResponses_movedToMemoryFromSessionStorage: AuthResponse[] | undefined = undefined;
|
|
170
|
+
|
|
171
|
+
// NOTE: Here we note that we can re-write on session storage some auth response
|
|
172
|
+
// after earlyInit in retrieveRedirectAuthResponseAndStateData
|
|
173
|
+
// In situation where there are more than one client in the same app and we can't use iframe,
|
|
174
|
+
// we can have one client that has to redirect before the response has been dealt with.
|
|
175
|
+
// In most case it won't happen if the init sequence is deterministic but the client
|
|
176
|
+
// can be instantiated at any time really.
|
|
177
|
+
// So the move to memory of the response is fully effective only when theres one client.
|
|
165
178
|
function writeRedirectAuthResponses(params: { authResponses: AuthResponse[] }): void {
|
|
166
179
|
const { authResponses } = params;
|
|
180
|
+
|
|
181
|
+
authResponses_movedToMemoryFromSessionStorage = undefined;
|
|
182
|
+
|
|
167
183
|
if (authResponses.length === 0) {
|
|
168
184
|
sessionStorage.removeItem(AUTH_RESPONSES_KEY);
|
|
169
185
|
return;
|
|
@@ -172,6 +188,10 @@ const { readRedirectAuthResponses, writeRedirectAuthResponses } = (() => {
|
|
|
172
188
|
}
|
|
173
189
|
|
|
174
190
|
function readRedirectAuthResponses(): AuthResponse[] {
|
|
191
|
+
if (authResponses_movedToMemoryFromSessionStorage !== undefined) {
|
|
192
|
+
return authResponses_movedToMemoryFromSessionStorage;
|
|
193
|
+
}
|
|
194
|
+
|
|
175
195
|
const raw = sessionStorage.getItem(AUTH_RESPONSES_KEY);
|
|
176
196
|
|
|
177
197
|
if (raw === null) {
|
|
@@ -181,9 +201,23 @@ const { readRedirectAuthResponses, writeRedirectAuthResponses } = (() => {
|
|
|
181
201
|
return JSON.parse(raw);
|
|
182
202
|
}
|
|
183
203
|
|
|
184
|
-
|
|
204
|
+
function moveRedirectAuthResponseFromSessionStorageToMemory() {
|
|
205
|
+
const authResponses = readRedirectAuthResponses();
|
|
206
|
+
|
|
207
|
+
writeRedirectAuthResponses({ authResponses: [] });
|
|
208
|
+
|
|
209
|
+
authResponses_movedToMemoryFromSessionStorage = authResponses;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
return {
|
|
213
|
+
writeRedirectAuthResponses,
|
|
214
|
+
readRedirectAuthResponses,
|
|
215
|
+
moveRedirectAuthResponseFromSessionStorageToMemory
|
|
216
|
+
};
|
|
185
217
|
})();
|
|
186
218
|
|
|
219
|
+
export { moveRedirectAuthResponseFromSessionStorageToMemory };
|
|
220
|
+
|
|
187
221
|
export function retrieveRedirectAuthResponseAndStateData(params: {
|
|
188
222
|
configId: string;
|
|
189
223
|
}): { authResponse: AuthResponse; stateData: StateData.Redirect } | undefined {
|
|
@@ -215,9 +249,7 @@ export function retrieveRedirectAuthResponseAndStateData(params: {
|
|
|
215
249
|
authResponseAndStateData = { authResponse, stateData };
|
|
216
250
|
}
|
|
217
251
|
|
|
218
|
-
|
|
219
|
-
writeRedirectAuthResponses({ authResponses });
|
|
220
|
-
}
|
|
252
|
+
writeRedirectAuthResponses({ authResponses });
|
|
221
253
|
|
|
222
254
|
return authResponseAndStateData;
|
|
223
255
|
}
|
package/src/entrypoint.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
handleOidcCallback,
|
|
3
|
+
moveRedirectAuthResponseFromSessionStorageToMemory
|
|
4
|
+
} from "./core/handleOidcCallback";
|
|
2
5
|
|
|
3
6
|
export function oidcEarlyInit(params: { freezeFetch: boolean; freezeXMLHttpRequest: boolean }) {
|
|
4
7
|
const { freezeFetch, freezeXMLHttpRequest } = params ?? {};
|
|
@@ -8,6 +11,8 @@ export function oidcEarlyInit(params: { freezeFetch: boolean; freezeXMLHttpReque
|
|
|
8
11
|
const shouldLoadApp = !isHandled;
|
|
9
12
|
|
|
10
13
|
if (shouldLoadApp) {
|
|
14
|
+
moveRedirectAuthResponseFromSessionStorageToMemory();
|
|
15
|
+
|
|
11
16
|
if (freezeXMLHttpRequest) {
|
|
12
17
|
const XMLHttpRequest_trusted = globalThis.XMLHttpRequest;
|
|
13
18
|
|