keycloakify 11.13.4 → 11.13.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 CHANGED
@@ -139,6 +139,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
139
139
  <td align="center" valign="top" width="14.28%"><a href="https://waynekirimi.netlify.app/"><img src="https://avatars.githubusercontent.com/u/37283450?v=4?s=100" width="100px;" alt="Wayne Kirimi"/><br /><sub><b>Wayne Kirimi</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=waynemorphic" title="Code">💻</a></td>
140
140
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/discostur"><img src="https://avatars.githubusercontent.com/u/2615420?v=4?s=100" width="100px;" alt="Kilian Ries"/><br /><sub><b>Kilian Ries</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=discostur" title="Code">💻</a></td>
141
141
  <td align="center" valign="top" width="14.28%"><a href="https://phasetwo.io/"><img src="https://avatars.githubusercontent.com/u/93841792?v=4?s=100" width="100px;" alt="pnzrr"/><br /><sub><b>pnzrr</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=pnzrr" title="Code">💻</a></td>
142
+ <td align="center" valign="top" width="14.28%"><a href="http://www.aaronwong.se"><img src="https://avatars.githubusercontent.com/u/450741?v=4?s=100" width="100px;" alt="Aaron Wong"/><br /><sub><b>Aaron Wong</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=acreations" title="Code">💻</a></td>
142
143
  </tr>
143
144
  </tbody>
144
145
  </table>
package/bin/97.index.js CHANGED
@@ -144,16 +144,40 @@ async function getExtensionModuleMetas(params) {
144
144
  return configHash;
145
145
  })();
