oidc-spa 6.1.5 → 6.1.7
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/oidc/StateData.d.ts +41 -11
- package/oidc/StateData.js +47 -63
- package/oidc/StateData.js.map +1 -1
- package/oidc/configHash.d.ts +0 -3
- package/oidc/configHash.js +1 -8
- package/oidc/configHash.js.map +1 -1
- package/oidc/createOidc.d.ts +7 -0
- package/oidc/createOidc.js +158 -147
- package/oidc/createOidc.js.map +1 -1
- package/oidc/handleOidcCallback.d.ts +5 -0
- package/oidc/handleOidcCallback.js +23 -25
- package/oidc/handleOidcCallback.js.map +1 -1
- package/oidc/index.d.ts +0 -1
- package/oidc/index.js +1 -3
- package/oidc/index.js.map +1 -1
- package/oidc/{loginOrLogoutSilent.d.ts → loginSilent.d.ts} +5 -9
- package/oidc/{loginOrLogoutSilent.js → loginSilent.js} +31 -41
- package/oidc/loginSilent.js.map +1 -0
- package/oidc/logoutPropagationToOtherTabs.d.ts +5 -2
- package/oidc/logoutPropagationToOtherTabs.js +15 -9
- package/oidc/logoutPropagationToOtherTabs.js.map +1 -1
- package/package.json +21 -6
- package/react/react.js +0 -3
- package/react/react.js.map +1 -1
- package/src/oidc/StateData.ts +89 -57
- package/src/oidc/configHash.ts +1 -11
- package/src/oidc/createOidc.ts +173 -136
- package/src/oidc/handleOidcCallback.ts +30 -25
- package/src/oidc/index.ts +0 -1
- package/src/oidc/loginSilent.ts +147 -0
- package/src/oidc/logoutPropagationToOtherTabs.ts +34 -14
- package/src/react/react.tsx +1 -11
- package/src/tools/AwaitableEventEmitter.ts +33 -0
- package/src/tools/createIsUserActive.ts +1 -1
- package/src/tools/isDev.ts +30 -0
- package/src/tools/startCountdown.ts +1 -1
- package/src/tools/subscribeToUserInteraction.ts +1 -1
- package/src/tools/workerTimers.ts +59 -0
- package/src/vendor/frontend/worker-timers.ts +2 -10
- package/tools/AwaitableEventEmitter.d.ts +5 -0
- package/tools/AwaitableEventEmitter.js +25 -0
- package/tools/AwaitableEventEmitter.js.map +1 -0
- package/tools/createIsUserActive.js +3 -3
- package/tools/createIsUserActive.js.map +1 -1
- package/tools/isDev.d.ts +1 -0
- package/tools/isDev.js +26 -0
- package/tools/isDev.js.map +1 -0
- package/tools/startCountdown.js +3 -3
- package/tools/startCountdown.js.map +1 -1
- package/tools/subscribeToUserInteraction.js +3 -3
- package/tools/subscribeToUserInteraction.js.map +1 -1
- package/tools/workerTimers.d.ts +5 -0
- package/tools/workerTimers.js +43 -0
- package/tools/workerTimers.js.map +1 -0
- package/vendor/frontend/oidc-client-ts-and-jwt-decode.js +1 -1
- package/vendor/frontend/worker-timers.d.ts +2 -1
- package/vendor/frontend/worker-timers.js +1 -1
- package/oidc/loginOrLogoutSilent.js.map +0 -1
- package/src/oidc/loginOrLogoutSilent.ts +0 -155
package/oidc/StateData.d.ts
CHANGED
|
@@ -1,14 +1,44 @@
|
|
|
1
|
-
export type StateData =
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
export type StateData = StateData.IFrame | StateData.Redirect;
|
|
2
|
+
export declare namespace StateData {
|
|
3
|
+
type Common = {
|
|
4
|
+
configHash: string;
|
|
5
|
+
};
|
|
6
|
+
export type IFrame = Common & {
|
|
7
|
+
context: "iframe";
|
|
8
|
+
};
|
|
9
|
+
export type Redirect = Redirect.Login | Redirect.Logout;
|
|
10
|
+
export namespace Redirect {
|
|
11
|
+
type Common_Redirect = Common & {
|
|
12
|
+
context: "redirect";
|
|
13
|
+
redirectUrl: string;
|
|
14
|
+
hasBeenProcessedByCallback: boolean;
|
|
15
|
+
};
|
|
16
|
+
export type Login = Common_Redirect & {
|
|
17
|
+
action: "login";
|
|
18
|
+
extraQueryParams: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
export type Logout = Common_Redirect & {
|
|
21
|
+
action: "logout";
|
|
22
|
+
sessionId: string | undefined;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
}
|
|
28
|
+
export declare function generateStateQueryParamValue(): string;
|
|
29
|
+
export declare function getIsStatQueryParamValue(params: {
|
|
30
|
+
maybeStateQueryParamValue: string;
|
|
31
|
+
}): boolean;
|
|
10
32
|
export declare const STATE_STORE_KEY_PREFIX = "oidc.";
|
|
33
|
+
export declare function getKey(params: {
|
|
34
|
+
stateQueryParamValue: string;
|
|
35
|
+
}): string;
|
|
36
|
+
export declare function clearStateStore(params: {
|
|
37
|
+
stateQueryParamValue: string;
|
|
38
|
+
}): void;
|
|
11
39
|
export declare function getStateData(params: {
|
|
12
|
-
|
|
13
|
-
isCallbackContext: boolean;
|
|
40
|
+
stateQueryParamValue: string;
|
|
14
41
|
}): StateData | undefined;
|
|
42
|
+
export declare function markStateDataAsProcessedByCallback(params: {
|
|
43
|
+
stateQueryParamValue: string;
|
|
44
|
+
}): void;
|
package/oidc/StateData.js
CHANGED
|
@@ -1,75 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.STATE_STORE_KEY_PREFIX = void 0;
|
|
4
|
+
exports.generateStateQueryParamValue = generateStateQueryParamValue;
|
|
5
|
+
exports.getIsStatQueryParamValue = getIsStatQueryParamValue;
|
|
6
|
+
exports.getKey = getKey;
|
|
7
|
+
exports.clearStateStore = clearStateStore;
|
|
15
8
|
exports.getStateData = getStateData;
|
|
9
|
+
exports.markStateDataAsProcessedByCallback = markStateDataAsProcessedByCallback;
|
|
10
|
+
var tsafe_1 = require("../vendor/frontend/tsafe");
|
|
11
|
+
var fnv1aHash_1 = require("../tools/fnv1aHash");
|
|
12
|
+
var STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX = "fa93b2c1c";
|
|
13
|
+
function generateStateQueryParamValue() {
|
|
14
|
+
return "".concat(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX).concat((0, fnv1aHash_1.fnv1aHash)("".concat(Math.random())));
|
|
15
|
+
}
|
|
16
|
+
function getIsStatQueryParamValue(params) {
|
|
17
|
+
var maybeStateQueryParamValue = params.maybeStateQueryParamValue;
|
|
18
|
+
return maybeStateQueryParamValue.startsWith(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX);
|
|
19
|
+
}
|
|
16
20
|
exports.STATE_STORE_KEY_PREFIX = "oidc.";
|
|
17
|
-
function
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
if (typeof value.hasBeenProcessedByCallback !== "boolean") {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
if (value.isSilentSso === true) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
else if (value.isSilentSso === false) {
|
|
29
|
-
if (typeof value.redirectUrl !== "string") {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
if (typeof value.extraQueryParams !== "object" || value.extraQueryParams === null) {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
try {
|
|
36
|
-
for (var _b = __values(Object.values(value.extraQueryParams)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
37
|
-
var val = _c.value;
|
|
38
|
-
if (typeof val !== "string") {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
44
|
-
finally {
|
|
45
|
-
try {
|
|
46
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
47
|
-
}
|
|
48
|
-
finally { if (e_1) throw e_1.error; }
|
|
49
|
-
}
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
21
|
+
function getKey(params) {
|
|
22
|
+
var stateQueryParamValue = params.stateQueryParamValue;
|
|
23
|
+
return "".concat(exports.STATE_STORE_KEY_PREFIX).concat(stateQueryParamValue);
|
|
53
24
|
}
|
|
54
|
-
function
|
|
55
|
-
var
|
|
56
|
-
var
|
|
57
|
-
|
|
58
|
-
if (lsItem === null) {
|
|
25
|
+
function getStateStore(params) {
|
|
26
|
+
var stateQueryParamValue = params.stateQueryParamValue;
|
|
27
|
+
var item = localStorage.getItem(getKey({ stateQueryParamValue: stateQueryParamValue }));
|
|
28
|
+
if (item === null) {
|
|
59
29
|
return undefined;
|
|
60
30
|
}
|
|
61
|
-
var obj = JSON.parse(
|
|
62
|
-
|
|
63
|
-
|
|
31
|
+
var obj = JSON.parse(item);
|
|
32
|
+
(0, tsafe_1.assert)((0, tsafe_1.typeGuard)(obj, obj instanceof Object && obj.data instanceof Object && typeof obj.data.context === "string"));
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
35
|
+
function setStateStore(params) {
|
|
36
|
+
var stateQueryParamValue = params.stateQueryParamValue, obj = params.obj;
|
|
37
|
+
localStorage.setItem(getKey({ stateQueryParamValue: stateQueryParamValue }), JSON.stringify(obj));
|
|
38
|
+
}
|
|
39
|
+
function clearStateStore(params) {
|
|
40
|
+
var stateQueryParamValue = params.stateQueryParamValue;
|
|
41
|
+
localStorage.removeItem(getKey({ stateQueryParamValue: stateQueryParamValue }));
|
|
42
|
+
}
|
|
43
|
+
function getStateData(params) {
|
|
44
|
+
var stateQueryParamValue = params.stateQueryParamValue;
|
|
45
|
+
var stateStore = getStateStore({ stateQueryParamValue: stateQueryParamValue });
|
|
46
|
+
if (stateStore === undefined) {
|
|
64
47
|
return undefined;
|
|
65
48
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
49
|
+
return stateStore.data;
|
|
50
|
+
}
|
|
51
|
+
function markStateDataAsProcessedByCallback(params) {
|
|
52
|
+
var stateQueryParamValue = params.stateQueryParamValue;
|
|
53
|
+
var obj = getStateStore({ stateQueryParamValue: stateQueryParamValue });
|
|
54
|
+
(0, tsafe_1.assert)(obj !== undefined);
|
|
55
|
+
(0, tsafe_1.assert)(obj.data.context === "redirect");
|
|
56
|
+
obj.data.hasBeenProcessedByCallback = true;
|
|
57
|
+
setStateStore({ stateQueryParamValue: stateQueryParamValue, obj: obj });
|
|
74
58
|
}
|
|
75
59
|
//# sourceMappingURL=StateData.js.map
|
package/oidc/StateData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateData.js","sourceRoot":"","sources":["../src/oidc/StateData.ts"],"names":[],"mappings":"
|
|
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"}
|
package/oidc/configHash.d.ts
CHANGED
package/oidc/configHash.js
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getConfigHash = getConfigHash;
|
|
4
|
-
exports.getIsConfigHash = getIsConfigHash;
|
|
5
4
|
var fnv1aHash_1 = require("../tools/fnv1aHash");
|
|
6
|
-
var SIGNATURE = "af794b1e3a";
|
|
7
5
|
function getConfigHash(params) {
|
|
8
|
-
return
|
|
9
|
-
}
|
|
10
|
-
var CONFIG_HASH_REGEXP = new RegExp("^[0-9a-f]{8}".concat(SIGNATURE, "$"));
|
|
11
|
-
function getIsConfigHash(params) {
|
|
12
|
-
var maybeConfigHash = params.maybeConfigHash;
|
|
13
|
-
return CONFIG_HASH_REGEXP.test(maybeConfigHash);
|
|
6
|
+
return (0, fnv1aHash_1.fnv1aHash)("".concat(params.issuerUri, " ").concat(params.clientId));
|
|
14
7
|
}
|
|
15
8
|
//# sourceMappingURL=configHash.js.map
|
package/oidc/configHash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configHash.js","sourceRoot":"","sources":["../src/oidc/configHash.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"configHash.js","sourceRoot":"","sources":["../src/oidc/configHash.ts"],"names":[],"mappings":";;AAEA,sCAEC;AAJD,gDAA+C;AAE/C,SAAgB,aAAa,CAAC,MAA+C;IACzE,OAAO,IAAA,qBAAS,EAAC,UAAG,MAAM,CAAC,SAAS,cAAI,MAAM,CAAC,QAAQ,CAAE,CAAC,CAAC;AAC/D,CAAC"}
|
package/oidc/createOidc.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Oidc } from "./Oidc";
|
|
2
|
+
import { type AwaitableEventEmitter } from "../tools/AwaitableEventEmitter";
|
|
2
3
|
export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false> = {
|
|
3
4
|
issuerUri: string;
|
|
4
5
|
clientId: string;
|
|
@@ -66,6 +67,12 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
|
|
|
66
67
|
debugLogs?: boolean;
|
|
67
68
|
__clientSecret_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?: string;
|
|
68
69
|
};
|
|
70
|
+
declare global {
|
|
71
|
+
interface Window {
|
|
72
|
+
"__oidc-spa.prOidcByConfigHash": Map<string, Promise<Oidc<any>>>;
|
|
73
|
+
"__oidc-spa.evtAuthResponseHandled": AwaitableEventEmitter<void>;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
69
76
|
/** @see: https://docs.oidc-spa.dev/v/v6/usage */
|
|
70
77
|
export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false>(params: ParamsOfCreateOidc<DecodedIdToken, AutoLogin>): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
|
|
71
78
|
export declare function createOidc_nonMemoized<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false>(params: Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "issuerUri" | "clientId" | "scopes" | "debugLogs">, preProcessedParams: {
|