keycloakify 11.4.0-rc.0 → 11.4.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.
Files changed (93) hide show
  1. package/README.md +2 -0
  2. package/account/i18n/noJsx/getI18n.js +5 -7
  3. package/account/i18n/noJsx/getI18n.js.map +1 -1
  4. package/account/i18n/withJsx/useI18n.js +15 -4
  5. package/account/i18n/withJsx/useI18n.js.map +1 -1
  6. package/bin/20.index.js +0 -85
  7. package/bin/33.index.js +55 -212
  8. package/bin/356.index.js +106 -45
  9. package/bin/36.index.js +1 -2922
  10. package/bin/{526.index.js → 392.index.js} +89 -3
  11. package/bin/40.index.js +1 -86
  12. package/bin/453.index.js +85 -22
  13. package/bin/573.index.js +4 -86
  14. package/bin/653.index.js +752 -0
  15. package/bin/658.index.js +197 -0
  16. package/bin/735.index.js +343 -116
  17. package/bin/786.index.js +78 -14
  18. package/bin/805.index.js +15 -18
  19. package/bin/921.index.js +79 -18
  20. package/bin/97.index.js +64 -13
  21. package/bin/main.js +165 -86
  22. package/bin/shared/constants.d.ts +2 -0
  23. package/bin/shared/constants.js +3 -1
  24. package/bin/shared/constants.js.map +1 -1
  25. package/bin/start-keycloak/startViteDevServer.d.ts +7 -0
  26. package/bin/tools/crawlAsync.d.ts +1 -1
  27. package/bin/tools/isTrackedByGit.d.ts +3 -0
  28. package/bin/tools/runPrettier.d.ts +5 -5
  29. package/bin/tools/untrackFromGit.d.ts +3 -0
  30. package/lib/getKcClsx.js +1 -2
  31. package/lib/getKcClsx.js.map +1 -1
  32. package/login/KcContext/KcContext.d.ts +2 -2
  33. package/login/KcContext/kcContextMocks.d.ts +1 -1
  34. package/login/TemplateProps.d.ts +0 -1
  35. package/login/i18n/noJsx/getI18n.js +5 -7
  36. package/login/i18n/noJsx/getI18n.js.map +1 -1
  37. package/login/i18n/withJsx/useI18n.js +15 -4
  38. package/login/i18n/withJsx/useI18n.js.map +1 -1
  39. package/login/pages/LoginConfigTotp.js +1 -1
  40. package/login/pages/LoginConfigTotp.js.map +1 -1
  41. package/login/pages/LoginPasskeysConditionalAuthenticate.js +16 -18
  42. package/login/pages/LoginPasskeysConditionalAuthenticate.js.map +1 -1
  43. package/package.json +17 -7
  44. package/src/account/i18n/noJsx/getI18n.tsx +5 -7
  45. package/src/account/i18n/withJsx/useI18n.tsx +18 -4
  46. package/src/bin/eject-page.ts +28 -10
  47. package/src/bin/initialize-account-theme/initializeAccountTheme_singlePage.ts +3 -18
  48. package/src/bin/initialize-account-theme/updateAccountThemeImplementationInConfig.ts +1 -2
  49. package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +39 -0
  50. package/src/bin/keycloakify/generateResources/generateResources.ts +6 -2
  51. package/src/bin/main.ts +51 -4
  52. package/src/bin/postinstall/getUiModuleFileSourceCodeReadyToBeCopied.ts +30 -19
  53. package/src/bin/postinstall/installUiModulesPeerDependencies.ts +3 -3
  54. package/src/bin/postinstall/managedGitignoreFile.ts +4 -3
  55. package/src/bin/postinstall/postinstall.ts +24 -2
  56. package/src/bin/postinstall/uiModuleMeta.ts +14 -9
  57. package/src/bin/shared/buildContext.ts +1 -2
  58. package/src/bin/shared/constants.ts +4 -1
  59. package/src/bin/start-keycloak/myrealm-realm-25.json +21 -34
  60. package/src/bin/start-keycloak/myrealm-realm-26.json +32 -35
  61. package/src/bin/start-keycloak/start-keycloak.ts +93 -1
  62. package/src/bin/start-keycloak/startViteDevServer.ts +39 -0
  63. package/src/bin/tools/crawlAsync.ts +6 -6
  64. package/src/bin/tools/isTrackedByGit.ts +29 -0
  65. package/src/bin/tools/listInstalledModules.ts +1 -2
  66. package/src/bin/tools/npmInstall.ts +396 -1
  67. package/src/bin/tools/runPrettier.ts +63 -14
  68. package/src/bin/tools/untrackFromGit.ts +24 -0
  69. package/src/bin/tsconfig.json +1 -1
  70. package/src/bin/update-kc-gen.ts +17 -2
  71. package/src/lib/getKcClsx.ts +1 -2
  72. package/src/login/KcContext/KcContext.ts +2 -2
  73. package/src/login/KcContext/kcContextMocks.ts +1 -1
  74. package/src/login/TemplateProps.ts +0 -1
  75. package/src/login/i18n/noJsx/getI18n.tsx +5 -7
  76. package/src/login/i18n/withJsx/useI18n.tsx +18 -4
  77. package/src/login/pages/LoginConfigTotp.tsx +18 -20
  78. package/src/login/pages/LoginPasskeysConditionalAuthenticate.tsx +51 -52
  79. package/src/tools/StatefulObservable/StatefulObservable.ts +1 -2
  80. package/src/tools/deepAssign.ts +1 -2
  81. package/src/tools/extractLastParenthesisContent.ts +43 -0
  82. package/src/vite-plugin/vite-plugin.ts +67 -0
  83. package/stories/login/pages/Info.stories.tsx +3 -39
  84. package/tools/StatefulObservable/StatefulObservable.js +1 -2
  85. package/tools/StatefulObservable/StatefulObservable.js.map +1 -1
  86. package/tools/deepAssign.js +1 -2
  87. package/tools/deepAssign.js.map +1 -1
  88. package/tools/extractLastParenthesisContent.d.ts +6 -0
  89. package/tools/extractLastParenthesisContent.js +36 -0
  90. package/tools/extractLastParenthesisContent.js.map +1 -0
  91. package/vite-plugin/index.js +326 -186
  92. package/bin/124.index.js +0 -348
  93. package/stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx +0 -18
