keycloakify 10.1.0-rc.1 → 10.1.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 (205) hide show
  1. package/PUBLIC_URL.js +2 -2
  2. package/PUBLIC_URL.js.map +1 -1
  3. package/account/KcContext/kcContextMocks.js +3 -3
  4. package/account/KcContext/kcContextMocks.js.map +1 -1
  5. package/bin/193.index.js +198 -62
  6. package/bin/{365.index.js → 20.index.js} +302 -263
  7. package/bin/31.index.js +15 -23
  8. package/bin/{430.index.js → 33.index.js} +579 -4
  9. package/bin/{678.index.js → 36.index.js} +2 -577
  10. package/bin/{440.index.js → 499.index.js} +259 -181
  11. package/bin/526.index.js +3 -784
  12. package/bin/599.index.js +4 -1
  13. package/bin/780.index.js +1 -1
  14. package/bin/{525.index.js → 903.index.js} +4840 -97
  15. package/bin/932.index.js +115 -886
  16. package/bin/main.js +4 -4
  17. package/bin/shared/buildContext.d.ts +0 -2
  18. package/bin/shared/buildContext.js.map +1 -1
  19. package/bin/shared/constants.d.ts +5 -6
  20. package/bin/shared/constants.js +5 -6
  21. package/bin/shared/constants.js.map +1 -1
  22. package/bin/shared/copyKeycloakResourcesToPublic.d.ts +2 -4
  23. package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -1
  24. package/login/KcContext/KcContext.d.ts +9 -18
  25. package/login/KcContext/KcContext.js.map +1 -1
  26. package/login/KcContext/kcContextMocks.js +6 -10
  27. package/login/KcContext/kcContextMocks.js.map +1 -1
  28. package/login/Template.js +4 -59
  29. package/login/Template.js.map +1 -1
  30. package/login/Template.useStylesAndScripts.d.ts +17 -0
  31. package/login/Template.useStylesAndScripts.js +69 -0
  32. package/login/Template.useStylesAndScripts.js.map +1 -0
  33. package/login/pages/Login.js +1 -1
  34. package/login/pages/Login.js.map +1 -1
  35. package/login/pages/LoginIdpLinkConfirmOverride.js +0 -1
  36. package/login/pages/LoginIdpLinkConfirmOverride.js.map +1 -1
  37. package/login/pages/LoginPasskeysConditionalAuthenticate.js +6 -49
  38. package/login/pages/LoginPasskeysConditionalAuthenticate.js.map +1 -1
  39. package/login/pages/LoginPasskeysConditionalAuthenticate.useScript.d.ts +20 -0
  40. package/login/pages/LoginPasskeysConditionalAuthenticate.useScript.js +49 -0
  41. package/login/pages/LoginPasskeysConditionalAuthenticate.useScript.js.map +1 -0
  42. package/login/pages/LoginRecoveryAuthnCodeConfig.js +4 -126
  43. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  44. package/login/pages/LoginRecoveryAuthnCodeConfig.useScript.d.ts +9 -0
  45. package/login/pages/LoginRecoveryAuthnCodeConfig.useScript.js +133 -0
  46. package/login/pages/LoginRecoveryAuthnCodeConfig.useScript.js.map +1 -0
  47. package/login/pages/LoginUsername.js +1 -1
  48. package/login/pages/LoginUsername.js.map +1 -1
  49. package/login/pages/Register.js +6 -3
  50. package/login/pages/Register.js.map +1 -1
  51. package/login/pages/WebauthnAuthenticate.js +13 -116
  52. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  53. package/login/pages/WebauthnAuthenticate.useScript.d.ts +21 -0
  54. package/login/pages/WebauthnAuthenticate.useScript.js +41 -0
  55. package/login/pages/WebauthnAuthenticate.useScript.js.map +1 -0
  56. package/login/pages/WebauthnRegister.js +8 -178
  57. package/login/pages/WebauthnRegister.js.map +1 -1
  58. package/login/pages/WebauthnRegister.useScript.d.ts +27 -0
  59. package/login/pages/WebauthnRegister.useScript.js +49 -0
  60. package/login/pages/WebauthnRegister.useScript.js.map +1 -0
  61. package/package.json +125 -15
  62. package/res/account-v1/account.ftl +70 -0
  63. package/res/account-v1/applications.ftl +76 -0
  64. package/res/account-v1/federatedIdentity.ftl +42 -0
  65. package/res/account-v1/log.ftl +35 -0
  66. package/res/account-v1/messages/messages_ar.properties +406 -0
  67. package/res/account-v1/messages/messages_ca.properties +147 -0
  68. package/res/account-v1/messages/messages_cs.properties +171 -0
  69. package/res/account-v1/messages/messages_da.properties +339 -0
  70. package/res/account-v1/messages/messages_de.properties +353 -0
  71. package/res/account-v1/messages/messages_en.properties +404 -0
  72. package/res/account-v1/messages/messages_es.properties +147 -0
  73. package/res/account-v1/messages/messages_fi.properties +400 -0
  74. package/res/account-v1/messages/messages_fr.properties +180 -0
  75. package/res/account-v1/messages/messages_hu.properties +334 -0
  76. package/res/account-v1/messages/messages_it.properties +336 -0
  77. package/res/account-v1/messages/messages_ja.properties +335 -0
  78. package/res/account-v1/messages/messages_lt.properties +154 -0
  79. package/res/account-v1/messages/messages_lv.properties +197 -0
  80. package/res/account-v1/messages/messages_nl.properties +371 -0
  81. package/res/account-v1/messages/messages_no.properties +152 -0
  82. package/res/account-v1/messages/messages_pl.properties +248 -0
  83. package/res/account-v1/messages/messages_pt_BR.properties +349 -0
  84. package/res/account-v1/messages/messages_ru.properties +235 -0
  85. package/res/account-v1/messages/messages_sk.properties +196 -0
  86. package/res/account-v1/messages/messages_sv.properties +150 -0
  87. package/res/account-v1/messages/messages_tr.properties +315 -0
  88. package/res/account-v1/messages/messages_zh_CN.properties +153 -0
  89. package/res/account-v1/password.ftl +59 -0
  90. package/res/account-v1/resource-detail.ftl +277 -0
  91. package/res/account-v1/resources/css/account.css +277 -0
  92. package/res/account-v1/resources/img/icon-sidebar-active.png +0 -0
  93. package/res/account-v1/resources/img/keycloak-logo.png +0 -0
  94. package/res/account-v1/resources/img/logo.png +0 -0
  95. package/res/account-v1/resources/resources-common/img/favicon.ico +0 -0
  96. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/css/patternfly-additions.min.css +5 -0
  97. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/css/patternfly.min.css +8 -0
  98. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.woff2 +0 -0
  99. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.woff2 +0 -0
  100. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.woff2 +0 -0
  101. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.woff2 +0 -0
  102. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.ttf +0 -0
  103. package/res/account-v1/resources/resources-common/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.woff +0 -0
  104. package/res/account-v1/resources.ftl +403 -0
  105. package/res/account-v1/sessions.ftl +44 -0
  106. package/res/account-v1/template.ftl +88 -0
  107. package/res/account-v1/theme.properties +14 -0
  108. package/res/account-v1/totp.ftl +141 -0
  109. package/res/public/.keycloakify/account/css/account.css +277 -0
  110. package/res/public/.keycloakify/account/img/icon-sidebar-active.png +0 -0
  111. package/res/public/.keycloakify/account/img/keycloak-logo.png +0 -0
  112. package/res/public/.keycloakify/account/img/logo.png +0 -0
  113. package/res/public/.keycloakify/account/resources-common/img/favicon.ico +0 -0
  114. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/css/patternfly-additions.min.css +5 -0
  115. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/css/patternfly.min.css +8 -0
  116. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.woff2 +0 -0
  117. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.woff2 +0 -0
  118. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.woff2 +0 -0
  119. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.woff2 +0 -0
  120. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.ttf +0 -0
  121. package/res/public/.keycloakify/account/resources-common/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.woff +0 -0
  122. package/res/public/.keycloakify/login/css/login.css +629 -0
  123. package/res/public/.keycloakify/login/img/feedback-error-arrow-down.png +0 -0
  124. package/res/public/.keycloakify/login/img/feedback-error-sign.png +0 -0
  125. package/res/public/.keycloakify/login/img/feedback-success-arrow-down.png +0 -0
  126. package/res/public/.keycloakify/login/img/feedback-success-sign.png +0 -0
  127. package/res/public/.keycloakify/login/img/feedback-warning-arrow-down.png +0 -0
  128. package/res/public/.keycloakify/login/img/feedback-warning-sign.png +0 -0
  129. package/res/public/.keycloakify/login/img/keycloak-bg.png +0 -0
  130. package/res/public/.keycloakify/login/img/keycloak-logo-text.png +0 -0
  131. package/res/public/.keycloakify/login/img/keycloak-logo.png +0 -0
  132. package/res/public/.keycloakify/login/js/authChecker.js +49 -0
  133. package/res/public/.keycloakify/login/js/common.js +48 -0
  134. package/res/public/.keycloakify/login/js/kcMultivalued.js +106 -0
  135. package/res/public/.keycloakify/login/js/kcNumberFormat.js +21 -0
  136. package/res/public/.keycloakify/login/js/kcNumberUnFormat.js +19 -0
  137. package/res/public/.keycloakify/login/js/menu-button-links.js +315 -0
  138. package/{src/bin/shared/downloadKeycloakDefaultTheme/extra-assets → res/public/.keycloakify/login/js}/passkeysConditionalAuth.js +1 -1
  139. package/res/public/.keycloakify/login/js/passwordVisibility.js +15 -0
  140. package/res/public/.keycloakify/login/js/userProfile.js +71 -0
  141. package/res/public/.keycloakify/login/js/webauthnRegister.js +140 -0
  142. package/res/public/.keycloakify/login/resources-common/img/favicon.ico +0 -0
  143. package/res/public/.keycloakify/login/resources-common/lib/pficon/pficon.css +22 -0
  144. package/res/public/.keycloakify/login/resources-common/lib/pficon/pficon.woff2 +0 -0
  145. package/res/public/.keycloakify/login/resources-common/node_modules/@patternfly/patternfly/patternfly.min.css +2 -0
  146. package/res/public/.keycloakify/login/resources-common/node_modules/jquery/dist/jquery.min.js +2 -0
  147. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/css/patternfly-additions.min.css +5 -0
  148. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/css/patternfly.min.css +8 -0
  149. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.ttf +0 -0
  150. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.woff +0 -0
  151. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Bold-webfont.woff2 +0 -0
  152. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Light-webfont.woff2 +0 -0
  153. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Regular-webfont.woff2 +0 -0
  154. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/OpenSans-Semibold-webfont.woff2 +0 -0
  155. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.ttf +0 -0
  156. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/PatternFlyIcons-webfont.woff +0 -0
  157. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/fonts/fontawesome-webfont.woff2 +0 -0
  158. package/res/public/.keycloakify/login/resources-common/node_modules/patternfly/dist/img/bg-login.jpg +0 -0
  159. package/res/public/.keycloakify/login/resources-common/node_modules/rfc4648/lib/rfc4648.js +178 -0
  160. package/src/PUBLIC_URL.ts +5 -3
  161. package/src/account/KcContext/kcContextMocks.ts +3 -3
  162. package/src/bin/copy-keycloak-resources-to-public.ts +1 -1
  163. package/src/bin/initialize-account-theme/initializeAccountTheme_singlePage.ts +4 -1
  164. package/src/bin/initialize-email-theme.ts +28 -8
  165. package/src/bin/keycloakify/buildJars/buildJar.ts +3 -7
  166. package/src/bin/keycloakify/generateFtl/generateFtl.ts +3 -7
  167. package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +65 -90
  168. package/src/bin/keycloakify/keycloakify.ts +38 -21
  169. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +2 -2
  170. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +3 -3
  171. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +3 -3
  172. package/src/bin/shared/buildContext.ts +1 -8
  173. package/src/bin/shared/constants.ts +5 -7
  174. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +30 -40
  175. package/src/bin/start-keycloak/start-keycloak.ts +3 -7
  176. package/src/login/KcContext/KcContext.ts +9 -18
  177. package/src/login/KcContext/kcContextMocks.ts +5 -13
  178. package/src/login/Template.tsx +4 -67
  179. package/src/login/Template.useStylesAndScripts.ts +94 -0
  180. package/src/login/pages/Login.tsx +1 -1
  181. package/src/login/pages/LoginIdpLinkConfirmOverride.tsx +0 -1
  182. package/src/login/pages/LoginPasskeysConditionalAuthenticate.tsx +6 -81
  183. package/src/login/pages/LoginPasskeysConditionalAuthenticate.useScript.tsx +72 -0
  184. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +4 -126
  185. package/src/login/pages/LoginRecoveryAuthnCodeConfig.useScript.tsx +142 -0
  186. package/src/login/pages/LoginUsername.tsx +1 -1
  187. package/src/login/pages/Register.tsx +35 -13
  188. package/src/login/pages/WebauthnAuthenticate.tsx +20 -133
  189. package/src/login/pages/WebauthnAuthenticate.useScript.tsx +64 -0
  190. package/src/login/pages/WebauthnRegister.tsx +8 -195
  191. package/src/login/pages/WebauthnRegister.useScript.tsx +93 -0
  192. package/src/tools/useInsertScriptTags.ts +14 -4
  193. package/src/vite-plugin/vite-plugin.ts +11 -15
  194. package/tools/useInsertScriptTags.d.ts +2 -2
  195. package/tools/useInsertScriptTags.js +8 -2
  196. package/tools/useInsertScriptTags.js.map +1 -1
  197. package/vite-plugin/index.js +3357 -47132
  198. package/bin/697.index.js +0 -4749
  199. package/bin/shared/downloadKeycloakStaticResources.d.ts +0 -9
  200. package/bin/shared/downloadKeycloakStaticResources.js.map +0 -1
  201. package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +0 -89
  202. package/src/bin/shared/downloadKeycloakDefaultTheme/downloadKeycloakDefaultTheme.ts +0 -338
  203. package/src/bin/shared/downloadKeycloakDefaultTheme/index.ts +0 -1
  204. package/src/bin/shared/downloadKeycloakStaticResources.ts +0 -53
  205. /package/{src/bin/shared/downloadKeycloakDefaultTheme/extra-assets → res/public/.keycloakify/login/js}/webauthnAuthenticate.js +0 -0
