oidc-spa 10.3.0-rc.2 → 10.3.0-rc.3
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/Oidc.d.ts +12 -2
- package/core/createGetUser.d.ts +24 -0
- package/core/createGetUser.js +162 -0
- package/core/createGetUser.js.map +1 -0
- package/core/createMockOidc.d.ts +3 -2
- package/core/createMockOidc.js +14 -2
- package/core/createMockOidc.js.map +1 -1
- package/core/createOidc.d.ts +18 -4
- package/core/createOidc.js +231 -214
- package/core/createOidc.js.map +1 -1
- package/core/index.d.ts +1 -0
- package/esm/core/Oidc.d.ts +12 -2
- package/esm/core/createGetUser.d.ts +24 -0
- package/esm/core/createGetUser.mjs +159 -0
- package/esm/core/createGetUser.mjs.map +1 -0
- package/esm/core/createMockOidc.d.ts +3 -2
- package/esm/core/createMockOidc.mjs +14 -2
- package/esm/core/createMockOidc.mjs.map +1 -1
- package/esm/core/createOidc.d.ts +18 -4
- package/esm/core/createOidc.mjs +231 -214
- package/esm/core/createOidc.mjs.map +1 -1
- package/esm/core/index.d.ts +1 -0
- package/esm/keycloak/index.d.ts +1 -1
- package/esm/keycloak/keycloakUtils.d.ts +104 -13
- package/esm/keycloak/keycloakUtils.mjs.map +1 -1
- package/esm/react-spa/createOidcSpaUtils.d.ts +5 -3
- package/esm/react-spa/createOidcSpaUtils.mjs +176 -30
- package/esm/react-spa/createOidcSpaUtils.mjs.map +1 -1
- package/esm/react-spa/index.d.ts +1 -1
- package/esm/react-spa/types.d.ts +48 -22
- package/esm/react-spa/types.mjs +3 -2
- package/esm/react-spa/types.mjs.map +1 -1
- package/esm/react-spa/utilsBuilder.d.ts +10 -6
- package/esm/react-spa/utilsBuilder.mjs +27 -8
- package/esm/react-spa/utilsBuilder.mjs.map +1 -1
- package/esm/tanstack-start/react/createOidcSpaUtils.d.ts +5 -3
- package/esm/tanstack-start/react/createOidcSpaUtils.mjs +245 -83
- package/esm/tanstack-start/react/createOidcSpaUtils.mjs.map +1 -1
- package/esm/tanstack-start/react/index.d.ts +1 -1
- package/esm/tanstack-start/react/types.d.ts +51 -23
- package/esm/tanstack-start/react/types.mjs +3 -2
- package/esm/tanstack-start/react/types.mjs.map +1 -1
- package/esm/tanstack-start/react/utilsBuilder.d.ts +12 -8
- package/esm/tanstack-start/react/utilsBuilder.mjs +21 -3
- package/esm/tanstack-start/react/utilsBuilder.mjs.map +1 -1
- package/esm/tools/createObjectThatThrowsIfAccessed.d.ts +13 -0
- package/esm/tools/createObjectThatThrowsIfAccessed.mjs +32 -5
- package/esm/tools/createObjectThatThrowsIfAccessed.mjs.map +1 -1
- package/esm/vite-plugin/projectType.mjs +4 -1
- package/esm/vite-plugin/projectType.mjs.map +1 -1
- package/keycloak/index.d.ts +1 -1
- package/keycloak/keycloakUtils.d.ts +104 -13
- package/keycloak/keycloakUtils.js.map +1 -1
- package/package.json +1 -1
- package/react-spa/createOidcSpaUtils.d.ts +5 -3
- package/react-spa/createOidcSpaUtils.js +175 -29
- package/react-spa/createOidcSpaUtils.js.map +1 -1
- package/react-spa/index.d.ts +1 -1
- package/react-spa/types.d.ts +48 -22
- package/react-spa/types.js +2 -0
- package/react-spa/types.js.map +1 -1
- package/react-spa/utilsBuilder.d.ts +10 -6
- package/react-spa/utilsBuilder.js +27 -8
- package/react-spa/utilsBuilder.js.map +1 -1
- package/src/angular.ts +1 -1
- package/src/core/Oidc.ts +63 -54
- package/src/core/createGetUser.ts +236 -0
- package/src/core/createMockOidc.ts +24 -7
- package/src/core/createOidc.ts +347 -303
- package/src/core/index.ts +1 -0
- package/src/keycloak/index.ts +1 -1
- package/src/keycloak/keycloakUtils.ts +163 -13
- package/src/react-spa/createOidcSpaUtils.ts +277 -55
- package/src/react-spa/types.ts +57 -24
- package/src/react-spa/utilsBuilder.ts +58 -15
- package/src/tanstack-start/react/createOidcSpaUtils.ts +352 -109
- package/src/tanstack-start/react/types.ts +60 -25
- package/src/tanstack-start/react/utilsBuilder.ts +50 -7
- package/src/tools/createObjectThatThrowsIfAccessed.ts +49 -6
- package/src/vite-plugin/projectType.ts +4 -5
- package/tools/createObjectThatThrowsIfAccessed.d.ts +13 -0
- package/tools/createObjectThatThrowsIfAccessed.js +35 -6
- package/tools/createObjectThatThrowsIfAccessed.js.map +1 -1
package/core/Oidc.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { OidcInitializationError } from "./OidcInitializationError";
|
|
2
|
-
export declare type Oidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_OidcCoreSpec> = Oidc.LoggedIn<DecodedIdToken> | Oidc.NotLoggedIn;
|
|
2
|
+
export declare type Oidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_OidcCoreSpec, User = never> = Oidc.LoggedIn<DecodedIdToken, User> | Oidc.NotLoggedIn;
|
|
3
3
|
export declare namespace Oidc {
|
|
4
4
|
type Common = {
|
|
5
5
|
issuerUri: string;
|
|
@@ -29,7 +29,7 @@ export declare namespace Oidc {
|
|
|
29
29
|
}) => Promise<never>;
|
|
30
30
|
initializationError: OidcInitializationError | undefined;
|
|
31
31
|
};
|
|
32
|
-
type LoggedIn<DecodedIdToken extends Record<string, unknown> = Record<string, unknown
|
|
32
|
+
type LoggedIn<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, User = never> = Common & {
|
|
33
33
|
isUserLoggedIn: true;
|
|
34
34
|
renewTokens(params?: {
|
|
35
35
|
extraTokenParams?: Record<string, string | undefined>;
|
|
@@ -81,6 +81,16 @@ export declare namespace Oidc {
|
|
|
81
81
|
* you can test oidc.isNewBrowserSession && oidc.backFromAuthServer !== undefined
|
|
82
82
|
*/
|
|
83
83
|
isNewBrowserSession: boolean;
|
|
84
|
+
getUser: () => Promise<{
|
|
85
|
+
user: User;
|
|
86
|
+
subscribeToUserChange: (onUserChange: (params: {
|
|
87
|
+
user: User;
|
|
88
|
+
user_previous: User | undefined;
|
|
89
|
+
}) => void) => {
|
|
90
|
+
unsubscribeFromUserChange: () => void;
|
|
91
|
+
};
|
|
92
|
+
refreshUser: () => Promise<User>;
|
|
93
|
+
}>;
|
|
84
94
|
};
|
|
85
95
|
type Tokens<DecodedIdToken extends Record<string, unknown> = Tokens.DecodedIdToken_OidcCoreSpec> = Tokens.WithRefreshToken<DecodedIdToken> | Tokens.WithoutRefreshToken<DecodedIdToken>;
|
|
86
96
|
namespace Tokens {
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Oidc } from "./Oidc";
|
|
2
|
+
import type { NonPostableEvt } from "../tools/Evt";
|
|
3
|
+
import type { ParamsOfCreateOidc } from "./createOidc";
|
|
4
|
+
export declare function createGetUser<User>(params: {
|
|
5
|
+
issuerUri: string;
|
|
6
|
+
createUser: ParamsOfCreateOidc.CreateUser<User> | undefined;
|
|
7
|
+
getCurrentTokens: () => Oidc.Tokens<any>;
|
|
8
|
+
evtTokensChange: NonPostableEvt<void>;
|
|
9
|
+
renewTokens(): Promise<void>;
|
|
10
|
+
oidcMetadata: {
|
|
11
|
+
userinfo_endpoint?: string;
|
|
12
|
+
};
|
|
13
|
+
}): {
|
|
14
|
+
getUser: () => Promise<{
|
|
15
|
+
user: User;
|
|
16
|
+
subscribeToUserChange: (onUserChange: (params: {
|
|
17
|
+
user: User;
|
|
18
|
+
user_previous: User | undefined;
|
|
19
|
+
}) => void) => {
|
|
20
|
+
unsubscribeFromUserChange: () => void;
|
|
21
|
+
};
|
|
22
|
+
refreshUser: () => Promise<User>;
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createGetUser = createGetUser;
|
|
4
|
+
const id_1 = require("../tools/tsafe/id");
|
|
5
|
+
const assert_1 = require("../tools/tsafe/assert");
|
|
6
|
+
const decodeJwt_1 = require("../tools/decodeJwt");
|
|
7
|
+
function createGetUser(params) {
|
|
8
|
+
const { issuerUri, createUser, getCurrentTokens, evtTokensChange, renewTokens, oidcMetadata } = params;
|
|
9
|
+
async function fetchUserInfo(params) {
|
|
10
|
+
const { accessToken } = params;
|
|
11
|
+
const { userinfo_endpoint } = oidcMetadata;
|
|
12
|
+
if (!userinfo_endpoint) {
|
|
13
|
+
// TODO: Make a class for this error
|
|
14
|
+
throw new Error("oidc-spa: AS does not expose a userinfo endpoint");
|
|
15
|
+
}
|
|
16
|
+
const r = await fetch(userinfo_endpoint, {
|
|
17
|
+
headers: {
|
|
18
|
+
Authorization: `Bearer ${accessToken}`
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return r.json();
|
|
22
|
+
}
|
|
23
|
+
let state = undefined;
|
|
24
|
+
const onUserChanges = new Set();
|
|
25
|
+
const subscribeToUserChange = onUserChange => {
|
|
26
|
+
onUserChanges.add(onUserChange);
|
|
27
|
+
return {
|
|
28
|
+
unsubscribeFromUserChange: () => {
|
|
29
|
+
onUserChanges.delete(onUserChange);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
function __updatePrUserIfHashChanged() {
|
|
34
|
+
(0, assert_1.assert)(createUser !== undefined, "94302");
|
|
35
|
+
const hash_current = state?.hash;
|
|
36
|
+
const tokens = getCurrentTokens();
|
|
37
|
+
const hash_new = computeHash({
|
|
38
|
+
accessToken: tokens.accessToken,
|
|
39
|
+
decodedIdToken: tokens.decodedIdToken_original
|
|
40
|
+
});
|
|
41
|
+
const prUser_new = (async () => {
|
|
42
|
+
const prUser_current = state?.prUser;
|
|
43
|
+
if (hash_current === hash_new) {
|
|
44
|
+
(0, assert_1.assert)(prUser_current !== undefined);
|
|
45
|
+
return prUser_current;
|
|
46
|
+
}
|
|
47
|
+
const user_current = await prUser_current;
|
|
48
|
+
let user_new;
|
|
49
|
+
try {
|
|
50
|
+
user_new = await createUser({
|
|
51
|
+
accessToken: tokens.accessToken,
|
|
52
|
+
decodedIdToken: tokens.decodedIdToken_original,
|
|
53
|
+
issuerUri,
|
|
54
|
+
fetchUserInfo: () => fetchUserInfo({ accessToken: tokens.accessToken }),
|
|
55
|
+
user_current
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
if (user_current !== undefined) {
|
|
60
|
+
console.error(`oidc-spa: Subsequent calls to createUser threw, skipping user refresh.`, error);
|
|
61
|
+
if (state !== undefined && state.hash === hash_new) {
|
|
62
|
+
(0, assert_1.assert)(hash_current !== undefined);
|
|
63
|
+
state.hash = hash_current;
|
|
64
|
+
}
|
|
65
|
+
return user_current;
|
|
66
|
+
}
|
|
67
|
+
// NOTE: This will be handled as an initialization error by the
|
|
68
|
+
// higher level adapters.
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
onUserChanges.forEach(onUserChange => onUserChange({
|
|
72
|
+
user: user_new,
|
|
73
|
+
user_previous: user_current
|
|
74
|
+
}));
|
|
75
|
+
return user_new;
|
|
76
|
+
})();
|
|
77
|
+
state = {
|
|
78
|
+
hash: hash_new,
|
|
79
|
+
prUser: prUser_new
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const refreshUser = async () => {
|
|
83
|
+
if (state !== undefined) {
|
|
84
|
+
state.hash = "";
|
|
85
|
+
}
|
|
86
|
+
await renewTokens();
|
|
87
|
+
(0, assert_1.assert)(state !== undefined);
|
|
88
|
+
return state.prUser;
|
|
89
|
+
};
|
|
90
|
+
evtTokensChange.subscribe(() => {
|
|
91
|
+
__updatePrUserIfHashChanged();
|
|
92
|
+
});
|
|
93
|
+
let callCount_getUser = 0;
|
|
94
|
+
const getUser = async () => {
|
|
95
|
+
if (createUser === undefined) {
|
|
96
|
+
throw new Error("oidc-spa: createUser not provided");
|
|
97
|
+
}
|
|
98
|
+
let timer_cycleDetection = undefined;
|
|
99
|
+
if (state === undefined) {
|
|
100
|
+
__updatePrUserIfHashChanged();
|
|
101
|
+
(0, assert_1.assert)(state !== undefined);
|
|
102
|
+
}
|
|
103
|
+
cycle_detection: {
|
|
104
|
+
callCount_getUser++;
|
|
105
|
+
if (callCount_getUser !== 1) {
|
|
106
|
+
break cycle_detection;
|
|
107
|
+
}
|
|
108
|
+
const callCount_getUser_before = callCount_getUser;
|
|
109
|
+
const setTimer = () => {
|
|
110
|
+
timer_cycleDetection = setTimeout(() => {
|
|
111
|
+
if (callCount_getUser_before === callCount_getUser) {
|
|
112
|
+
setTimer();
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
console.warn([
|
|
116
|
+
"oidc-spa: Potential deadlock detected.",
|
|
117
|
+
"createUser() might be awaiting getUser(), which causes a deadlock",
|
|
118
|
+
"because getUser() is already waiting for createUser() to finish.",
|
|
119
|
+
"Update createUser() to build the user without (directly or indirectly) calling",
|
|
120
|
+
"getUser() from inside createUser()."
|
|
121
|
+
].join(" "));
|
|
122
|
+
}, 3000);
|
|
123
|
+
};
|
|
124
|
+
setTimer();
|
|
125
|
+
}
|
|
126
|
+
const user = await state.prUser;
|
|
127
|
+
if (timer_cycleDetection !== undefined) {
|
|
128
|
+
clearTimeout(timer_cycleDetection);
|
|
129
|
+
}
|
|
130
|
+
return (0, id_1.id)({
|
|
131
|
+
user,
|
|
132
|
+
refreshUser,
|
|
133
|
+
subscribeToUserChange
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
return { getUser };
|
|
137
|
+
}
|
|
138
|
+
function computeHash(params) {
|
|
139
|
+
const { decodedIdToken, accessToken } = params;
|
|
140
|
+
const decodedIdToken_stableish = (() => {
|
|
141
|
+
const { exp, iat, nonce, auth_time, amr, acr, ...rest } = decodedIdToken;
|
|
142
|
+
return rest;
|
|
143
|
+
})();
|
|
144
|
+
const decodedAccessToken_stableish = (() => {
|
|
145
|
+
let decodedAccessToken;
|
|
146
|
+
try {
|
|
147
|
+
decodedAccessToken = (0, decodeJwt_1.decodeJwt)(accessToken);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
const { exp, iat, jti, nbf, cnf, ...rest } = decodedAccessToken;
|
|
153
|
+
return rest;
|
|
154
|
+
})();
|
|
155
|
+
const stringify = (obj) => JSON.stringify(Object.entries(obj).sort(([a], [b]) => a.localeCompare(b)));
|
|
156
|
+
return [
|
|
157
|
+
stringify(decodedIdToken_stableish),
|
|
158
|
+
"|",
|
|
159
|
+
decodedAccessToken_stableish === undefined ? "" : stringify(decodedAccessToken_stableish)
|
|
160
|
+
].join("");
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=createGetUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createGetUser.js","sourceRoot":"","sources":["../src/core/createGetUser.ts"],"names":[],"mappings":";;AAOA,sCAgMC;AAtMD,0CAAuC;AACvC,kDAA+C;AAE/C,kDAA+C;AAG/C,SAAgB,aAAa,CAAO,MASnC;IACG,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,GACzF,MAAM,CAAC;IAMX,KAAK,UAAU,aAAa,CAAC,MAA+B;QACxD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE/B,MAAM,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC;QAE3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,oCAAoC;YACpC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE;YACrC,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,WAAW,EAAE;aACzC;SACJ,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,GAAwD,SAAS,CAAC;IAE3E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAqE,CAAC;IAEnG,MAAM,qBAAqB,GAAuC,YAAY,CAAC,EAAE;QAC7E,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhC,OAAO;YACH,yBAAyB,EAAE,GAAG,EAAE;gBAC5B,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;SACJ,CAAC;IACN,CAAC,CAAC;IAEF,SAAS,2BAA2B;QAChC,IAAA,eAAM,EAAC,UAAU,KAAK,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1C,MAAM,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC;QAEjC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,WAAW,CAAC;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,MAAM,CAAC,uBAAuB;SACjD,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;YAC3B,MAAM,cAAc,GAAG,KAAK,EAAE,MAAM,CAAC;YAErC,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAA,eAAM,EAAC,cAAc,KAAK,SAAS,CAAC,CAAC;gBACrC,OAAO,cAAc,CAAC;YAC1B,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC;YAE1C,IAAI,QAAc,CAAC;YAEnB,IAAI,CAAC;gBACD,QAAQ,GAAG,MAAM,UAAU,CAAC;oBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,cAAc,EAAE,MAAM,CAAC,uBAAuB;oBAC9C,SAAS;oBACT,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvE,YAAY;iBACf,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CACT,wEAAwE,EACxE,KAAK,CACR,CAAC;oBACF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACjD,IAAA,eAAM,EAAC,YAAY,KAAK,SAAS,CAAC,CAAC;wBACnC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;oBAC9B,CAAC;oBACD,OAAO,YAAY,CAAC;gBACxB,CAAC;gBAED,+DAA+D;gBAC/D,yBAAyB;gBACzB,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CACjC,YAAY,CAAC;gBACT,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,YAAY;aAC9B,CAAC,CACL,CAAC;YAEF,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC;QAEL,KAAK,GAAG;YACJ,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,UAAU;SACrB,CAAC;IACN,CAAC;IAED,MAAM,WAAW,GAA6B,KAAK,IAAI,EAAE;QACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,EAAE,CAAC;QAEpB,IAAA,eAAM,EAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAE5B,OAAO,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC,CAAC;IAEF,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE;QAC3B,2BAA2B,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAE1B,MAAM,OAAO,GAAY,KAAK,IAAI,EAAE;QAChC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,oBAAoB,GAA8C,SAAS,CAAC;QAEhF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,2BAA2B,EAAE,CAAC;YAE9B,IAAA,eAAM,EAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAChC,CAAC;QAED,eAAe,EAAE,CAAC;YACd,iBAAiB,EAAE,CAAC;YAEpB,IAAI,iBAAiB,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,eAAe,CAAC;YAC1B,CAAC;YAED,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;YAEnD,MAAM,QAAQ,GAAG,GAAG,EAAE;gBAClB,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACnC,IAAI,wBAAwB,KAAK,iBAAiB,EAAE,CAAC;wBACjD,QAAQ,EAAE,CAAC;wBACX,OAAO;oBACX,CAAC;oBAED,OAAO,CAAC,IAAI,CACR;wBACI,wCAAwC;wBACxC,mEAAmE;wBACnE,kEAAkE;wBAClE,gFAAgF;wBAChF,qCAAqC;qBACxC,CAAC,IAAI,CAAC,GAAG,CAAC,CACd,CAAC;gBACN,CAAC,EAAE,IAAK,CAAC,CAAC;YACd,CAAC,CAAC;YAEF,QAAQ,EAAE,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;QAEhC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACrC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAA,OAAE,EAAY;YACjB,IAAI;YACJ,WAAW;YACX,qBAAqB;SACxB,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,MAGpB;IACG,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE/C,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE;QACnC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc,CAAC;QAEzE,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE;QACvC,IAAI,kBAA2C,CAAC;QAEhD,IAAI,CAAC;YACD,kBAAkB,GAAG,IAAA,qBAAS,EAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,kBAAkB,CAAC;QAEhE,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,SAAS,GAAG,CAAC,GAA4B,EAAE,EAAE,CAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO;QACH,SAAS,CAAC,wBAAwB,CAAC;QACnC,GAAG;QACH,4BAA4B,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC;KAC5F,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACf,CAAC"}
|
package/core/createMockOidc.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { Oidc } from "../core";
|
|
2
|
-
export type ParamsOfCreateMockOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false> = {
|
|
2
|
+
export type ParamsOfCreateMockOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false, User = never> = {
|
|
3
3
|
mockedParams?: {
|
|
4
4
|
issuerUri?: string;
|
|
5
5
|
clientId?: string;
|
|
6
6
|
};
|
|
7
7
|
mockedTokens?: Partial<Oidc.Tokens<DecodedIdToken>>;
|
|
8
|
+
mockedUser?: User;
|
|
8
9
|
/**
|
|
9
10
|
* The URL of the home page of your app.
|
|
10
11
|
* We need to know this so we know where to redirect when you call `logout({ redirectTo: "home"})`.
|
|
@@ -19,4 +20,4 @@ export type ParamsOfCreateMockOidc<DecodedIdToken extends Record<string, unknown
|
|
|
19
20
|
} : {
|
|
20
21
|
isUserInitiallyLoggedIn: boolean;
|
|
21
22
|
});
|
|
22
|
-
export declare function createMockOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_OidcCoreSpec, AutoLogin extends boolean = false>(params: ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin>): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
|
|
23
|
+
export declare function createMockOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_OidcCoreSpec, AutoLogin extends boolean = false, User = never>(params: ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin, User>): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken, User> : Oidc<DecodedIdToken, User>>;
|
package/core/createMockOidc.js
CHANGED
|
@@ -11,7 +11,7 @@ const earlyInit_BASE_URL_1 = require("../core/earlyInit_BASE_URL");
|
|
|
11
11
|
const URL_SEARCH_PARAM_NAME = "isUserLoggedIn";
|
|
12
12
|
const locationHref_moduleEvalTime = location.href;
|
|
13
13
|
async function createMockOidc(params) {
|
|
14
|
-
const { isUserInitiallyLoggedIn = true, mockedParams = {}, mockedTokens = {}, autoLogin = false, postLoginRedirectUrl } = params;
|
|
14
|
+
const { isUserInitiallyLoggedIn = true, mockedParams = {}, mockedTokens = {}, autoLogin = false, postLoginRedirectUrl, mockedUser } = params;
|
|
15
15
|
const BASE_URL_params = params.BASE_URL;
|
|
16
16
|
const isUserLoggedIn = (() => {
|
|
17
17
|
const { wasPresent, value } = (0, urlSearchParams_1.getSearchParam)({
|
|
@@ -165,7 +165,19 @@ async function createMockOidc(params) {
|
|
|
165
165
|
}),
|
|
166
166
|
goToAuthServer: async ({ redirectUrl }) => loginOrGoToAuthServer({ redirectUrl }),
|
|
167
167
|
isNewBrowserSession: false,
|
|
168
|
-
backFromAuthServer: undefined
|
|
168
|
+
backFromAuthServer: undefined,
|
|
169
|
+
getUser: () => {
|
|
170
|
+
if (mockedUser === undefined) {
|
|
171
|
+
throw new Error("oidc-spa: No mock user provided");
|
|
172
|
+
}
|
|
173
|
+
return Promise.resolve({
|
|
174
|
+
refreshUser: () => Promise.resolve(mockedUser),
|
|
175
|
+
subscribeToUserChange: () => {
|
|
176
|
+
return { unsubscribeFromUserChange: () => { } };
|
|
177
|
+
},
|
|
178
|
+
user: mockedUser
|
|
179
|
+
});
|
|
180
|
+
}
|
|
169
181
|
};
|
|
170
182
|
return oidc;
|
|
171
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMockOidc.js","sourceRoot":"","sources":["../src/core/createMockOidc.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"createMockOidc.js","sourceRoot":"","sources":["../src/core/createMockOidc.ts"],"names":[],"mappings":"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"}
|
package/core/createOidc.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ import { type AuthResponse } from "./AuthResponse";
|
|
|
3
3
|
import type { Oidc } from "./Oidc";
|
|
4
4
|
import type { Evt } from "../tools/Evt";
|
|
5
5
|
import type { ParamsOfCreateGetServerDateNow } from "../tools/getServerDateNow";
|
|
6
|
-
|
|
6
|
+
import type { MaybeAsync } from "../tools/MaybeAsync";
|
|
7
|
+
export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_OidcCoreSpec, AutoLogin extends boolean = false, User = never> = {
|
|
8
|
+
createUser?: ParamsOfCreateOidc.CreateUser<User>;
|
|
7
9
|
/**
|
|
8
10
|
* See: https://docs.oidc-spa.dev/v/v10/providers-configuration/provider-configuration
|
|
9
11
|
*/
|
|
@@ -185,6 +187,18 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
|
|
|
185
187
|
* */
|
|
186
188
|
disableDPoP?: true;
|
|
187
189
|
};
|
|
190
|
+
export declare namespace ParamsOfCreateOidc {
|
|
191
|
+
type CreateUser<User> = (params: {
|
|
192
|
+
decodedIdToken: Oidc.Tokens.DecodedIdToken_OidcCoreSpec;
|
|
193
|
+
accessToken: string;
|
|
194
|
+
fetchUserInfo: () => Promise<{
|
|
195
|
+
[key: string]: unknown;
|
|
196
|
+
sub: string;
|
|
197
|
+
}>;
|
|
198
|
+
issuerUri: string;
|
|
199
|
+
user_current: User | undefined;
|
|
200
|
+
}) => MaybeAsync<User>;
|
|
201
|
+
}
|
|
188
202
|
export type Exports_earlyInit = {
|
|
189
203
|
shouldLoadApp: false;
|
|
190
204
|
} | {
|
|
@@ -241,10 +255,10 @@ export declare namespace Exports_DPoP {
|
|
|
241
255
|
}
|
|
242
256
|
export declare function registerExports_DPoP(exports: Exports_DPoP): void;
|
|
243
257
|
/** @see: https://docs.oidc-spa.dev/v/v10/usage */
|
|
244
|
-
export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_OidcCoreSpec, AutoLogin extends boolean = false>(params: ParamsOfCreateOidc<DecodedIdToken, AutoLogin>): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
|
|
245
|
-
export declare function createOidc_nonMemoized<DecodedIdToken extends Record<string, unknown>, AutoLogin extends boolean>(params: Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "issuerUri" | "clientId" | "debugLogs">, preProcessedParams: {
|
|
258
|
+
export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_OidcCoreSpec, AutoLogin extends boolean = false, User = never>(params: ParamsOfCreateOidc<DecodedIdToken, AutoLogin, User>): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken, User> : Oidc<DecodedIdToken, User>>;
|
|
259
|
+
export declare function createOidc_nonMemoized<DecodedIdToken extends Record<string, unknown>, AutoLogin extends boolean, User>(params: Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin, User>, "issuerUri" | "clientId" | "debugLogs">, preProcessedParams: {
|
|
246
260
|
issuerUri: string;
|
|
247
261
|
clientId: string;
|
|
248
262
|
configId: string;
|
|
249
263
|
log: typeof console.log | undefined;
|
|
250
|
-
}): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
|
|
264
|
+
}): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken, User> : Oidc<DecodedIdToken, User>>;
|