@@ -9,8 +9,19 @@ export function createUseI18n(params) {
9
9
  const cache = new WeakMap();
10
10
  function renderHtmlString(params) {
11
11
  const { htmlString, msgKey } = params;
12
- return (_jsx("div", { "data-kc-msg": msgKey, dangerouslySetInnerHTML: {
13
- __html: kcSanitize(htmlString)
12
+ const htmlString_sanitized = kcSanitize(htmlString);
13
+ const Element = (() => {
14
+ if (htmlString_sanitized.includes("<") && htmlString_sanitized.includes(">")) {
15
+ for (const tagName of ["div", "section", "article", "ul", "ol"]) {
16
+ if (htmlString_sanitized.includes(`<${tagName}`)) {
17
+ return "div";
18
+ }
19
+ }
20
+ }
21
+ return "span";
22
+ })();
23
+ return (_jsx(Element, { "data-kc-msg": msgKey, dangerouslySetInnerHTML: {
24
+ __html: htmlString_sanitized
14
25
  } }));
15
26
  }
16
27
  function withJsx(i18n_noJsx) {
@@ -28,14 +39,14 @@ export function createUseI18n(params) {
28
39
  return { withJsx };
29
40
  })();
30
41
  add_style: {
31
- const attributeName = "data-kc-i18n";
42
+ const attributeName = "data-kc-msg";
32
43
  // Check if already exists in head
33
44
  if (document.querySelector(`style[${attributeName}]`) !== null) {
34
45
  break add_style;
35
46
  }
36
47
  const styleElement = document.createElement("style");
37
48
  styleElement.attributes.setNamedItem(document.createAttribute(attributeName));
38
- styleElement.textContent = `[data-kc-msg] { display: inline-block; }`;
49
+ styleElement.textContent = `div[${attributeName}] { display: inline-block; }`;
39
50
  document.head.prepend(styleElement);
40
51
  }
41
52
  const { getI18n } = createGetI18n({ extraLanguageTranslations, messagesByLanguageTag_themeDefined });
@@ -1 +1 @@
1
- {"version":3,"file":"useI18n.js","sourceRoot":"","sources":["../../../src/login/i18n/withJsx/useI18n.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useI18n.js","sourceRoot":"","sources":["../../../src/login/i18n/withJsx/useI18n.tsx"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export default function LoginConfigTotp(props) {
9
9
  });
10
10
  const { url, isAppInitiatedAction, totp, mode, messagesPerField } = kcContext;
11
11
  const { msg, msgStr, advancedMsg } = i18n;
12
- return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, headerNode: msg("loginTotpTitle"), displayMessage: !messagesPerField.existsError("totp", "userLabel") }, { children: _jsxs(_Fragment, { children: [_jsxs("ol", Object.assign({ id: "kc-totp-settings" }, { children: [_jsxs("li", { children: [_jsx("p", { children: msg("loginTotpStep1") }), _jsx("ul", Object.assign({ id: "kc-totp-supported-apps" }, { children: totp.supportedApplications.map(app => (_jsx("li", { children: advancedMsg(app) }, app))) }))] }), mode == "manual" ? (_jsxs(_Fragment, { children: [_jsxs("li", { children: [_jsx("p", { children: msg("loginTotpManualStep2") }), _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("loginTotpScanBarcode") })) })] }), _jsxs("li", { children: [_jsx("p", { children: msg("loginTotpManualStep3") }), _jsx("p", { children: _jsxs("ul", { children: [_jsxs("li", Object.assign({ id: "kc-totp-type" }, { children: [msg("loginTotpType"), ": ", msg(`loginTotp.${totp.policy.type}`)] })), _jsxs("li", Object.assign({ id: "kc-totp-algorithm" }, { children: [msg("loginTotpAlgorithm"), ": ", totp.policy.getAlgorithmKey()] })), _jsxs("li", Object.assign({ id: "kc-totp-digits" }, { children: [msg("loginTotpDigits"), ": ", totp.policy.digits] })), totp.policy.type === "totp" ? (_jsxs("li", Object.assign({ id: "kc-totp-period" }, { children: [msg("loginTotpInterval"), ": ", totp.policy.period] }))) : (_jsxs("li", Object.assign({ id: "kc-totp-counter" }, { children: [msg("loginTotpCounter"), ": ", totp.policy.initialCounter] })))] }) })] })] })) : (_jsxs("li", { children: [_jsx("p", { children: msg("loginTotpStep2") }), _jsx("img", { id: "kc-totp-secret-qr-code", src: `data:image/png;base64, ${totp.totpSecretQrCode}`, alt: "Figure: Barcode" }), _jsx("br", {}), _jsx("p", { children: _jsx("a", Object.assign({ href: totp.manualUrl, id: "mode-manual" }, { children: msg("loginTotpUnableToScan") })) })] })), _jsxs("li", { children: [_jsx("p", { children: msg("loginTotpStep3") }), _jsx("p", { children: msg("loginTotpStep3DeviceName") })] })] })), _jsxs("form", Object.assign({ action: url.loginAction, className: kcClsx("kcFormClass"), id: "kc-totp-settings-form", method: "post" }, { children: [_jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "totp", className: kcClsx("kcLabelClass") }, { children: msg("authenticatorCode") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { 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: {
12
+ return (_jsx(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, headerNode: msg("loginTotpTitle"), displayMessage: !messagesPerField.existsError("totp", "userLabel") }, { children: _jsxs(_Fragment, { children: [_jsxs("ol", Object.assign({ id: "kc-totp-settings" }, { children: [_jsxs("li", { children: [_jsx("p", { children: msg("loginTotpStep1") }), _jsx("ul", Object.assign({ id: "kc-totp-supported-apps" }, { children: totp.supportedApplications.map(app => (_jsx("li", { children: advancedMsg(app) }, app))) }))] }), mode == "manual" ? (_jsxs(_Fragment, { children: [_jsxs("li", { children: [_jsx("p", { children: msg("loginTotpManualStep2") }), _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("loginTotpScanBarcode") })) })] }), _jsxs("li", { children: [_jsx("p", { children: msg("loginTotpManualStep3") }), _jsxs("ul", { children: [_jsxs("li", Object.assign({ id: "kc-totp-type" }, { children: [msg("loginTotpType"), ": ", msg(`loginTotp.${totp.policy.type}`)] })), _jsxs("li", Object.assign({ id: "kc-totp-algorithm" }, { children: [msg("loginTotpAlgorithm"), ": ", totp.policy.getAlgorithmKey()] })), _jsxs("li", Object.assign({ id: "kc-totp-digits" }, { children: [msg("loginTotpDigits"), ": ", totp.policy.digits] })), totp.policy.type === "totp" ? (_jsxs("li", Object.assign({ id: "kc-totp-period" }, { children: [msg("loginTotpInterval"), ": ", totp.policy.period] }))) : (_jsxs("li", Object.assign({ id: "kc-totp-counter" }, { children: [msg("loginTotpCounter"), ": ", totp.policy.initialCounter] })))] })] })] })) : (_jsxs("li", { children: [_jsx("p", { children: msg("loginTotpStep2") }), _jsx("img", { id: "kc-totp-secret-qr-code", src: `data:image/png;base64, ${totp.totpSecretQrCode}`, alt: "Figure: Barcode" }), _jsx("br", {}), _jsx("p", { children: _jsx("a", Object.assign({ href: totp.manualUrl, id: "mode-manual" }, { children: msg("loginTotpUnableToScan") })) })] })), _jsxs("li", { children: [_jsx("p", { children: msg("loginTotpStep3") }), _jsx("p", { children: msg("loginTotpStep3DeviceName") })] })] })), _jsxs("form", Object.assign({ action: url.loginAction, className: kcClsx("kcFormClass"), id: "kc-totp-settings-form", method: "post" }, { children: [_jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "totp", className: kcClsx("kcLabelClass") }, { children: msg("authenticatorCode") })), " ", _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { 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: {
13
13
  __html: kcSanitize(messagesPerField.get("totp"))
14
14
  } }))] })), _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: kcClsx("kcInputWrapperClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "userLabel", className: kcClsx("kcLabelClass") }, { children: msg("loginTotpDeviceName") })), " ", totp.otpCredentials.length >= 1 && _jsx("span", Object.assign({ className: "required" }, { children: "*" }))] })), _jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { 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: {
15
15
  __html: kcSanitize(messagesPerField.get("userLabel"))
@@ -1 +1 @@
1
- {"version":3,"file":"LoginConfigTotp.js","sourceRoot":"","sources":["../../src/login/pages/LoginConfigTotp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAA+E;IACnH,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,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAE9E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAE1C,OAAO,CACH,KAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,EACjC,cAAc,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,gBAElE,8BACI,4BAAI,EAAE,EAAC,kBAAkB,iBACrB,yBACI,sBAAI,GAAG,CAAC,gBAAgB,CAAC,GAAK,EAE9B,2BAAI,EAAE,EAAC,wBAAwB,gBAC1B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACnC,uBAAe,WAAW,CAAC,GAAG,CAAC,IAAtB,GAAG,CAAyB,CACxC,CAAC,IACD,IACJ,EAEJ,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAChB,8BACI,yBACI,sBAAI,GAAG,CAAC,sBAAsB,CAAC,GAAK,EACpC,sBACI,6BAAM,EAAE,EAAC,oBAAoB,gBAAE,IAAI,CAAC,iBAAiB,IAAQ,GAC7D,EACJ,sBACI,0BAAG,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAC,cAAc,gBACjC,GAAG,CAAC,sBAAsB,CAAC,IAC5B,GACJ,IACH,EACL,yBACI,sBAAI,GAAG,CAAC,sBAAsB,CAAC,GAAK,EACpC,sBACI,yBACI,4BAAI,EAAE,EAAC,cAAc,iBAChB,GAAG,CAAC,eAAe,CAAC,QAAI,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAC5D,EACL,4BAAI,EAAE,EAAC,mBAAmB,iBACrB,GAAG,CAAC,oBAAoB,CAAC,QAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,KAC1D,EACL,4BAAI,EAAE,EAAC,gBAAgB,iBAClB,GAAG,CAAC,iBAAiB,CAAC,QAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAC5C,EACJ,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAC3B,4BAAI,EAAE,EAAC,gBAAgB,iBAClB,GAAG,CAAC,mBAAmB,CAAC,QAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAC9C,CACR,CAAC,CAAC,CAAC,CACA,4BAAI,EAAE,EAAC,iBAAiB,iBACnB,GAAG,CAAC,kBAAkB,CAAC,QAAI,IAAI,CAAC,MAAM,CAAC,cAAc,KACrD,CACR,IACA,GACL,IACH,IACN,CACN,CAAC,CAAC,CAAC,CACA,yBACI,sBAAI,GAAG,CAAC,gBAAgB,CAAC,GAAK,EAC9B,cAAK,EAAE,EAAC,wBAAwB,EAAC,GAAG,EAAE,0BAA0B,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAC,iBAAiB,GAAG,EACjH,cAAM,EACN,sBACI,0BAAG,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,EAAC,aAAa,gBACpC,GAAG,CAAC,uBAAuB,CAAC,IAC7B,GACJ,IACH,CACR,EACD,yBACI,sBAAI,GAAG,CAAC,gBAAgB,CAAC,GAAK,EAC9B,sBAAI,GAAG,CAAC,0BAA0B,CAAC,GAAK,IACvC,KACJ,EAEL,8BAAM,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAC,uBAAuB,EAAC,MAAM,EAAC,MAAM,iBACrG,6BAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,iBACtC,6BAAK,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,iBACzC,8BAAO,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,gBAClD,GAAG,CAAC,mBAAmB,CAAC,IACrB,EAAC,GAAG,EACZ,6BAAM,SAAS,EAAC,UAAU,uBAAS,KACjC,EACN,6BAAK,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,iBACzC,gBACI,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,MAAM,EACX,YAAY,EAAC,KAAK,EAClB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,kBACnB,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,GACpD,EAED,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CACrC,eACI,EAAE,EAAC,sBAAsB,EACzB,SAAS,EAAE,MAAM,CAAC,0BAA0B,CAAC,eACnC,QAAQ,EAClB,uBAAuB,EAAE;gDACrB,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;6CACnD,GACH,CACL,KACC,EACN,gBAAO,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,CAAC,UAAU,GAAI,EAChF,IAAI,IAAI,gBAAO,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,GAAI,KACrD,EAEN,6BAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,iBACtC,6BAAK,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,iBACzC,8BAAO,OAAO,EAAC,WAAW,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,gBACvD,GAAG,CAAC,qBAAqB,CAAC,IACvB,EAAC,GAAG,EACX,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,6BAAM,SAAS,EAAC,UAAU,uBAAS,KACrE,EACN,6BAAK,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,iBACzC,gBACI,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,WAAW,EACd,IAAI,EAAC,WAAW,EAChB,YAAY,EAAC,KAAK,EAClB,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,kBACnB,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GACzD,EACD,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAC1C,eACI,EAAE,EAAC,uBAAuB,EAC1B,SAAS,EAAE,MAAM,CAAC,0BAA0B,CAAC,eACnC,QAAQ,EAClB,uBAAuB,EAAE;gDACrB,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;6CACxD,GACH,CACL,KACC,KACJ,EAEN,4BAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,gBACtC,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAI,IACjD,EAEL,oBAAoB,CAAC,CAAC,CAAC,CACpB,8BACI,gBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,CAAC,EAChF,EAAE,EAAC,aAAa,EAChB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,GAC3B,EACF,+BACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,EACtG,EAAE,EAAC,eAAe,EAClB,IAAI,EAAC,YAAY,EACjB,KAAK,EAAC,MAAM,gBAEX,GAAG,CAAC,UAAU,CAAC,IACX,IACV,CACN,CAAC,CAAC,CAAC,CACA,gBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,CAAC,EAChF,EAAE,EAAC,aAAa,EAChB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,GAC3B,CACL,KACE,IACR,IACI,CACd,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAqC;IAC9D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAErB,OAAO,CACH,4BAAK,EAAE,EAAC,iBAAiB,EAAC,SAAS,EAAE,MAAM,CAAC,oBAAoB,CAAC,gBAC7D,4BAAK,SAAS,EAAE,MAAM,CAAC,2BAA2B,CAAC,gBAC/C,4BAAK,SAAS,EAAC,UAAU,gBACrB,4BACI,gBAAO,IAAI,EAAC,UAAU,EAAC,EAAE,EAAC,iBAAiB,EAAC,IAAI,EAAC,iBAAiB,EAAC,KAAK,EAAC,IAAI,EAAC,cAAc,EAAE,IAAI,GAAI,EACrG,GAAG,CAAC,qBAAqB,CAAC,IACvB,IACN,IACJ,IACJ,CACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"LoginConfigTotp.js","sourceRoot":"","sources":["../../src/login/pages/LoginConfigTotp.tsx"],"names":[],"mappings":"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"}
@@ -15,23 +15,21 @@ export default function LoginPasskeysConditionalAuthenticate(props) {
15
15
  const authButtonId = "authenticateWebAuthnButton";
16
16
  useScript({ authButtonId, kcContext, i18n });
17
17
  return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, headerNode: msg("passkey-login-title"), infoNode: realm.registrationAllowed &&
18
- !registrationDisabled && (_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") }))] }) }))) }, { children: [_jsxs("form", Object.assign({ id: "webauth", action: url.loginAction, method: "post" }, { children: [_jsx("input", { type: "hidden", id: "clientDataJSON", name: "clientDataJSON" }), _jsx("input", { type: "hidden", id: "authenticatorData", name: "authenticatorData" }), _jsx("input", { type: "hidden", id: "signature", name: "signature" }), _jsx("input", { type: "hidden", id: "credentialId", name: "credentialId" }), _jsx("input", { type: "hidden", id: "userHandle", name: "userHandle" }), _jsx("input", { type: "hidden", id: "error", name: "error" })] })), _jsx("div", Object.assign({ className: kcClsx("kcFormGroupClass"), "no-bottom-margin": "true", style: { marginBottom: 0 } }, { children: authenticators !== undefined && Object.keys(authenticators).length !== 0 && (_jsxs(_Fragment, { children: [_jsx("form", Object.assign({ id: "authn_select", className: kcClsx("kcFormClass") }, { children: authenticators.authenticators.map((authenticator, i) => (_jsx("input", { type: "hidden", name: "authn_use_chk", readOnly: true, value: authenticator.credentialId }, i))) })), shouldDisplayAuthenticators && (_jsxs(_Fragment, { children: [authenticators.authenticators.length > 1 && (_jsx("p", Object.assign({ className: kcClsx("kcSelectAuthListItemTitle") }, { children: msg("passkey-available-authenticators") }))), _jsx("div", Object.assign({ className: kcClsx("kcFormClass") }, { children: authenticators.authenticators.map((authenticator, i) => (_jsxs("div", Object.assign({ id: `kc-webauthn-authenticator-item-${i}`, className: kcClsx("kcSelectAuthListItemClass") }, { children: [_jsx("i", { className: clsx((() => {
19
- const className = kcClsx(authenticator.transports.iconClass);
20
- if (className === authenticator.transports.iconClass) {
21
- return kcClsx("kcWebAuthnDefaultIcon");
22
- }
23
- return className;
24
- })(), kcClsx("kcSelectAuthListItemIconPropertyClass")) }), _jsxs("div", Object.assign({ className: kcClsx("kcSelectAuthListItemBodyClass") }, { children: [_jsx("div", Object.assign({ id: `kc-webauthn-authenticator-label-${i}`, className: kcClsx("kcSelectAuthListItemHeadingClass") }, { children: advancedMsg(authenticator.label) })), authenticator.transports !== undefined &&
25
- authenticator.transports.displayNameProperties !== undefined &&
26
- authenticator.transports.displayNameProperties.length !== 0 && (_jsx("div", Object.assign({ id: `kc-webauthn-authenticator-transport-${i}`, className: kcClsx("kcSelectAuthListItemDescriptionClass") }, { children: authenticator.transports.displayNameProperties.map((nameProperty, i, arr) => (_jsxs(Fragment, { children: [_jsxs("span", { children: [" ", advancedMsg(nameProperty), " "] }, i), i !== arr.length - 1 && _jsx("span", { children: ", " })] }, i))) }))), _jsxs("div", Object.assign({ className: kcClsx("kcSelectAuthListItemDescriptionClass") }, { children: [_jsx("span", Object.assign({ id: `kc-webauthn-authenticator-createdlabel-${i}` }, { children: msg("passkey-createdAt-label") })), _jsx("span", Object.assign({ id: `kc-webauthn-authenticator-created-${i}` }, { children: authenticator.createdAt }))] }))] })), _jsx("div", { className: kcClsx("kcSelectAuthListItemFillClass") })] }), i))) }))] })), _jsx("div", Object.assign({ id: "kc-form" }, { children: _jsxs("div", Object.assign({ id: "kc-form-wrapper" }, { children: [realm.password && (_jsx("form", Object.assign({ id: "kc-form-passkey", action: url.loginAction, method: "post", style: { display: "none" }, onSubmit: event => {
27
- try {
28
- // @ts-expect-error
29
- event.target.login.disabled = true;
30
- }
31
- catch (_a) { }
32
- return true;
33
- } }, { children: !usernameHidden && (_jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "username", className: kcClsx("kcLabelClass") }, { children: msg("passkey-autofill-select") })), _jsx("input", { tabIndex: 1, id: "username", "aria-invalid": messagesPerField.existsError("username"), className: kcClsx("kcInputClass"), name: "username", defaultValue: (_a = login.username) !== null && _a !== void 0 ? _a : "",
34
- //autoComplete="username webauthn"
35
- type: "text", autoFocus: true, autoComplete: "off" }), messagesPerField.existsError("username") && (_jsx("span", Object.assign({ id: "input-error-username", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite" }, { children: messagesPerField.get("username") })))] }))) }))), _jsx("div", Object.assign({ id: "kc-form-passkey-button", className: kcClsx("kcFormButtonsClass"), style: { display: "none" } }, { children: _jsx("input", { id: authButtonId, type: "button", autoFocus: true, value: msgStr("passkey-doAuthenticate"), className: kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonBlockClass", "kcButtonLargeClass") }) }))] })) }))] })) }))] })));
18
+ !registrationDisabled && (_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") }))] }) }))) }, { children: [_jsxs("form", Object.assign({ id: "webauth", action: url.loginAction, method: "post" }, { children: [_jsx("input", { type: "hidden", id: "clientDataJSON", name: "clientDataJSON" }), _jsx("input", { type: "hidden", id: "authenticatorData", name: "authenticatorData" }), _jsx("input", { type: "hidden", id: "signature", name: "signature" }), _jsx("input", { type: "hidden", id: "credentialId", name: "credentialId" }), _jsx("input", { type: "hidden", id: "userHandle", name: "userHandle" }), _jsx("input", { type: "hidden", id: "error", name: "error" })] })), _jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass"), "no-bottom-margin": "true", style: { marginBottom: 0 } }, { children: [authenticators !== undefined && Object.keys(authenticators).length !== 0 && (_jsxs(_Fragment, { children: [_jsx("form", Object.assign({ id: "authn_select", className: kcClsx("kcFormClass") }, { children: authenticators.authenticators.map((authenticator, i) => (_jsx("input", { type: "hidden", name: "authn_use_chk", readOnly: true, value: authenticator.credentialId }, i))) })), shouldDisplayAuthenticators && (_jsxs(_Fragment, { children: [authenticators.authenticators.length > 1 && (_jsx("p", Object.assign({ className: kcClsx("kcSelectAuthListItemTitle") }, { children: msg("passkey-available-authenticators") }))), _jsx("div", Object.assign({ className: kcClsx("kcFormClass") }, { children: authenticators.authenticators.map((authenticator, i) => (_jsxs("div", Object.assign({ id: `kc-webauthn-authenticator-item-${i}`, className: kcClsx("kcSelectAuthListItemClass") }, { children: [_jsx("i", { className: clsx((() => {
19
+ const className = kcClsx(authenticator.transports.iconClass);
20
+ if (className === authenticator.transports.iconClass) {
21
+ return kcClsx("kcWebAuthnDefaultIcon");
22
+ }
23
+ return className;
24
+ })(), kcClsx("kcSelectAuthListItemIconPropertyClass")) }), _jsxs("div", Object.assign({ className: kcClsx("kcSelectAuthListItemBodyClass") }, { children: [_jsx("div", Object.assign({ id: `kc-webauthn-authenticator-label-${i}`, className: kcClsx("kcSelectAuthListItemHeadingClass") }, { children: advancedMsg(authenticator.label) })), authenticator.transports !== undefined &&
25
+ authenticator.transports.displayNameProperties !== undefined &&
26
+ authenticator.transports.displayNameProperties.length !== 0 && (_jsx("div", Object.assign({ id: `kc-webauthn-authenticator-transport-${i}`, className: kcClsx("kcSelectAuthListItemDescriptionClass") }, { children: authenticator.transports.displayNameProperties.map((nameProperty, i, arr) => (_jsxs(Fragment, { children: [_jsxs("span", { children: [" ", advancedMsg(nameProperty), " "] }, i), i !== arr.length - 1 && _jsx("span", { children: ", " })] }, i))) }))), _jsxs("div", Object.assign({ className: kcClsx("kcSelectAuthListItemDescriptionClass") }, { children: [_jsx("span", Object.assign({ id: `kc-webauthn-authenticator-createdlabel-${i}` }, { children: msg("passkey-createdAt-label") })), _jsx("span", Object.assign({ id: `kc-webauthn-authenticator-created-${i}` }, { children: authenticator.createdAt }))] }))] })), _jsx("div", { className: kcClsx("kcSelectAuthListItemFillClass") })] }), i))) }))] }))] })), _jsx("div", Object.assign({ id: "kc-form" }, { children: _jsxs("div", Object.assign({ id: "kc-form-wrapper" }, { children: [realm.password && (_jsx("form", Object.assign({ id: "kc-form-login", action: url.loginAction, method: "post", style: { display: "none" }, onSubmit: event => {
27
+ try {
28
+ // @ts-expect-error
29
+ event.target.login.disabled = true;
30
+ }
31
+ catch (_a) { }
32
+ return true;
33
+ } }, { children: !usernameHidden && (_jsxs("div", Object.assign({ className: kcClsx("kcFormGroupClass") }, { children: [_jsx("label", Object.assign({ htmlFor: "username", className: kcClsx("kcLabelClass") }, { children: msg("passkey-autofill-select") })), _jsx("input", { tabIndex: 1, id: "username", "aria-invalid": messagesPerField.existsError("username"), className: kcClsx("kcInputClass"), name: "username", defaultValue: (_a = login.username) !== null && _a !== void 0 ? _a : "", autoComplete: "username webauthn", type: "text", autoFocus: true }), messagesPerField.existsError("username") && (_jsx("span", Object.assign({ id: "input-error-username", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite" }, { children: messagesPerField.get("username") })))] }))) }))), _jsx("div", Object.assign({ id: "kc-form-passkey-button", className: kcClsx("kcFormButtonsClass"), style: { display: "none" } }, { children: _jsx("input", { id: authButtonId, type: "button", autoFocus: true, value: msgStr("passkey-doAuthenticate"), className: kcClsx("kcButtonClass", "kcButtonPrimaryClass", "kcButtonBlockClass", "kcButtonLargeClass") }) }))] })) }))] }))] })));
36
34
  }
37
35
  //# sourceMappingURL=LoginPasskeysConditionalAuthenticate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginPasskeysConditionalAuthenticate.js","sourceRoot":"","sources":["../../src/login/pages/LoginPasskeysConditionalAuthenticate.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoginPasskeysConditionalAuthenticate.js","sourceRoot":"","sources":["../../src/login/pages/LoginPasskeysConditionalAuthenticate.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "11.4.0-rc.0",
3
+ "version": "11.4.0",
4
4
  "description": "Framework to create custom Keycloak UIs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -711,6 +711,7 @@
711
711
  "src/bin/start-keycloak/myrealm-realm-25.json",
712
712
  "src/bin/start-keycloak/myrealm-realm-26.json",
713
713
  "src/bin/start-keycloak/start-keycloak.ts",
714
+ "src/bin/start-keycloak/startViteDevServer.ts",
714
715
  "src/bin/tools/OptionalIfCanBeUndefined.ts",
715
716
  "src/bin/tools/SemVer.ts",
716
717
  "src/bin/tools/String.prototype.replaceAll.ts",
@@ -730,6 +731,7 @@
730
731
  "src/bin/tools/getInstalledModuleDirPath.ts",
731
732
  "src/bin/tools/getThisCodebaseRootDirPath.ts",
732
733
  "src/bin/tools/isInside.ts",
734
+ "src/bin/tools/isTrackedByGit.ts",
733
735
  "src/bin/tools/kebabCaseToSnakeCase.ts",
734
736
  "src/bin/tools/listInstalledModules.ts",
735
737
  "src/bin/tools/nodeModulesBinDirPath.ts",
@@ -742,6 +744,7 @@
742
744
  "src/bin/tools/tee.ts",
743
745
  "src/bin/tools/transformCodebase.ts",
744
746
  "src/bin/tools/trimIndent.ts",
747
+ "src/bin/tools/untrackFromGit.ts",
745
748
  "src/bin/tsconfig.json",
746
749
  "src/bin/update-kc-gen.ts",
747
750
  "src/lib/BASE_URL.ts",
@@ -865,6 +868,7 @@
865
868
  "src/tools/clsx_withTransform.ts",
866
869
  "src/tools/deepAssign.ts",
867
870
  "src/tools/emailRegExp.ts",
871
+ "src/tools/extractLastParenthesisContent.ts",
868
872
  "src/tools/formatNumber.ts",
869
873
  "src/tools/pathBasename.ts",
870
874
  "src/tools/structuredCloneButFunctions.ts",
@@ -898,7 +902,6 @@
898
902
  "stories/login/pages/Info.stories.tsx",
899
903
  "stories/login/pages/Login.stories.tsx",
900
904
  "stories/login/pages/LoginConfigTotp.stories.tsx",
901
- "stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx",
902
905
  "stories/login/pages/LoginIdpLinkConfirm.stories.tsx",
903
906
  "stories/login/pages/LoginIdpLinkConfirmOverride.stories.tsx",
904
907
  "stories/login/pages/LoginIdpLinkEmail.stories.tsx",
@@ -974,6 +977,9 @@
974
977
  "tools/emailRegExp.d.ts",
975
978
  "tools/emailRegExp.js",
976
979
  "tools/emailRegExp.js.map",
980
+ "tools/extractLastParenthesisContent.d.ts",
981
+ "tools/extractLastParenthesisContent.js",
982
+ "tools/extractLastParenthesisContent.js.map",
977
983
  "tools/formatNumber.d.ts",
978
984
  "tools/formatNumber.js",
979
985
  "tools/formatNumber.js.map",
@@ -1057,6 +1063,7 @@
1057
1063
  "bin/start-keycloak/index.d.ts",
1058
1064
  "bin/start-keycloak/keycloakifyBuild.d.ts",
1059
1065
  "bin/start-keycloak/start-keycloak.d.ts",
1066
+ "bin/start-keycloak/startViteDevServer.d.ts",
1060
1067
  "bin/tools/assertNoPnpmDlx.d.ts",
1061
1068
  "bin/tools/crawl.d.ts",
1062
1069
  "bin/tools/crawlAsync.d.ts",
@@ -1073,6 +1080,7 @@
1073
1080
  "bin/tools/getInstalledModuleDirPath.d.ts",
1074
1081
  "bin/tools/getThisCodebaseRootDirPath.d.ts",
1075
1082
  "bin/tools/isInside.d.ts",
1083
+ "bin/tools/isTrackedByGit.d.ts",
1076
1084
  "bin/tools/kebabCaseToSnakeCase.d.ts",
1077
1085
  "bin/tools/listInstalledModules.d.ts",
1078
1086
  "bin/tools/nodeModulesBinDirPath.d.ts",
@@ -1088,20 +1096,22 @@
1088
1096
  "bin/tools/tee.d.ts",
1089
1097
  "bin/tools/transformCodebase.d.ts",
1090
1098
  "bin/tools/trimIndent.d.ts",
1099
+ "bin/tools/untrackFromGit.d.ts",
1091
1100
  "bin/update-kc-gen.d.ts",
1092
1101
  "bin/main.js",
1093
- "bin/124.index.js",
1094
1102
  "bin/20.index.js",
1095
1103
  "bin/266.index.js",
1096
1104
  "bin/304.index.js",
1097
1105
  "bin/33.index.js",
1098
1106
  "bin/356.index.js",
1099
1107
  "bin/36.index.js",
1108
+ "bin/392.index.js",
1100
1109
  "bin/40.index.js",
1101
1110
  "bin/450.index.js",
1102
1111
  "bin/453.index.js",
1103
- "bin/526.index.js",
1104
1112
  "bin/573.index.js",
1113
+ "bin/653.index.js",
1114
+ "bin/658.index.js",
1105
1115
  "bin/720.index.js",
1106
1116
  "bin/735.index.js",
1107
1117
  "bin/743.index.js",
@@ -1134,7 +1144,7 @@
1134
1144
  ],
1135
1145
  "homepage": "https://www.keycloakify.dev",
1136
1146
  "dependencies": {
1137
- "tsafe": "^1.7.5"
1147
+ "tsafe": "^1.8.5"
1138
1148
  },
1139
1149
  "devDependencies": {
1140
1150
  "@babel/core": "^7.24.5",
@@ -1165,14 +1175,14 @@
1165
1175
  "cli-select": "^1.1.2",
1166
1176
  "dompurify": "^3.1.6",
1167
1177
  "eslint-plugin-storybook": "^0.6.7",
1168
- "evt": "^2.5.7",
1178
+ "evt": "^2.5.8",
1169
1179
  "html-entities": "^2.5.2",
1170
1180
  "husky": "^4.3.8",
1171
1181
  "isomorphic-dompurify": "^2.15.0",
1172
1182
  "lint-staged": "^11.0.0",
1173
1183
  "magic-string": "^0.30.7",
1174
1184
  "make-fetch-happen": "^11.0.3",
1175
- "powerhooks": "^1.0.10",
1185
+ "powerhooks": "^1.0.19",
1176
1186
  "prettier": "^3.2.5",
1177
1187
  "properties-parser": "^0.3.1",
1178
1188
  "react": "^18.2.0",
@@ -1,11 +1,11 @@
1
1
  import "keycloakify/tools/Object.fromEntries";
2
- import { assert } from "tsafe/assert";
2
+ import { assert, is } from "tsafe/assert";
3
+ import { extractLastParenthesisContent } from "keycloakify/tools/extractLastParenthesisContent";
3
4
  import messages_defaultSet_fallbackLanguage from "../messages_defaultSet/en";
4
5
  import { fetchMessages_defaultSet } from "../messages_defaultSet";
5
6
  import type { KcContext } from "../../KcContext";
6
7
  import { FALLBACK_LANGUAGE_TAG } from "keycloakify/bin/shared/constants";
7
8
  import { id } from "tsafe/id";
8
- import { is } from "tsafe/is";
9
9
  import { Reflect } from "tsafe/Reflect";
10
10
  import {
11
11
  type LanguageTag as LanguageTag_defaultSet,
@@ -169,12 +169,10 @@ export function createGetI18n<
169
169
  break from_server;
170
170
  }
171
171
 
172
- // cspell: disable-next-line
173
- // from "Espagnol (Español)" we want to extract "Español"
174
- const match = supportedEntry.label.match(/[^(]+\(([^)]+)\)/);
172
+ const lastParenthesisContent = extractLastParenthesisContent(supportedEntry.label);
175
173
 
176
- if (match !== null) {
177
- return match[1];
174
+ if (lastParenthesisContent !== undefined) {
175
+ return lastParenthesisContent;
178
176
  }
179
177
 
180
178
  return supportedEntry.label;
@@ -47,11 +47,25 @@ export function createUseI18n<
47
47
 
48
48
  function renderHtmlString(params: { htmlString: string; msgKey: string }): JSX.Element {
49
49
  const { htmlString, msgKey } = params;
50
+
51
+ const htmlString_sanitized = kcSanitize(htmlString);
52
+
53
+ const Element = (() => {
54
+ if (htmlString_sanitized.includes("<") && htmlString_sanitized.includes(">")) {
55
+ for (const tagName of ["div", "section", "article", "ul", "ol"]) {
56
+ if (htmlString_sanitized.includes(`<${tagName}`)) {
57
+ return "div";
58
+ }
59
+ }
60
+ }
61
+ return "span";
62
+ })();
63
+
50
64
  return (
51
- <div
65
+ <Element
52
66
  data-kc-msg={msgKey}
53
67
  dangerouslySetInnerHTML={{
54
- __html: kcSanitize(htmlString)
68
+ __html: htmlString_sanitized
55
69
  }}
56
70
  />
57
71
  );
@@ -83,7 +97,7 @@ export function createUseI18n<
83
97
  })();
84
98
 
85
99
  add_style: {
86
- const attributeName = "data-kc-i18n";
100
+ const attributeName = "data-kc-msg";
87
101
 
88
102
  // Check if already exists in head
89
103
  if (document.querySelector(`style[${attributeName}]`) !== null) {
@@ -92,7 +106,7 @@ export function createUseI18n<
92
106
 
93
107
  const styleElement = document.createElement("style");
94
108
  styleElement.attributes.setNamedItem(document.createAttribute(attributeName));
95
- styleElement.textContent = `[data-kc-msg] { display: inline-block; }`;
109
+ styleElement.textContent = `div[${attributeName}] { display: inline-block; }`;
96
110
  document.head.prepend(styleElement);
97
111
  }
98
112
 
@@ -66,23 +66,30 @@ export async function command(params: { buildContext: BuildContext }) {
66
66
  return value;
67
67
  })();
68
68
 
69
+ if (themeType === "admin") {
70
+ console.log(
71
+ "Use `npx keycloakify eject-file` command instead, see documentation"
72
+ );
73
+
74
+ process.exit(-1);
75
+ }
76
+
69
77
  if (
70
- themeType === "admin" ||
71
- (themeType === "account" &&
72
- (assert(buildContext.implementedThemeTypes.account.isImplemented),
73
- buildContext.implementedThemeTypes.account.type === "Single-Page"))
78
+ themeType === "account" &&
79
+ (assert(buildContext.implementedThemeTypes.account.isImplemented),
80
+ buildContext.implementedThemeTypes.account.type === "Single-Page")
74
81
  ) {
75
82
  const srcDirPath = pathJoin(
76
83
  pathDirname(buildContext.packageJsonFilePath),
77
84
  "node_modules",
78
85
  "@keycloakify",
79
- `keycloak-${themeType}-ui`,
86
+ `keycloak-account-ui`,
80
87
  "src"
81
88
  );
82
89
 
83
90
  console.log(
84
91
  [
85
- `There isn't an interactive CLI to eject components of the ${themeType} UI.`,
92
+ `There isn't an interactive CLI to eject components of the Account SPA UI.`,
86
93
  `You can however copy paste into your codebase the any file or directory from the following source directory:`,
87
94
  ``,
88
95
  `${chalk.bold(pathJoin(pathRelative(process.cwd(), srcDirPath)))}`,
@@ -91,9 +98,9 @@ export async function command(params: { buildContext: BuildContext }) {
91
98
  );
92
99
 
93
100
  eject_entrypoint: {
94
- const kcUiTsxFileRelativePath = `Kc${capitalize(themeType)}Ui.tsx` as const;
101
+ const kcUiTsxFileRelativePath = `KcAccountUi.tsx` as const;
95
102
 
96
- const themeSrcDirPath = pathJoin(buildContext.themeSrcDirPath, themeType);
103
+ const themeSrcDirPath = pathJoin(buildContext.themeSrcDirPath, "account");
97
104
 
98
105
  const targetFilePath = pathJoin(themeSrcDirPath, kcUiTsxFileRelativePath);
99
106
 
@@ -113,11 +120,22 @@ export async function command(params: { buildContext: BuildContext }) {
113
120
  ""
114
121
  );
115
122
 
116
- const modifiedKcPageTsxCode = kcPageTsxCode.replace(
117
- `@keycloakify/keycloak-${themeType}-ui/${componentName}`,
123
+ let modifiedKcPageTsxCode = kcPageTsxCode.replace(
124
+ `@keycloakify/keycloak-account-ui/${componentName}`,
118
125
  `./${componentName}`
119
126
  );
120
127
 
128
+ run_prettier: {
129
+ if (!(await getIsPrettierAvailable())) {
130
+ break run_prettier;
131
+ }
132
+
133
+ modifiedKcPageTsxCode = await runPrettier({
134
+ filePath: kcPageTsxFilePath,
135
+ sourceCode: modifiedKcPageTsxCode
136
+ });
137
+ }
138
+
121
139
  fs.writeFileSync(
122
140
  kcPageTsxFilePath,
123
141
  Buffer.from(modifiedKcPageTsxCode, "utf8")
@@ -1,4 +1,4 @@
1
- import { join as pathJoin, relative as pathRelative, dirname as pathDirname } from "path";
1
+ import { relative as pathRelative, dirname as pathDirname } from "path";
2
2
  import type { BuildContext } from "../shared/buildContext";
3
3
  import * as fs from "fs";
4
4
  import chalk from "chalk";
@@ -9,12 +9,10 @@ import {
9
9
  import { SemVer } from "../tools/SemVer";
10
10
  import fetch from "make-fetch-happen";
11
11
  import { z } from "zod";
12
- import { assert, type Equals } from "tsafe/assert";
13
- import { is } from "tsafe/is";
12
+ import { assert, type Equals, is } from "tsafe/assert";
14
13
  import { id } from "tsafe/id";
15
14
  import { npmInstall } from "../tools/npmInstall";
16
15
  import { copyBoilerplate } from "./copyBoilerplate";
17
- import { getThisCodebaseRootDirPath } from "../tools/getThisCodebaseRootDirPath";
18
16
 
19
17
  type BuildContextLike = BuildContextLike_getLatestsSemVersionedTag & {
20
18
  fetchOptions: BuildContext["fetchOptions"];
@@ -121,20 +119,7 @@ export async function initializeAccountTheme_singlePage(params: {
121
119
  JSON.stringify(parsedPackageJson, undefined, 4)
122
120
  );
123
121
 
124
- run_npm_install: {
125
- if (
126
- JSON.parse(
127
- fs
128
- .readFileSync(pathJoin(getThisCodebaseRootDirPath(), "package.json"))
129
- .toString("utf8")
130
- )["version"] === "0.0.0"
131
- ) {
132
- //NOTE: Linked version
133
- break run_npm_install;
134
- }
135
-
136
- npmInstall({ packageJsonDirPath: pathDirname(buildContext.packageJsonFilePath) });
137
- }
122
+ npmInstall({ packageJsonDirPath: pathDirname(buildContext.packageJsonFilePath) });
138
123
 
139
124
  copyBoilerplate({
140
125
  accountThemeType: "Single-Page",
@@ -1,11 +1,10 @@
1
1
  import { join as pathJoin } from "path";
2
- import { assert, type Equals } from "tsafe/assert";
2
+ import { assert, type Equals, is } from "tsafe/assert";
3
3
  import type { BuildContext } from "../shared/buildContext";
4
4
  import * as fs from "fs";
5
5
  import chalk from "chalk";
6
6
  import { z } from "zod";
7
7
  import { id } from "tsafe/id";
8
- import { is } from "tsafe/is";
9
8
 
10
9
  export type BuildContextLike = {
11
10
  bundler: BuildContext["bundler"];
@@ -84,8 +84,47 @@ attributes_to_attributesByName: {
84
84
  kcContext.profile.attributesByName[attribute.name] = attribute;
85
85
  });
86
86
  }
87
+
88
+ redirect_to_dev_server: {
89
+
90
+ switch(kcContext.themeType){
91
+ case "login":
92
+ break redirect_to_dev_server;
93
+ case "account":
94
+ if( kcContext.pageId !== "index.ftl" ){
95
+ break redirect_to_dev_server;
96
+ }
97
+ break;
98
+ case "admin":
99
+ break;
100
+ default:
101
+ break redirect_to_dev_server;
102
+ }
103
+
104
+ const devSeverPort = kcContext.properties.KEYCLOAKIFY_SPA_DEV_SERVER_PORT;
105
+
106
+ if( !devSeverPort ){
107
+ break redirect_to_dev_server;
108
+ }
109
+
110
+ const redirectUrl = new URL(window.location.href);
111
+
112
+ redirectUrl.port = devSeverPort;
113
+
114
+ delete kcContext.msgJSON;
115
+
116
+ console.log(kcContext);
117
+
118
+ redirectUrl.searchParams.set("kcContext", encodeURIComponent(JSON.stringify(kcContext)) );
119
+
120
+ window.location.href = redirectUrl.toString();
121
+
122
+ }
123
+
124
+
87
125
  window.kcContext = kcContext;
88
126
 
127
+
89
128
  <#if xKeycloakify.themeType == "login" >
90
129
  {
91
130
  const script = document.createElement("script");
@@ -20,7 +20,8 @@ import {
20
20
  LOGIN_THEME_PAGE_IDS,
21
21
  ACCOUNT_THEME_PAGE_IDS,
22
22
  WELL_KNOWN_DIRECTORY_BASE_NAME,
23
- THEME_TYPES
23
+ THEME_TYPES,
24
+ KEYCLOAKIFY_SPA_DEV_SERVER_PORT
24
25
  } from "../../shared/constants";
25
26
  import { assert, type Equals } from "tsafe/assert";
26
27
  import { readFieldNameUsage } from "./readFieldNameUsage";
@@ -379,7 +380,10 @@ export async function generateResources(params: {
379
380
  ? ["deprecatedMode=false"]
380
381
  : []),
381
382
  ...(buildContext.extraThemeProperties ?? []),
382
- ...buildContext.environmentVariables.map(
383
+ ...[
384
+ ...buildContext.environmentVariables,
385
+ { name: KEYCLOAKIFY_SPA_DEV_SERVER_PORT, default: "" }
386
+ ].map(
383
387
  ({ name, default: defaultValue }) =>
384
388
  `${name}=\${env.${name}:${escapeStringForPropertiesFile(defaultValue)}}`
385
389
  ),