keycloakify 10.1.3 → 11.0.0
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/account/KcContext/kcContextMocks.js +18 -6
- package/account/KcContext/kcContextMocks.js.map +1 -1
- package/account/Template.js +8 -26
- package/account/Template.js.map +1 -1
- package/account/Template.useInitialize.d.ts +12 -0
- package/account/Template.useInitialize.js +20 -0
- package/account/Template.useInitialize.js.map +1 -0
- package/account/i18n/index.d.ts +5 -5
- package/account/i18n/index.js +1 -1
- package/account/i18n/index.js.map +1 -1
- package/account/i18n/messages_defaultSet/types.d.ts +3 -0
- package/account/i18n/messages_defaultSet/types.js +26 -0
- package/account/i18n/messages_defaultSet/types.js.map +1 -0
- package/account/i18n/noJsx/GenericI18n_noJsx.d.ts +63 -0
- package/account/i18n/noJsx/GenericI18n_noJsx.js +2 -0
- package/account/i18n/noJsx/GenericI18n_noJsx.js.map +1 -0
- package/account/i18n/noJsx/getI18n.d.ts +41 -0
- package/account/i18n/noJsx/getI18n.js +207 -0
- package/account/i18n/noJsx/getI18n.js.map +1 -0
- package/account/i18n/noJsx/i18nBuilder.d.ts +18 -0
- package/account/i18n/noJsx/i18nBuilder.js +27 -0
- package/account/i18n/noJsx/i18nBuilder.js.map +1 -0
- package/account/i18n/noJsx/index.d.ts +3 -0
- package/account/i18n/noJsx/index.js +2 -0
- package/account/i18n/noJsx/index.js.map +1 -0
- package/account/i18n/withJsx/GenericI18n.d.ts +72 -0
- package/account/i18n/withJsx/GenericI18n.js +5 -0
- package/account/i18n/withJsx/GenericI18n.js.map +1 -0
- package/account/i18n/withJsx/i18nBuilder.d.ts +18 -0
- package/account/i18n/withJsx/i18nBuilder.js +27 -0
- package/account/i18n/withJsx/i18nBuilder.js.map +1 -0
- package/account/i18n/withJsx/index.d.ts +3 -0
- package/account/i18n/withJsx/index.js +2 -0
- package/account/i18n/withJsx/index.js.map +1 -0
- package/account/i18n/withJsx/useI18n.d.ts +27 -0
- package/account/i18n/{useI18n.js → withJsx/useI18n.js} +6 -4
- package/account/i18n/withJsx/useI18n.js.map +1 -0
- package/account/index.d.ts +1 -1
- package/account/index.js +1 -1
- package/account/index.js.map +1 -1
- package/account/pages/Totp.js +3 -2
- package/account/pages/Totp.js.map +1 -1
- package/bin/246.index.js +191 -191
- package/bin/499.index.js +252 -68
- package/bin/main.js +1 -1
- package/lib/kcSanitize/HtmlPolicyBuilder.d.ts +28 -0
- package/lib/kcSanitize/HtmlPolicyBuilder.js +209 -0
- package/lib/kcSanitize/HtmlPolicyBuilder.js.map +1 -0
- package/lib/kcSanitize/KcSanitizer.d.ts +12 -0
- package/lib/kcSanitize/KcSanitizer.js +46 -0
- package/lib/kcSanitize/KcSanitizer.js.map +1 -0
- package/lib/kcSanitize/KcSanitizerPolicy.d.ts +24 -0
- package/lib/kcSanitize/KcSanitizerPolicy.js +149 -0
- package/lib/kcSanitize/KcSanitizerPolicy.js.map +1 -0
- package/lib/kcSanitize/index.d.ts +1 -0
- package/lib/kcSanitize/index.js +5 -0
- package/lib/kcSanitize/index.js.map +1 -0
- package/login/KcContext/kcContextMocks.js +24 -6
- package/login/KcContext/kcContextMocks.js.map +1 -1
- package/login/Template.js +7 -7
- package/login/Template.js.map +1 -1
- package/login/{Template.useStylesAndScripts.d.ts → Template.useInitialize.d.ts} +1 -4
- package/login/{Template.useStylesAndScripts.js → Template.useInitialize.js} +5 -23
- package/login/Template.useInitialize.js.map +1 -0
- package/login/i18n/index.d.ts +5 -5
- package/login/i18n/index.js +1 -1
- package/login/i18n/index.js.map +1 -1
- package/login/i18n/messages_defaultSet/types.d.ts +3 -0
- package/login/i18n/messages_defaultSet/types.js +33 -0
- package/login/i18n/messages_defaultSet/types.js.map +1 -0
- package/login/i18n/noJsx/GenericI18n_noJsx.d.ts +63 -0
- package/login/i18n/noJsx/GenericI18n_noJsx.js +2 -0
- package/login/i18n/noJsx/GenericI18n_noJsx.js.map +1 -0
- package/login/i18n/noJsx/getI18n.d.ts +41 -0
- package/login/i18n/noJsx/getI18n.js +207 -0
- package/login/i18n/noJsx/getI18n.js.map +1 -0
- package/login/i18n/noJsx/i18nBuilder.d.ts +18 -0
- package/login/i18n/noJsx/i18nBuilder.js +27 -0
- package/login/i18n/noJsx/i18nBuilder.js.map +1 -0
- package/login/i18n/noJsx/index.d.ts +3 -0
- package/login/i18n/noJsx/index.js +2 -0
- package/login/i18n/noJsx/index.js.map +1 -0
- package/login/i18n/withJsx/GenericI18n.d.ts +72 -0
- package/login/i18n/withJsx/GenericI18n.js +5 -0
- package/login/i18n/withJsx/GenericI18n.js.map +1 -0
- package/login/i18n/withJsx/i18nBuilder.d.ts +18 -0
- package/login/i18n/withJsx/i18nBuilder.js +27 -0
- package/login/i18n/withJsx/i18nBuilder.js.map +1 -0
- package/login/i18n/withJsx/index.d.ts +3 -0
- package/login/i18n/withJsx/index.js +2 -0
- package/login/i18n/withJsx/index.js.map +1 -0
- package/login/i18n/withJsx/useI18n.d.ts +27 -0
- package/login/i18n/{useI18n.js → withJsx/useI18n.js} +6 -4
- package/login/i18n/withJsx/useI18n.js.map +1 -0
- package/login/index.d.ts +1 -1
- package/login/index.js +1 -1
- package/login/index.js.map +1 -1
- package/login/lib/useUserProfileForm.d.ts +1 -1
- package/login/lib/useUserProfileForm.js +2 -1
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Error.js +2 -1
- package/login/pages/Error.js.map +1 -1
- package/login/pages/Info.js +4 -3
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.js +4 -3
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.js +3 -2
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginOtp.js +2 -1
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPassword.js +2 -1
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js +2 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetPassword.js +2 -1
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.js +3 -2
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/Register.js +2 -1
- package/login/pages/Register.js.map +1 -1
- package/package.json +110 -31
- package/src/account/KcContext/kcContextMocks.ts +49 -29
- package/src/account/Template.tsx +11 -32
- package/src/account/Template.useInitialize.ts +35 -0
- package/src/account/i18n/index.ts +5 -5
- package/src/account/i18n/messages_defaultSet/types.ts +30 -0
- package/src/account/i18n/noJsx/GenericI18n_noJsx.ts +64 -0
- package/src/account/i18n/noJsx/getI18n.tsx +341 -0
- package/src/account/i18n/noJsx/i18nBuilder.ts +117 -0
- package/src/account/i18n/noJsx/index.ts +3 -0
- package/src/account/i18n/withJsx/GenericI18n.tsx +81 -0
- package/src/account/i18n/withJsx/i18nBuilder.ts +117 -0
- package/src/account/i18n/withJsx/index.ts +3 -0
- package/src/{login/i18n → account/i18n/withJsx}/useI18n.tsx +43 -11
- package/src/account/index.ts +1 -1
- package/src/account/pages/Totp.tsx +3 -2
- package/src/bin/initialize-account-theme/src/multi-page/i18n.ts +10 -3
- package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +15 -0
- package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +371 -121
- package/src/bin/keycloakify/generateResources/generateResources.ts +8 -6
- package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +61 -29
- package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +15 -9
- package/src/lib/kcSanitize/HtmlPolicyBuilder.ts +252 -0
- package/src/lib/kcSanitize/KcSanitizer.ts +60 -0
- package/src/lib/kcSanitize/KcSanitizerPolicy.ts +294 -0
- package/src/lib/kcSanitize/index.ts +5 -0
- package/src/login/KcContext/kcContextMocks.ts +54 -29
- package/src/login/Template.tsx +11 -17
- package/src/login/{Template.useStylesAndScripts.ts → Template.useInitialize.ts} +5 -29
- package/src/login/i18n/index.ts +5 -5
- package/src/login/i18n/messages_defaultSet/types.ts +37 -0
- package/src/login/i18n/noJsx/GenericI18n_noJsx.ts +64 -0
- package/src/login/i18n/noJsx/getI18n.tsx +341 -0
- package/src/login/i18n/noJsx/i18nBuilder.ts +117 -0
- package/src/login/i18n/noJsx/index.ts +3 -0
- package/src/login/i18n/withJsx/GenericI18n.tsx +81 -0
- package/src/login/i18n/withJsx/i18nBuilder.ts +117 -0
- package/src/login/i18n/withJsx/index.ts +3 -0
- package/src/{account/i18n → login/i18n/withJsx}/useI18n.tsx +43 -11
- package/src/login/index.ts +1 -1
- package/src/login/lib/useUserProfileForm.tsx +3 -2
- package/src/login/pages/Error.tsx +2 -1
- package/src/login/pages/Info.tsx +13 -10
- package/src/login/pages/Login.tsx +4 -3
- package/src/login/pages/LoginConfigTotp.tsx +3 -2
- package/src/login/pages/LoginOtp.tsx +2 -1
- package/src/login/pages/LoginPassword.tsx +2 -1
- package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +2 -1
- package/src/login/pages/LoginResetPassword.tsx +2 -1
- package/src/login/pages/LoginUpdatePassword.tsx +3 -2
- package/src/login/pages/Register.tsx +2 -1
- package/src/tools/useInsertScriptTags.ts +1 -1
- package/src/tools/vendor/dompurify.ts +3 -0
- package/stories/intro/intro.stories.tsx +0 -1
- package/tools/useInsertScriptTags.d.ts +1 -1
- package/tools/vendor/dompurify.d.ts +2 -0
- package/tools/vendor/dompurify.js +2 -0
- package/account/i18n/GenericI18n.d.ts +0 -6
- package/account/i18n/GenericI18n.js +0 -2
- package/account/i18n/GenericI18n.js.map +0 -1
- package/account/i18n/i18n.d.ts +0 -87
- package/account/i18n/i18n.js +0 -111
- package/account/i18n/i18n.js.map +0 -1
- package/account/i18n/useI18n.d.ts +0 -14
- package/account/i18n/useI18n.js.map +0 -1
- package/login/Template.useStylesAndScripts.js.map +0 -1
- package/login/i18n/GenericI18n.d.ts +0 -6
- package/login/i18n/GenericI18n.js +0 -2
- package/login/i18n/GenericI18n.js.map +0 -1
- package/login/i18n/i18n.d.ts +0 -87
- package/login/i18n/i18n.js +0 -113
- package/login/i18n/i18n.js.map +0 -1
- package/login/i18n/useI18n.d.ts +0 -14
- package/login/i18n/useI18n.js.map +0 -1
- package/src/account/i18n/GenericI18n.tsx +0 -6
- package/src/account/i18n/i18n.tsx +0 -250
- package/src/login/i18n/GenericI18n.tsx +0 -6
- package/src/login/i18n/i18n.tsx +0 -252
@@ -0,0 +1,27 @@
|
|
1
|
+
import { createGetI18n } from "./getI18n";
|
2
|
+
function createI18nBuilder(params) {
|
3
|
+
const i18nBuilder = {
|
4
|
+
withThemeName: () => createI18nBuilder({
|
5
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
6
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
7
|
+
}),
|
8
|
+
withExtraLanguages: extraLanguageTranslations => createI18nBuilder({
|
9
|
+
extraLanguageTranslations,
|
10
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
11
|
+
}),
|
12
|
+
withCustomTranslations: messagesByLanguageTag_themeDefined => createI18nBuilder({
|
13
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
14
|
+
messagesByLanguageTag_themeDefined
|
15
|
+
}),
|
16
|
+
build: () => createGetI18n({
|
17
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
18
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
19
|
+
})
|
20
|
+
};
|
21
|
+
return i18nBuilder;
|
22
|
+
}
|
23
|
+
export const i18nBuilder = createI18nBuilder({
|
24
|
+
extraLanguageTranslations: {},
|
25
|
+
messagesByLanguageTag_themeDefined: {}
|
26
|
+
});
|
27
|
+
//# sourceMappingURL=i18nBuilder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"i18nBuilder.js","sourceRoot":"","sources":["../../../src/account/i18n/noJsx/i18nBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkC,aAAa,EAAE,MAAM,WAAW,CAAC;AAwD1E,SAAS,iBAAiB,CAIxB,MAeD;IACG,MAAM,WAAW,GAIb;QACA,aAAa,EAAE,GAAG,EAAE,CAChB,iBAAiB,CAAC;YACd,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC,EAC9B,MAAM,CAAC,kCAAyC;SACvD,CAAC;QACN,kBAAkB,EAAE,yBAAyB,CAAC,EAAE,CAC5C,iBAAiB,CAAC;YACd,yBAAyB;YACzB,kCAAkC,EAC9B,MAAM,CAAC,kCAAyC;SACvD,CAAC;QACN,sBAAsB,EAAE,kCAAkC,CAAC,EAAE,CACzD,iBAAiB,CAAC;YACd,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC;SACrC,CAAC;QACN,KAAK,EAAE,GAAG,EAAE,CACR,aAAa,CAAC;YACV,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC,EAC9B,MAAM,CAAC,kCAAkC;SAChD,CAAC;KACT,CAAC;IAEF,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACzC,yBAAyB,EAAE,EAAE;IAC7B,kCAAkC,EAAE,EAAE;CACzC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/account/i18n/noJsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
export type GenericI18n<MessageKey extends string, LanguageTag extends string> = {
|
3
|
+
currentLanguage: {
|
4
|
+
/**
|
5
|
+
* e.g: "en", "fr", "zh-CN"
|
6
|
+
*
|
7
|
+
* The current language
|
8
|
+
*/
|
9
|
+
languageTag: LanguageTag;
|
10
|
+
/**
|
11
|
+
* e.g: "English", "Français", "中文(简体)"
|
12
|
+
*
|
13
|
+
* The current language
|
14
|
+
*/
|
15
|
+
label: string;
|
16
|
+
};
|
17
|
+
/**
|
18
|
+
* Array of languages enabled on the realm.
|
19
|
+
*/
|
20
|
+
enabledLanguages: {
|
21
|
+
languageTag: LanguageTag;
|
22
|
+
label: string;
|
23
|
+
href: string;
|
24
|
+
}[];
|
25
|
+
/**
|
26
|
+
*
|
27
|
+
* Examples assuming currentLanguageTag === "en"
|
28
|
+
* {
|
29
|
+
* en: {
|
30
|
+
* "access-denied": "Access denied",
|
31
|
+
* "impersonateTitleHtml": "<strong>{0}</strong> Impersonate User",
|
32
|
+
* "bar": "Bar {0}"
|
33
|
+
* }
|
34
|
+
* }
|
35
|
+
*
|
36
|
+
* msgStr("access-denied") === "Access denied"
|
37
|
+
* msgStr("not-a-message-key") Throws an error
|
38
|
+
* msgStr("impersonateTitleHtml", "Foo") === "<strong>Foo</strong> Impersonate User"
|
39
|
+
* msgStr("${bar}", "<strong>c</strong>") === "Bar <strong>XXX</strong>"
|
40
|
+
* The html in the arg is partially escaped for security reasons, it might come from an untrusted source, it's not safe to render it as html.
|
41
|
+
*/
|
42
|
+
msgStr: (key: MessageKey, ...args: (string | undefined)[]) => string;
|
43
|
+
/**
|
44
|
+
* This is meant to be used when the key argument is variable, something that might have been configured by the user
|
45
|
+
* in the Keycloak admin for example.
|
46
|
+
*
|
47
|
+
* Examples assuming currentLanguageTag === "en"
|
48
|
+
* {
|
49
|
+
* en: {
|
50
|
+
* "access-denied": "Access denied",
|
51
|
+
* }
|
52
|
+
* }
|
53
|
+
*
|
54
|
+
* advancedMsgStr("${access-denied}") === advancedMsgStr("access-denied") === msgStr("access-denied") === "Access denied"
|
55
|
+
* advancedMsgStr("${not-a-message-key}") === advancedMsgStr("not-a-message-key") === "not-a-message-key"
|
56
|
+
*/
|
57
|
+
advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
|
58
|
+
/**
|
59
|
+
* Initially the messages are in english (fallback language).
|
60
|
+
* The translations in the current language are being fetched dynamically.
|
61
|
+
* This property is true while the translations are being fetched.
|
62
|
+
*/
|
63
|
+
isFetchingTranslations: boolean;
|
64
|
+
/**
|
65
|
+
* Same as msgStr but returns a JSX.Element with the html string rendered as html.
|
66
|
+
*/
|
67
|
+
msg: (key: MessageKey, ...args: (string | undefined)[]) => JSX.Element;
|
68
|
+
/**
|
69
|
+
* Same as advancedMsgStr but returns a JSX.Element with the html string rendered as html.
|
70
|
+
*/
|
71
|
+
advancedMsg: (key: string, ...args: (string | undefined)[]) => JSX.Element;
|
72
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"GenericI18n.js","sourceRoot":"","sources":["../../../src/account/i18n/withJsx/GenericI18n.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAe,MAAM,cAAc,CAAC;AA0EnD;IAII,MAAoB,CAAC;CACxB"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type { LanguageTag as LanguageTag_defaultSet, MessageKey as MessageKey_defaultSet } from "../messages_defaultSet/types";
|
2
|
+
import { type ReturnTypeOfCreateUseI18n } from "../withJsx/useI18n";
|
3
|
+
export type I18nBuilder<ThemeName extends string = never, MessageKey_themeDefined extends string = never, LanguageTag_notInDefaultSet extends string = never, ExcludedMethod extends "withThemeName" | "withExtraLanguages" | "withCustomTranslations" = never> = Omit<{
|
4
|
+
withThemeName: <ThemeName extends string>() => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withThemeName">;
|
5
|
+
withExtraLanguages: <LanguageTag_notInDefaultSet extends string>(extraLanguageTranslations: {
|
6
|
+
[LanguageTag in LanguageTag_notInDefaultSet]: {
|
7
|
+
label: string;
|
8
|
+
getMessages: () => Promise<{
|
9
|
+
default: Record<MessageKey_defaultSet, string>;
|
10
|
+
}>;
|
11
|
+
};
|
12
|
+
}) => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withExtraLanguages">;
|
13
|
+
withCustomTranslations: <MessageKey_themeDefined extends string>(messagesByLanguageTag_themeDefined: Partial<{
|
14
|
+
[LanguageTag in LanguageTag_defaultSet | LanguageTag_notInDefaultSet]: Record<MessageKey_themeDefined, string | Record<ThemeName, string>>;
|
15
|
+
}>) => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withCustomTranslations">;
|
16
|
+
build: () => ReturnTypeOfCreateUseI18n<MessageKey_themeDefined, LanguageTag_notInDefaultSet>;
|
17
|
+
}, ExcludedMethod>;
|
18
|
+
export declare const i18nBuilder: I18nBuilder<never, never, never, never>;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { createUseI18n } from "../withJsx/useI18n";
|
2
|
+
function createI18nBuilder(params) {
|
3
|
+
const i18nBuilder = {
|
4
|
+
withThemeName: () => createI18nBuilder({
|
5
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
6
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
7
|
+
}),
|
8
|
+
withExtraLanguages: extraLanguageTranslations => createI18nBuilder({
|
9
|
+
extraLanguageTranslations,
|
10
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
11
|
+
}),
|
12
|
+
withCustomTranslations: messagesByLanguageTag_themeDefined => createI18nBuilder({
|
13
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
14
|
+
messagesByLanguageTag_themeDefined
|
15
|
+
}),
|
16
|
+
build: () => createUseI18n({
|
17
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
18
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
19
|
+
})
|
20
|
+
};
|
21
|
+
return i18nBuilder;
|
22
|
+
}
|
23
|
+
export const i18nBuilder = createI18nBuilder({
|
24
|
+
extraLanguageTranslations: {},
|
25
|
+
messagesByLanguageTag_themeDefined: {}
|
26
|
+
});
|
27
|
+
//# sourceMappingURL=i18nBuilder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"i18nBuilder.js","sourceRoot":"","sources":["../../../src/account/i18n/withJsx/i18nBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkC,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAwDnF,SAAS,iBAAiB,CAIxB,MAeD;IACG,MAAM,WAAW,GAIb;QACA,aAAa,EAAE,GAAG,EAAE,CAChB,iBAAiB,CAAC;YACd,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC,EAC9B,MAAM,CAAC,kCAAyC;SACvD,CAAC;QACN,kBAAkB,EAAE,yBAAyB,CAAC,EAAE,CAC5C,iBAAiB,CAAC;YACd,yBAAyB;YACzB,kCAAkC,EAC9B,MAAM,CAAC,kCAAyC;SACvD,CAAC;QACN,sBAAsB,EAAE,kCAAkC,CAAC,EAAE,CACzD,iBAAiB,CAAC;YACd,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC;SACrC,CAAC;QACN,KAAK,EAAE,GAAG,EAAE,CACR,aAAa,CAAC;YACV,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC,EAC9B,MAAM,CAAC,kCAAkC;SAChD,CAAC;KACT,CAAC;IAEF,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACzC,yBAAyB,EAAE,EAAE;IAC7B,kCAAkC,EAAE,EAAE;CACzC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/account/i18n/withJsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { type KcContextLike } from "../noJsx/getI18n";
|
2
|
+
import type { GenericI18n } from "./GenericI18n";
|
3
|
+
import type { LanguageTag as LanguageTag_defaultSet, MessageKey as MessageKey_defaultSet } from "../messages_defaultSet/types";
|
4
|
+
export type ReturnTypeOfCreateUseI18n<MessageKey_themeDefined extends string, LanguageTag_notInDefaultSet extends string> = {
|
5
|
+
useI18n: (params: {
|
6
|
+
kcContext: KcContextLike;
|
7
|
+
}) => {
|
8
|
+
i18n: GenericI18n<MessageKey_defaultSet | MessageKey_themeDefined, LanguageTag_defaultSet | LanguageTag_notInDefaultSet>;
|
9
|
+
};
|
10
|
+
ofTypeI18n: GenericI18n<MessageKey_defaultSet | MessageKey_themeDefined, LanguageTag_defaultSet | LanguageTag_notInDefaultSet>;
|
11
|
+
};
|
12
|
+
export { KcContextLike };
|
13
|
+
export declare function createUseI18n<ThemeName extends string = string, MessageKey_themeDefined extends string = never, LanguageTag_notInDefaultSet extends string = never>(params: {
|
14
|
+
extraLanguageTranslations: {
|
15
|
+
[languageTag in LanguageTag_notInDefaultSet]: {
|
16
|
+
label: string;
|
17
|
+
getMessages: () => Promise<{
|
18
|
+
default: Record<MessageKey_defaultSet, string>;
|
19
|
+
}>;
|
20
|
+
};
|
21
|
+
};
|
22
|
+
messagesByLanguageTag_themeDefined: Partial<{
|
23
|
+
[languageTag in LanguageTag_defaultSet | LanguageTag_notInDefaultSet]: {
|
24
|
+
[key in MessageKey_themeDefined]: string | Record<ThemeName, string>;
|
25
|
+
};
|
26
|
+
}>;
|
27
|
+
}): ReturnTypeOfCreateUseI18n<MessageKey_themeDefined, LanguageTag_notInDefaultSet>;
|
@@ -1,14 +1,16 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { useEffect, useState } from "react";
|
3
|
-
import {
|
3
|
+
import { kcSanitize } from "../../../lib/kcSanitize";
|
4
|
+
import { createGetI18n } from "../noJsx/getI18n";
|
4
5
|
import { Reflect } from "tsafe/Reflect";
|
5
|
-
export function createUseI18n(
|
6
|
+
export function createUseI18n(params) {
|
7
|
+
const { extraLanguageTranslations, messagesByLanguageTag_themeDefined } = params;
|
6
8
|
const { withJsx } = (() => {
|
7
9
|
const cache = new WeakMap();
|
8
10
|
function renderHtmlString(params) {
|
9
11
|
const { htmlString, msgKey } = params;
|
10
12
|
return (_jsx("div", { "data-kc-msg": msgKey, dangerouslySetInnerHTML: {
|
11
|
-
__html: htmlString
|
13
|
+
__html: kcSanitize(htmlString)
|
12
14
|
} }));
|
13
15
|
}
|
14
16
|
function withJsx(i18n_noJsx) {
|
@@ -35,7 +37,7 @@ export function createUseI18n(messagesByLanguageTag) {
|
|
35
37
|
styleElement.attributes.setNamedItem(document.createAttribute(attributeName));
|
36
38
|
(styleElement.textContent = `[data-kc-msg] { display: inline-block; }`), document.head.prepend(styleElement);
|
37
39
|
}
|
38
|
-
const { getI18n } = createGetI18n(
|
40
|
+
const { getI18n } = createGetI18n({ extraLanguageTranslations, messagesByLanguageTag_themeDefined });
|
39
41
|
function useI18n(params) {
|
40
42
|
const { kcContext } = params;
|
41
43
|
const { i18n, prI18n_currentLanguage } = getI18n({ kcContext });
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useI18n.js","sourceRoot":"","sources":["../../../src/account/i18n/withJsx/useI18n.tsx"],"names":[],"mappings":"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"}
|
package/account/index.d.ts
CHANGED
package/account/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export {
|
1
|
+
export { i18nBuilder } from "../account/i18n";
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/account/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/account/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/account/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA8B,MAAM,0BAA0B,CAAC"}
|
package/account/pages/Totp.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
2
|
import { clsx } from "../../tools/clsx";
|
3
3
|
import { getKcClsx } from "../../account/lib/kcClsx";
|
4
|
+
import { kcSanitize } from "../../lib/kcSanitize";
|
4
5
|
export default function Totp(props) {
|
5
6
|
var _a;
|
6
7
|
const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
|
@@ -11,9 +12,9 @@ export default function Totp(props) {
|
|
11
12
|
const { totp, mode, url, messagesPerField, stateChecker } = kcContext;
|
12
13
|
const { msg, msgStr, advancedMsg } = i18n;
|
13
14
|
return (_jsx(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { active: "totp" }, { children: _jsxs(_Fragment, { children: [_jsxs("div", Object.assign({ className: "row" }, { children: [_jsx("div", Object.assign({ className: "col-md-10" }, { children: _jsx("h2", { children: msg("authenticatorTitle") }) })), totp.otpCredentials.length === 0 && (_jsxs("div", Object.assign({ className: "subtitle col-md-2" }, { children: [_jsx("span", Object.assign({ className: "required" }, { children: "*" })), msg("requiredFields")] })))] })), totp.enabled && (_jsxs("table", Object.assign({ className: "table table-bordered table-striped" }, { children: [_jsx("thead", { children: totp.otpCredentials.length > 1 ? (_jsx("tr", { children: _jsx("th", Object.assign({ colSpan: 4 }, { children: msg("configureAuthenticators") })) })) : (_jsx("tr", { children: _jsx("th", Object.assign({ colSpan: 3 }, { children: msg("configureAuthenticators") })) })) }), _jsx("tbody", { children: totp.otpCredentials.map((credential, index) => (_jsxs("tr", { children: [_jsx("td", Object.assign({ className: "provider" }, { children: msg("mobile") })), totp.otpCredentials.length > 1 && _jsx("td", Object.assign({ className: "provider" }, { children: credential.id })), _jsx("td", Object.assign({ className: "provider" }, { children: credential.userLabel || "" })), _jsx("td", Object.assign({ className: "action" }, { children: _jsxs("form", Object.assign({ action: url.totpUrl, method: "post", className: "form-inline" }, { children: [_jsx("input", { type: "hidden", id: "stateChecker", name: "stateChecker", value: stateChecker }), _jsx("input", { type: "hidden", id: "submitAction", name: "submitAction", value: "Delete" }), _jsx("input", { type: "hidden", id: "credentialId", name: "credentialId", value: credential.id }), _jsx("button", Object.assign({ id: `remove-mobile-${index}`, className: "btn btn-default" }, { children: _jsx("i", { className: "pficon pficon-delete" }) }))] })) }))] }, index))) })] }))), !totp.enabled && (_jsxs("div", { children: [_jsx("hr", {}), _jsxs("ol", Object.assign({ id: "kc-totp-settings" }, { children: [_jsxs("li", { children: [_jsx("p", { children: msg("totpStep1") }), _jsx("ul", Object.assign({ id: "kc-totp-supported-apps" }, { children: (_a = totp.supportedApplications) === null || _a === void 0 ? void 0 : _a.map(app => _jsx("li", { children: advancedMsg(app) }, app)) }))] }), mode && mode == "manual" ? (_jsxs(_Fragment, { children: [_jsxs("li", { children: [_jsx("p", { children: msg("totpManualStep2") }), _jsx("p", { children: _jsx("span", Object.assign({ id: "kc-totp-secret-key" }, { children: totp.totpSecretEncoded })) }), _jsx("p", { children: _jsx("a", Object.assign({ href: totp.qrUrl, id: "mode-barcode" }, { children: msg("totpScanBarcode") })) })] }), _jsxs("li", { children: [_jsx("p", { children: msg("totpManualStep3") }), _jsxs("ul", { children: [_jsxs("li", Object.assign({ id: "kc-totp-type" }, { children: [msg("totpType"), ": ", msg(`totp.${totp.policy.type}`)] })), _jsxs("li", Object.assign({ id: "kc-totp-algorithm" }, { children: [msg("totpAlgorithm"), ": ", totp.policy.getAlgorithmKey()] })), _jsxs("li", Object.assign({ id: "kc-totp-digits" }, { children: [msg("totpDigits"), ": ", totp.policy.digits] })), totp.policy.type === "totp" ? (_jsxs("li", Object.assign({ id: "kc-totp-period" }, { children: [msg("totpInterval"), ": ", totp.policy.period] }))) : (_jsxs("li", Object.assign({ id: "kc-totp-counter" }, { children: [msg("totpCounter"), ": ", totp.policy.initialCounter] })))] })] })] })) : (_jsxs("li", { children: [_jsx("p", { children: msg("totpStep2") }), _jsx("p", { children: _jsx("img", { id: "kc-totp-secret-qr-code", src: `data:image/png;base64, ${totp.totpSecretQrCode}`, alt: "Figure: Barcode" }) }), _jsx("p", { children: _jsx("a", Object.assign({ href: totp.manualUrl, id: "mode-manual" }, { children: msg("totpUnableToScan") })) })] })), _jsxs("li", { children: [_jsx("p", { children: msg("totpStep3") }), _jsx("p", { children: msg("totpStep3DeviceName") })] })] })), _jsx("hr", {}), _jsxs("form", Object.assign({ action: url.totpUrl, className: kcClsx("kcFormClass"), id: "kc-totp-settings-form", method: "post" }, { children: [_jsx("input", { type: "hidden", id: "stateChecker", name: "stateChecker", value: stateChecker }), _jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "totp", className: "control-label" }, { children: msg("authenticatorCode") })), _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsxs("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: [_jsx("input", { type: "text", id: "totp", name: "totp", autoComplete: "off", className: kcClsx("kcInputClass"), "aria-invalid": messagesPerField.existsError("totp") }), messagesPerField.existsError("totp") && (_jsx("span", { id: "input-error-otp-code", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite", dangerouslySetInnerHTML: {
|
14
|
-
__html: messagesPerField.get("totp")
|
15
|
+
__html: kcSanitize(messagesPerField.get("totp"))
|
15
16
|
} }))] })), _jsx("input", { type: "hidden", id: "totpSecret", name: "totpSecret", value: totp.totpSecret }), mode && _jsx("input", { type: "hidden", id: "mode", value: mode })] })), _jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsxs("div", Object.assign({ className: "col-sm-2 col-md-2" }, { children: [_jsx("label", Object.assign({ htmlFor: "userLabel", className: kcClsx("kcLabelClass") }, { children: msg("totpDeviceName") })), totp.otpCredentials.length >= 1 && _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsxs("div", Object.assign({ className: "col-sm-10 col-md-10" }, { children: [_jsx("input", { type: "text", id: "userLabel", name: "userLabel", autoComplete: "off", className: kcClsx("kcInputClass"), "aria-invalid": messagesPerField.existsError("userLabel") }), messagesPerField.existsError("userLabel") && (_jsx("span", { id: "input-error-otp-label", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite", dangerouslySetInnerHTML: {
|
16
|
-
__html: messagesPerField.get("userLabel")
|
17
|
+
__html: kcSanitize(messagesPerField.get("userLabel"))
|
17
18
|
} }))] }))] })), _jsx("div", Object.assign({ id: "kc-form-buttons", className: clsx(kcClsx("kcFormGroupClass"), "text-right") }, { children: _jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { children: [_jsx("input", { type: "submit", className: kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonLargeClass"), id: "saveTOTPBtn", value: msgStr("doSave") }), _jsx("button", Object.assign({ type: "submit", className: kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass", "kcButtonLargeClass"), id: "cancelTOTPBtn", name: "submitAction", value: "Cancel" }, { children: msg("doCancel") }))] })) }))] }))] }))] }) })));
|
18
19
|
}
|
19
20
|
//# sourceMappingURL=Totp.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Totp.js","sourceRoot":"","sources":["../../src/account/pages/Totp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;
|
1
|
+
{"version":3,"file":"Totp.js","sourceRoot":"","sources":["../../src/account/pages/Totp.tsx"],"names":[],"mappings":"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"}
|