keycloakify 10.0.4 → 10.0.6
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/README.md +1 -1
- package/bin/440.index.js +38 -51
- package/bin/599.index.js +4 -1
- package/login/pages/Login.js +3 -3
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginUsername.js +3 -3
- package/login/pages/LoginUsername.js.map +1 -1
- package/package.json +1 -1
- package/src/bin/initialize-account-theme/initializeAccountTheme_singlePage.ts +4 -1
- package/src/bin/keycloakify/buildJars/buildJar.ts +0 -19
- package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +18 -22
- package/src/bin/keycloakify/keycloakify.ts +38 -21
- package/src/login/pages/Login.tsx +1 -1
- package/src/login/pages/LoginUsername.tsx +1 -1
package/README.md
CHANGED
@@ -41,7 +41,7 @@
|
|
41
41
|
<img width="400" src="https://github.com/user-attachments/assets/6bf3bef9-00b0-4460-97b9-0d2da8500798">
|
42
42
|
</p>
|
43
43
|
|
44
|
-
Keycloakify is fully compatible with Keycloak
|
44
|
+
Keycloakify is fully compatible with Keycloak from version 11 to 25...[and beyond](https://github.com/keycloakify/keycloakify/discussions/346#discussioncomment-5889791)
|
45
45
|
|
46
46
|
## Sponsors
|
47
47
|
|
package/bin/440.index.js
CHANGED
@@ -682,8 +682,9 @@ function writeMetaInfKeycloakThemes(params) {
|
|
682
682
|
var objectEntries = __webpack_require__(39612);
|
683
683
|
// EXTERNAL MODULE: ./dist/bin/tools/escapeStringForPropertiesFile.js
|
684
684
|
var escapeStringForPropertiesFile = __webpack_require__(27190);
|
685
|
-
// EXTERNAL MODULE:
|
686
|
-
var
|
685
|
+
// EXTERNAL MODULE: external "child_process"
|
686
|
+
var external_child_process_ = __webpack_require__(32081);
|
687
|
+
var external_child_process_default = /*#__PURE__*/__webpack_require__.n(external_child_process_);
|
687
688
|
;// CONCATENATED MODULE: ./dist/bin/keycloakify/generateResources/generateResourcesForMainTheme.js
|
688
689
|
|
689
690
|
|
@@ -884,22 +885,17 @@ async function generateResourcesForMainTheme(params) {
|
|
884
885
|
if (buildContext.implementedThemeTypes.account.type !== "Single-Page") {
|
885
886
|
break bring_in_account_v3_i18n_messages;
|
886
887
|
}
|
887
|
-
const
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
await writeFile({
|
897
|
-
fileRelativePath: (0,external_path_.basename)(fileRelativePath)
|
898
|
-
});
|
899
|
-
}
|
900
|
-
});
|
888
|
+
const accountUiDirPath = external_child_process_.execSync("npm list @keycloakify/keycloak-account-ui --parseable", {
|
889
|
+
cwd: (0,external_path_.dirname)(buildContext.packageJsonFilePath)
|
890
|
+
})
|
891
|
+
.toString("utf8")
|
892
|
+
.trim();
|
893
|
+
const messagesDirPath = (0,external_path_.join)(accountUiDirPath, "messages");
|
894
|
+
if (!external_fs_.existsSync(messagesDirPath)) {
|
895
|
+
throw new Error(`Please update @keycloakify/keycloak-account-ui to 25.0.4-rc.5 or later.`);
|
896
|
+
}
|
901
897
|
(0,transformCodebase/* transformCodebase */.N)({
|
902
|
-
srcDirPath:
|
898
|
+
srcDirPath: messagesDirPath,
|
903
899
|
destDirPath: (0,external_path_.join)(getThemeTypeDirPath({ themeType: "account" }), "messages")
|
904
900
|
});
|
905
901
|
}
|
@@ -996,9 +992,6 @@ async function generateResources(params) {
|
|
996
992
|
;// CONCATENATED MODULE: ./dist/bin/keycloakify/generateResources/index.js
|
997
993
|
|
998
994
|
//# sourceMappingURL=index.js.map
|
999
|
-
// EXTERNAL MODULE: external "child_process"
|
1000
|
-
var external_child_process_ = __webpack_require__(32081);
|
1001
|
-
var external_child_process_default = /*#__PURE__*/__webpack_require__.n(external_child_process_);
|
1002
995
|
// EXTERNAL MODULE: ./dist/bin/shared/buildContext.js + 1 modules
|
1003
996
|
var shared_buildContext = __webpack_require__(56031);
|
1004
997
|
;// CONCATENATED MODULE: ./dist/bin/keycloakify/buildJars/extensionVersions.js
|
@@ -1208,23 +1201,6 @@ async function buildJar(params) {
|
|
1208
1201
|
if (!buildContext.implementedThemeTypes.login.isImplemented) {
|
1209
1202
|
break route_legacy_pages;
|
1210
1203
|
}
|
1211
|
-
// NOTE: If there's no account theme there is no special target for keycloak 24 and up so we create
|
1212
|
-
// the pages anyway. If there is an account pages, since we know that account-v1 is only support keycloak
|
1213
|
-
// 24 in version 0.4 and up, we can safely break the route for legacy pages.
|
1214
|
-
const doBreak = (() => {
|
1215
|
-
switch (keycloakAccountV1Version) {
|
1216
|
-
case null:
|
1217
|
-
return false;
|
1218
|
-
case "0.3":
|
1219
|
-
return false;
|
1220
|
-
default:
|
1221
|
-
return true;
|
1222
|
-
}
|
1223
|
-
})();
|
1224
|
-
// TODO: Remove this optimization, it's a bit hacky.
|
1225
|
-
if (doBreak) {
|
1226
|
-
break route_legacy_pages;
|
1227
|
-
}
|
1228
1204
|
["register.ftl", "login-update-profile.ftl"].forEach(pageId => buildContext.themeNames.map(themeName => {
|
1229
1205
|
const ftlFilePath = (0,external_path_.join)(tmpResourcesDirPath, "theme", themeName, "login", pageId);
|
1230
1206
|
const ftlFileContent = (0,external_fs_.readFileSync)(ftlFilePath).toString("utf8");
|
@@ -1322,6 +1298,8 @@ var external_os_ = __webpack_require__(22037);
|
|
1322
1298
|
|
1323
1299
|
|
1324
1300
|
async function command(params) {
|
1301
|
+
const { cliCommandOptions } = params;
|
1302
|
+
const buildContext = (0,shared_buildContext/* getBuildContext */.s)({ cliCommandOptions });
|
1325
1303
|
exit_if_maven_not_installed: {
|
1326
1304
|
let commandOutput = undefined;
|
1327
1305
|
try {
|
@@ -1333,22 +1311,31 @@ async function command(params) {
|
|
1333
1311
|
if (commandOutput === null || commandOutput === void 0 ? void 0 : commandOutput.toString("utf8").includes("Apache Maven")) {
|
1334
1312
|
break exit_if_maven_not_installed;
|
1335
1313
|
}
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1340
|
-
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1314
|
+
if (external_fs_.readFileSync(buildContext.packageJsonFilePath)
|
1315
|
+
.toString("utf8")
|
1316
|
+
.includes(`"mvn"`)) {
|
1317
|
+
console.log(source_default().red([
|
1318
|
+
"Please remove the 'mvn' package from your package.json'dependencies list,",
|
1319
|
+
"reinstall your dependencies and try again.",
|
1320
|
+
"We need the Apache Maven CLI, not this: https://www.npmjs.com/package/mvn"
|
1321
|
+
].join(" ")));
|
1322
|
+
}
|
1323
|
+
else {
|
1324
|
+
const installationCommand = (() => {
|
1325
|
+
switch (external_os_.platform()) {
|
1326
|
+
case "darwin":
|
1327
|
+
return "brew install mvn";
|
1328
|
+
case "win32":
|
1329
|
+
return "choco install mvn";
|
1330
|
+
case "linux":
|
1331
|
+
default:
|
1332
|
+
return "sudo apt-get install mvn";
|
1333
|
+
}
|
1334
|
+
})();
|
1335
|
+
console.log(`${source_default().red("Apache Maven required.")} Install it with \`${source_default().bold(installationCommand)}\` (for example)`);
|
1336
|
+
}
|
1348
1337
|
process.exit(1);
|
1349
1338
|
}
|
1350
|
-
const { cliCommandOptions } = params;
|
1351
|
-
const buildContext = (0,shared_buildContext/* getBuildContext */.s)({ cliCommandOptions });
|
1352
1339
|
console.log([
|
1353
1340
|
source_default().cyan(`keycloakify v${(0,readThisNpmPackageVersion/* readThisNpmPackageVersion */.K)()}`),
|
1354
1341
|
source_default().green(`Building the keycloak theme in .${external_path_.sep}${(0,external_path_.relative)(process.cwd(), buildContext.keycloakifyBuildDirPath)} ...`)
|
package/bin/599.index.js
CHANGED
@@ -56,6 +56,8 @@ var source = __webpack_require__(78818);
|
|
56
56
|
var source_default = /*#__PURE__*/__webpack_require__.n(source);
|
57
57
|
// EXTERNAL MODULE: ./dist/bin/shared/getLatestsSemVersionedTag.js + 2 modules
|
58
58
|
var getLatestsSemVersionedTag = __webpack_require__(97189);
|
59
|
+
// EXTERNAL MODULE: ./dist/bin/tools/SemVer.js
|
60
|
+
var SemVer = __webpack_require__(12171);
|
59
61
|
// EXTERNAL MODULE: ./node_modules/make-fetch-happen/lib/index.js
|
60
62
|
var lib = __webpack_require__(9525);
|
61
63
|
var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
|
@@ -137,6 +139,7 @@ var getThisCodebaseRootDirPath = __webpack_require__(58822);
|
|
137
139
|
|
138
140
|
|
139
141
|
|
142
|
+
|
140
143
|
(0,assert.assert)();
|
141
144
|
async function initializeAccountTheme_singlePage(params) {
|
142
145
|
const { accountThemeSrcDirPath, buildContext } = params;
|
@@ -162,7 +165,7 @@ async function initializeAccountTheme_singlePage(params) {
|
|
162
165
|
})();
|
163
166
|
return o => zDependencies.parse(o);
|
164
167
|
})());
|
165
|
-
dependencies.dependencies["@keycloakify/keycloak-account-ui"] = semVersionedTag.
|
168
|
+
dependencies.dependencies["@keycloakify/keycloak-account-ui"] = SemVer/* SemVer.stringify */.h.stringify(semVersionedTag.version);
|
166
169
|
const parsedPackageJson = (() => {
|
167
170
|
const zParsedPackageJson = (() => {
|
168
171
|
const zTargetType = zod_lib.z.object({
|
package/login/pages/Login.js
CHANGED
@@ -4,7 +4,7 @@ import { assert } from "../../tools/assert";
|
|
4
4
|
import { clsx } from "../../tools/clsx";
|
5
5
|
import { getKcClsx } from "../../login/lib/kcClsx";
|
6
6
|
export default function Login(props) {
|
7
|
-
var _a
|
7
|
+
var _a;
|
8
8
|
const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
|
9
9
|
const { kcClsx } = getKcClsx({
|
10
10
|
doUseDefaultCss,
|
@@ -13,14 +13,14 @@ export default function Login(props) {
|
|
13
13
|
const { social, realm, url, usernameHidden, login, auth, registrationDisabled, messagesPerField } = kcContext;
|
14
14
|
const { msg, msgStr } = i18n;
|
15
15
|
const [isLoginButtonDisabled, setIsLoginButtonDisabled] = useState(false);
|
16
|
-
return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: !messagesPerField.existsError("username", "password"), headerNode: msg("loginAccountTitle"), displayInfo: realm.password && realm.registrationAllowed && !registrationDisabled, infoNode: _jsx("div", Object.assign({ id: "kc-registration-container" }, { children: _jsx("div", Object.assign({ id: "kc-registration" }, { children: _jsxs("span", { children: [msg("noAccount"), " ", _jsx("a", Object.assign({ tabIndex: 8, href: url.registrationUrl }, { children: msg("doRegister") }))] }) })) })), socialProvidersNode: _jsx(_Fragment, { children: realm.password &&
|
16
|
+
return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: !messagesPerField.existsError("username", "password"), headerNode: msg("loginAccountTitle"), displayInfo: realm.password && realm.registrationAllowed && !registrationDisabled, infoNode: _jsx("div", Object.assign({ id: "kc-registration-container" }, { children: _jsx("div", Object.assign({ id: "kc-registration" }, { children: _jsxs("span", { children: [msg("noAccount"), " ", _jsx("a", Object.assign({ tabIndex: 8, href: url.registrationUrl }, { children: msg("doRegister") }))] }) })) })), socialProvidersNode: _jsx(_Fragment, { children: realm.password && social.providers !== undefined && social.providers.length !== 0 && (_jsxs("div", Object.assign({ id: "kc-social-providers", className: kcClsx("kcFormSocialAccountSectionClass") }, { children: [_jsx("hr", {}), _jsx("h2", { children: msg("identity-provider-login-label") }), _jsx("ul", Object.assign({ className: kcClsx("kcFormSocialAccountListClass", social.providers.length > 3 && "kcFormSocialAccountListGridClass") }, { children: social.providers.map((...[p, , providers]) => (_jsx("li", { children: _jsxs("a", Object.assign({ id: `social-${p.alias}`, className: kcClsx("kcFormSocialAccountListButtonClass", providers.length > 3 && "kcFormSocialAccountGridItem"), type: "button", href: p.loginUrl }, { children: [p.iconClasses && _jsx("i", { className: clsx(kcClsx("kcCommonLogoIdP"), p.iconClasses), "aria-hidden": "true" }), _jsx("span", { className: clsx(kcClsx("kcFormSocialAccountNameClass"), p.iconClasses && "kc-social-icon-text"), dangerouslySetInnerHTML: { __html: p.displayName } })] })) }, p.alias))) }))] }))) }) }, { children: _jsx("div", Object.assign({ id: "kc-form" }, { children: _jsx("div", Object.assign({ id: "kc-form-wrapper" }, { children: realm.password && (_jsxs("form", Object.assign({ id: "kc-form-login", onSubmit: () => {
|
17
17
|
setIsLoginButtonDisabled(true);
|
18
18
|
return true;
|
19
19
|
}, action: url.loginAction, method: "post" }, { children: [!usernameHidden && (_jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "username", className: kcClsx("kcLabelClass") }, { children: !realm.loginWithEmailAllowed
|
20
20
|
? msg("username")
|
21
21
|
: !realm.registrationEmailAsUsername
|
22
22
|
? msg("usernameOrEmail")
|
23
|
-
: msg("email") })), _jsx("input", { tabIndex: 2, id: "username", className: kcClsx("kcInputClass"), name: "username", defaultValue: (
|
23
|
+
: msg("email") })), _jsx("input", { tabIndex: 2, id: "username", className: kcClsx("kcInputClass"), name: "username", defaultValue: (_a = login.username) !== null && _a !== void 0 ? _a : "", type: "text", autoFocus: true, autoComplete: "username", "aria-invalid": messagesPerField.existsError("username", "password") }), messagesPerField.existsError("username", "password") && (_jsx("span", { id: "input-error", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite", dangerouslySetInnerHTML: {
|
24
24
|
__html: messagesPerField.getFirstError("username", "password")
|
25
25
|
} }))] }))), _jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "password", className: kcClsx("kcLabelClass") }, { children: msg("password") })), _jsx(PasswordWrapper, Object.assign({ kcClsx: kcClsx, i18n: i18n, passwordInputId: "password" }, { children: _jsx("input", { tabIndex: 3, id: "password", className: kcClsx("kcInputClass"), name: "password", type: "password", autoComplete: "current-password", "aria-invalid": messagesPerField.existsError("username", "password") }) })), usernameHidden && messagesPerField.existsError("username", "password") && (_jsx("span", { id: "input-error", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite", dangerouslySetInnerHTML: {
|
26
26
|
__html: messagesPerField.getFirstError("username", "password")
|
package/login/pages/Login.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../src/login/pages/Login.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAe,MAAM,8BAA8B,CAAC;AAItE,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAmE;;IAC7F,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACzB,eAAe;QACf,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAE9G,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1E,OAAO,CACH,KAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,EACrE,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,EACpC,WAAW,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,oBAAoB,EACjF,QAAQ,EACJ,4BAAK,EAAE,EAAC,2BAA2B,gBAC/B,4BAAK,EAAE,EAAC,iBAAiB,gBACrB,2BACK,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,EACtB,0BAAG,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,gBACpC,GAAG,CAAC,YAAY,CAAC,IAClB,IACD,IACL,IACJ,EAEV,mBAAmB,EACf,4BACK,KAAK,CAAC,QAAQ,
|
1
|
+
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../src/login/pages/Login.tsx"],"names":[],"mappings":"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"}
|
@@ -3,7 +3,7 @@ import { useState } from "react";
|
|
3
3
|
import { clsx } from "../../tools/clsx";
|
4
4
|
import { getKcClsx } from "../../login/lib/kcClsx";
|
5
5
|
export default function LoginUsername(props) {
|
6
|
-
var _a
|
6
|
+
var _a;
|
7
7
|
const { kcContext, i18n, doUseDefaultCss, Template, classes } = props;
|
8
8
|
const { kcClsx } = getKcClsx({
|
9
9
|
doUseDefaultCss,
|
@@ -12,13 +12,13 @@ export default function LoginUsername(props) {
|
|
12
12
|
const { social, realm, url, usernameHidden, login, registrationDisabled, messagesPerField } = kcContext;
|
13
13
|
const { msg, msgStr } = i18n;
|
14
14
|
const [isLoginButtonDisabled, setIsLoginButtonDisabled] = useState(false);
|
15
|
-
return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: !messagesPerField.existsError("username"), displayInfo: realm.password && realm.registrationAllowed && !registrationDisabled, infoNode: _jsx("div", Object.assign({ id: "kc-registration" }, { children: _jsxs("span", { children: [msg("noAccount"), _jsx("a", Object.assign({ tabIndex: 6, href: url.registrationUrl }, { children: msg("doRegister") }))] }) })), headerNode: msg("doLogIn"), socialProvidersNode: _jsx(_Fragment, { children: realm.password &&
|
15
|
+
return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: !messagesPerField.existsError("username"), displayInfo: realm.password && realm.registrationAllowed && !registrationDisabled, infoNode: _jsx("div", Object.assign({ id: "kc-registration" }, { children: _jsxs("span", { children: [msg("noAccount"), _jsx("a", Object.assign({ tabIndex: 6, href: url.registrationUrl }, { children: msg("doRegister") }))] }) })), headerNode: msg("doLogIn"), socialProvidersNode: _jsx(_Fragment, { children: realm.password && social.providers !== undefined && social.providers.length !== 0 && (_jsxs("div", Object.assign({ id: "kc-social-providers", className: kcClsx("kcFormSocialAccountSectionClass") }, { children: [_jsx("hr", {}), _jsx("h2", { children: msg("identity-provider-login-label") }), _jsx("ul", Object.assign({ className: kcClsx("kcFormSocialAccountListClass", social.providers.length > 3 && "kcFormSocialAccountListGridClass") }, { children: social.providers.map((...[p, , providers]) => (_jsx("li", { children: _jsxs("a", Object.assign({ id: `social-${p.alias}`, className: kcClsx("kcFormSocialAccountListButtonClass", providers.length > 3 && "kcFormSocialAccountGridItem"), type: "button", href: p.loginUrl }, { children: [p.iconClasses && _jsx("i", { className: clsx(kcClsx("kcCommonLogoIdP"), p.iconClasses), "aria-hidden": "true" }), _jsx("span", Object.assign({ className: clsx(kcClsx("kcFormSocialAccountNameClass"), p.iconClasses && "kc-social-icon-text") }, { children: p.displayName }))] })) }, p.alias))) }))] }))) }) }, { children: _jsx("div", Object.assign({ id: "kc-form" }, { children: _jsx("div", Object.assign({ id: "kc-form-wrapper" }, { children: realm.password && (_jsxs("form", Object.assign({ id: "kc-form-login", onSubmit: () => {
|
16
16
|
setIsLoginButtonDisabled(true);
|
17
17
|
return true;
|
18
18
|
}, action: url.loginAction, method: "post" }, { children: [!usernameHidden && (_jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "username", className: kcClsx("kcLabelClass") }, { children: !realm.loginWithEmailAllowed
|
19
19
|
? msg("username")
|
20
20
|
: !realm.registrationEmailAsUsername
|
21
21
|
? msg("usernameOrEmail")
|
22
|
-
: msg("email") })), _jsx("input", { tabIndex: 2, id: "username", className: kcClsx("kcInputClass"), name: "username", defaultValue: (
|
22
|
+
: msg("email") })), _jsx("input", { tabIndex: 2, id: "username", className: kcClsx("kcInputClass"), name: "username", defaultValue: (_a = login.username) !== null && _a !== void 0 ? _a : "", type: "text", autoFocus: true, autoComplete: "off", "aria-invalid": messagesPerField.existsError("username") }), messagesPerField.existsError("username") && (_jsx("span", Object.assign({ id: "input-error", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite" }, { children: messagesPerField.getFirstError("username") })))] }))), _jsx("div", Object.assign({ className: kcClsx("kcFormGroupClass", "kcFormSettingClass") }, { children: _jsx("div", Object.assign({ id: "kc-form-options" }, { children: realm.rememberMe && !usernameHidden && (_jsx("div", Object.assign({ className: "checkbox" }, { children: _jsxs("label", { children: [_jsx("input", { tabIndex: 3, id: "rememberMe", name: "rememberMe", type: "checkbox", defaultChecked: !!login.rememberMe }), " ", msg("rememberMe")] }) }))) })) })), _jsx("div", Object.assign({ id: "kc-form-buttons", className: kcClsx("kcFormGroupClass") }, { children: _jsx("input", { tabIndex: 4, disabled: isLoginButtonDisabled, className: kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonBlockClass", "kcButtonLargeClass"), name: "login", id: "kc-login", type: "submit", value: msgStr("doLogIn") }) }))] }))) })) })) })));
|
23
23
|
}
|
24
24
|
//# sourceMappingURL=LoginUsername.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LoginUsername.js","sourceRoot":"","sources":["../../src/login/pages/LoginUsername.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKzD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAA4E;;IAC9G,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACzB,eAAe;QACf,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAExG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1E,OAAO,CACH,KAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,EACzD,WAAW,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,oBAAoB,EACjF,QAAQ,EACJ,4BAAK,EAAE,EAAC,iBAAiB,gBACrB,2BACK,GAAG,CAAC,WAAW,CAAC,EACjB,0BAAG,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,gBACpC,GAAG,CAAC,YAAY,CAAC,IAClB,IACD,IACL,EAEV,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,EAC1B,mBAAmB,EACf,4BACK,KAAK,CAAC,QAAQ,
|
1
|
+
{"version":3,"file":"LoginUsername.js","sourceRoot":"","sources":["../../src/login/pages/LoginUsername.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -6,6 +6,7 @@ import {
|
|
6
6
|
getLatestsSemVersionedTag,
|
7
7
|
type BuildContextLike as BuildContextLike_getLatestsSemVersionedTag
|
8
8
|
} from "../shared/getLatestsSemVersionedTag";
|
9
|
+
import { SemVer } from "../tools/SemVer";
|
9
10
|
import fetch from "make-fetch-happen";
|
10
11
|
import { z } from "zod";
|
11
12
|
import { assert, type Equals } from "tsafe/assert";
|
@@ -68,7 +69,9 @@ export async function initializeAccountTheme_singlePage(params: {
|
|
68
69
|
})()
|
69
70
|
);
|
70
71
|
|
71
|
-
dependencies.dependencies["@keycloakify/keycloak-account-ui"] =
|
72
|
+
dependencies.dependencies["@keycloakify/keycloak-account-ui"] = SemVer.stringify(
|
73
|
+
semVersionedTag.version
|
74
|
+
);
|
72
75
|
|
73
76
|
const parsedPackageJson = (() => {
|
74
77
|
type ParsedPackageJson = {
|
@@ -139,25 +139,6 @@ export async function buildJar(params: {
|
|
139
139
|
break route_legacy_pages;
|
140
140
|
}
|
141
141
|
|
142
|
-
// NOTE: If there's no account theme there is no special target for keycloak 24 and up so we create
|
143
|
-
// the pages anyway. If there is an account pages, since we know that account-v1 is only support keycloak
|
144
|
-
// 24 in version 0.4 and up, we can safely break the route for legacy pages.
|
145
|
-
const doBreak: boolean = (() => {
|
146
|
-
switch (keycloakAccountV1Version) {
|
147
|
-
case null:
|
148
|
-
return false;
|
149
|
-
case "0.3":
|
150
|
-
return false;
|
151
|
-
default:
|
152
|
-
return true;
|
153
|
-
}
|
154
|
-
})();
|
155
|
-
|
156
|
-
// TODO: Remove this optimization, it's a bit hacky.
|
157
|
-
if (doBreak) {
|
158
|
-
break route_legacy_pages;
|
159
|
-
}
|
160
|
-
|
161
142
|
(["register.ftl", "login-update-profile.ftl"] as const).forEach(pageId =>
|
162
143
|
buildContext.themeNames.map(themeName => {
|
163
144
|
const ftlFilePath = pathJoin(
|
@@ -4,8 +4,7 @@ import {
|
|
4
4
|
join as pathJoin,
|
5
5
|
resolve as pathResolve,
|
6
6
|
relative as pathRelative,
|
7
|
-
dirname as pathDirname
|
8
|
-
basename as pathBasename
|
7
|
+
dirname as pathDirname
|
9
8
|
} from "path";
|
10
9
|
import { replaceImportsInJsCode } from "../replacers/replaceImportsInJsCode";
|
11
10
|
import { replaceImportsInCssCode } from "../replacers/replaceImportsInCssCode";
|
@@ -43,7 +42,7 @@ import {
|
|
43
42
|
} from "../../shared/metaInfKeycloakThemes";
|
44
43
|
import { objectEntries } from "tsafe/objectEntries";
|
45
44
|
import { escapeStringForPropertiesFile } from "../../tools/escapeStringForPropertiesFile";
|
46
|
-
import
|
45
|
+
import * as child_process from "child_process";
|
47
46
|
|
48
47
|
export type BuildContextLike = BuildContextLike_kcContextExclusionsFtlCode &
|
49
48
|
BuildContextLike_downloadKeycloakStaticResources &
|
@@ -56,6 +55,7 @@ export type BuildContextLike = BuildContextLike_kcContextExclusionsFtlCode &
|
|
56
55
|
implementedThemeTypes: BuildContext["implementedThemeTypes"];
|
57
56
|
themeSrcDirPath: string;
|
58
57
|
bundler: "vite" | "webpack";
|
58
|
+
packageJsonFilePath: string;
|
59
59
|
};
|
60
60
|
|
61
61
|
assert<BuildContext extends BuildContextLike ? true : false>();
|
@@ -313,27 +313,23 @@ export async function generateResourcesForMainTheme(params: {
|
|
313
313
|
break bring_in_account_v3_i18n_messages;
|
314
314
|
}
|
315
315
|
|
316
|
-
const
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
fileRelativePath: pathBasename(fileRelativePath)
|
331
|
-
});
|
332
|
-
}
|
333
|
-
});
|
316
|
+
const accountUiDirPath = child_process
|
317
|
+
.execSync("npm list @keycloakify/keycloak-account-ui --parseable", {
|
318
|
+
cwd: pathDirname(buildContext.packageJsonFilePath)
|
319
|
+
})
|
320
|
+
.toString("utf8")
|
321
|
+
.trim();
|
322
|
+
|
323
|
+
const messagesDirPath = pathJoin(accountUiDirPath, "messages");
|
324
|
+
|
325
|
+
if (!fs.existsSync(messagesDirPath)) {
|
326
|
+
throw new Error(
|
327
|
+
`Please update @keycloakify/keycloak-account-ui to 25.0.4-rc.5 or later.`
|
328
|
+
);
|
329
|
+
}
|
334
330
|
|
335
331
|
transformCodebase({
|
336
|
-
srcDirPath:
|
332
|
+
srcDirPath: messagesDirPath,
|
337
333
|
destDirPath: pathJoin(
|
338
334
|
getThemeTypeDirPath({ themeType: "account" }),
|
339
335
|
"messages"
|
@@ -12,6 +12,10 @@ import * as os from "os";
|
|
12
12
|
import { rmSync } from "../tools/fs.rmSync";
|
13
13
|
|
14
14
|
export async function command(params: { cliCommandOptions: CliCommandOptions }) {
|
15
|
+
const { cliCommandOptions } = params;
|
16
|
+
|
17
|
+
const buildContext = getBuildContext({ cliCommandOptions });
|
18
|
+
|
15
19
|
exit_if_maven_not_installed: {
|
16
20
|
let commandOutput: Buffer | undefined = undefined;
|
17
21
|
|
@@ -25,31 +29,44 @@ export async function command(params: { cliCommandOptions: CliCommandOptions })
|
|
25
29
|
break exit_if_maven_not_installed;
|
26
30
|
}
|
27
31
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
32
|
+
if (
|
33
|
+
fs
|
34
|
+
.readFileSync(buildContext.packageJsonFilePath)
|
35
|
+
.toString("utf8")
|
36
|
+
.includes(`"mvn"`)
|
37
|
+
) {
|
38
|
+
console.log(
|
39
|
+
chalk.red(
|
40
|
+
[
|
41
|
+
"Please remove the 'mvn' package from your package.json'dependencies list,",
|
42
|
+
"reinstall your dependencies and try again.",
|
43
|
+
"We need the Apache Maven CLI, not this: https://www.npmjs.com/package/mvn"
|
44
|
+
].join(" ")
|
45
|
+
)
|
46
|
+
);
|
47
|
+
} else {
|
48
|
+
const installationCommand = (() => {
|
49
|
+
switch (os.platform()) {
|
50
|
+
case "darwin":
|
51
|
+
return "brew install mvn";
|
52
|
+
case "win32":
|
53
|
+
return "choco install mvn";
|
54
|
+
case "linux":
|
55
|
+
default:
|
56
|
+
return "sudo apt-get install mvn";
|
57
|
+
}
|
58
|
+
})();
|
59
|
+
|
60
|
+
console.log(
|
61
|
+
`${chalk.red("Apache Maven required.")} Install it with \`${chalk.bold(
|
62
|
+
installationCommand
|
63
|
+
)}\` (for example)`
|
64
|
+
);
|
65
|
+
}
|
45
66
|
|
46
67
|
process.exit(1);
|
47
68
|
}
|
48
69
|
|
49
|
-
const { cliCommandOptions } = params;
|
50
|
-
|
51
|
-
const buildContext = getBuildContext({ cliCommandOptions });
|
52
|
-
|
53
70
|
console.log(
|
54
71
|
[
|
55
72
|
chalk.cyan(`keycloakify v${readThisNpmPackageVersion()}`),
|
@@ -43,7 +43,7 @@ export default function Login(props: PageProps<Extract<KcContext, { pageId: "log
|
|
43
43
|
}
|
44
44
|
socialProvidersNode={
|
45
45
|
<>
|
46
|
-
{realm.password && social.providers
|
46
|
+
{realm.password && social.providers !== undefined && social.providers.length !== 0 && (
|
47
47
|
<div id="kc-social-providers" className={kcClsx("kcFormSocialAccountSectionClass")}>
|
48
48
|
<hr />
|
49
49
|
<h2>{msg("identity-provider-login-label")}</h2>
|
@@ -40,7 +40,7 @@ export default function LoginUsername(props: PageProps<Extract<KcContext, { page
|
|
40
40
|
headerNode={msg("doLogIn")}
|
41
41
|
socialProvidersNode={
|
42
42
|
<>
|
43
|
-
{realm.password && social.providers
|
43
|
+
{realm.password && social.providers !== undefined && social.providers.length !== 0 && (
|
44
44
|
<div id="kc-social-providers" className={kcClsx("kcFormSocialAccountSectionClass")}>
|
45
45
|
<hr />
|
46
46
|
<h2>{msg("identity-provider-login-label")}</h2>
|