keycloakify 10.0.0-rc.23 → 10.0.0-rc.24
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/PUBLIC_URL.d.ts +1 -1
- package/PUBLIC_URL.js +1 -1
- package/PUBLIC_URL.js.map +1 -1
- package/account/Fallback.js.map +1 -1
- package/account/Template.js +3 -3
- package/account/Template.js.map +1 -1
- package/account/i18n/baseMessages/index.js.map +1 -1
- package/account/i18n/i18n.js.map +1 -1
- package/account/index.d.ts +2 -2
- package/account/index.js +1 -2
- package/account/index.js.map +1 -1
- package/account/kcContext/KcContext.d.ts +12 -0
- package/account/kcContext/KcContext.js.map +1 -1
- package/account/kcContext/getKcContextMock.d.ts +24 -0
- package/account/kcContext/getKcContextMock.js +28 -0
- package/account/kcContext/getKcContextMock.js.map +1 -0
- package/account/kcContext/index.d.ts +2 -1
- package/account/kcContext/index.js +1 -1
- package/account/kcContext/index.js.map +1 -1
- package/account/kcContext/kcContextMocks.js +23 -91
- package/account/kcContext/kcContextMocks.js.map +1 -1
- package/account/pages/Account.js +1 -1
- package/account/pages/Account.js.map +1 -1
- package/account/pages/Applications.js +2 -2
- package/account/pages/Applications.js.map +1 -1
- package/account/pages/FederatedIdentity.js +1 -1
- package/account/pages/FederatedIdentity.js.map +1 -1
- package/account/pages/Log.js +1 -1
- package/account/pages/Log.js.map +1 -1
- package/account/pages/Password.js +6 -4
- package/account/pages/Password.js.map +1 -1
- package/account/pages/Sessions.js +1 -1
- package/account/pages/Sessions.js.map +1 -1
- package/account/pages/Totp.js +1 -1
- package/account/pages/Totp.js.map +1 -1
- package/bin/main.js +152 -162
- package/lib/BASE_URL.js.map +1 -1
- package/login/Fallback.js.map +1 -1
- package/login/Template.js +7 -7
- package/login/Template.js.map +1 -1
- package/login/UserProfileFormFields.js +24 -68
- package/login/UserProfileFormFields.js.map +1 -1
- package/login/i18n/baseMessages/index.js.map +1 -1
- package/login/i18n/i18n.js.map +1 -1
- package/login/index.d.ts +2 -3
- package/login/index.js +1 -2
- package/login/index.js.map +1 -1
- package/login/kcContext/KcContext.d.ts +23 -12
- package/login/kcContext/KcContext.js.map +1 -1
- package/login/kcContext/getKcContextMock.d.ts +24 -0
- package/login/kcContext/getKcContextMock.js +28 -0
- package/login/kcContext/getKcContextMock.js.map +1 -0
- package/login/kcContext/index.d.ts +2 -1
- package/login/kcContext/index.js +1 -1
- package/login/kcContext/index.js.map +1 -1
- package/login/kcContext/kcContextMocks.js +32 -99
- package/login/kcContext/kcContextMocks.js.map +1 -1
- package/login/lib/useDownloadTerms.js +8 -14
- package/login/lib/useDownloadTerms.js.map +1 -1
- package/login/lib/useGetClassName.js +1 -1
- package/login/lib/useGetClassName.js.map +1 -1
- package/login/lib/useUserProfileForm.d.ts +9 -1
- package/login/lib/useUserProfileForm.js +94 -15
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Code.js +1 -1
- package/login/pages/Code.js.map +1 -1
- package/login/pages/DeleteAccountConfirm.js +2 -2
- package/login/pages/DeleteAccountConfirm.js.map +1 -1
- package/login/pages/DeleteCredential.js +1 -1
- package/login/pages/DeleteCredential.js.map +1 -1
- package/login/pages/Error.js +1 -1
- package/login/pages/Error.js.map +1 -1
- package/login/pages/FrontchannelLogout.js +1 -1
- package/login/pages/FrontchannelLogout.js.map +1 -1
- package/login/pages/IdpReviewUserProfile.js +1 -1
- package/login/pages/IdpReviewUserProfile.js.map +1 -1
- package/login/pages/Info.js +5 -5
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.js +4 -4
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.js +2 -2
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginIdpLinkConfirm.js +1 -1
- package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
- package/login/pages/LoginIdpLinkEmail.js +1 -1
- package/login/pages/LoginIdpLinkEmail.js.map +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
- package/login/pages/LoginOauthGrant.js +2 -2
- package/login/pages/LoginOauthGrant.js.map +1 -1
- package/login/pages/LoginOtp.js +1 -1
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPageExpired.js +1 -1
- package/login/pages/LoginPageExpired.js.map +1 -1
- package/login/pages/LoginPassword.js +3 -3
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.js +10 -10
- package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetOtp.js +1 -1
- package/login/pages/LoginResetOtp.js.map +1 -1
- package/login/pages/LoginResetPassword.js +2 -2
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.js +3 -3
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/LoginUpdateProfile.js +4 -2
- package/login/pages/LoginUpdateProfile.js.map +1 -1
- package/login/pages/LoginUsername.js +3 -3
- package/login/pages/LoginUsername.js.map +1 -1
- package/login/pages/LoginVerifyEmail.js +1 -1
- package/login/pages/LoginVerifyEmail.js.map +1 -1
- package/login/pages/LoginX509Info.js +1 -1
- package/login/pages/LoginX509Info.js.map +1 -1
- package/login/pages/LogoutConfirm.js +1 -1
- package/login/pages/LogoutConfirm.js.map +1 -1
- package/login/pages/Register.js +8 -4
- package/login/pages/Register.js.map +1 -1
- package/login/pages/SamlPostForm.js +1 -1
- package/login/pages/SamlPostForm.js.map +1 -1
- package/login/pages/SelectAuthenticator.js +2 -2
- package/login/pages/SelectAuthenticator.js.map +1 -1
- package/login/pages/Terms.js +1 -1
- package/login/pages/Terms.js.map +1 -1
- package/login/pages/UpdateEmail.js +5 -3
- package/login/pages/UpdateEmail.js.map +1 -1
- package/login/pages/WebauthnAuthenticate.js +8 -8
- package/login/pages/WebauthnAuthenticate.js.map +1 -1
- package/login/pages/WebauthnError.js +2 -2
- package/login/pages/WebauthnError.js.map +1 -1
- package/login/pages/WebauthnRegister.js +5 -5
- package/login/pages/WebauthnRegister.js.map +1 -1
- package/package.json +26 -38
- package/src/PUBLIC_URL.ts +1 -1
- package/src/account/Template.tsx +2 -3
- package/src/account/index.ts +2 -2
- package/src/account/kcContext/KcContext.ts +19 -1
- package/src/account/kcContext/getKcContextMock.ts +80 -0
- package/src/account/kcContext/index.ts +2 -1
- package/src/account/kcContext/kcContextMocks.ts +26 -91
- package/src/bin/copy-keycloak-resources-to-public.ts +1 -4
- package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +4 -6
- package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +25 -25
- package/src/login/Template.tsx +4 -5
- package/src/login/UserProfileFormFields.tsx +28 -80
- package/src/login/index.ts +6 -3
- package/src/login/kcContext/KcContext.ts +41 -27
- package/src/login/kcContext/getKcContextMock.ts +80 -0
- package/src/login/kcContext/index.ts +7 -1
- package/src/login/kcContext/kcContextMocks.ts +95 -156
- package/src/login/lib/useDownloadTerms.ts +10 -24
- package/src/login/lib/useGetClassName.ts +1 -1
- package/src/login/lib/useUserProfileForm.tsx +117 -13
- package/src/login/pages/LoginConfigTotp.tsx +1 -1
- package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +7 -8
- package/src/login/pages/WebauthnAuthenticate.tsx +2 -3
- package/src/login/pages/WebauthnRegister.tsx +2 -3
- package/src/tools/ExtractAfterStartingWith.ts +4 -0
- package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +4 -4
- package/src/tools/ValueOf.ts +2 -0
- package/src/tools/deepAssign.ts +51 -20
- package/src/tools/structuredCloneButFunctions.ts +24 -0
- package/src/tools/useInsertLinkTags.ts +78 -87
- package/src/tools/useInsertScriptTags.ts +69 -78
- package/src/tools/useOnFirstMount.ts +18 -0
- package/tools/Array.prototype.every.js.map +1 -1
- package/tools/ExtractAfterStartingWith.d.ts +1 -0
- package/tools/ExtractAfterStartingWith.js +2 -0
- package/tools/ExtractAfterStartingWith.js.map +1 -0
- package/tools/HTMLElement.prototype.prepend.js.map +1 -1
- package/tools/StatefulObservable/StatefulObservable.js.map +1 -1
- package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +1 -1
- package/tools/StatefulObservable/hooks/useRerenderOnChange.js +4 -4
- package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -1
- package/tools/ValueOf.d.ts +2 -0
- package/tools/ValueOf.js +2 -0
- package/tools/ValueOf.js.map +1 -0
- package/tools/clsx.js.map +1 -1
- package/tools/deepAssign.d.ts +1 -0
- package/tools/deepAssign.js +39 -16
- package/tools/deepAssign.js.map +1 -1
- package/tools/formatNumber.js.map +1 -1
- package/tools/structuredCloneButFunctions.d.ts +7 -0
- package/tools/structuredCloneButFunctions.js +19 -0
- package/tools/structuredCloneButFunctions.js.map +1 -0
- package/tools/useInsertLinkTags.d.ts +11 -6
- package/tools/useInsertLinkTags.js +53 -53
- package/tools/useInsertLinkTags.js.map +1 -1
- package/tools/useInsertScriptTags.d.ts +15 -6
- package/tools/useInsertScriptTags.js +56 -64
- package/tools/useInsertScriptTags.js.map +1 -1
- package/tools/useOnFirstMount.d.ts +2 -0
- package/tools/useOnFirstMount.js +15 -0
- package/tools/useOnFirstMount.js.map +1 -0
- package/tools/useSetClassName.js.map +1 -1
- package/vite-plugin/index.js +66 -64
- package/account/kcContext/createGetKcContext.d.ts +0 -19
- package/account/kcContext/createGetKcContext.js +0 -78
- package/account/kcContext/createGetKcContext.js.map +0 -1
- package/account/kcContext/getKcContext.d.ts +0 -13
- package/account/kcContext/getKcContext.js +0 -13
- package/account/kcContext/getKcContext.js.map +0 -1
- package/account/kcContext/getKcContextFromWindow.d.ts +0 -10
- package/account/kcContext/getKcContextFromWindow.js +0 -5
- package/account/kcContext/getKcContextFromWindow.js.map +0 -1
- package/login/kcContext/createGetKcContext.d.ts +0 -19
- package/login/kcContext/createGetKcContext.js +0 -114
- package/login/kcContext/createGetKcContext.js.map +0 -1
- package/login/kcContext/getKcContext.d.ts +0 -13
- package/login/kcContext/getKcContext.js +0 -13
- package/login/kcContext/getKcContext.js.map +0 -1
- package/login/kcContext/getKcContextFromWindow.d.ts +0 -10
- package/login/kcContext/getKcContextFromWindow.js +0 -5
- package/login/kcContext/getKcContextFromWindow.js.map +0 -1
- package/src/account/kcContext/createGetKcContext.ts +0 -134
- package/src/account/kcContext/getKcContext.ts +0 -23
- package/src/account/kcContext/getKcContextFromWindow.ts +0 -15
- package/src/login/kcContext/createGetKcContext.ts +0 -199
- package/src/login/kcContext/getKcContext.ts +0 -23
- package/src/login/kcContext/getKcContextFromWindow.ts +0 -15
- package/src/tools/AndByDiscriminatingKey.ts +0 -31
- package/src/tools/deepClone.ts +0 -19
- package/src/tools/memoize.ts +0 -55
- package/tools/AndByDiscriminatingKey.d.ts +0 -5
- package/tools/AndByDiscriminatingKey.js +0 -2
- package/tools/AndByDiscriminatingKey.js.map +0 -1
- package/tools/deepClone.d.ts +0 -2
- package/tools/deepClone.js +0 -14
- package/tools/deepClone.js.map +0 -1
- package/tools/memoize.d.ts +0 -7
- package/tools/memoize.js +0 -38
- package/tools/memoize.js.map +0 -1
@@ -1,78 +0,0 @@
|
|
1
|
-
import { deepAssign } from "../../tools/deepAssign";
|
2
|
-
import { isStorybook } from "../../lib/isStorybook";
|
3
|
-
import { getKcContextFromWindow } from "./getKcContextFromWindow";
|
4
|
-
import { symToStr } from "tsafe/symToStr";
|
5
|
-
import { kcContextMocks, kcContextCommonMock } from "../../account/kcContext/kcContextMocks";
|
6
|
-
export function createGetKcContext(params) {
|
7
|
-
const { mockData, mockProperties } = params !== null && params !== void 0 ? params : {};
|
8
|
-
function getKcContext(params) {
|
9
|
-
const { mockPageId, storyPartialKcContext } = params !== null && params !== void 0 ? params : {};
|
10
|
-
const realKcContext = getKcContextFromWindow();
|
11
|
-
if (mockPageId !== undefined && realKcContext === undefined) {
|
12
|
-
//TODO maybe trow if no mock fo custom page
|
13
|
-
warn_that_mock_is_enbaled: {
|
14
|
-
if (isStorybook) {
|
15
|
-
break warn_that_mock_is_enbaled;
|
16
|
-
}
|
17
|
-
console.log(`%cKeycloakify: ${symToStr({
|
18
|
-
mockPageId
|
19
|
-
})} set to ${mockPageId}.`, "background: red; color: yellow; font-size: medium");
|
20
|
-
}
|
21
|
-
const kcContextDefaultMock = kcContextMocks.find(({ pageId }) => pageId === mockPageId);
|
22
|
-
const partialKcContextCustomMock = (() => {
|
23
|
-
const out = {};
|
24
|
-
const mockDataPick = mockData === null || mockData === void 0 ? void 0 : mockData.find(({ pageId }) => pageId === mockPageId);
|
25
|
-
if (mockDataPick !== undefined) {
|
26
|
-
deepAssign({
|
27
|
-
target: out,
|
28
|
-
source: mockDataPick
|
29
|
-
});
|
30
|
-
}
|
31
|
-
if (storyPartialKcContext !== undefined) {
|
32
|
-
deepAssign({
|
33
|
-
target: out,
|
34
|
-
source: storyPartialKcContext
|
35
|
-
});
|
36
|
-
}
|
37
|
-
return Object.keys(out).length === 0 ? undefined : out;
|
38
|
-
})();
|
39
|
-
if (kcContextDefaultMock === undefined &&
|
40
|
-
partialKcContextCustomMock === undefined) {
|
41
|
-
console.warn([
|
42
|
-
`WARNING: You declared the non build in page ${mockPageId} but you didn't `,
|
43
|
-
`provide mock data needed to debug the page outside of Keycloak as you are trying to do now.`,
|
44
|
-
`Please check the documentation of the getKcContext function`
|
45
|
-
].join("\n"));
|
46
|
-
}
|
47
|
-
const kcContext = {};
|
48
|
-
deepAssign({
|
49
|
-
target: kcContext,
|
50
|
-
source: kcContextDefaultMock !== undefined
|
51
|
-
? kcContextDefaultMock
|
52
|
-
: Object.assign({ pageId: mockPageId }, kcContextCommonMock)
|
53
|
-
});
|
54
|
-
if (partialKcContextCustomMock !== undefined) {
|
55
|
-
deepAssign({
|
56
|
-
target: kcContext,
|
57
|
-
source: partialKcContextCustomMock
|
58
|
-
});
|
59
|
-
}
|
60
|
-
if (mockProperties !== undefined) {
|
61
|
-
deepAssign({
|
62
|
-
target: kcContext.properties,
|
63
|
-
source: mockProperties
|
64
|
-
});
|
65
|
-
}
|
66
|
-
return { kcContext };
|
67
|
-
}
|
68
|
-
if (realKcContext === undefined) {
|
69
|
-
return { kcContext: undefined };
|
70
|
-
}
|
71
|
-
if (realKcContext.themeType !== "account") {
|
72
|
-
return { kcContext: undefined };
|
73
|
-
}
|
74
|
-
return { kcContext: realKcContext };
|
75
|
-
}
|
76
|
-
return { getKcContext };
|
77
|
-
}
|
78
|
-
//# sourceMappingURL=createGetKcContext.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"createGetKcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/createGetKcContext.ts"],"names":[],"mappings":"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"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import type { DeepPartial } from "../../tools/DeepPartial";
|
2
|
-
import type { ExtendKcContext } from "./getKcContextFromWindow";
|
3
|
-
/** NOTE: We now recommend using createGetKcContext instead of this function to make storybook integration easier
|
4
|
-
* See: https://github.com/keycloakify/keycloakify-starter/blob/main/src/keycloak-theme/account/kcContext.ts
|
5
|
-
*/
|
6
|
-
export declare function getKcContext<KcContextExtension extends {
|
7
|
-
pageId: string;
|
8
|
-
} = never>(params?: {
|
9
|
-
mockPageId?: ExtendKcContext<KcContextExtension>["pageId"];
|
10
|
-
mockData?: readonly DeepPartial<ExtendKcContext<KcContextExtension>>[];
|
11
|
-
}): {
|
12
|
-
kcContext: ExtendKcContext<KcContextExtension> | undefined;
|
13
|
-
};
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { createGetKcContext } from "./createGetKcContext";
|
2
|
-
/** NOTE: We now recommend using createGetKcContext instead of this function to make storybook integration easier
|
3
|
-
* See: https://github.com/keycloakify/keycloakify-starter/blob/main/src/keycloak-theme/account/kcContext.ts
|
4
|
-
*/
|
5
|
-
export function getKcContext(params) {
|
6
|
-
const { mockPageId, mockData } = params !== null && params !== void 0 ? params : {};
|
7
|
-
const { getKcContext } = createGetKcContext({
|
8
|
-
mockData
|
9
|
-
});
|
10
|
-
const { kcContext } = getKcContext({ mockPageId });
|
11
|
-
return { kcContext };
|
12
|
-
}
|
13
|
-
//# sourceMappingURL=getKcContext.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getKcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/getKcContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,YAAY,CAE1B,MAGD;IACG,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAE9C,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;QACxC,QAAQ;KACX,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAEnD,OAAO,EAAE,SAAS,EAAE,CAAC;AACzB,CAAC"}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
import type { AndByDiscriminatingKey } from "../../tools/AndByDiscriminatingKey";
|
2
|
-
import type { KcContext } from "./KcContext";
|
3
|
-
export type ExtendKcContext<KcContextExtension extends {
|
4
|
-
pageId: string;
|
5
|
-
}> = [
|
6
|
-
KcContextExtension
|
7
|
-
] extends [never] ? KcContext : AndByDiscriminatingKey<"pageId", KcContextExtension & KcContext.Common, KcContext>;
|
8
|
-
export declare function getKcContextFromWindow<KcContextExtension extends {
|
9
|
-
pageId: string;
|
10
|
-
} = never>(): ExtendKcContext<KcContextExtension> | undefined;
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getKcContextFromWindow.js","sourceRoot":"","sources":["../../src/account/kcContext/getKcContextFromWindow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AASnE,MAAM,UAAU,sBAAsB;IAGlC,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAc,CAAC,eAAe,CAAC,CAAC;AACxF,CAAC"}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import type { DeepPartial } from "../../tools/DeepPartial";
|
2
|
-
import type { ExtendKcContext } from "./getKcContextFromWindow";
|
3
|
-
export declare function createGetKcContext<KcContextExtension extends {
|
4
|
-
pageId: string;
|
5
|
-
} = never>(params?: {
|
6
|
-
mockData?: readonly DeepPartial<ExtendKcContext<KcContextExtension>>[];
|
7
|
-
mockProperties?: Record<string, string>;
|
8
|
-
}): {
|
9
|
-
getKcContext: <PageId extends ExtendKcContext<KcContextExtension>["pageId"] | undefined = undefined>(params?: {
|
10
|
-
mockPageId?: PageId;
|
11
|
-
storyPartialKcContext?: DeepPartial<Extract<ExtendKcContext<KcContextExtension>, {
|
12
|
-
pageId: PageId;
|
13
|
-
}>>;
|
14
|
-
}) => {
|
15
|
-
kcContext: PageId extends undefined ? ExtendKcContext<KcContextExtension> | undefined : Extract<ExtendKcContext<KcContextExtension>, {
|
16
|
-
pageId: PageId;
|
17
|
-
}>;
|
18
|
-
};
|
19
|
-
};
|
@@ -1,114 +0,0 @@
|
|
1
|
-
import { kcContextMocks, kcContextCommonMock } from "./kcContextMocks";
|
2
|
-
import { deepAssign } from "../../tools/deepAssign";
|
3
|
-
import { isStorybook } from "../../lib/isStorybook";
|
4
|
-
import { id } from "tsafe/id";
|
5
|
-
import { exclude } from "tsafe/exclude";
|
6
|
-
import { assert } from "tsafe/assert";
|
7
|
-
import { getKcContextFromWindow } from "./getKcContextFromWindow";
|
8
|
-
import { symToStr } from "tsafe/symToStr";
|
9
|
-
export function createGetKcContext(params) {
|
10
|
-
const { mockData, mockProperties } = params !== null && params !== void 0 ? params : {};
|
11
|
-
function getKcContext(params) {
|
12
|
-
var _a, _b;
|
13
|
-
const { mockPageId, storyPartialKcContext } = params !== null && params !== void 0 ? params : {};
|
14
|
-
const realKcContext = getKcContextFromWindow();
|
15
|
-
if (mockPageId !== undefined && realKcContext === undefined) {
|
16
|
-
//TODO maybe trow if no mock fo custom page
|
17
|
-
warn_that_mock_is_enabled: {
|
18
|
-
if (isStorybook) {
|
19
|
-
break warn_that_mock_is_enabled;
|
20
|
-
}
|
21
|
-
console.log(`%cKeycloakify: ${symToStr({
|
22
|
-
mockPageId
|
23
|
-
})} set to ${mockPageId}.`, "background: red; color: yellow; font-size: medium");
|
24
|
-
}
|
25
|
-
const kcContextDefaultMock = kcContextMocks.find(({ pageId }) => pageId === mockPageId);
|
26
|
-
const partialKcContextCustomMock = (() => {
|
27
|
-
const out = {};
|
28
|
-
const mockDataPick = mockData === null || mockData === void 0 ? void 0 : mockData.find(({ pageId }) => pageId === mockPageId);
|
29
|
-
if (mockDataPick !== undefined) {
|
30
|
-
deepAssign({
|
31
|
-
target: out,
|
32
|
-
source: mockDataPick
|
33
|
-
});
|
34
|
-
}
|
35
|
-
if (storyPartialKcContext !== undefined) {
|
36
|
-
deepAssign({
|
37
|
-
target: out,
|
38
|
-
source: storyPartialKcContext
|
39
|
-
});
|
40
|
-
}
|
41
|
-
return Object.keys(out).length === 0 ? undefined : out;
|
42
|
-
})();
|
43
|
-
if (kcContextDefaultMock === undefined &&
|
44
|
-
partialKcContextCustomMock === undefined) {
|
45
|
-
console.warn([
|
46
|
-
`WARNING: You declared the non build in page ${mockPageId} but you didn't `,
|
47
|
-
`provide mock data needed to debug the page outside of Keycloak as you are trying to do now.`,
|
48
|
-
`Please check the documentation of the getKcContext function`
|
49
|
-
].join("\n"));
|
50
|
-
}
|
51
|
-
const kcContext = {};
|
52
|
-
deepAssign({
|
53
|
-
target: kcContext,
|
54
|
-
source: kcContextDefaultMock !== undefined
|
55
|
-
? kcContextDefaultMock
|
56
|
-
: Object.assign({ pageId: mockPageId }, kcContextCommonMock)
|
57
|
-
});
|
58
|
-
if (partialKcContextCustomMock !== undefined) {
|
59
|
-
deepAssign({
|
60
|
-
target: kcContext,
|
61
|
-
source: partialKcContextCustomMock
|
62
|
-
});
|
63
|
-
if ("profile" in partialKcContextCustomMock) {
|
64
|
-
assert(kcContextDefaultMock !== undefined &&
|
65
|
-
"profile" in kcContextDefaultMock);
|
66
|
-
const { attributes } = kcContextDefaultMock.profile;
|
67
|
-
id(kcContext).profile.attributes = [];
|
68
|
-
const partialAttributes = [
|
69
|
-
...((_b = (_a = partialKcContextCustomMock.profile) === null || _a === void 0 ? void 0 : _a.attributes) !== null && _b !== void 0 ? _b : [])
|
70
|
-
].filter(exclude(undefined));
|
71
|
-
attributes.forEach(attribute => {
|
72
|
-
const partialAttribute = partialAttributes.find(({ name }) => name === attribute.name);
|
73
|
-
const augmentedAttribute = {};
|
74
|
-
deepAssign({
|
75
|
-
target: augmentedAttribute,
|
76
|
-
source: attribute
|
77
|
-
});
|
78
|
-
if (partialAttribute !== undefined) {
|
79
|
-
partialAttributes.splice(partialAttributes.indexOf(partialAttribute), 1);
|
80
|
-
deepAssign({
|
81
|
-
target: augmentedAttribute,
|
82
|
-
source: partialAttribute
|
83
|
-
});
|
84
|
-
}
|
85
|
-
id(kcContext).profile.attributes.push(augmentedAttribute);
|
86
|
-
});
|
87
|
-
partialAttributes
|
88
|
-
.map(partialAttribute => (Object.assign({ validators: {} }, partialAttribute)))
|
89
|
-
.forEach(partialAttribute => {
|
90
|
-
const { name } = partialAttribute;
|
91
|
-
assert(name !== undefined, "If you define a mock attribute it must have at least a name");
|
92
|
-
id(kcContext).profile.attributes.push(partialAttribute);
|
93
|
-
});
|
94
|
-
}
|
95
|
-
}
|
96
|
-
if (mockProperties !== undefined) {
|
97
|
-
deepAssign({
|
98
|
-
target: kcContext.properties,
|
99
|
-
source: mockProperties
|
100
|
-
});
|
101
|
-
}
|
102
|
-
return { kcContext };
|
103
|
-
}
|
104
|
-
if (realKcContext === undefined) {
|
105
|
-
return { kcContext: undefined };
|
106
|
-
}
|
107
|
-
if (realKcContext.themeType !== "login") {
|
108
|
-
return { kcContext: undefined };
|
109
|
-
}
|
110
|
-
return { kcContext: realKcContext };
|
111
|
-
}
|
112
|
-
return { getKcContext };
|
113
|
-
}
|
114
|
-
//# sourceMappingURL=createGetKcContext.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"createGetKcContext.js","sourceRoot":"","sources":["../../src/login/kcContext/createGetKcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,kBAAkB,CAEhC,MAGD;IACG,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAElD,SAAS,YAAY,CAInB,MAKD;;QAKG,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QAE3D,MAAM,aAAa,GAAG,sBAAsB,EAAsB,CAAC;QAEnE,IAAI,UAAU,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC1D,2CAA2C;YAE3C,yBAAyB,EAAE,CAAC;gBACxB,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,yBAAyB,CAAC;gBACpC,CAAC;gBAED,OAAO,CAAC,GAAG,CACP,kBAAkB,QAAQ,CAAC;oBACvB,UAAU;iBACb,CAAC,WAAW,UAAU,GAAG,EAC1B,mDAAmD,CACtD,CAAC;YACN,CAAC;YAED,MAAM,oBAAoB,GAAG,cAAc,CAAC,IAAI,CAC5C,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,CACxC,CAAC;YAEF,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE;gBACrC,MAAM,GAAG,GAAqD,EAAE,CAAC;gBAEjE,MAAM,YAAY,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAC/B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,CACxC,CAAC;gBAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC7B,UAAU,CAAC;wBACP,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,YAAY;qBACvB,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;oBACtC,UAAU,CAAC;wBACP,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,qBAAqB;qBAChC,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3D,CAAC,CAAC,EAAE,CAAC;YAEL,IACI,oBAAoB,KAAK,SAAS;gBAClC,0BAA0B,KAAK,SAAS,EAC1C,CAAC;gBACC,OAAO,CAAC,IAAI,CACR;oBACI,+CAA+C,UAAU,kBAAkB;oBAC3E,6FAA6F;oBAC7F,6DAA6D;iBAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAC;YACN,CAAC;YAED,MAAM,SAAS,GAAQ,EAAE,CAAC;YAE1B,UAAU,CAAC;gBACP,MAAM,EAAE,SAAS;gBACjB,MAAM,EACF,oBAAoB,KAAK,SAAS;oBAC9B,CAAC,CAAC,oBAAoB;oBACtB,CAAC,iBAAG,MAAM,EAAE,UAAU,IAAK,mBAAmB,CAAE;aAC3D,CAAC,CAAC;YAEH,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC3C,UAAU,CAAC;oBACP,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,0BAA0B;iBACrC,CAAC,CAAC;gBAEH,IAAI,SAAS,IAAI,0BAA0B,EAAE,CAAC;oBAC1C,MAAM,CACF,oBAAoB,KAAK,SAAS;wBAC9B,SAAS,IAAI,oBAAoB,CACxC,CAAC;oBAEF,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC;oBAEpD,EAAE,CAAqB,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;oBAE1D,MAAM,iBAAiB,GAAG;wBACtB,GAAG,CAAC,MAAA,MACA,0BACH,CAAC,OAAO,0CAAE,UAAU,mCAAI,EAAE,CAAC;qBAC/B,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;oBAE7B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC3B,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAC3C,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CACxC,CAAC;wBAEF,MAAM,kBAAkB,GAAc,EAAS,CAAC;wBAEhD,UAAU,CAAC;4BACP,MAAM,EAAE,kBAAkB;4BAC1B,MAAM,EAAE,SAAS;yBACpB,CAAC,CAAC;wBAEH,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;4BACjC,iBAAiB,CAAC,MAAM,CACpB,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAC3C,CAAC,CACJ,CAAC;4BAEF,UAAU,CAAC;gCACP,MAAM,EAAE,kBAAkB;gCAC1B,MAAM,EAAE,gBAAgB;6BAC3B,CAAC,CAAC;wBACP,CAAC;wBAED,EAAE,CAAqB,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CACrD,kBAAkB,CACrB,CAAC;oBACN,CAAC,CAAC,CAAC;oBAEH,iBAAiB;yBACZ,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,iBACrB,UAAU,EAAE,EAAE,IACX,gBAAgB,EACrB,CAAC;yBACF,OAAO,CAAC,gBAAgB,CAAC,EAAE;wBACxB,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;wBAElC,MAAM,CACF,IAAI,KAAK,SAAS,EAClB,6DAA6D,CAChE,CAAC;wBAEF,EAAE,CAAqB,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CACrD,gBAAuB,CAC1B,CAAC;oBACN,CAAC,CAAC,CAAC;gBACX,CAAC;YACL,CAAC;YAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC/B,UAAU,CAAC;oBACP,MAAM,EAAE,SAAS,CAAC,UAAU;oBAC5B,MAAM,EAAE,cAAc;iBACzB,CAAC,CAAC;YACP,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,EAAE,SAAS,EAAE,SAAgB,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,aAAa,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,EAAE,SAAS,EAAE,SAAgB,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,aAAoB,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAC5B,CAAC"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import type { DeepPartial } from "../../tools/DeepPartial";
|
2
|
-
import type { ExtendKcContext } from "./getKcContextFromWindow";
|
3
|
-
/** NOTE: We now recommend using createGetKcContext instead of this function to make storybook integration easier
|
4
|
-
* See: https://github.com/keycloakify/keycloakify-starter/blob/main/src/keycloak-theme/account/kcContext.ts
|
5
|
-
*/
|
6
|
-
export declare function getKcContext<KcContextExtension extends {
|
7
|
-
pageId: string;
|
8
|
-
} = never>(params?: {
|
9
|
-
mockPageId?: ExtendKcContext<KcContextExtension>["pageId"];
|
10
|
-
mockData?: readonly DeepPartial<ExtendKcContext<KcContextExtension>>[];
|
11
|
-
}): {
|
12
|
-
kcContext: ExtendKcContext<KcContextExtension> | undefined;
|
13
|
-
};
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { createGetKcContext } from "./createGetKcContext";
|
2
|
-
/** NOTE: We now recommend using createGetKcContext instead of this function to make storybook integration easier
|
3
|
-
* See: https://github.com/keycloakify/keycloakify-starter/blob/main/src/keycloak-theme/account/kcContext.ts
|
4
|
-
*/
|
5
|
-
export function getKcContext(params) {
|
6
|
-
const { mockPageId, mockData } = params !== null && params !== void 0 ? params : {};
|
7
|
-
const { getKcContext } = createGetKcContext({
|
8
|
-
mockData
|
9
|
-
});
|
10
|
-
const { kcContext } = getKcContext({ mockPageId });
|
11
|
-
return { kcContext };
|
12
|
-
}
|
13
|
-
//# sourceMappingURL=getKcContext.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getKcContext.js","sourceRoot":"","sources":["../../src/login/kcContext/getKcContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,YAAY,CAE1B,MAGD;IACG,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAE9C,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAqB;QAC5D,QAAQ;KACX,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAEnD,OAAO,EAAE,SAAS,EAAE,CAAC;AACzB,CAAC"}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
import type { KcContext } from "./KcContext";
|
2
|
-
import type { AndByDiscriminatingKey } from "../../tools/AndByDiscriminatingKey";
|
3
|
-
export type ExtendKcContext<KcContextExtension extends {
|
4
|
-
pageId: string;
|
5
|
-
}> = [
|
6
|
-
KcContextExtension
|
7
|
-
] extends [never] ? KcContext : AndByDiscriminatingKey<"pageId", KcContextExtension & KcContext.Common, KcContext>;
|
8
|
-
export declare function getKcContextFromWindow<KcContextExtension extends {
|
9
|
-
pageId: string;
|
10
|
-
} = never>(): ExtendKcContext<KcContextExtension> | undefined;
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getKcContextFromWindow.js","sourceRoot":"","sources":["../../src/login/kcContext/getKcContextFromWindow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAQnE,MAAM,UAAU,sBAAsB;IAGlC,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,MAAc,CAAC,eAAe,CAAC,CAAC;AACxF,CAAC"}
|
@@ -1,134 +0,0 @@
|
|
1
|
-
import type { DeepPartial } from "keycloakify/tools/DeepPartial";
|
2
|
-
import { deepAssign } from "keycloakify/tools/deepAssign";
|
3
|
-
import { isStorybook } from "keycloakify/lib/isStorybook";
|
4
|
-
import type { ExtendKcContext } from "./getKcContextFromWindow";
|
5
|
-
import { getKcContextFromWindow } from "./getKcContextFromWindow";
|
6
|
-
import { symToStr } from "tsafe/symToStr";
|
7
|
-
import {
|
8
|
-
kcContextMocks,
|
9
|
-
kcContextCommonMock
|
10
|
-
} from "keycloakify/account/kcContext/kcContextMocks";
|
11
|
-
|
12
|
-
export function createGetKcContext<
|
13
|
-
KcContextExtension extends { pageId: string } = never
|
14
|
-
>(params?: {
|
15
|
-
mockData?: readonly DeepPartial<ExtendKcContext<KcContextExtension>>[];
|
16
|
-
mockProperties?: Record<string, string>;
|
17
|
-
}) {
|
18
|
-
const { mockData, mockProperties } = params ?? {};
|
19
|
-
|
20
|
-
function getKcContext<
|
21
|
-
PageId extends
|
22
|
-
| ExtendKcContext<KcContextExtension>["pageId"]
|
23
|
-
| undefined = undefined
|
24
|
-
>(params?: {
|
25
|
-
mockPageId?: PageId;
|
26
|
-
storyPartialKcContext?: DeepPartial<
|
27
|
-
Extract<ExtendKcContext<KcContextExtension>, { pageId: PageId }>
|
28
|
-
>;
|
29
|
-
}): {
|
30
|
-
kcContext: PageId extends undefined
|
31
|
-
? ExtendKcContext<KcContextExtension> | undefined
|
32
|
-
: Extract<ExtendKcContext<KcContextExtension>, { pageId: PageId }>;
|
33
|
-
} {
|
34
|
-
const { mockPageId, storyPartialKcContext } = params ?? {};
|
35
|
-
|
36
|
-
const realKcContext = getKcContextFromWindow<KcContextExtension>();
|
37
|
-
|
38
|
-
if (mockPageId !== undefined && realKcContext === undefined) {
|
39
|
-
//TODO maybe trow if no mock fo custom page
|
40
|
-
|
41
|
-
warn_that_mock_is_enbaled: {
|
42
|
-
if (isStorybook) {
|
43
|
-
break warn_that_mock_is_enbaled;
|
44
|
-
}
|
45
|
-
|
46
|
-
console.log(
|
47
|
-
`%cKeycloakify: ${symToStr({
|
48
|
-
mockPageId
|
49
|
-
})} set to ${mockPageId}.`,
|
50
|
-
"background: red; color: yellow; font-size: medium"
|
51
|
-
);
|
52
|
-
}
|
53
|
-
|
54
|
-
const kcContextDefaultMock = kcContextMocks.find(
|
55
|
-
({ pageId }) => pageId === mockPageId
|
56
|
-
);
|
57
|
-
|
58
|
-
const partialKcContextCustomMock = (() => {
|
59
|
-
const out: DeepPartial<ExtendKcContext<KcContextExtension>> = {};
|
60
|
-
|
61
|
-
const mockDataPick = mockData?.find(
|
62
|
-
({ pageId }) => pageId === mockPageId
|
63
|
-
);
|
64
|
-
|
65
|
-
if (mockDataPick !== undefined) {
|
66
|
-
deepAssign({
|
67
|
-
target: out,
|
68
|
-
source: mockDataPick
|
69
|
-
});
|
70
|
-
}
|
71
|
-
|
72
|
-
if (storyPartialKcContext !== undefined) {
|
73
|
-
deepAssign({
|
74
|
-
target: out,
|
75
|
-
source: storyPartialKcContext
|
76
|
-
});
|
77
|
-
}
|
78
|
-
|
79
|
-
return Object.keys(out).length === 0 ? undefined : out;
|
80
|
-
})();
|
81
|
-
|
82
|
-
if (
|
83
|
-
kcContextDefaultMock === undefined &&
|
84
|
-
partialKcContextCustomMock === undefined
|
85
|
-
) {
|
86
|
-
console.warn(
|
87
|
-
[
|
88
|
-
`WARNING: You declared the non build in page ${mockPageId} but you didn't `,
|
89
|
-
`provide mock data needed to debug the page outside of Keycloak as you are trying to do now.`,
|
90
|
-
`Please check the documentation of the getKcContext function`
|
91
|
-
].join("\n")
|
92
|
-
);
|
93
|
-
}
|
94
|
-
|
95
|
-
const kcContext: any = {};
|
96
|
-
|
97
|
-
deepAssign({
|
98
|
-
target: kcContext,
|
99
|
-
source:
|
100
|
-
kcContextDefaultMock !== undefined
|
101
|
-
? kcContextDefaultMock
|
102
|
-
: { pageId: mockPageId, ...kcContextCommonMock }
|
103
|
-
});
|
104
|
-
|
105
|
-
if (partialKcContextCustomMock !== undefined) {
|
106
|
-
deepAssign({
|
107
|
-
target: kcContext,
|
108
|
-
source: partialKcContextCustomMock
|
109
|
-
});
|
110
|
-
}
|
111
|
-
|
112
|
-
if (mockProperties !== undefined) {
|
113
|
-
deepAssign({
|
114
|
-
target: kcContext.properties,
|
115
|
-
source: mockProperties
|
116
|
-
});
|
117
|
-
}
|
118
|
-
|
119
|
-
return { kcContext };
|
120
|
-
}
|
121
|
-
|
122
|
-
if (realKcContext === undefined) {
|
123
|
-
return { kcContext: undefined as any };
|
124
|
-
}
|
125
|
-
|
126
|
-
if (realKcContext.themeType !== "account") {
|
127
|
-
return { kcContext: undefined as any };
|
128
|
-
}
|
129
|
-
|
130
|
-
return { kcContext: realKcContext as any };
|
131
|
-
}
|
132
|
-
|
133
|
-
return { getKcContext };
|
134
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import type { DeepPartial } from "keycloakify/tools/DeepPartial";
|
2
|
-
import type { ExtendKcContext } from "./getKcContextFromWindow";
|
3
|
-
import { createGetKcContext } from "./createGetKcContext";
|
4
|
-
|
5
|
-
/** NOTE: We now recommend using createGetKcContext instead of this function to make storybook integration easier
|
6
|
-
* See: https://github.com/keycloakify/keycloakify-starter/blob/main/src/keycloak-theme/account/kcContext.ts
|
7
|
-
*/
|
8
|
-
export function getKcContext<
|
9
|
-
KcContextExtension extends { pageId: string } = never
|
10
|
-
>(params?: {
|
11
|
-
mockPageId?: ExtendKcContext<KcContextExtension>["pageId"];
|
12
|
-
mockData?: readonly DeepPartial<ExtendKcContext<KcContextExtension>>[];
|
13
|
-
}): { kcContext: ExtendKcContext<KcContextExtension> | undefined } {
|
14
|
-
const { mockPageId, mockData } = params ?? {};
|
15
|
-
|
16
|
-
const { getKcContext } = createGetKcContext({
|
17
|
-
mockData
|
18
|
-
});
|
19
|
-
|
20
|
-
const { kcContext } = getKcContext({ mockPageId });
|
21
|
-
|
22
|
-
return { kcContext };
|
23
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import type { AndByDiscriminatingKey } from "keycloakify/tools/AndByDiscriminatingKey";
|
2
|
-
import { nameOfTheGlobal } from "keycloakify/bin/shared/constants";
|
3
|
-
import type { KcContext } from "./KcContext";
|
4
|
-
|
5
|
-
export type ExtendKcContext<KcContextExtension extends { pageId: string }> = [
|
6
|
-
KcContextExtension
|
7
|
-
] extends [never]
|
8
|
-
? KcContext
|
9
|
-
: AndByDiscriminatingKey<"pageId", KcContextExtension & KcContext.Common, KcContext>;
|
10
|
-
|
11
|
-
export function getKcContextFromWindow<
|
12
|
-
KcContextExtension extends { pageId: string } = never
|
13
|
-
>(): ExtendKcContext<KcContextExtension> | undefined {
|
14
|
-
return typeof window === "undefined" ? undefined : (window as any)[nameOfTheGlobal];
|
15
|
-
}
|