oidc-spa 7.1.10 → 7.2.0-rc.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.
- package/backend.js +235 -352
- package/backend.js.map +1 -1
- package/core/AuthResponse.js +12 -49
- package/core/AuthResponse.js.map +1 -1
- package/core/Oidc.d.ts +1 -2
- package/core/OidcInitializationError.d.ts +2 -2
- package/core/OidcInitializationError.js +230 -297
- package/core/OidcInitializationError.js.map +1 -1
- package/core/OidcMetadata.js +1 -1
- package/core/OidcMetadata.js.map +1 -1
- package/core/StateData.d.ts +5 -5
- package/core/StateData.js +25 -25
- package/core/StateData.js.map +1 -1
- package/core/configId.js +1 -1
- package/core/configId.js.map +1 -1
- package/core/createOidc.d.ts +8 -0
- package/core/createOidc.js +999 -1294
- package/core/createOidc.js.map +1 -1
- package/core/evtIsUserActive.js +26 -27
- package/core/evtIsUserActive.js.map +1 -1
- package/core/handleOidcCallback.js +99 -154
- package/core/handleOidcCallback.js.map +1 -1
- package/core/iframeMessageProtection.d.ts +1 -1
- package/core/iframeMessageProtection.js +40 -106
- package/core/iframeMessageProtection.js.map +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.js +3 -3
- package/core/index.js.map +1 -1
- package/core/initialLocationHref.js +1 -1
- package/core/initialLocationHref.js.map +1 -1
- package/core/isNewBrowserSession.js +8 -8
- package/core/isNewBrowserSession.js.map +1 -1
- package/core/loginOrGoToAuthServer.d.ts +1 -1
- package/core/loginOrGoToAuthServer.js +188 -310
- package/core/loginOrGoToAuthServer.js.map +1 -1
- package/core/loginPropagationToOtherTabs.js +15 -16
- package/core/loginPropagationToOtherTabs.js.map +1 -1
- package/core/loginSilent.d.ts +2 -3
- package/core/loginSilent.js +118 -214
- package/core/loginSilent.js.map +1 -1
- package/core/logoutPropagationToOtherTabs.js +15 -16
- package/core/logoutPropagationToOtherTabs.js.map +1 -1
- package/core/oidcClientTsUserToTokens.d.ts +1 -1
- package/core/oidcClientTsUserToTokens.js +75 -72
- package/core/oidcClientTsUserToTokens.js.map +1 -1
- package/core/ongoingLoginOrRefreshProcesses.js +23 -89
- package/core/ongoingLoginOrRefreshProcesses.js.map +1 -1
- package/core/persistedAuthState.js +13 -13
- package/core/persistedAuthState.js.map +1 -1
- package/entrypoint.js +9 -9
- package/entrypoint.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +1 -2
- package/index.js.map +1 -1
- package/keycloak/index.d.ts +3 -0
- package/keycloak/index.js +8 -0
- package/keycloak/index.js.map +1 -0
- package/keycloak/isKeycloak.d.ts +3 -0
- package/keycloak/isKeycloak.js +20 -0
- package/keycloak/isKeycloak.js.map +1 -0
- package/keycloak/keycloak-js/Keycloak.d.ts +284 -0
- package/keycloak/keycloak-js/Keycloak.js +778 -0
- package/keycloak/keycloak-js/Keycloak.js.map +1 -0
- package/keycloak/keycloak-js/index.d.ts +2 -0
- package/keycloak/keycloak-js/index.js +6 -0
- package/keycloak/keycloak-js/index.js.map +1 -0
- package/keycloak/keycloak-js/types.d.ts +361 -0
- package/keycloak/keycloak-js/types.js +3 -0
- package/keycloak/keycloak-js/types.js.map +1 -0
- package/keycloak/keycloakIssuerUriParsed.d.ts +9 -0
- package/keycloak/keycloakIssuerUriParsed.js +19 -0
- package/keycloak/keycloakIssuerUriParsed.js.map +1 -0
- package/keycloak/keycloakUtils.d.ts +37 -0
- package/keycloak/keycloakUtils.js +47 -0
- package/keycloak/keycloakUtils.js.map +1 -0
- package/keycloak-js.d.ts +1 -0
- package/keycloak-js.js +18 -0
- package/keycloak-js.js.map +1 -0
- package/mock/oidc.js +147 -194
- package/mock/oidc.js.map +1 -1
- package/mock/react.js +2 -2
- package/mock/react.js.map +1 -1
- package/package.json +38 -9
- package/react/react.js +133 -244
- package/react/react.js.map +1 -1
- package/src/core/AuthResponse.ts +2 -0
- package/src/core/Oidc.ts +1 -2
- package/src/core/OidcInitializationError.ts +30 -30
- package/src/core/OidcMetadata.ts +1 -1
- package/src/core/StateData.ts +24 -24
- package/src/core/createOidc.ts +24 -31
- package/src/core/handleOidcCallback.ts +44 -23
- package/src/core/iframeMessageProtection.ts +7 -7
- package/src/core/index.ts +1 -1
- package/src/core/loginOrGoToAuthServer.ts +1 -1
- package/src/core/loginSilent.ts +14 -11
- package/src/core/oidcClientTsUserToTokens.ts +1 -1
- package/src/index.ts +1 -7
- package/src/keycloak/index.ts +8 -0
- package/src/keycloak/isKeycloak.ts +23 -0
- package/src/keycloak/keycloak-js/Keycloak.ts +1097 -0
- package/src/keycloak/keycloak-js/index.ts +2 -0
- package/src/keycloak/keycloak-js/types.ts +442 -0
- package/src/keycloak/keycloakIssuerUriParsed.ts +29 -0
- package/src/keycloak/keycloakUtils.ts +90 -0
- package/src/keycloak-js.ts +1 -0
- package/src/react/react.tsx +17 -1
- package/src/tools/decodeJwt.ts +95 -2
- package/src/tools/parseKeycloakIssuerUri.ts +11 -30
- package/src/vendor/frontend/oidc-client-ts.ts +1 -0
- package/src/vendor/frontend/tsafe.ts +1 -0
- package/tools/Deferred.js +13 -35
- package/tools/Deferred.js.map +1 -1
- package/tools/EphemeralSessionStorage.js +46 -48
- package/tools/EphemeralSessionStorage.js.map +1 -1
- package/tools/Evt.js +14 -14
- package/tools/Evt.js.map +1 -1
- package/tools/StatefulEvt.js +5 -5
- package/tools/StatefulEvt.js.map +1 -1
- package/tools/asymmetricEncryption.js +81 -172
- package/tools/asymmetricEncryption.js.map +1 -1
- package/tools/base64.js +2 -2
- package/tools/base64.js.map +1 -1
- package/tools/createObjectThatThrowsIfAccessed.js +13 -61
- package/tools/createObjectThatThrowsIfAccessed.js.map +1 -1
- package/tools/decodeJwt.d.ts +25 -2
- package/tools/decodeJwt.js +61 -3
- package/tools/decodeJwt.js.map +1 -1
- package/tools/generateUrlSafeRandom.js +5 -30
- package/tools/generateUrlSafeRandom.js.map +1 -1
- package/tools/getDownlinkAndRtt.js +8 -30
- package/tools/getDownlinkAndRtt.js.map +1 -1
- package/tools/getIsOnline.js +3 -3
- package/tools/getIsOnline.js.map +1 -1
- package/tools/getIsValidRemoteJson.js +12 -59
- package/tools/getIsValidRemoteJson.js.map +1 -1
- package/tools/getPrUserInteraction.js +4 -4
- package/tools/getPrUserInteraction.js.map +1 -1
- package/tools/getUserEnvironmentInfo.js +17 -12
- package/tools/getUserEnvironmentInfo.js.map +1 -1
- package/tools/haveSharedParentDomain.js +5 -5
- package/tools/haveSharedParentDomain.js.map +1 -1
- package/tools/isDev.js +2 -2
- package/tools/isDev.js.map +1 -1
- package/tools/parseKeycloakIssuerUri.d.ts +2 -0
- package/tools/parseKeycloakIssuerUri.js +11 -42
- package/tools/parseKeycloakIssuerUri.js.map +1 -1
- package/tools/readExpirationTimeInJwt.js +4 -4
- package/tools/readExpirationTimeInJwt.js.map +1 -1
- package/tools/startCountdown.js +17 -65
- package/tools/startCountdown.js.map +1 -1
- package/tools/subscribeToUserInteraction.js +17 -66
- package/tools/subscribeToUserInteraction.js.map +1 -1
- package/tools/toFullyQualifiedUrl.js +7 -7
- package/tools/toFullyQualifiedUrl.js.map +1 -1
- package/tools/toHumanReadableDuration.js +13 -13
- package/tools/toHumanReadableDuration.js.map +1 -1
- package/tools/urlSearchParams.js +28 -50
- package/tools/urlSearchParams.js.map +1 -1
- package/tools/workerTimers.js +10 -10
- package/tools/workerTimers.js.map +1 -1
- package/vendor/frontend/oidc-client-ts.d.ts +1 -0
- package/vendor/frontend/oidc-client-ts.js +3686 -0
- package/vendor/frontend/tsafe.d.ts +1 -0
- package/vendor/frontend/tsafe.js +1 -1
- package/core/trustedFetch.d.ts +0 -2
- package/core/trustedFetch.js +0 -12
- package/core/trustedFetch.js.map +0 -1
- package/src/core/trustedFetch.ts +0 -9
- package/src/vendor/frontend/oidc-client-ts-and-jwt-decode.ts +0 -4
- package/vendor/frontend/oidc-client-ts-and-jwt-decode.d.ts +0 -3
- package/vendor/frontend/oidc-client-ts-and-jwt-decode.js +0 -3
package/core/StateData.d.ts
CHANGED
|
@@ -26,17 +26,17 @@ export declare namespace StateData {
|
|
|
26
26
|
}
|
|
27
27
|
export {};
|
|
28
28
|
}
|
|
29
|
-
export declare function
|
|
29
|
+
export declare function generateStateUrlParamValue(): string;
|
|
30
30
|
export declare function getIsStatQueryParamValue(params: {
|
|
31
|
-
|
|
31
|
+
maybeStateUrlParamValue: string;
|
|
32
32
|
}): boolean;
|
|
33
33
|
export declare const STATE_STORE_KEY_PREFIX = "oidc.";
|
|
34
34
|
export declare function clearStateStore(params: {
|
|
35
|
-
|
|
35
|
+
stateUrlParamValue: string;
|
|
36
36
|
}): void;
|
|
37
37
|
export declare function getStateData(params: {
|
|
38
|
-
|
|
38
|
+
stateUrlParamValue: string;
|
|
39
39
|
}): StateData | undefined;
|
|
40
40
|
export declare function markStateDataAsProcessedByCallback(params: {
|
|
41
|
-
|
|
41
|
+
stateUrlParamValue: string;
|
|
42
42
|
}): void;
|
package/core/StateData.js
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.STATE_STORE_KEY_PREFIX = void 0;
|
|
4
|
-
exports.
|
|
4
|
+
exports.generateStateUrlParamValue = generateStateUrlParamValue;
|
|
5
5
|
exports.getIsStatQueryParamValue = getIsStatQueryParamValue;
|
|
6
6
|
exports.clearStateStore = clearStateStore;
|
|
7
7
|
exports.getStateData = getStateData;
|
|
8
8
|
exports.markStateDataAsProcessedByCallback = markStateDataAsProcessedByCallback;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
return
|
|
9
|
+
const tsafe_1 = require("../vendor/frontend/tsafe");
|
|
10
|
+
const generateUrlSafeRandom_1 = require("../tools/generateUrlSafeRandom");
|
|
11
|
+
const STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX = "b2lkYy1zcGEu";
|
|
12
|
+
const RANDOM_STRING_LENGTH = 32 - STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX.length;
|
|
13
|
+
function generateStateUrlParamValue() {
|
|
14
|
+
return `${STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX}${(0, generateUrlSafeRandom_1.generateUrlSafeRandom)({
|
|
15
15
|
length: RANDOM_STRING_LENGTH
|
|
16
|
-
})
|
|
16
|
+
})}`;
|
|
17
17
|
}
|
|
18
18
|
function getIsStatQueryParamValue(params) {
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
|
|
19
|
+
const { maybeStateUrlParamValue } = params;
|
|
20
|
+
return (maybeStateUrlParamValue.startsWith(STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX) &&
|
|
21
|
+
maybeStateUrlParamValue.length ===
|
|
22
22
|
STATE_QUERY_PARAM_VALUE_IDENTIFIER_PREFIX.length + RANDOM_STRING_LENGTH);
|
|
23
23
|
}
|
|
24
24
|
exports.STATE_STORE_KEY_PREFIX = "oidc.";
|
|
25
25
|
function getKey(params) {
|
|
26
|
-
|
|
27
|
-
return
|
|
26
|
+
const { stateUrlParamValue } = params;
|
|
27
|
+
return `${exports.STATE_STORE_KEY_PREFIX}${stateUrlParamValue}`;
|
|
28
28
|
}
|
|
29
29
|
function getStateStore(params) {
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
const { stateUrlParamValue } = params;
|
|
31
|
+
const item = localStorage.getItem(getKey({ stateUrlParamValue }));
|
|
32
32
|
if (item === null) {
|
|
33
33
|
return undefined;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
const obj = JSON.parse(item);
|
|
36
36
|
(0, tsafe_1.assert)((0, tsafe_1.typeGuard)(obj, obj instanceof Object && obj.data instanceof Object && typeof obj.data.context === "string"));
|
|
37
37
|
return obj;
|
|
38
38
|
}
|
|
39
39
|
function setStateStore(params) {
|
|
40
|
-
|
|
41
|
-
localStorage.setItem(getKey({
|
|
40
|
+
const { stateUrlParamValue, obj } = params;
|
|
41
|
+
localStorage.setItem(getKey({ stateUrlParamValue }), JSON.stringify(obj));
|
|
42
42
|
}
|
|
43
43
|
function clearStateStore(params) {
|
|
44
|
-
|
|
45
|
-
localStorage.removeItem(getKey({
|
|
44
|
+
const { stateUrlParamValue } = params;
|
|
45
|
+
localStorage.removeItem(getKey({ stateUrlParamValue }));
|
|
46
46
|
}
|
|
47
47
|
function getStateData(params) {
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
const { stateUrlParamValue } = params;
|
|
49
|
+
const stateStore = getStateStore({ stateUrlParamValue });
|
|
50
50
|
if (stateStore === undefined) {
|
|
51
51
|
return undefined;
|
|
52
52
|
}
|
|
53
53
|
return stateStore.data;
|
|
54
54
|
}
|
|
55
55
|
function markStateDataAsProcessedByCallback(params) {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const { stateUrlParamValue } = params;
|
|
57
|
+
const obj = getStateStore({ stateUrlParamValue });
|
|
58
58
|
(0, tsafe_1.assert)(obj !== undefined, "180465");
|
|
59
59
|
(0, tsafe_1.assert)(obj.data.context === "redirect", "649531");
|
|
60
60
|
obj.data.hasBeenProcessedByCallback = true;
|
|
61
|
-
setStateStore({
|
|
61
|
+
setStateStore({ stateUrlParamValue, obj });
|
|
62
62
|
}
|
|
63
63
|
//# sourceMappingURL=StateData.js.map
|
package/core/StateData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateData.js","sourceRoot":"","sources":["../src/core/StateData.ts"],"names":[],"mappings":";;;AAsCA,
|
|
1
|
+
{"version":3,"file":"StateData.js","sourceRoot":"","sources":["../src/core/StateData.ts"],"names":[],"mappings":"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"}
|
package/core/configId.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getConfigId = getConfigId;
|
|
4
4
|
function getConfigId(params) {
|
|
5
|
-
return
|
|
5
|
+
return `${params.issuerUri}:${params.clientId}`;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=configId.js.map
|
package/core/configId.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configId.js","sourceRoot":"","sources":["../src/core/configId.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAFD,SAAgB,WAAW,CAAC,MAA+C;IACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"configId.js","sourceRoot":"","sources":["../src/core/configId.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAFD,SAAgB,WAAW,CAAC,MAA+C;IACvE,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC"}
|
package/core/createOidc.d.ts
CHANGED
|
@@ -44,6 +44,10 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
|
|
|
44
44
|
*/
|
|
45
45
|
extraTokenParams?: Record<string, string | undefined> | (() => Record<string, string | undefined>);
|
|
46
46
|
/**
|
|
47
|
+
* Usage discouraged, it's here because we don't want to assume too much on your
|
|
48
|
+
* usecase but I can't think of a scenario where you would want anything
|
|
49
|
+
* other than the current page.
|
|
50
|
+
*
|
|
47
51
|
* Where to redirect after successful login.
|
|
48
52
|
* Default: window.location.href (here)
|
|
49
53
|
*
|
|
@@ -72,6 +76,10 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
|
|
|
72
76
|
* */
|
|
73
77
|
idleSessionLifetimeInSeconds?: number;
|
|
74
78
|
/**
|
|
79
|
+
* Usage discouraged, this parameter exists because we don't want to assume
|
|
80
|
+
* too much about your usecase but I can't think of a scenario where you would
|
|
81
|
+
* want anything other than the current page.
|
|
82
|
+
*
|
|
75
83
|
* Default: { redirectTo: "current page" }
|
|
76
84
|
*/
|
|
77
85
|
autoLogoutParams?: Parameters<Oidc.LoggedIn<any>["logout"]>[0];
|