146
146
  const installedExtensionModules = await (async () => {
147
- const installedModulesWithKeycloakifyInTheName = await (0,listInstalledModules/* listInstalledModules */.P)({
147
+ let installedExtensionModules = await (0,listInstalledModules/* listInstalledModules */.P)({
148
148
  packageJsonFilePath: buildContext.packageJsonFilePath,
149
149
  filter: ({ moduleName }) => moduleName.includes("keycloakify") && moduleName !== "keycloakify"
150
150
  });
151
- return (await Promise.all(installedModulesWithKeycloakifyInTheName.map(async (entry) => {
151
+ installedExtensionModules = (await Promise.all(installedExtensionModules.map(async (entry) => {
152
152
  if (!(await (0,fs_existsAsync/* existsAsync */.o)((0,external_path_.join)(entry.dirPath, constants/* KEYCLOAK_THEME */.PC)))) {
153
153
  return undefined;
154
154
  }
155
155
  return entry;
156
156
  }))).filter((0,exclude/* exclude */.D)(undefined));
157
+ maybe_exclude_login_ui: {
158
+ const LOGIN_UI_MODULE_NAME = "@keycloakify/login-ui";
159
+ if (!installedExtensionModules
160
+ .map(({ moduleName }) => moduleName)
161
+ .includes(LOGIN_UI_MODULE_NAME)) {
162
+ break maybe_exclude_login_ui;
163
+ }
164
+ const shouldExcludeLoginUi = await (async () => {
165
+ for (const entry of installedExtensionModules) {
166
+ if (entry.moduleName === LOGIN_UI_MODULE_NAME) {
167
+ continue;
168
+ }
169
+ if (await (0,fs_existsAsync/* existsAsync */.o)((0,external_path_.join)(entry.dirPath, constants/* KEYCLOAK_THEME */.PC, "login", "pages", "login"))) {
170
+ return true;
171
+ }
172
+ }
173
+ return false;
174
+ })();
175
+ if (!shouldExcludeLoginUi) {
176
+ break maybe_exclude_login_ui;
177
+ }
178
+ installedExtensionModules = installedExtensionModules.filter(({ moduleName }) => moduleName !== LOGIN_UI_MODULE_NAME);
179
+ }
180
+ return installedExtensionModules;
157
181
  })();
158
182
  const cacheContent = await (async () => {
159
183
  if (!(await (0,fs_existsAsync/* existsAsync */.o)(cacheFilePath))) {
@@ -5,7 +5,7 @@ export default function Info(props) {
5
5
  const { advancedMsgStr, msg } = i18n;
6
6
  const { messageHeader, message, requiredActions, skipLink, pageRedirectUri, actionUri, client } = kcContext;
7
7
  return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: false, headerNode: _jsx("span", { dangerouslySetInnerHTML: {
8
- __html: kcSanitize(messageHeader !== null && messageHeader !== void 0 ? messageHeader : message.summary)
8
+ __html: kcSanitize(messageHeader ? advancedMsgStr(messageHeader) : message.summary)
9
9
  } }) }, { children: _jsxs("div", Object.assign({ id: "kc-info-message" }, { children: [_jsx("p", { className: "instruction", dangerouslySetInnerHTML: {
10
10
  __html: kcSanitize((() => {
11
11
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../src/login/pages/Info.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAIxD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAkE;IAC3F,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAErC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE5G,OAAO,CACH,KAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,KAAK,EACrB,UAAU,EACN,eACI,uBAAuB,EAAE;gBACrB,MAAM,EAAE,UAAU,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,OAAO,CAAC,OAAO,CAAC;aACvD,GACH,gBAGN,6BAAK,EAAE,EAAC,iBAAiB,iBACrB,YACI,SAAS,EAAC,aAAa,EACvB,uBAAuB,EAAE;wBACrB,MAAM,EAAE,UAAU,CACd,CAAC,GAAG,EAAE;;4BACF,IAAI,IAAI,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;4BAEnC,IAAI,eAAe,EAAE;gCACjB,IAAI,IAAI,MAAM,CAAC;gCAEf,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAE7G,IAAI,IAAI,MAAM,CAAC;6BAClB;4BAED,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC,EAAE,CACP;qBACJ,GACH,EACD,CAAC,GAAG,EAAE;oBACH,IAAI,QAAQ,EAAE;wBACV,OAAO,IAAI,CAAC;qBACf;oBAED,IAAI,eAAe,EAAE;wBACjB,OAAO,CACH,sBACI,0BAAG,IAAI,EAAE,eAAe,gBAAG,GAAG,CAAC,mBAAmB,CAAC,IAAK,GACxD,CACP,CAAC;qBACL;oBACD,IAAI,SAAS,EAAE;wBACX,OAAO,CACH,sBACI,0BAAG,IAAI,EAAE,SAAS,gBAAG,GAAG,CAAC,mBAAmB,CAAC,IAAK,GAClD,CACP,CAAC;qBACL;oBAED,IAAI,MAAM,CAAC,OAAO,EAAE;wBAChB,OAAO,CACH,sBACI,0BAAG,IAAI,EAAE,MAAM,CAAC,OAAO,gBAAG,GAAG,CAAC,mBAAmB,CAAC,IAAK,GACvD,CACP,CAAC;qBACL;gBACL,CAAC,CAAC,EAAE,KACF,IACC,CACd,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../src/login/pages/Info.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAIxD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAkE;IAC3F,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAErC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE5G,OAAO,CACH,KAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,KAAK,EACrB,UAAU,EACN,eACI,uBAAuB,EAAE;gBACrB,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;aACtF,GACH,gBAGN,6BAAK,EAAE,EAAC,iBAAiB,iBACrB,YACI,SAAS,EAAC,aAAa,EACvB,uBAAuB,EAAE;wBACrB,MAAM,EAAE,UAAU,CACd,CAAC,GAAG,EAAE;;4BACF,IAAI,IAAI,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;4BAEnC,IAAI,eAAe,EAAE;gCACjB,IAAI,IAAI,MAAM,CAAC;gCAEf,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAE7G,IAAI,IAAI,MAAM,CAAC;6BAClB;4BAED,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC,EAAE,CACP;qBACJ,GACH,EACD,CAAC,GAAG,EAAE;oBACH,IAAI,QAAQ,EAAE;wBACV,OAAO,IAAI,CAAC;qBACf;oBAED,IAAI,eAAe,EAAE;wBACjB,OAAO,CACH,sBACI,0BAAG,IAAI,EAAE,eAAe,gBAAG,GAAG,CAAC,mBAAmB,CAAC,IAAK,GACxD,CACP,CAAC;qBACL;oBACD,IAAI,SAAS,EAAE;wBACX,OAAO,CACH,sBACI,0BAAG,IAAI,EAAE,SAAS,gBAAG,GAAG,CAAC,mBAAmB,CAAC,IAAK,GAClD,CACP,CAAC;qBACL;oBAED,IAAI,MAAM,CAAC,OAAO,EAAE;wBAChB,OAAO,CACH,sBACI,0BAAG,IAAI,EAAE,MAAM,CAAC,OAAO,gBAAG,GAAG,CAAC,mBAAmB,CAAC,IAAK,GACvD,CACP,CAAC;qBACL;gBACL,CAAC,CAAC,EAAE,KACF,IACC,CACd,CAAC;AACN,CAAC"}
@@ -10,7 +10,7 @@ export default function UpdateEmail(props) {
10
10
  const { msg, msgStr } = i18n;
11
11
  const [isFormSubmittable, setIsFormSubmittable] = useState(false);
12
12
  const { url, messagesPerField, isAppInitiatedAction } = kcContext;
13
- return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: messagesPerField.exists("global"), displayRequiredFields: true, headerNode: msg("updateEmailTitle") }, { children: _jsxs("form", Object.assign({ id: "kc-update-email-form", className: kcClsx("kcFormClass"), action: url.loginAction, method: "post" }, { children: [_jsx(UserProfileFormFields, { kcContext: kcContext, i18n: i18n, kcClsx: kcClsx, onIsFormSubmittableValueChange: setIsFormSubmittable, doMakeUserConfirmPassword: doMakeUserConfirmPassword }), _jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("div", Object.assign({ id: "kc-form-options", className: kcClsx("kcFormOptionsClass") }, { children: _jsx("div", { className: kcClsx("kcFormOptionsWrapperClass") }) })), _jsx(LogoutOtherSessions, { kcClsx: kcClsx, i18n: i18n }), _jsxs("div", Object.assign({ id: "kc-form-buttons", className: kcClsx("kcFormButtonsClass") }, { children: [_jsx("input", { disabled: !isFormSubmittable, className: kcClsx("kcButtonClass", "kcButtonPrimaryClass", (!isAppInitiatedAction) && "kcButtonBlockClass", "kcButtonLargeClass"), type: "submit", value: msgStr("doSubmit") }), isAppInitiatedAction && (_jsx("button", Object.assign({ className: kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass"), type: "submit", name: "cancel-aia", value: "true" }, { children: msg("doCancel") })))] }))] }))] })) })));
13
+ return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: messagesPerField.exists("global"), displayRequiredFields: true, headerNode: msg("updateEmailTitle") }, { children: _jsxs("form", Object.assign({ id: "kc-update-email-form", className: kcClsx("kcFormClass"), action: url.loginAction, method: "post" }, { children: [_jsx(UserProfileFormFields, { kcContext: kcContext, i18n: i18n, kcClsx: kcClsx, onIsFormSubmittableValueChange: setIsFormSubmittable, doMakeUserConfirmPassword: doMakeUserConfirmPassword }), _jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("div", Object.assign({ id: "kc-form-options", className: kcClsx("kcFormOptionsClass") }, { children: _jsx("div", { className: kcClsx("kcFormOptionsWrapperClass") }) })), _jsx(LogoutOtherSessions, { kcClsx: kcClsx, i18n: i18n }), _jsxs("div", Object.assign({ id: "kc-form-buttons", className: kcClsx("kcFormButtonsClass") }, { children: [_jsx("input", { disabled: !isFormSubmittable, className: kcClsx("kcButtonClass", "kcButtonPrimaryClass", !isAppInitiatedAction && "kcButtonBlockClass", "kcButtonLargeClass"), type: "submit", value: msgStr("doSubmit") }), isAppInitiatedAction && (_jsx("button", Object.assign({ className: kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass"), type: "submit", name: "cancel-aia", value: "true" }, { children: msg("doCancel") })))] }))] }))] })) })));
14
14
  }
15
15
  function LogoutOtherSessions(props) {
16
16
  const { kcClsx, i18n } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateEmail.js","sourceRoot":"","sources":["../../src/login/pages/UpdateEmail.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateEmail.js","sourceRoot":"","sources":["../../src/login/pages/UpdateEmail.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "11.13.4",
3
+ "version": "11.13.6",
4
4
  "description": "Framework to create custom Keycloak UIs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -114,15 +114,15 @@ export async function getExtensionModuleMetas(params: {
114
114
  })();
115
115
 
116
116
  const installedExtensionModules = await (async () => {
117
- const installedModulesWithKeycloakifyInTheName = await listInstalledModules({
117
+ let installedExtensionModules = await listInstalledModules({
118
118
  packageJsonFilePath: buildContext.packageJsonFilePath,
119
119
  filter: ({ moduleName }) =>
120
120
  moduleName.includes("keycloakify") && moduleName !== "keycloakify"
121
121
  });
122
122
 
123
- return (
123
+ installedExtensionModules = (
124
124
  await Promise.all(
125
- installedModulesWithKeycloakifyInTheName.map(async entry => {
125
+ installedExtensionModules.map(async entry => {
126
126
  if (!(await existsAsync(pathJoin(entry.dirPath, KEYCLOAK_THEME)))) {
127
127
  return undefined;
128
128
  }
@@ -130,6 +130,52 @@ export async function getExtensionModuleMetas(params: {
130
130
  })
131
131
  )
132
132
  ).filter(exclude(undefined));
133
+
134
+ maybe_exclude_login_ui: {
135
+ const LOGIN_UI_MODULE_NAME = "@keycloakify/login-ui";
136
+
137
+ if (
138
+ !installedExtensionModules
139
+ .map(({ moduleName }) => moduleName)
140
+ .includes(LOGIN_UI_MODULE_NAME)
141
+ ) {
142
+ break maybe_exclude_login_ui;
143
+ }
144
+
145
+ const shouldExcludeLoginUi = await (async () => {
146
+ for (const entry of installedExtensionModules) {
147
+ if (entry.moduleName === LOGIN_UI_MODULE_NAME) {
148
+ continue;
149
+ }
150
+
151
+ if (
152
+ await existsAsync(
153
+ pathJoin(
154
+ entry.dirPath,
155
+ KEYCLOAK_THEME,
156
+ "login",
157
+ "pages",
158
+ "login"
159
+ )
160
+ )
161
+ ) {
162
+ return true;
163
+ }
164
+ }
165
+
166
+ return false;
167
+ })();
168
+
169
+ if (!shouldExcludeLoginUi) {
170
+ break maybe_exclude_login_ui;
171
+ }
172
+
173
+ installedExtensionModules = installedExtensionModules.filter(
174
+ ({ moduleName }) => moduleName !== LOGIN_UI_MODULE_NAME
175
+ );
176
+ }
177
+
178
+ return installedExtensionModules;
133
179
  })();
134
180
 
135
181
  const cacheContent = await (async () => {
@@ -20,7 +20,7 @@ export default function Info(props: PageProps<Extract<KcContext, { pageId: "info
20
20
  headerNode={
21
21
  <span
22
22
  dangerouslySetInnerHTML={{
23
- __html: kcSanitize(messageHeader ?? message.summary)
23
+ __html: kcSanitize(messageHeader ? advancedMsgStr(messageHeader) : message.summary)
24
24
  }}
25
25
  />
26
26
  }
@@ -58,7 +58,7 @@ export default function UpdateEmail(props: UpdateEmailProps) {
58
58
  className={kcClsx(
59
59
  "kcButtonClass",
60
60
  "kcButtonPrimaryClass",
61
- (!isAppInitiatedAction) && "kcButtonBlockClass",
61
+ !isAppInitiatedAction && "kcButtonBlockClass",
62
62
  "kcButtonLargeClass"
63
63
  )}
64
64
  type="submit"