oidc-spa 7.1.3 → 7.1.4
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/mock/react.d.ts +3 -0
- package/package.json +3 -3
- package/react/react.d.ts +3 -0
- package/react/react.js +25 -9
- package/react/react.js.map +1 -1
- package/src/react/react.tsx +26 -2
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.4";
|
|
129
129
|
var globalContext = {
|
|
130
130
|
prOidcByConfigId: new Map(),
|
|
131
131
|
hasLogoutBeenCalled: (0, tsafe_1.id)(false),
|
package/mock/react.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oidc-spa",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.4",
|
|
4
4
|
"description": "Openidconnect client for Single Page Applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -294,7 +294,7 @@
|
|
|
294
294
|
"@types/node": "^20.2.1",
|
|
295
295
|
"@types/node-fetch": "2.6.11",
|
|
296
296
|
"@types/node-jose": "1.1.13",
|
|
297
|
-
"@types/react": "19.
|
|
297
|
+
"@types/react": "19.1.10",
|
|
298
298
|
"babel-loader": "9.1.3",
|
|
299
299
|
"evt": "^2.5.7",
|
|
300
300
|
"husky": "^4.3.8",
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
"patch-package": "^8.0.0",
|
|
308
308
|
"prettier": "^2.8.8",
|
|
309
309
|
"punycode": "^2.3.1",
|
|
310
|
-
"react": "19.
|
|
310
|
+
"react": "19.1.1",
|
|
311
311
|
"ts-node": "^10.9.1",
|
|
312
312
|
"tsafe": "^1.8.5",
|
|
313
313
|
"tsx": "^4.15.5",
|
package/react/react.d.ts
CHANGED
|
@@ -81,6 +81,9 @@ type OidcReactApi<DecodedIdToken extends Record<string, unknown>, AutoLogin exte
|
|
|
81
81
|
url?: string;
|
|
82
82
|
};
|
|
83
83
|
cause?: "preload" | string;
|
|
84
|
+
location?: {
|
|
85
|
+
href?: string;
|
|
86
|
+
};
|
|
84
87
|
}) => Promise<void | never>;
|
|
85
88
|
});
|
|
86
89
|
export declare function createOidcReactApi_dependencyInjection<DecodedIdToken extends Record<string, unknown>, ParamsOfCreateOidc extends {
|
package/react/react.js
CHANGED
|
@@ -82,6 +82,7 @@ var core_1 = require("../core");
|
|
|
82
82
|
var tsafe_1 = require("../vendor/frontend/tsafe");
|
|
83
83
|
var tsafe_2 = require("../vendor/frontend/tsafe");
|
|
84
84
|
var Deferred_1 = require("../tools/Deferred");
|
|
85
|
+
var toFullyQualifiedUrl_1 = require("../tools/toFullyQualifiedUrl");
|
|
85
86
|
{
|
|
86
87
|
(0, tsafe_1.assert)();
|
|
87
88
|
}
|
|
@@ -257,27 +258,42 @@ function createOidcReactApi_dependencyInjection(paramsOrGetParams, createOidc) {
|
|
|
257
258
|
}
|
|
258
259
|
function enforceLogin(loaderParams) {
|
|
259
260
|
return __awaiter(this, void 0, void 0, function () {
|
|
260
|
-
var cause, redirectUrl, oidc;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
switch (_c.label) {
|
|
261
|
+
var cause, redirectUrl, oidc, doesCurrentHrefRequiresAuth;
|
|
262
|
+
return __generator(this, function (_a) {
|
|
263
|
+
switch (_a.label) {
|
|
264
264
|
case 0:
|
|
265
265
|
cause = loaderParams.cause;
|
|
266
|
-
redirectUrl = (
|
|
266
|
+
redirectUrl = (function () {
|
|
267
|
+
var _a, _b;
|
|
268
|
+
if (((_a = loaderParams.request) === null || _a === void 0 ? void 0 : _a.url) !== undefined) {
|
|
269
|
+
return (0, toFullyQualifiedUrl_1.toFullyQualifiedUrl)({
|
|
270
|
+
urlish: loaderParams.request.url,
|
|
271
|
+
doAssertNoQueryParams: false
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
if (((_b = loaderParams.location) === null || _b === void 0 ? void 0 : _b.href) !== undefined) {
|
|
275
|
+
return (0, toFullyQualifiedUrl_1.toFullyQualifiedUrl)({
|
|
276
|
+
urlish: loaderParams.location.href,
|
|
277
|
+
doAssertNoQueryParams: false
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
return location.href;
|
|
281
|
+
})();
|
|
267
282
|
return [4 /*yield*/, getOidc()];
|
|
268
283
|
case 1:
|
|
269
|
-
oidc =
|
|
284
|
+
oidc = _a.sent();
|
|
270
285
|
if (!!oidc.isUserLoggedIn) return [3 /*break*/, 3];
|
|
271
286
|
if (cause === "preload") {
|
|
272
287
|
throw new Error("oidc-spa: User is not yet logged in. This is an expected error, nothing to be addressed.");
|
|
273
288
|
}
|
|
289
|
+
doesCurrentHrefRequiresAuth = location.href.replace(/\/$/, "") === redirectUrl.replace(/\/$/, "");
|
|
274
290
|
return [4 /*yield*/, oidc.login({
|
|
275
291
|
redirectUrl: redirectUrl,
|
|
276
|
-
doesCurrentHrefRequiresAuth:
|
|
292
|
+
doesCurrentHrefRequiresAuth: doesCurrentHrefRequiresAuth
|
|
277
293
|
})];
|
|
278
294
|
case 2:
|
|
279
|
-
|
|
280
|
-
|
|
295
|
+
_a.sent();
|
|
296
|
+
_a.label = 3;
|
|
281
297
|
case 3: return [2 /*return*/];
|
|
282
298
|
}
|
|
283
299
|
});
|
package/react/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react/react.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react/react.tsx"],"names":[],"mappings":"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"}
|
package/src/react/react.tsx
CHANGED
|
@@ -13,6 +13,7 @@ import { assert, type Equals, type Param0 } from "../vendor/frontend/tsafe";
|
|
|
13
13
|
import { id } from "../vendor/frontend/tsafe";
|
|
14
14
|
import type { ValueOrAsyncGetter } from "../tools/ValueOrAsyncGetter";
|
|
15
15
|
import { Deferred } from "../tools/Deferred";
|
|
16
|
+
import { toFullyQualifiedUrl } from "../tools/toFullyQualifiedUrl";
|
|
16
17
|
|
|
17
18
|
export type OidcReact<DecodedIdToken extends Record<string, unknown>> =
|
|
18
19
|
| OidcReact.NotLoggedIn
|
|
@@ -107,6 +108,9 @@ type OidcReactApi<DecodedIdToken extends Record<string, unknown>, AutoLogin exte
|
|
|
107
108
|
enforceLogin: (loaderParams: {
|
|
108
109
|
request?: { url?: string };
|
|
109
110
|
cause?: "preload" | string;
|
|
111
|
+
location?: {
|
|
112
|
+
href?: string;
|
|
113
|
+
};
|
|
110
114
|
}) => Promise<void | never>;
|
|
111
115
|
});
|
|
112
116
|
|
|
@@ -380,9 +384,27 @@ export function createOidcReactApi_dependencyInjection<
|
|
|
380
384
|
async function enforceLogin(loaderParams: {
|
|
381
385
|
request?: { url?: string };
|
|
382
386
|
cause?: "preload" | string;
|
|
387
|
+
location?: { href?: string };
|
|
383
388
|
}): Promise<void | never> {
|
|
384
389
|
const { cause } = loaderParams;
|
|
385
|
-
|
|
390
|
+
|
|
391
|
+
const redirectUrl = (() => {
|
|
392
|
+
if (loaderParams.request?.url !== undefined) {
|
|
393
|
+
return toFullyQualifiedUrl({
|
|
394
|
+
urlish: loaderParams.request.url,
|
|
395
|
+
doAssertNoQueryParams: false
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
if (loaderParams.location?.href !== undefined) {
|
|
400
|
+
return toFullyQualifiedUrl({
|
|
401
|
+
urlish: loaderParams.location.href,
|
|
402
|
+
doAssertNoQueryParams: false
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
return location.href;
|
|
407
|
+
})();
|
|
386
408
|
|
|
387
409
|
const oidc = await getOidc();
|
|
388
410
|
|
|
@@ -392,10 +414,12 @@ export function createOidcReactApi_dependencyInjection<
|
|
|
392
414
|
"oidc-spa: User is not yet logged in. This is an expected error, nothing to be addressed."
|
|
393
415
|
);
|
|
394
416
|
}
|
|
417
|
+
const doesCurrentHrefRequiresAuth =
|
|
418
|
+
location.href.replace(/\/$/, "") === redirectUrl.replace(/\/$/, "");
|
|
395
419
|
|
|
396
420
|
await oidc.login({
|
|
397
421
|
redirectUrl,
|
|
398
|
-
doesCurrentHrefRequiresAuth
|
|
422
|
+
doesCurrentHrefRequiresAuth
|
|
399
423
|
});
|
|
400
424
|
}
|
|
401
425
|
}
|