keycloakify 11.3.7 → 11.3.8
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/bin/526.index.js +4 -4
- package/login/pages/LoginPasskeysConditionalAuthenticate.useScript.js +7 -1
- package/login/pages/LoginPasskeysConditionalAuthenticate.useScript.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.useScript.js +7 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.useScript.js.map +1 -1
- package/login/pages/WebauthnAuthenticate.useScript.js +7 -1
- package/login/pages/WebauthnAuthenticate.useScript.js.map +1 -1
- package/login/pages/WebauthnRegister.useScript.js +7 -1
- package/login/pages/WebauthnRegister.useScript.js.map +1 -1
- package/package.json +5 -1
- package/src/bin/start-keycloak/start-keycloak.ts +4 -4
- package/src/login/pages/LoginPasskeysConditionalAuthenticate.useScript.tsx +8 -1
- package/src/login/pages/LoginRecoveryAuthnCodeConfig.useScript.tsx +8 -1
- package/src/login/pages/WebauthnAuthenticate.useScript.tsx +8 -1
- package/src/login/pages/WebauthnRegister.useScript.tsx +8 -1
- package/src/tools/waitForElementMountedOnDom.ts +30 -0
- package/tools/waitForElementMountedOnDom.d.ts +3 -0
- package/tools/waitForElementMountedOnDom.js +21 -0
- package/tools/waitForElementMountedOnDom.js.map +1 -0
package/bin/526.index.js
CHANGED
@@ -442,10 +442,10 @@ async function command(params) {
|
|
442
442
|
...(realmJsonFilePath === undefined
|
443
443
|
? []
|
444
444
|
: [
|
445
|
-
`-v${SPACE_PLACEHOLDER}"
|
445
|
+
`-v${SPACE_PLACEHOLDER}"${realmJsonFilePath}":/opt/keycloak/data/import/myrealm-realm.json`
|
446
446
|
]),
|
447
|
-
`-v${SPACE_PLACEHOLDER}"
|
448
|
-
...extensionJarFilePaths.map(jarFilePath => `-v${SPACE_PLACEHOLDER}"
|
447
|
+
`-v${SPACE_PLACEHOLDER}"${jarFilePath_cacheDir}":/opt/keycloak/providers/keycloak-theme.jar`,
|
448
|
+
...extensionJarFilePaths.map(jarFilePath => `-v${SPACE_PLACEHOLDER}"${jarFilePath}":/opt/keycloak/providers/${(0,external_path_.basename)(jarFilePath)}`),
|
449
449
|
...(keycloakMajorVersionNumber <= 20
|
450
450
|
? [`-e${SPACE_PLACEHOLDER}JAVA_OPTS=-Dkeycloak.profile=preview`]
|
451
451
|
: []),
|
@@ -459,7 +459,7 @@ async function command(params) {
|
|
459
459
|
localDirPath: (0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", themeName),
|
460
460
|
containerDirPath: `/opt/keycloak/themes/${themeName}`
|
461
461
|
}))
|
462
|
-
.map(({ localDirPath, containerDirPath }) => `-v${SPACE_PLACEHOLDER}"
|
462
|
+
.map(({ localDirPath, containerDirPath }) => `-v${SPACE_PLACEHOLDER}"${localDirPath}":${containerDirPath}:rw`),
|
463
463
|
...buildContext.environmentVariables
|
464
464
|
.map(({ name }) => ({ name, envValue: process.env[name] }))
|
465
465
|
.map(({ name, envValue }) => envValue === undefined ? undefined : { name, envValue })
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { useEffect } from "react";
|
2
2
|
import { useInsertScriptTags } from "../../tools/useInsertScriptTags";
|
3
3
|
import { assert } from "../../tools/assert";
|
4
|
+
import { waitForElementMountedOnDom } from "../../tools/waitForElementMountedOnDom";
|
4
5
|
assert();
|
5
6
|
assert();
|
6
7
|
export function useScript(params) {
|
@@ -43,7 +44,12 @@ export function useScript(params) {
|
|
43
44
|
if (isFetchingTranslations) {
|
44
45
|
return;
|
45
46
|
}
|
46
|
-
|
47
|
+
(async () => {
|
48
|
+
await waitForElementMountedOnDom({
|
49
|
+
elementId: authButtonId
|
50
|
+
});
|
51
|
+
insertScriptTags();
|
52
|
+
})();
|
47
53
|
}, [isFetchingTranslations]);
|
48
54
|
}
|
49
55
|
//# sourceMappingURL=LoginPasskeysConditionalAuthenticate.useScript.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LoginPasskeysConditionalAuthenticate.useScript.js","sourceRoot":"","sources":["../../src/login/pages/LoginPasskeysConditionalAuthenticate.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"LoginPasskeysConditionalAuthenticate.useScript.js","sourceRoot":"","sources":["../../src/login/pages/LoginPasskeysConditionalAuthenticate.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAa1F,MAAM,EAAmG,CAAC;AAC1G,MAAM,EAAuF,CAAC;AAO9F,MAAM,UAAU,SAAS,CAAC,MAA0E;IAChG,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEjD,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IAE9F,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;QAC7C,mBAAmB,EAAE,8BAA8B;QACnD,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,GAAG,EAAE,CAAC;8DAC2B,GAAG,CAAC,aAAa;wDACvB,GAAG,CAAC,aAAa;;kEAEP,YAAY;;6CAEjC,gBAAgB;sCACvB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;6CAClB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;iCAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;0CACX,aAAa;;;;;uCAKhB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;;;;;;mCAM/D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;;iBAE5E;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,sBAAsB,EAAE;YACxB,OAAO;SACV;QAED,CAAC,KAAK,IAAI,EAAE;YACR,MAAM,0BAA0B,CAAC;gBAC7B,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;YAEH,gBAAgB,EAAE,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { useEffect } from "react";
|
2
2
|
import { useInsertScriptTags } from "../../tools/useInsertScriptTags";
|
3
|
+
import { waitForElementMountedOnDom } from "../../tools/waitForElementMountedOnDom";
|
3
4
|
export function useScript(params) {
|
4
5
|
const { olRecoveryCodesListId, i18n } = params;
|
5
6
|
const { msgStr, isFetchingTranslations } = i18n;
|
@@ -127,7 +128,12 @@ export function useScript(params) {
|
|
127
128
|
if (isFetchingTranslations) {
|
128
129
|
return;
|
129
130
|
}
|
130
|
-
|
131
|
+
(async () => {
|
132
|
+
await waitForElementMountedOnDom({
|
133
|
+
elementId: olRecoveryCodesListId
|
134
|
+
});
|
135
|
+
insertScriptTags();
|
136
|
+
})();
|
131
137
|
}, [isFetchingTranslations]);
|
132
138
|
}
|
133
139
|
//# sourceMappingURL=LoginRecoveryAuthnCodeConfig.useScript.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LoginRecoveryAuthnCodeConfig.useScript.js","sourceRoot":"","sources":["../../src/login/pages/LoginRecoveryAuthnCodeConfig.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;
|
1
|
+
{"version":3,"file":"LoginRecoveryAuthnCodeConfig.useScript.js","sourceRoot":"","sources":["../../src/login/pages/LoginRecoveryAuthnCodeConfig.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAO1F,MAAM,UAAU,SAAS,CAAC,MAAyD;IAC/E,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAE/C,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;QAC7C,mBAAmB,EAAE,8BAA8B;QACnD,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,GAAG,EAAE,CAAC;;;;;kEAK+B,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EA+Bb,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;8BAwBjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;;8BAE7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC;8BAClE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;8EAsBX,qBAAqB;;;;;;;;;;sCAU7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;;sCAE7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC;sCAClE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;;;;;;;;;;;;;iBAahF;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,sBAAsB,EAAE;YACxB,OAAO;SACV;QAED,CAAC,KAAK,IAAI,EAAE;YACR,MAAM,0BAA0B,CAAC;gBAC7B,SAAS,EAAE,qBAAqB;aACnC,CAAC,CAAC;YAEH,gBAAgB,EAAE,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { useEffect } from "react";
|
2
2
|
import { useInsertScriptTags } from "../../tools/useInsertScriptTags";
|
3
3
|
import { assert } from "../../tools/assert";
|
4
|
+
import { waitForElementMountedOnDom } from "../../tools/waitForElementMountedOnDom";
|
4
5
|
assert();
|
5
6
|
assert();
|
6
7
|
export function useScript(params) {
|
@@ -35,7 +36,12 @@ export function useScript(params) {
|
|
35
36
|
if (isFetchingTranslations) {
|
36
37
|
return;
|
37
38
|
}
|
38
|
-
|
39
|
+
(async () => {
|
40
|
+
await waitForElementMountedOnDom({
|
41
|
+
elementId: authButtonId
|
42
|
+
});
|
43
|
+
insertScriptTags();
|
44
|
+
})();
|
39
45
|
}, [isFetchingTranslations]);
|
40
46
|
}
|
41
47
|
//# sourceMappingURL=WebauthnAuthenticate.useScript.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WebauthnAuthenticate.useScript.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnAuthenticate.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"WebauthnAuthenticate.useScript.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnAuthenticate.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAa1F,MAAM,EAAmF,CAAC;AAC1F,MAAM,EAAuE,CAAC;AAO9E,MAAM,UAAU,SAAS,CAAC,MAA0E;IAChG,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEjD,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IAE9F,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;QAC7C,mBAAmB,EAAE,sBAAsB;QAC3C,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,GAAG,EAAE,CAAC;;8DAE2B,GAAG,CAAC,aAAa;kEACb,YAAY;;;iDAG7B,gBAAgB;2CACtB,SAAS;kDACF,gBAAgB;sCAC5B,IAAI;8CACI,aAAa;uCACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;;;;iBAIjF;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,sBAAsB,EAAE;YACxB,OAAO;SACV;QAED,CAAC,KAAK,IAAI,EAAE;YACR,MAAM,0BAA0B,CAAC;gBAC7B,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;YAEH,gBAAgB,EAAE,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { useEffect } from "react";
|
2
2
|
import { useInsertScriptTags } from "../../tools/useInsertScriptTags";
|
3
3
|
import { assert } from "../../tools/assert";
|
4
|
+
import { waitForElementMountedOnDom } from "../../tools/waitForElementMountedOnDom";
|
4
5
|
assert();
|
5
6
|
assert();
|
6
7
|
export function useScript(params) {
|
@@ -43,7 +44,12 @@ export function useScript(params) {
|
|
43
44
|
if (isFetchingTranslations) {
|
44
45
|
return;
|
45
46
|
}
|
46
|
-
|
47
|
+
(async () => {
|
48
|
+
await waitForElementMountedOnDom({
|
49
|
+
elementId: authButtonId
|
50
|
+
});
|
51
|
+
insertScriptTags();
|
52
|
+
})();
|
47
53
|
}, [isFetchingTranslations]);
|
48
54
|
}
|
49
55
|
//# sourceMappingURL=WebauthnRegister.useScript.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WebauthnRegister.useScript.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnRegister.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"WebauthnRegister.useScript.js","sourceRoot":"","sources":["../../src/login/pages/WebauthnRegister.useScript.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAoB1F,MAAM,EAA+E,CAAC;AACtF,MAAM,EAAmE,CAAC;AAO1E,MAAM,UAAU,SAAS,CAAC,MAA0E;IAChG,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEjD,MAAM,EACF,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,IAAI,EACJ,+BAA+B,EAC/B,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,oBAAoB,EACvB,GAAG,SAAS,CAAC;IAEd,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;QAC7C,mBAAmB,EAAE,8BAA8B;QACnD,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,GAAG,EAAE,CAAC;0DACuB,GAAG,CAAC,aAAa;sEACL,YAAY;;;2CAGvC,SAAS;wCACZ,MAAM;0CACJ,QAAQ;oDACE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;6CAC1C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;qCACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gEACO,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC;wDACvD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;mDAC5C,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;4DACzB,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC;8CACzD,aAAa;qDACN,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;0CAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;gDACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;uCAC1E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;;;;iBAIjF;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,sBAAsB,EAAE;YACxB,OAAO;SACV;QAED,CAAC,KAAK,IAAI,EAAE;YACR,MAAM,0BAA0B,CAAC;gBAC7B,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;YAEH,gBAAgB,EAAE,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "keycloakify",
|
3
|
-
"version": "11.3.
|
3
|
+
"version": "11.3.8",
|
4
4
|
"description": "Framework to create custom Keycloak UIs",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -850,6 +850,7 @@
|
|
850
850
|
"src/tools/useOnFirstMount.ts",
|
851
851
|
"src/tools/useSetClassName.ts",
|
852
852
|
"src/tools/vendor/dompurify.ts",
|
853
|
+
"src/tools/waitForElementMountedOnDom.ts",
|
853
854
|
"src/tsconfig.json",
|
854
855
|
"src/vite-plugin/index.ts",
|
855
856
|
"src/vite-plugin/tsconfig.json",
|
@@ -977,6 +978,9 @@
|
|
977
978
|
"tools/useSetClassName.js.map",
|
978
979
|
"tools/vendor/dompurify.d.ts",
|
979
980
|
"tools/vendor/dompurify.js",
|
981
|
+
"tools/waitForElementMountedOnDom.d.ts",
|
982
|
+
"tools/waitForElementMountedOnDom.js",
|
983
|
+
"tools/waitForElementMountedOnDom.js.map",
|
980
984
|
"bin/add-story.d.ts",
|
981
985
|
"bin/copy-keycloak-resources-to-public.d.ts",
|
982
986
|
"bin/eject-page.d.ts",
|
@@ -396,12 +396,12 @@ export async function command(params: {
|
|
396
396
|
...(realmJsonFilePath === undefined
|
397
397
|
? []
|
398
398
|
: [
|
399
|
-
`-v${SPACE_PLACEHOLDER}"
|
399
|
+
`-v${SPACE_PLACEHOLDER}"${realmJsonFilePath}":/opt/keycloak/data/import/myrealm-realm.json`
|
400
400
|
]),
|
401
|
-
`-v${SPACE_PLACEHOLDER}"
|
401
|
+
`-v${SPACE_PLACEHOLDER}"${jarFilePath_cacheDir}":/opt/keycloak/providers/keycloak-theme.jar`,
|
402
402
|
...extensionJarFilePaths.map(
|
403
403
|
jarFilePath =>
|
404
|
-
`-v${SPACE_PLACEHOLDER}"
|
404
|
+
`-v${SPACE_PLACEHOLDER}"${jarFilePath}":/opt/keycloak/providers/${pathBasename(jarFilePath)}`
|
405
405
|
),
|
406
406
|
...(keycloakMajorVersionNumber <= 20
|
407
407
|
? [`-e${SPACE_PLACEHOLDER}JAVA_OPTS=-Dkeycloak.profile=preview`]
|
@@ -424,7 +424,7 @@ export async function command(params: {
|
|
424
424
|
}))
|
425
425
|
.map(
|
426
426
|
({ localDirPath, containerDirPath }) =>
|
427
|
-
`-v${SPACE_PLACEHOLDER}"
|
427
|
+
`-v${SPACE_PLACEHOLDER}"${localDirPath}":${containerDirPath}:rw`
|
428
428
|
),
|
429
429
|
...buildContext.environmentVariables
|
430
430
|
.map(({ name }) => ({ name, envValue: process.env[name] }))
|
@@ -2,6 +2,7 @@ import { useEffect } from "react";
|
|
2
2
|
import { useInsertScriptTags } from "keycloakify/tools/useInsertScriptTags";
|
3
3
|
import { assert } from "keycloakify/tools/assert";
|
4
4
|
import { KcContext } from "keycloakify/login/KcContext/KcContext";
|
5
|
+
import { waitForElementMountedOnDom } from "keycloakify/tools/waitForElementMountedOnDom";
|
5
6
|
|
6
7
|
type KcContextLike = {
|
7
8
|
url: {
|
@@ -67,6 +68,12 @@ export function useScript(params: { authButtonId: string; kcContext: KcContextLi
|
|
67
68
|
return;
|
68
69
|
}
|
69
70
|
|
70
|
-
|
71
|
+
(async () => {
|
72
|
+
await waitForElementMountedOnDom({
|
73
|
+
elementId: authButtonId
|
74
|
+
});
|
75
|
+
|
76
|
+
insertScriptTags();
|
77
|
+
})();
|
71
78
|
}, [isFetchingTranslations]);
|
72
79
|
}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { useEffect } from "react";
|
2
2
|
import { useInsertScriptTags } from "keycloakify/tools/useInsertScriptTags";
|
3
|
+
import { waitForElementMountedOnDom } from "keycloakify/tools/waitForElementMountedOnDom";
|
3
4
|
|
4
5
|
type I18nLike = {
|
5
6
|
msgStr: (key: "recovery-codes-download-file-header" | "recovery-codes-download-file-description" | "recovery-codes-download-file-date") => string;
|
@@ -137,6 +138,12 @@ export function useScript(params: { olRecoveryCodesListId: string; i18n: I18nLik
|
|
137
138
|
return;
|
138
139
|
}
|
139
140
|
|
140
|
-
|
141
|
+
(async () => {
|
142
|
+
await waitForElementMountedOnDom({
|
143
|
+
elementId: olRecoveryCodesListId
|
144
|
+
});
|
145
|
+
|
146
|
+
insertScriptTags();
|
147
|
+
})();
|
141
148
|
}, [isFetchingTranslations]);
|
142
149
|
}
|
@@ -2,6 +2,7 @@ import { useEffect } from "react";
|
|
2
2
|
import { useInsertScriptTags } from "keycloakify/tools/useInsertScriptTags";
|
3
3
|
import { assert } from "keycloakify/tools/assert";
|
4
4
|
import { KcContext } from "keycloakify/login/KcContext/KcContext";
|
5
|
+
import { waitForElementMountedOnDom } from "keycloakify/tools/waitForElementMountedOnDom";
|
5
6
|
|
6
7
|
type KcContextLike = {
|
7
8
|
url: {
|
@@ -59,6 +60,12 @@ export function useScript(params: { authButtonId: string; kcContext: KcContextLi
|
|
59
60
|
return;
|
60
61
|
}
|
61
62
|
|
62
|
-
|
63
|
+
(async () => {
|
64
|
+
await waitForElementMountedOnDom({
|
65
|
+
elementId: authButtonId
|
66
|
+
});
|
67
|
+
|
68
|
+
insertScriptTags();
|
69
|
+
})();
|
63
70
|
}, [isFetchingTranslations]);
|
64
71
|
}
|
@@ -2,6 +2,7 @@ import { useEffect } from "react";
|
|
2
2
|
import { useInsertScriptTags } from "keycloakify/tools/useInsertScriptTags";
|
3
3
|
import { assert } from "keycloakify/tools/assert";
|
4
4
|
import { KcContext } from "keycloakify/login/KcContext/KcContext";
|
5
|
+
import { waitForElementMountedOnDom } from "keycloakify/tools/waitForElementMountedOnDom";
|
5
6
|
|
6
7
|
type KcContextLike = {
|
7
8
|
url: {
|
@@ -88,6 +89,12 @@ export function useScript(params: { authButtonId: string; kcContext: KcContextLi
|
|
88
89
|
return;
|
89
90
|
}
|
90
91
|
|
91
|
-
|
92
|
+
(async () => {
|
93
|
+
await waitForElementMountedOnDom({
|
94
|
+
elementId: authButtonId
|
95
|
+
});
|
96
|
+
|
97
|
+
insertScriptTags();
|
98
|
+
})();
|
92
99
|
}, [isFetchingTranslations]);
|
93
100
|
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
export async function waitForElementMountedOnDom(params: {
|
2
|
+
elementId: string;
|
3
|
+
}): Promise<void> {
|
4
|
+
const { elementId } = params;
|
5
|
+
|
6
|
+
const getElement = () => document.getElementById(elementId);
|
7
|
+
|
8
|
+
const element = getElement();
|
9
|
+
|
10
|
+
if (element === null) {
|
11
|
+
let prElementPresentInTheDom_resolve: () => void;
|
12
|
+
const prElementPresentInTheDom = new Promise<void>(
|
13
|
+
resolve => (prElementPresentInTheDom_resolve = resolve)
|
14
|
+
);
|
15
|
+
|
16
|
+
// Observe the dom for the element to be added
|
17
|
+
const observer = new MutationObserver(() => {
|
18
|
+
const element = getElement();
|
19
|
+
if (element === null) {
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
observer.disconnect();
|
23
|
+
prElementPresentInTheDom_resolve();
|
24
|
+
});
|
25
|
+
|
26
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
27
|
+
|
28
|
+
await prElementPresentInTheDom;
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
export async function waitForElementMountedOnDom(params) {
|
2
|
+
const { elementId } = params;
|
3
|
+
const getElement = () => document.getElementById(elementId);
|
4
|
+
const element = getElement();
|
5
|
+
if (element === null) {
|
6
|
+
let prElementPresentInTheDom_resolve;
|
7
|
+
const prElementPresentInTheDom = new Promise(resolve => (prElementPresentInTheDom_resolve = resolve));
|
8
|
+
// Observe the dom for the element to be added
|
9
|
+
const observer = new MutationObserver(() => {
|
10
|
+
const element = getElement();
|
11
|
+
if (element === null) {
|
12
|
+
return;
|
13
|
+
}
|
14
|
+
observer.disconnect();
|
15
|
+
prElementPresentInTheDom_resolve();
|
16
|
+
});
|
17
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
18
|
+
await prElementPresentInTheDom;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
//# sourceMappingURL=waitForElementMountedOnDom.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"waitForElementMountedOnDom.js","sourceRoot":"","sources":["../src/tools/waitForElementMountedOnDom.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,MAEhD;IACG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAE7B,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,OAAO,KAAK,IAAI,EAAE;QAClB,IAAI,gCAA4C,CAAC;QACjD,MAAM,wBAAwB,GAAG,IAAI,OAAO,CACxC,OAAO,CAAC,EAAE,CAAC,CAAC,gCAAgC,GAAG,OAAO,CAAC,CAC1D,CAAC;QAEF,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;YACvC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,OAAO,KAAK,IAAI,EAAE;gBAClB,OAAO;aACV;YACD,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,gCAAgC,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,MAAM,wBAAwB,CAAC;KAClC;AACL,CAAC"}
|