keycloakify 4.2.14-beta.0 → 4.2.16
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/CHANGELOG.md +25 -0
- package/README.md +28 -46
- package/bin/build-keycloak-theme/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +290 -0
- package/bin/build-keycloak-theme/generateFtl/generateFtl.js +25 -25
- package/bin/build-keycloak-theme/generateFtl/generateFtl.js.map +1 -1
- package/lib/components/LoginOtp.js +2 -2
- package/lib/components/LoginOtp.js.map +1 -1
- package/lib/components/Template.js +3 -3
- package/lib/components/Template.js.map +1 -1
- package/lib/getKcContext/kcContextMocks/kcContextMocks.js +3 -3
- package/lib/getKcContext/kcContextMocks/kcContextMocks.js.map +1 -1
- package/lib/getKcContext/kcContextMocks/urlResourcesPath.js +3 -3
- package/lib/getKcContext/kcContextMocks/urlResourcesPath.js.map +1 -1
- package/lib/tools/pathJoin.d.ts +1 -0
- package/lib/tools/pathJoin.js +12 -0
- package/lib/tools/pathJoin.js.map +1 -0
- package/package.json +7 -5
- package/src/bin/build-keycloak-theme/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +290 -0
- package/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts +14 -33
- package/src/lib/components/LoginOtp.tsx +1 -1
- package/src/lib/components/Template.tsx +1 -1
- package/src/lib/getKcContext/kcContextMocks/kcContextMocks.ts +1 -1
- package/src/lib/getKcContext/kcContextMocks/urlResourcesPath.ts +3 -3
- package/src/lib/tools/pathJoin.ts +3 -0
- package/bin/build-keycloak-theme/generateFtl/Object.deepAssign.js +0 -28
- package/bin/build-keycloak-theme/generateFtl/common.ftl +0 -181
- package/src/bin/build-keycloak-theme/generateFtl/Object.deepAssign.js +0 -28
- package/src/bin/build-keycloak-theme/generateFtl/common.ftl +0 -181
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../../src/lib/components/Template.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAoD;AAEpD,qDAAoD;AACpD,6DAA4D;AAE5D,0CAAyC;AAEzC,uDAAuE;AACvE,uDAA8D;AAC9D,oEAAmE;AACnE,kDAAiD;AACjD,
|
1
|
+
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../../src/lib/components/Template.tsx"],"names":[],"mappings":"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"}
|
@@ -44,13 +44,13 @@ var KcLanguageTag_1 = require("../../i18n/KcLanguageTag");
|
|
44
44
|
//NOTE: Aside because we want to be able to import them from node
|
45
45
|
var urlResourcesPath_1 = require("./urlResourcesPath");
|
46
46
|
var id_1 = require("tsafe/id");
|
47
|
-
var
|
47
|
+
var pathJoin_1 = require("../../tools/pathJoin");
|
48
48
|
var PUBLIC_URL = (_a = process.env["PUBLIC_URL"]) !== null && _a !== void 0 ? _a : "/";
|
49
49
|
exports.kcContextCommonMock = {
|
50
50
|
"url": {
|
51
51
|
"loginAction": "#",
|
52
|
-
"resourcesPath": (0,
|
53
|
-
"resourcesCommonPath": (0,
|
52
|
+
"resourcesPath": (0, pathJoin_1.pathJoin)(PUBLIC_URL, urlResourcesPath_1.resourcesPath),
|
53
|
+
"resourcesCommonPath": (0, pathJoin_1.pathJoin)(PUBLIC_URL, urlResourcesPath_1.resourcesCommonPath),
|
54
54
|
"loginRestartFlowUrl": "/auth/realms/myrealm/login-actions/restart?client_id=account&tab_id=HoAx28ja4xg",
|
55
55
|
"loginUrl": "/auth/realms/myrealm/login-actions/authenticate?client_id=account&tab_id=HoAx28ja4xg",
|
56
56
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../../src/lib/getKcContext/kcContextMocks/kcContextMocks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA8C;AAE9C,gEAA+D;AAC/D,0DAAiE;AACjE,iEAAiE;AACjE,uDAAwE;AACxE,+BAA8B;AAC9B,
|
1
|
+
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../../src/lib/getKcContext/kcContextMocks/kcContextMocks.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.resourcesCommonPath = exports.resourcesPath = exports.subDirOfPublicDirBasename = void 0;
|
4
|
-
var
|
4
|
+
var pathJoin_1 = require("../../tools/pathJoin");
|
5
5
|
exports.subDirOfPublicDirBasename = "keycloak_static";
|
6
|
-
exports.resourcesPath = (0,
|
7
|
-
exports.resourcesCommonPath = (0,
|
6
|
+
exports.resourcesPath = (0, pathJoin_1.pathJoin)(exports.subDirOfPublicDirBasename, "resources");
|
7
|
+
exports.resourcesCommonPath = (0, pathJoin_1.pathJoin)(exports.subDirOfPublicDirBasename, "resources_common");
|
8
8
|
//# sourceMappingURL=urlResourcesPath.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"urlResourcesPath.js","sourceRoot":"","sources":["../../../src/lib/getKcContext/kcContextMocks/urlResourcesPath.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"urlResourcesPath.js","sourceRoot":"","sources":["../../../src/lib/getKcContext/kcContextMocks/urlResourcesPath.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAEnC,QAAA,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C,QAAA,aAAa,GAAG,IAAA,mBAAQ,EAAC,iCAAyB,EAAE,WAAW,CAAC,CAAC;AACjE,QAAA,mBAAmB,GAAG,IAAA,mBAAQ,EAAC,iCAAyB,EAAE,kBAAkB,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function pathJoin(...path: string[]): string;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.pathJoin = void 0;
|
4
|
+
function pathJoin() {
|
5
|
+
var path = [];
|
6
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
7
|
+
path[_i] = arguments[_i];
|
8
|
+
}
|
9
|
+
return path.map(function (part) { return part.replace(/^\/+/, "").replace(/\/+$/, ""); }).join("/");
|
10
|
+
}
|
11
|
+
exports.pathJoin = pathJoin;
|
12
|
+
//# sourceMappingURL=pathJoin.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pathJoin.js","sourceRoot":"","sources":["../../src/lib/tools/pathJoin.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ;IAAC,cAAiB;SAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;QAAjB,yBAAiB;;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAA5C,CAA4C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpF,CAAC;AAFD,4BAEC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "keycloakify",
|
3
|
-
"version": "4.2.
|
3
|
+
"version": "4.2.16",
|
4
4
|
"description": "Keycloak theme generator for Reacts app",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -32,8 +32,7 @@
|
|
32
32
|
"src/bin/build-keycloak-theme/generateDebugFiles/index.ts",
|
33
33
|
"src/bin/build-keycloak-theme/generateDebugFiles/standalone-ha_11.0.3.xml",
|
34
34
|
"src/bin/build-keycloak-theme/generateDebugFiles/standalone-ha_15.0.2.xml",
|
35
|
-
"src/bin/build-keycloak-theme/generateFtl/
|
36
|
-
"src/bin/build-keycloak-theme/generateFtl/common.ftl",
|
35
|
+
"src/bin/build-keycloak-theme/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl",
|
37
36
|
"src/bin/build-keycloak-theme/generateFtl/generateFtl.ts",
|
38
37
|
"src/bin/build-keycloak-theme/generateFtl/index.ts",
|
39
38
|
"src/bin/build-keycloak-theme/generateJavaStackFiles.ts",
|
@@ -96,6 +95,7 @@
|
|
96
95
|
"src/lib/tools/deepClone.ts",
|
97
96
|
"src/lib/tools/emailRegExp.ts",
|
98
97
|
"src/lib/tools/headInsert.ts",
|
98
|
+
"src/lib/tools/pathJoin.ts",
|
99
99
|
"src/lib/useFormValidationSlice.tsx",
|
100
100
|
"bin/KeycloakVersion.d.ts",
|
101
101
|
"bin/KeycloakVersion.js",
|
@@ -114,8 +114,7 @@
|
|
114
114
|
"bin/build-keycloak-theme/generateDebugFiles/index.js.map",
|
115
115
|
"bin/build-keycloak-theme/generateDebugFiles/standalone-ha_11.0.3.xml",
|
116
116
|
"bin/build-keycloak-theme/generateDebugFiles/standalone-ha_15.0.2.xml",
|
117
|
-
"bin/build-keycloak-theme/generateFtl/
|
118
|
-
"bin/build-keycloak-theme/generateFtl/common.ftl",
|
117
|
+
"bin/build-keycloak-theme/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl",
|
119
118
|
"bin/build-keycloak-theme/generateFtl/generateFtl.d.ts",
|
120
119
|
"bin/build-keycloak-theme/generateFtl/generateFtl.js",
|
121
120
|
"bin/build-keycloak-theme/generateFtl/generateFtl.js.map",
|
@@ -302,6 +301,9 @@
|
|
302
301
|
"lib/tools/headInsert.d.ts",
|
303
302
|
"lib/tools/headInsert.js",
|
304
303
|
"lib/tools/headInsert.js.map",
|
304
|
+
"lib/tools/pathJoin.d.ts",
|
305
|
+
"lib/tools/pathJoin.js",
|
306
|
+
"lib/tools/pathJoin.js.map",
|
305
307
|
"lib/useFormValidationSlice.d.ts",
|
306
308
|
"lib/useFormValidationSlice.js",
|
307
309
|
"lib/useFormValidationSlice.js.map"
|
package/src/bin/build-keycloak-theme/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl
ADDED
@@ -0,0 +1,290 @@
|
|
1
|
+
<script>const _=
|
2
|
+
<#assign pageId="PAGE_ID_xIgLsPgGId9D8e">
|
3
|
+
(()=>{
|
4
|
+
|
5
|
+
const out =
|
6
|
+
${ftl_object_to_js_code_declaring_an_object(.data_model, [])?no_esc};
|
7
|
+
|
8
|
+
out["msg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
|
9
|
+
out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
|
10
|
+
|
11
|
+
out["messagesPerField"]= {
|
12
|
+
<#assign fieldNames = [
|
13
|
+
"global", "userLabel", "username", "email", "firstName", "lastName", "password", "password-confirm",
|
14
|
+
"totp", "totpSecret", "SAMLRequest", "SAMLResponse", "relayState", "device_user_code", "code",
|
15
|
+
"password-new", "rememberMe", "login", "authenticationExecution", "cancel-aia", "clientDataJSON",
|
16
|
+
"authenticatorData", "signature", "credentialId", "userHandle", "error", "authn_use_chk", "authenticationExecution",
|
17
|
+
"isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel"
|
18
|
+
]>
|
19
|
+
|
20
|
+
<#attempt>
|
21
|
+
<#if profile?? && profile.attributes?? && profile.attributes?is_enumerable>
|
22
|
+
<#list profile.attributes as attribute>
|
23
|
+
<#if fieldNames?seq_contains(attribute.name)>
|
24
|
+
<#continue>
|
25
|
+
</#if>
|
26
|
+
<#assign fieldNames += [attribute.name]>
|
27
|
+
</#list>
|
28
|
+
</#if>
|
29
|
+
<#recover>
|
30
|
+
</#attempt>
|
31
|
+
|
32
|
+
"printIfExists": function (fieldName, x) {
|
33
|
+
<#list fieldNames as fieldName>
|
34
|
+
if(fieldName === "${fieldName}" ){
|
35
|
+
<#attempt>
|
36
|
+
return "${messagesPerField.printIfExists(fieldName,'1')}" ? x : undefined;
|
37
|
+
<#recover>
|
38
|
+
</#attempt>
|
39
|
+
}
|
40
|
+
</#list>
|
41
|
+
throw new Error("There is no " + fieldName + " field");
|
42
|
+
},
|
43
|
+
"existsError": function (fieldName) {
|
44
|
+
<#list fieldNames as fieldName>
|
45
|
+
if(fieldName === "${fieldName}" ){
|
46
|
+
<#attempt>
|
47
|
+
return <#if messagesPerField.existsError('${fieldName}')>true<#else>false</#if>;
|
48
|
+
<#recover>
|
49
|
+
</#attempt>
|
50
|
+
}
|
51
|
+
</#list>
|
52
|
+
throw new Error("There is no " + fieldName + " field");
|
53
|
+
},
|
54
|
+
"get": function (fieldName) {
|
55
|
+
<#list fieldNames as fieldName>
|
56
|
+
if(fieldName === "${fieldName}" ){
|
57
|
+
<#attempt>
|
58
|
+
<#if messagesPerField.existsError('${fieldName}')>
|
59
|
+
return "${messagesPerField.get('${fieldName}')?no_esc}";
|
60
|
+
</#if>
|
61
|
+
<#recover>
|
62
|
+
</#attempt>
|
63
|
+
}
|
64
|
+
</#list>
|
65
|
+
throw new Error("There is no " + fieldName + " field");
|
66
|
+
},
|
67
|
+
"exists": function (fieldName) {
|
68
|
+
<#list fieldNames as fieldName>
|
69
|
+
if(fieldName === "${fieldName}" ){
|
70
|
+
<#attempt>
|
71
|
+
return <#if messagesPerField.exists('${fieldName}')>true<#else>false</#if>;
|
72
|
+
<#recover>
|
73
|
+
</#attempt>
|
74
|
+
}
|
75
|
+
</#list>
|
76
|
+
throw new Error("There is no " + fieldName + " field");
|
77
|
+
}
|
78
|
+
};
|
79
|
+
|
80
|
+
out["pageId"] = "${pageId}";
|
81
|
+
|
82
|
+
return out;
|
83
|
+
|
84
|
+
})()
|
85
|
+
<#function ftl_object_to_js_code_declaring_an_object object path>
|
86
|
+
|
87
|
+
<#local isHash = "">
|
88
|
+
<#attempt>
|
89
|
+
<#local isHash = object?is_hash || object?is_hash_ex>
|
90
|
+
<#recover>
|
91
|
+
<#return "ABORT: Can't evaluate if " + path?join(".") + " is hash">
|
92
|
+
</#attempt>
|
93
|
+
|
94
|
+
<#if isHash>
|
95
|
+
|
96
|
+
<#if path?size gt 10>
|
97
|
+
<#return "ABORT: Too many recursive calls">
|
98
|
+
</#if>
|
99
|
+
|
100
|
+
<#local keys = "">
|
101
|
+
|
102
|
+
<#attempt>
|
103
|
+
<#local keys = object?keys>
|
104
|
+
<#recover>
|
105
|
+
<#return "ABORT: We can't list keys on this object">
|
106
|
+
</#attempt>
|
107
|
+
|
108
|
+
|
109
|
+
<#local out_seq = []>
|
110
|
+
|
111
|
+
<#list keys as key>
|
112
|
+
|
113
|
+
<#if ["class","declaredConstructors","superclass","declaringClass" ]?seq_contains(key) >
|
114
|
+
<#continue>
|
115
|
+
</#if>
|
116
|
+
|
117
|
+
<#if
|
118
|
+
(
|
119
|
+
["loginUpdatePasswordUrl", "loginUpdateProfileUrl", "loginUsernameReminderUrl", "loginUpdateTotpUrl"]?seq_contains(key) &&
|
120
|
+
are_same_path(path, ["url"])
|
121
|
+
) || (
|
122
|
+
key == "updateProfileCtx" &&
|
123
|
+
are_same_path(path, [])
|
124
|
+
) || (
|
125
|
+
<#-- https://github.com/InseeFrLab/keycloakify/pull/65#issuecomment-991896344 -->
|
126
|
+
key == "loginAction" &&
|
127
|
+
are_same_path(path, ["url"]) &&
|
128
|
+
pageId == "saml-post-form.ftl"
|
129
|
+
)
|
130
|
+
>
|
131
|
+
<#local out_seq += ["/*If you need '" + key + "' on " + pageId + ", please submit an issue to the Keycloakify repo*/"]>
|
132
|
+
<#continue>
|
133
|
+
</#if>
|
134
|
+
|
135
|
+
<#if key == "attemptedUsername" && are_same_path(path, ["auth"])>
|
136
|
+
|
137
|
+
<#attempt>
|
138
|
+
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
139
|
+
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
140
|
+
<#continue>
|
141
|
+
</#if>
|
142
|
+
<#recover>
|
143
|
+
</#attempt>
|
144
|
+
|
145
|
+
</#if>
|
146
|
+
|
147
|
+
<#attempt>
|
148
|
+
<#if !object[key]??>
|
149
|
+
<#continue>
|
150
|
+
</#if>
|
151
|
+
<#recover>
|
152
|
+
<#local out_seq += ["/*Couldn't test if '" + key + "' is available on this object*/"]>
|
153
|
+
<#continue>
|
154
|
+
</#attempt>
|
155
|
+
|
156
|
+
<#local propertyValue = "">
|
157
|
+
|
158
|
+
<#attempt>
|
159
|
+
<#local propertyValue = object[key]>
|
160
|
+
<#recover>
|
161
|
+
<#local out_seq += ["/*Couldn't dereference '" + key + "' on this object*/"]>
|
162
|
+
<#continue>
|
163
|
+
</#attempt>
|
164
|
+
|
165
|
+
<#local rec_out = ftl_object_to_js_code_declaring_an_object(propertyValue, path + [ key ])>
|
166
|
+
|
167
|
+
<#if rec_out?starts_with("ABORT:")>
|
168
|
+
|
169
|
+
<#local errorMessage = rec_out?remove_beginning("ABORT:")>
|
170
|
+
|
171
|
+
<#if errorMessage != " It's a method" >
|
172
|
+
<#local out_seq += ["/*" + key + ": " + errorMessage + "*/"]>
|
173
|
+
</#if>
|
174
|
+
|
175
|
+
<#continue>
|
176
|
+
</#if>
|
177
|
+
|
178
|
+
<#local out_seq += ['"' + key + '": ' + rec_out + ","]>
|
179
|
+
|
180
|
+
</#list>
|
181
|
+
|
182
|
+
<#return (["{"] + out_seq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "}"])?join("\n")>
|
183
|
+
|
184
|
+
</#if>
|
185
|
+
|
186
|
+
<#local isMethod = "">
|
187
|
+
<#attempt>
|
188
|
+
<#local isMethod = object?is_method>
|
189
|
+
<#recover>
|
190
|
+
<#return "ABORT: Can't test if it'sa method.">
|
191
|
+
</#attempt>
|
192
|
+
|
193
|
+
<#if isMethod>
|
194
|
+
<#return "ABORT: It's a method">
|
195
|
+
</#if>
|
196
|
+
|
197
|
+
<#local isBoolean = "">
|
198
|
+
<#attempt>
|
199
|
+
<#local isBoolean = object?is_boolean>
|
200
|
+
<#recover>
|
201
|
+
<#return "ABORT: Can't test if it's a boolean">
|
202
|
+
</#attempt>
|
203
|
+
|
204
|
+
<#if isBoolean>
|
205
|
+
<#return object?c>
|
206
|
+
</#if>
|
207
|
+
|
208
|
+
<#local isEnumerable = "">
|
209
|
+
<#attempt>
|
210
|
+
<#local isEnumerable = object?is_enumerable>
|
211
|
+
<#recover>
|
212
|
+
<#return "ABORT: Can't test if it's an enumerable">
|
213
|
+
</#attempt>
|
214
|
+
|
215
|
+
|
216
|
+
<#if isEnumerable>
|
217
|
+
|
218
|
+
<#local out_seq = []>
|
219
|
+
|
220
|
+
<#local i = 0>
|
221
|
+
|
222
|
+
<#list object as array_item>
|
223
|
+
|
224
|
+
<#local rec_out = ftl_object_to_js_code_declaring_an_object(array_item, path + [ i ])>
|
225
|
+
|
226
|
+
<#local i = i + 1>
|
227
|
+
|
228
|
+
<#if rec_out?starts_with("ABORT:")>
|
229
|
+
|
230
|
+
<#local errorMessage = rec_out?remove_beginning("ABORT:")>
|
231
|
+
|
232
|
+
<#if errorMessage != " It's a method" >
|
233
|
+
<#local out_seq += ["/*" + i?string + ": " + errorMessage + "*/"]>
|
234
|
+
</#if>
|
235
|
+
|
236
|
+
<#continue>
|
237
|
+
</#if>
|
238
|
+
|
239
|
+
<#local out_seq += [rec_out + ","]>
|
240
|
+
|
241
|
+
</#list>
|
242
|
+
|
243
|
+
<#return (["["] + out_seq?map(str -> ""?right_pad(4 * (path?size + 1)) + str) + [ ""?right_pad(4 * path?size) + "]"])?join("\n")>
|
244
|
+
|
245
|
+
</#if>
|
246
|
+
|
247
|
+
<#attempt>
|
248
|
+
<#return '"' + object?js_string + '"'>;
|
249
|
+
<#recover>
|
250
|
+
</#attempt>
|
251
|
+
|
252
|
+
<#return "ABORT: Couldn't convert into string non hash, non method, non boolean, non enumerable object">
|
253
|
+
|
254
|
+
</#function>
|
255
|
+
<#function are_same_path path searchedPath>
|
256
|
+
|
257
|
+
<#if path?size != path?size>
|
258
|
+
<#return false>
|
259
|
+
</#if>
|
260
|
+
|
261
|
+
<#local i=0>
|
262
|
+
|
263
|
+
<#list path as property>
|
264
|
+
|
265
|
+
<#local searchedProperty=searchedPath[i]>
|
266
|
+
|
267
|
+
<#if searchedProperty?is_string && searchedProperty == "*">
|
268
|
+
<#continue>
|
269
|
+
</#if>
|
270
|
+
|
271
|
+
<#if searchedProperty?is_string && !property?is_string>
|
272
|
+
<#return false>
|
273
|
+
</#if>
|
274
|
+
|
275
|
+
<#if searchedProperty?is_number && !property?is_number>
|
276
|
+
<#return false>
|
277
|
+
</#if>
|
278
|
+
|
279
|
+
<#if searchedProperty?string != property?string>
|
280
|
+
<#return false>
|
281
|
+
</#if>
|
282
|
+
|
283
|
+
<#local i+= 1>
|
284
|
+
|
285
|
+
</#list>
|
286
|
+
|
287
|
+
<#return true>
|
288
|
+
|
289
|
+
</#function>
|
290
|
+
</script>
|
@@ -21,10 +21,6 @@ export const pageIds = [
|
|
21
21
|
|
22
22
|
export type PageId = typeof pageIds[number];
|
23
23
|
|
24
|
-
function loadAdjacentFile(fileBasename: string) {
|
25
|
-
return fs.readFileSync(pathJoin(__dirname, fileBasename)).toString("utf8");
|
26
|
-
}
|
27
|
-
|
28
24
|
export function generateFtlFilesCodeFactory(params: {
|
29
25
|
cssGlobalsToDefine: Record<string, string>;
|
30
26
|
indexHtmlCode: string;
|
@@ -77,8 +73,11 @@ export function generateFtlFilesCodeFactory(params: {
|
|
77
73
|
);
|
78
74
|
|
79
75
|
//FTL is no valid html, we can't insert with cheerio, we put placeholder for injecting later.
|
80
|
-
const
|
81
|
-
'{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }':
|
76
|
+
const replaceValueBySearchValue = {
|
77
|
+
'{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }': fs
|
78
|
+
.readFileSync(pathJoin(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
|
79
|
+
.toString("utf8")
|
80
|
+
.match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)![1],
|
82
81
|
"<!-- xIdLqMeOedErIdLsPdNdI9dSlxI -->": [
|
83
82
|
"<#if scripts??>",
|
84
83
|
" <#list scripts as script>",
|
@@ -88,8 +87,6 @@ export function generateFtlFilesCodeFactory(params: {
|
|
88
87
|
].join("\n"),
|
89
88
|
};
|
90
89
|
|
91
|
-
const pageSpecificCodePlaceholder = "<!-- dIddLqMeOedErIdLsPdNdI9dSl42sw -->";
|
92
|
-
|
93
90
|
$("head").prepend(
|
94
91
|
[
|
95
92
|
...(Object.keys(cssGlobalsToDefine).length === 0
|
@@ -105,18 +102,10 @@ export function generateFtlFilesCodeFactory(params: {
|
|
105
102
|
"",
|
106
103
|
]),
|
107
104
|
"<script>",
|
108
|
-
|
105
|
+
` window.${ftlValuesGlobalName}= ${objectKeys(replaceValueBySearchValue)[0]};`,
|
109
106
|
"</script>",
|
110
|
-
"<script>",
|
111
|
-
` window.${ftlValuesGlobalName}= Object.assign(`,
|
112
|
-
` {},`,
|
113
|
-
` ${objectKeys(ftlPlaceholders)[0]}`,
|
114
|
-
" );",
|
115
|
-
"</script>",
|
116
|
-
"",
|
117
|
-
pageSpecificCodePlaceholder,
|
118
107
|
"",
|
119
|
-
objectKeys(
|
108
|
+
objectKeys(replaceValueBySearchValue)[1],
|
120
109
|
].join("\n"),
|
121
110
|
);
|
122
111
|
|
@@ -129,21 +118,13 @@ export function generateFtlFilesCodeFactory(params: {
|
|
129
118
|
|
130
119
|
const $ = cheerio.load(partiallyFixedIndexHtmlCode);
|
131
120
|
|
132
|
-
let ftlCode = $.html()
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
" );",
|
140
|
-
"</script>",
|
141
|
-
].join("\n"),
|
142
|
-
);
|
143
|
-
|
144
|
-
objectKeys(ftlPlaceholders).forEach(
|
145
|
-
id => (ftlCode = ftlCode.replace(id, ftlPlaceholders[id]).replace("ftl_template_for_replacement", pageId)),
|
146
|
-
);
|
121
|
+
let ftlCode = $.html();
|
122
|
+
|
123
|
+
Object.entries({
|
124
|
+
...replaceValueBySearchValue,
|
125
|
+
//If updated, don't forget to change in the ftl script as well.
|
126
|
+
"PAGE_ID_xIgLsPgGId9D8e": pageId,
|
127
|
+
}).map(([searchValue, replaceValue]) => (ftlCode = ftlCode.replace(searchValue, replaceValue)));
|
147
128
|
|
148
129
|
return { ftlCode };
|
149
130
|
}
|
@@ -4,7 +4,7 @@ import type { KcProps } from "./KcProps";
|
|
4
4
|
import type { KcContextBase } from "../getKcContext/KcContextBase";
|
5
5
|
import { useKcMessage } from "../i18n/useKcMessage";
|
6
6
|
import { headInsert } from "../tools/headInsert";
|
7
|
-
import {
|
7
|
+
import { pathJoin } from "../tools/pathJoin";
|
8
8
|
import { useCssAndCx } from "tss-react";
|
9
9
|
|
10
10
|
export const LoginOtp = memo(({ kcContext, ...props }: { kcContext: KcContextBase.LoginOtp } & KcProps) => {
|
@@ -9,7 +9,7 @@ import { getBestMatchAmongKcLanguageTag } from "../i18n/KcLanguageTag";
|
|
9
9
|
import { getKcLanguageTagLabel } from "../i18n/KcLanguageTag";
|
10
10
|
import { useCallbackFactory } from "powerhooks/useCallbackFactory";
|
11
11
|
import { headInsert } from "../tools/headInsert";
|
12
|
-
import {
|
12
|
+
import { pathJoin } from "../tools/pathJoin";
|
13
13
|
import { useConstCallback } from "powerhooks/useConstCallback";
|
14
14
|
import type { KcTemplateProps } from "./KcProps";
|
15
15
|
import { useCssAndCx } from "tss-react";
|
@@ -5,7 +5,7 @@ import { getKcLanguageTagLabel } from "../../i18n/KcLanguageTag";
|
|
5
5
|
//NOTE: Aside because we want to be able to import them from node
|
6
6
|
import { resourcesCommonPath, resourcesPath } from "./urlResourcesPath";
|
7
7
|
import { id } from "tsafe/id";
|
8
|
-
import {
|
8
|
+
import { pathJoin } from "../../tools/pathJoin";
|
9
9
|
|
10
10
|
const PUBLIC_URL = process.env["PUBLIC_URL"] ?? "/";
|
11
11
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { pathJoin } from "../../tools/pathJoin";
|
2
2
|
|
3
3
|
export const subDirOfPublicDirBasename = "keycloak_static";
|
4
|
-
export const resourcesPath = pathJoin(subDirOfPublicDirBasename, "
|
5
|
-
export const resourcesCommonPath = pathJoin(subDirOfPublicDirBasename, "
|
4
|
+
export const resourcesPath = pathJoin(subDirOfPublicDirBasename, "resources");
|
5
|
+
export const resourcesCommonPath = pathJoin(subDirOfPublicDirBasename, "resources_common");
|
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
Object.defineProperty(
|
3
|
-
Object,
|
4
|
-
"deepAssign",
|
5
|
-
{
|
6
|
-
"value": function callee(target, source) {
|
7
|
-
Object.keys(source).forEach(function (key) {
|
8
|
-
var value = source[key];
|
9
|
-
if (target[key] === undefined) {
|
10
|
-
target[key] = value;
|
11
|
-
return;
|
12
|
-
}
|
13
|
-
if (value instanceof Object) {
|
14
|
-
if (value instanceof Array) {
|
15
|
-
value.forEach(function (entry) {
|
16
|
-
target[key].push(entry);
|
17
|
-
});
|
18
|
-
return;
|
19
|
-
}
|
20
|
-
callee(target[key], value);
|
21
|
-
return;
|
22
|
-
}
|
23
|
-
target[key] = value;
|
24
|
-
});
|
25
|
-
return target;
|
26
|
-
}
|
27
|
-
}
|
28
|
-
);
|