@@ -0,0 +1,93 @@
1
+ import { useEffect } from "react";
2
+ import { useInsertScriptTags } from "keycloakify/tools/useInsertScriptTags";
3
+ import { assert } from "keycloakify/tools/assert";
4
+ import { KcContext } from "keycloakify/login/KcContext/KcContext";
5
+
6
+ type KcContextLike = {
7
+ url: {
8
+ resourcesPath: string;
9
+ };
10
+ challenge: string;
11
+ userid: string;
12
+ username: string;
13
+ signatureAlgorithms: string[];
14
+ rpEntityName: string;
15
+ rpId: string;
16
+ attestationConveyancePreference: string;
17
+ authenticatorAttachment: string;
18
+ requireResidentKey: string;
19
+ userVerificationRequirement: string;
20
+ createTimeout: number | string;
21
+ excludeCredentialIds: string;
22
+ };
23
+
24
+ assert<keyof KcContextLike extends keyof KcContext.WebauthnRegister ? true : false>();
25
+ assert<KcContext.WebauthnRegister extends KcContextLike ? true : false>();
26
+
27
+ type I18nLike = {
28
+ msgStr: (key: "webauthn-registration-init-label" | "webauthn-registration-init-label-prompt" | "webauthn-unsupported-browser-text") => string;
29
+ isFetchingTranslations: boolean;
30
+ };
31
+
32
+ export function useScript(params: { authButtonId: string; kcContext: KcContextLike; i18n: I18nLike }) {
33
+ const { authButtonId, kcContext, i18n } = params;
34
+
35
+ const {
36
+ url,
37
+ challenge,
38
+ userid,
39
+ username,
40
+ signatureAlgorithms,
41
+ rpEntityName,
42
+ rpId,
43
+ attestationConveyancePreference,
44
+ authenticatorAttachment,
45
+ requireResidentKey,
46
+ userVerificationRequirement,
47
+ createTimeout,
48
+ excludeCredentialIds
49
+ } = kcContext;
50
+
51
+ const { msgStr, isFetchingTranslations } = i18n;
52
+
53
+ const { insertScriptTags } = useInsertScriptTags({
54
+ componentOrHookName: "LoginRecoveryAuthnCodeConfig",
55
+ scriptTags: [
56
+ {
57
+ type: "module",
58
+ textContent: () => `
59
+ import { registerByWebAuthn } from "${url.resourcesPath}/js/webauthnRegister.js";
60
+ const registerButton = document.getElementById('${authButtonId}');
61
+ registerButton.addEventListener("click", function() {
62
+ const input = {
63
+ challenge : '${challenge}',
64
+ userid : '${userid}',
65
+ username : '${username}',
66
+ signatureAlgorithms : ${JSON.stringify(signatureAlgorithms)},
67
+ rpEntityName : ${JSON.stringify(rpEntityName)},
68
+ rpId : ${JSON.stringify(rpId)},
69
+ attestationConveyancePreference : ${JSON.stringify(attestationConveyancePreference)},
70
+ authenticatorAttachment : ${JSON.stringify(authenticatorAttachment)},
71
+ requireResidentKey : ${JSON.stringify(requireResidentKey)},
72
+ userVerificationRequirement : ${JSON.stringify(userVerificationRequirement)},
73
+ createTimeout : ${createTimeout},
74
+ excludeCredentialIds : ${JSON.stringify(excludeCredentialIds)},
75
+ initLabel : ${JSON.stringify(msgStr("webauthn-registration-init-label"))},
76
+ initLabelPrompt : ${JSON.stringify(msgStr("webauthn-registration-init-label-prompt"))},
77
+ errmsg : ${JSON.stringify(msgStr("webauthn-unsupported-browser-text"))}
78
+ };
79
+ registerByWebAuthn(input);
80
+ });
81
+ `
82
+ }
83
+ ]
84
+ });
85
+
86
+ useEffect(() => {
87
+ if (isFetchingTranslations) {
88
+ return;
89
+ }
90
+
91
+ insertScriptTags();
92
+ }, [isFetchingTranslations]);
93
+ }
@@ -6,11 +6,11 @@ export type ScriptTag = ScriptTag.TextContent | ScriptTag.Src;
6
6
 
7
7
  export namespace ScriptTag {
8
8
  type Common = {
9
- type: "text/javascript" | "module";
9
+ type: "text/javascript" | "module" | "importmap";
10
10
  };
11
11
 
12
12
  export type TextContent = Common & {
13
- textContent: string;
13
+ textContent: string | (() => string);
14
14
  };
15
15
  export type Src = Common & {
16
16
  src: string;
@@ -69,7 +69,12 @@ export function useInsertScriptTags(params: {
69
69
  for (let i = 0; i < scripts.length; i++) {
70
70
  const script = scripts[i];
71
71
  if ("textContent" in scriptTag) {
72
- if (script.textContent === scriptTag.textContent) {
72
+ const textContent =
73
+ typeof scriptTag.textContent === "function"
74
+ ? scriptTag.textContent()
75
+ : scriptTag.textContent;
76
+
77
+ if (script.textContent === textContent) {
73
78
  return;
74
79
  }
75
80
  continue;
@@ -90,7 +95,12 @@ export function useInsertScriptTags(params: {
90
95
 
91
96
  (() => {
92
97
  if ("textContent" in scriptTag) {
93
- htmlElement.textContent = scriptTag.textContent;
98
+ const textContent =
99
+ typeof scriptTag.textContent === "function"
100
+ ? scriptTag.textContent()
101
+ : scriptTag.textContent;
102
+
103
+ htmlElement.textContent = textContent;
94
104
  return;
95
105
  }
96
106
  if ("src" in scriptTag) {
@@ -1,8 +1,7 @@
1
1
  import { join as pathJoin, relative as pathRelative, sep as pathSep } from "path";
2
2
  import type { Plugin } from "vite";
3
3
  import {
4
- BASENAME_OF_KEYCLOAKIFY_RESOURCES_DIR,
5
- KEYCLOAK_RESOURCES,
4
+ WELL_KNOWN_DIRECTORY_BASE_NAME,
6
5
  VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES
7
6
  } from "../bin/shared/constants";
8
7
  import { id } from "tsafe/id";
@@ -128,14 +127,8 @@ export function keycloakify(params: keycloakify.Params) {
128
127
  }
129
128
  });
130
129
 
131
- await Promise.all([
132
- copyKeycloakResourcesToPublic({
133
- buildContext
134
- }),
135
- generateKcGenTs({
136
- buildContext
137
- })
138
- ]);
130
+ copyKeycloakResourcesToPublic({ buildContext }),
131
+ await generateKcGenTs({ buildContext });
139
132
  },
140
133
  transform: (code, id) => {
141
134
  assert(command !== undefined);
@@ -174,7 +167,7 @@ export function keycloakify(params: keycloakify.Params) {
174
167
  `(`,
175
168
  `(window.kcContext === undefined || import.meta.env.MODE === "development")?`,
176
169
  `"${urlPathname ?? "/"}":`,
177
- `(window.kcContext["x-keycloakify"].resourcesPath + "/${BASENAME_OF_KEYCLOAKIFY_RESOURCES_DIR}/")`,
170
+ `(window.kcContext["x-keycloakify"].resourcesPath + "/${WELL_KNOWN_DIRECTORY_BASE_NAME.DIST}/")`,
178
171
  `)`
179
172
  ].join("")
180
173
  );
@@ -207,10 +200,13 @@ export function keycloakify(params: keycloakify.Params) {
207
200
 
208
201
  assert(buildDirPath !== undefined);
209
202
 
210
- await rm(pathJoin(buildDirPath, KEYCLOAK_RESOURCES), {
211
- recursive: true,
212
- force: true
213
- });
203
+ await rm(
204
+ pathJoin(buildDirPath, WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY),
205
+ {
206
+ recursive: true,
207
+ force: true
208
+ }
209
+ );
214
210
  }
215
211
  } satisfies Plugin;
216
212
 
@@ -1,10 +1,10 @@
1
1
  export type ScriptTag = ScriptTag.TextContent | ScriptTag.Src;
2
2
  export declare namespace ScriptTag {
3
3
  type Common = {
4
- type: "text/javascript" | "module";
4
+ type: "text/javascript" | "module" | "importmap";
5
5
  };
6
6
  export type TextContent = Common & {
7
- textContent: string;
7
+ textContent: string | (() => string);
8
8
  };
9
9
  export type Src = Common & {
10
10
  src: string;
@@ -40,7 +40,10 @@ export function useInsertScriptTags(params) {
40
40
  for (let i = 0; i < scripts.length; i++) {
41
41
  const script = scripts[i];
42
42
  if ("textContent" in scriptTag) {
43
- if (script.textContent === scriptTag.textContent) {
43
+ const textContent = typeof scriptTag.textContent === "function"
44
+ ? scriptTag.textContent()
45
+ : scriptTag.textContent;
46
+ if (script.textContent === textContent) {
44
47
  return;
45
48
  }
46
49
  continue;
@@ -58,7 +61,10 @@ export function useInsertScriptTags(params) {
58
61
  htmlElement.type = scriptTag.type;
59
62
  (() => {
60
63
  if ("textContent" in scriptTag) {
61
- htmlElement.textContent = scriptTag.textContent;
64
+ const textContent = typeof scriptTag.textContent === "function"
65
+ ? scriptTag.textContent()
66
+ : scriptTag.textContent;
67
+ htmlElement.textContent = textContent;
62
68
  return;
63
69
  }
64
70
  if ("src" in scriptTag) {
@@ -1 +1 @@
1
- {"version":3,"file":"useInsertScriptTags.js","sourceRoot":"","sources":["../src/tools/useInsertScriptTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAiBnE,MAAM,kCAAkC,GAAG,IAAI,GAAG,EAAU,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAGnC;IACG,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;IAEnD,cAAc,CAAC,GAAG,EAAE;QAChB,MAAM,gBAAgB,GAClB,kCAAkC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEhE,IAAI,gBAAgB,EAAE;YAClB,MAAM,EAAE;gBACJ,IACI,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EACvE;oBACE,2EAA2E;oBAC3E,MAAM,MAAM,CAAC;iBAChB;gBACD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC5B;YACD,OAAO;SACV;QAED,kCAAkC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,kBAAkB,EAAE;YACpB,OAAO;SACV;QAED,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC3B,mEAAmE;YACnE;gBACI,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,aAAa,IAAI,SAAS,EAAE;wBAC5B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,EAAE;4BAC9C,OAAO;yBACV;wBACD,SAAS;qBACZ;oBACD,IAAI,KAAK,IAAI,SAAS,EAAE;wBACpB,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE;4BAC9C,OAAO;yBACV;wBACD,SAAS;qBACZ;oBACD,MAAM,CAAC,KAAK,CAAC,CAAC;iBACjB;aACJ;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAErD,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YAElC,CAAC,GAAG,EAAE;gBACF,IAAI,aAAa,IAAI,SAAS,EAAE;oBAC5B,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;oBAChD,OAAO;iBACV;gBACD,IAAI,KAAK,IAAI,SAAS,EAAE;oBACpB,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;oBAChC,OAAO;iBACV;gBACD,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,EAAE,CAAC;YAEL,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,kBAAkB,GAAG,IAAI,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"useInsertScriptTags.js","sourceRoot":"","sources":["../src/tools/useInsertScriptTags.ts"],"names":[],"mappings":"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"}