keycloakify 7.14.3 → 7.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/account/kcContext/kcContextMocks.js +2 -2
- package/account/kcContext/kcContextMocks.js.map +1 -1
- package/bin/keycloakify/generateTheme/generateMessageProperties.d.ts +8 -0
- package/bin/keycloakify/generateTheme/generateMessageProperties.js +271 -0
- package/bin/keycloakify/generateTheme/generateMessageProperties.js.map +1 -0
- package/bin/keycloakify/generateTheme/generateTheme.js +11 -0
- package/bin/keycloakify/generateTheme/generateTheme.js.map +1 -1
- package/login/kcContext/kcContextMocks.js +2 -2
- package/login/kcContext/kcContextMocks.js.map +1 -1
- package/package.json +12 -2
- package/src/account/kcContext/kcContextMocks.ts +1 -1
- package/src/bin/keycloakify/generateTheme/generateMessageProperties.ts +179 -0
- package/src/bin/keycloakify/generateTheme/generateTheme.ts +14 -0
- package/src/login/kcContext/kcContextMocks.ts +1 -1
package/README.md
CHANGED
@@ -121,6 +121,14 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
121
121
|
|
122
122
|
# Changelog highlights
|
123
123
|
|
124
|
+
## 7.15
|
125
|
+
|
126
|
+
- The i18n messages you defines in your theme are now also maid available to Keycloak.
|
127
|
+
In practice this mean that you can now customize the `kcContext.message.summary` that
|
128
|
+
display a general alert and the values returned by `kcContext.messagesPerField.get()` that
|
129
|
+
are used to display specific error on some field of the form.
|
130
|
+
[See video](https://youtu.be/D6tZcemReTI)
|
131
|
+
|
124
132
|
## 7.14
|
125
133
|
|
126
134
|
- Deprecate the `extraPages` build option. Keycloakify is now able to analyze your code to detect extra pages.
|
@@ -1,9 +1,9 @@
|
|
1
|
-
var _a;
|
1
|
+
var _a, _b;
|
2
2
|
import "minimal-polyfills/Object.fromEntries";
|
3
3
|
import { resourcesCommonDirPathRelativeToPublicDir, resourcesDirPathRelativeToPublicDir } from "../../bin/mockTestingResourcesPath";
|
4
4
|
import { pathJoin } from "../../bin/tools/pathJoin";
|
5
5
|
import { id } from "tsafe/id";
|
6
|
-
const PUBLIC_URL = (_a = process.env["PUBLIC_URL"]) !== null &&
|
6
|
+
const PUBLIC_URL = (_b = (typeof process !== "object" ? undefined : (_a = process.env) === null || _a === void 0 ? void 0 : _a["PUBLIC_URL"])) !== null && _b !== void 0 ? _b : "/";
|
7
7
|
export const kcContextCommonMock = {
|
8
8
|
"keycloakifyVersion": "0.0.0",
|
9
9
|
"themeType": "account",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/account/kcContext/kcContextMocks.ts"],"names":[],"mappings":";AAAA,OAAO,sCAAsC,CAAC;AAC9C,OAAO,EAAE,yCAAyC,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAG9B,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/account/kcContext/kcContextMocks.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,271 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
var __read = (this && this.__read) || function (o, n) {
|
26
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
27
|
+
if (!m) return o;
|
28
|
+
var i = m.call(o), r, ar = [], e;
|
29
|
+
try {
|
30
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
31
|
+
}
|
32
|
+
catch (error) { e = { error: error }; }
|
33
|
+
finally {
|
34
|
+
try {
|
35
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
36
|
+
}
|
37
|
+
finally { if (e) throw e.error; }
|
38
|
+
}
|
39
|
+
return ar;
|
40
|
+
};
|
41
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
42
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
43
|
+
if (ar || !(i in from)) {
|
44
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
45
|
+
ar[i] = from[i];
|
46
|
+
}
|
47
|
+
}
|
48
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
49
|
+
};
|
50
|
+
var __values = (this && this.__values) || function(o) {
|
51
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
52
|
+
if (m) return m.call(o);
|
53
|
+
if (o && typeof o.length === "number") return {
|
54
|
+
next: function () {
|
55
|
+
if (o && i >= o.length) o = void 0;
|
56
|
+
return { value: o && o[i++], done: !o };
|
57
|
+
}
|
58
|
+
};
|
59
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
60
|
+
};
|
61
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
62
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
63
|
+
};
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
65
|
+
exports.generateMessageProperties = void 0;
|
66
|
+
var crawl_1 = require("../../tools/crawl");
|
67
|
+
var path_1 = require("path");
|
68
|
+
var fs_1 = require("fs");
|
69
|
+
var symToStr_1 = require("tsafe/symToStr");
|
70
|
+
var removeDuplicates_1 = require("evt/tools/reducers/removeDuplicates");
|
71
|
+
var recast = __importStar(require("recast"));
|
72
|
+
var babelParser = __importStar(require("@babel/parser"));
|
73
|
+
var generator_1 = __importDefault(require("@babel/generator"));
|
74
|
+
var babelTypes = __importStar(require("@babel/types"));
|
75
|
+
function generateMessageProperties(params) {
|
76
|
+
var _a, e_1, _b, e_2, _c, e_3, _d, e_4, _e;
|
77
|
+
var themeSrcDirPath = params.themeSrcDirPath, themeType = params.themeType;
|
78
|
+
var files = (0, crawl_1.crawl)({
|
79
|
+
"dirPath": (0, path_1.join)(themeSrcDirPath, themeType),
|
80
|
+
"returnedPathsType": "absolute"
|
81
|
+
});
|
82
|
+
files = files.filter(function (file) {
|
83
|
+
var regex = /\.(js|ts|tsx)$/;
|
84
|
+
return regex.test(file);
|
85
|
+
});
|
86
|
+
files = files.sort(function (a, b) {
|
87
|
+
var regex = /\.i18n\.(ts|js|tsx)$/;
|
88
|
+
var aIsI18nFile = regex.test(a);
|
89
|
+
var bIsI18nFile = regex.test(b);
|
90
|
+
return aIsI18nFile === bIsI18nFile ? 0 : aIsI18nFile ? -1 : 1;
|
91
|
+
});
|
92
|
+
files = files.sort(function (a, b) { return a.length - b.length; });
|
93
|
+
files = files.filter(function (file) { return (0, fs_1.readFileSync)(file).toString("utf8").includes("createUseI18n"); });
|
94
|
+
if (files.length === 0) {
|
95
|
+
return [];
|
96
|
+
}
|
97
|
+
var extraMessages = files
|
98
|
+
.map(function (file) {
|
99
|
+
var root = recast.parse((0, fs_1.readFileSync)(file).toString("utf8"), {
|
100
|
+
"parser": {
|
101
|
+
"parse": function (code) { return babelParser.parse(code, { "sourceType": "module", "plugins": ["typescript"] }); },
|
102
|
+
"generator": generator_1.default,
|
103
|
+
"types": babelTypes
|
104
|
+
}
|
105
|
+
});
|
106
|
+
var codes = [];
|
107
|
+
recast.visit(root, {
|
108
|
+
"visitCallExpression": function (path) {
|
109
|
+
if (path.node.callee.type === "Identifier" && path.node.callee.name === "createUseI18n") {
|
110
|
+
codes.push((0, generator_1.default)(path.node.arguments[0]).code);
|
111
|
+
}
|
112
|
+
this.traverse(path);
|
113
|
+
}
|
114
|
+
});
|
115
|
+
return codes;
|
116
|
+
})
|
117
|
+
.flat()
|
118
|
+
.map(function (code) {
|
119
|
+
var extraMessages = {};
|
120
|
+
try {
|
121
|
+
eval("".concat((0, symToStr_1.symToStr)({ extraMessages: extraMessages }), " = ").concat(code));
|
122
|
+
}
|
123
|
+
catch (_a) {
|
124
|
+
console.warn([
|
125
|
+
"WARNING: Make sure that the first argument of createUseI18n can be evaluated in a javascript",
|
126
|
+
"runtime where only the node globals are available.",
|
127
|
+
"This is important because we need to put your i18n messages in messages_*.properties files",
|
128
|
+
"or they won't be available server side.",
|
129
|
+
"\n",
|
130
|
+
"The following code could not be evaluated:",
|
131
|
+
"\n",
|
132
|
+
code
|
133
|
+
].join(" "));
|
134
|
+
}
|
135
|
+
return extraMessages;
|
136
|
+
});
|
137
|
+
var languageTags = (_a = extraMessages
|
138
|
+
.map(function (extraMessage) { return Object.keys(extraMessage); })
|
139
|
+
.flat())
|
140
|
+
.reduce.apply(_a, __spreadArray([], __read((0, removeDuplicates_1.removeDuplicates)()), false));
|
141
|
+
var keyValueMapByLanguageTag = {};
|
142
|
+
try {
|
143
|
+
for (var languageTags_1 = __values(languageTags), languageTags_1_1 = languageTags_1.next(); !languageTags_1_1.done; languageTags_1_1 = languageTags_1.next()) {
|
144
|
+
var languageTag = languageTags_1_1.value;
|
145
|
+
var keyValueMap = {};
|
146
|
+
try {
|
147
|
+
for (var extraMessages_1 = (e_2 = void 0, __values(extraMessages)), extraMessages_1_1 = extraMessages_1.next(); !extraMessages_1_1.done; extraMessages_1_1 = extraMessages_1.next()) {
|
148
|
+
var extraMessage = extraMessages_1_1.value;
|
149
|
+
var keyValueMap_i = extraMessage[languageTag];
|
150
|
+
if (keyValueMap_i === undefined) {
|
151
|
+
continue;
|
152
|
+
}
|
153
|
+
try {
|
154
|
+
for (var _f = (e_3 = void 0, __values(Object.entries(keyValueMap_i))), _g = _f.next(); !_g.done; _g = _f.next()) {
|
155
|
+
var _h = __read(_g.value, 2), key = _h[0], value = _h[1];
|
156
|
+
if (keyValueMap[key] !== undefined) {
|
157
|
+
console.warn([
|
158
|
+
"WARNING: The following key is defined multiple times:",
|
159
|
+
"\n",
|
160
|
+
key,
|
161
|
+
"\n",
|
162
|
+
"The following value will be ignored:",
|
163
|
+
"\n",
|
164
|
+
value,
|
165
|
+
"\n",
|
166
|
+
"The following value was already defined:",
|
167
|
+
"\n",
|
168
|
+
keyValueMap[key]
|
169
|
+
].join(" "));
|
170
|
+
continue;
|
171
|
+
}
|
172
|
+
keyValueMap[key] = value;
|
173
|
+
}
|
174
|
+
}
|
175
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
176
|
+
finally {
|
177
|
+
try {
|
178
|
+
if (_g && !_g.done && (_d = _f.return)) _d.call(_f);
|
179
|
+
}
|
180
|
+
finally { if (e_3) throw e_3.error; }
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
185
|
+
finally {
|
186
|
+
try {
|
187
|
+
if (extraMessages_1_1 && !extraMessages_1_1.done && (_c = extraMessages_1.return)) _c.call(extraMessages_1);
|
188
|
+
}
|
189
|
+
finally { if (e_2) throw e_2.error; }
|
190
|
+
}
|
191
|
+
keyValueMapByLanguageTag[languageTag] = keyValueMap;
|
192
|
+
}
|
193
|
+
}
|
194
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
195
|
+
finally {
|
196
|
+
try {
|
197
|
+
if (languageTags_1_1 && !languageTags_1_1.done && (_b = languageTags_1.return)) _b.call(languageTags_1);
|
198
|
+
}
|
199
|
+
finally { if (e_1) throw e_1.error; }
|
200
|
+
}
|
201
|
+
var out = [];
|
202
|
+
try {
|
203
|
+
for (var _j = __values(Object.entries(keyValueMapByLanguageTag)), _k = _j.next(); !_k.done; _k = _j.next()) {
|
204
|
+
var _l = __read(_k.value, 2), languageTag = _l[0], keyValueMap = _l[1];
|
205
|
+
var propertiesFileSource = Object.entries(keyValueMap)
|
206
|
+
.map(function (_a) {
|
207
|
+
var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
208
|
+
return "".concat(key, "=").concat(escapeString(value));
|
209
|
+
})
|
210
|
+
.join("\n");
|
211
|
+
out.push({
|
212
|
+
languageTag: languageTag,
|
213
|
+
"propertiesFileSource": ["# This file was generated by keycloakify", "", "parent=base", "", propertiesFileSource, ""].join("\n")
|
214
|
+
});
|
215
|
+
}
|
216
|
+
}
|
217
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
218
|
+
finally {
|
219
|
+
try {
|
220
|
+
if (_k && !_k.done && (_e = _j.return)) _e.call(_j);
|
221
|
+
}
|
222
|
+
finally { if (e_4) throw e_4.error; }
|
223
|
+
}
|
224
|
+
return out;
|
225
|
+
}
|
226
|
+
exports.generateMessageProperties = generateMessageProperties;
|
227
|
+
// Convert a JavaScript string to UTF-16 encoding
|
228
|
+
function toUTF16(codePoint) {
|
229
|
+
if (codePoint <= 0xffff) {
|
230
|
+
// BMP character
|
231
|
+
return "\\u" + codePoint.toString(16).padStart(4, "0");
|
232
|
+
}
|
233
|
+
else {
|
234
|
+
// Non-BMP character
|
235
|
+
codePoint -= 0x10000;
|
236
|
+
var highSurrogate = (codePoint >> 10) + 0xd800;
|
237
|
+
var lowSurrogate = (codePoint % 0x400) + 0xdc00;
|
238
|
+
return "\\u" + highSurrogate.toString(16).padStart(4, "0") + "\\u" + lowSurrogate.toString(16).padStart(4, "0");
|
239
|
+
}
|
240
|
+
}
|
241
|
+
// Escapes special characters and converts unicode to UTF-16 encoding
|
242
|
+
function escapeString(str) {
|
243
|
+
var e_5, _a;
|
244
|
+
var escapedStr = "";
|
245
|
+
try {
|
246
|
+
for (var _b = __values(__spreadArray([], __read(str), false)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
247
|
+
var char = _c.value;
|
248
|
+
var codePoint = char.codePointAt(0);
|
249
|
+
if (!codePoint)
|
250
|
+
continue;
|
251
|
+
if (char === "'") {
|
252
|
+
escapedStr += "''"; // double single quotes
|
253
|
+
}
|
254
|
+
else if (codePoint > 0x7f) {
|
255
|
+
escapedStr += toUTF16(codePoint); // non-ascii characters
|
256
|
+
}
|
257
|
+
else {
|
258
|
+
escapedStr += char;
|
259
|
+
}
|
260
|
+
}
|
261
|
+
}
|
262
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
263
|
+
finally {
|
264
|
+
try {
|
265
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
266
|
+
}
|
267
|
+
finally { if (e_5) throw e_5.error; }
|
268
|
+
}
|
269
|
+
return escapedStr;
|
270
|
+
}
|
271
|
+
//# sourceMappingURL=generateMessageProperties.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"generateMessageProperties.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/generateTheme/generateMessageProperties.ts"],"names":[],"mappings":"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"}
|
@@ -119,6 +119,7 @@ var assert_1 = require("tsafe/assert");
|
|
119
119
|
var downloadKeycloakStaticResources_1 = require("./downloadKeycloakStaticResources");
|
120
120
|
var readFieldNameUsage_1 = require("./readFieldNameUsage");
|
121
121
|
var readExtraPageNames_1 = require("./readExtraPageNames");
|
122
|
+
var generateMessageProperties_1 = require("./generateMessageProperties");
|
122
123
|
(0, assert_1.assert)();
|
123
124
|
function generateTheme(params) {
|
124
125
|
var _a;
|
@@ -219,6 +220,16 @@ function generateTheme(params) {
|
|
219
220
|
fs.mkdirSync(themeDirPath, { "recursive": true });
|
220
221
|
fs.writeFileSync((0, path_1.join)(themeDirPath, pageId), Buffer.from(ftlCode, "utf8"));
|
221
222
|
});
|
223
|
+
(0, generateMessageProperties_1.generateMessageProperties)({
|
224
|
+
themeSrcDirPath: themeSrcDirPath,
|
225
|
+
themeType: themeType
|
226
|
+
}).forEach(function (_a) {
|
227
|
+
var languageTag = _a.languageTag, propertiesFileSource = _a.propertiesFileSource;
|
228
|
+
var messagesDirPath = (0, path_1.join)(themeDirPath, "messages");
|
229
|
+
fs.mkdirSync((0, path_1.join)(themeDirPath, "messages"), { "recursive": true });
|
230
|
+
var propertiesFilePath = (0, path_1.join)(messagesDirPath, "messages_".concat(languageTag, ".properties"));
|
231
|
+
fs.writeFileSync(propertiesFilePath, Buffer.from(propertiesFileSource, "utf8"));
|
232
|
+
});
|
222
233
|
keycloakDirInPublicDir = (0, path_1.join)(reactAppBuildDirPath, "..", "public", mockTestingResourcesPath_1.basenameOfKeycloakDirInPublicDir);
|
223
234
|
if (fs.existsSync(keycloakDirInPublicDir)) {
|
224
235
|
return [3 /*break*/, 2];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generateTheme.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/generateTheme/generateTheme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAkE;AAClE,qCAAyB;AACzB,6BAAwC;AACxC,kGAAiG;AACjG,gFAA+E;AAC/E,8CAAiI;AACjI,2EAAkF;AAClF,iDAAgD;AAEhD,uCAAsC;AACtC,qFAAoF;AACpF,2DAA0D;AAC1D,2DAA2D;
|
1
|
+
{"version":3,"file":"generateTheme.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/generateTheme/generateTheme.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
var _a;
|
1
|
+
var _a, _b;
|
2
2
|
import "minimal-polyfills/Object.fromEntries";
|
3
3
|
import { resourcesCommonDirPathRelativeToPublicDir, resourcesDirPathRelativeToPublicDir } from "../../bin/mockTestingResourcesPath";
|
4
4
|
import { pathJoin } from "../../bin/tools/pathJoin";
|
5
5
|
import { id } from "tsafe/id";
|
6
6
|
import { assert } from "tsafe/assert";
|
7
|
-
const PUBLIC_URL = (_a = process.env["PUBLIC_URL"]) !== null &&
|
7
|
+
const PUBLIC_URL = (_b = (typeof process !== "object" ? undefined : (_a = process.env) === null || _a === void 0 ? void 0 : _a["PUBLIC_URL"])) !== null && _b !== void 0 ? _b : "/";
|
8
8
|
const attributes = [
|
9
9
|
{
|
10
10
|
"validators": {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/login/kcContext/kcContextMocks.ts"],"names":[],"mappings":";AAAA,OAAO,sCAAsC,CAAC;AAE9C,OAAO,EAAE,yCAAyC,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC1I,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAe,MAAM,cAAc,CAAC;AAGnD,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/login/kcContext/kcContextMocks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "keycloakify",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.15.1",
|
4
4
|
"description": "Create Keycloak themes using React",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -82,6 +82,7 @@
|
|
82
82
|
"src/bin/keycloakify/generateJavaStackFiles.ts",
|
83
83
|
"src/bin/keycloakify/generateStartKeycloakTestingContainer.ts",
|
84
84
|
"src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts",
|
85
|
+
"src/bin/keycloakify/generateTheme/generateMessageProperties.ts",
|
85
86
|
"src/bin/keycloakify/generateTheme/generateTheme.ts",
|
86
87
|
"src/bin/keycloakify/generateTheme/index.ts",
|
87
88
|
"src/bin/keycloakify/generateTheme/readExtraPageNames.ts",
|
@@ -360,6 +361,9 @@
|
|
360
361
|
"bin/keycloakify/generateTheme/downloadKeycloakStaticResources.d.ts",
|
361
362
|
"bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js",
|
362
363
|
"bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js.map",
|
364
|
+
"bin/keycloakify/generateTheme/generateMessageProperties.d.ts",
|
365
|
+
"bin/keycloakify/generateTheme/generateMessageProperties.js",
|
366
|
+
"bin/keycloakify/generateTheme/generateMessageProperties.js.map",
|
363
367
|
"bin/keycloakify/generateTheme/generateTheme.d.ts",
|
364
368
|
"bin/keycloakify/generateTheme/generateTheme.js",
|
365
369
|
"bin/keycloakify/generateTheme/generateTheme.js.map",
|
@@ -717,6 +721,7 @@
|
|
717
721
|
"src/bin/keycloakify/generateJavaStackFiles.ts",
|
718
722
|
"src/bin/keycloakify/generateStartKeycloakTestingContainer.ts",
|
719
723
|
"src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts",
|
724
|
+
"src/bin/keycloakify/generateTheme/generateMessageProperties.ts",
|
720
725
|
"src/bin/keycloakify/generateTheme/generateTheme.ts",
|
721
726
|
"src/bin/keycloakify/generateTheme/index.ts",
|
722
727
|
"src/bin/keycloakify/generateTheme/readExtraPageNames.ts",
|
@@ -907,12 +912,14 @@
|
|
907
912
|
"@storybook/manager-webpack5": "^6.5.13",
|
908
913
|
"@storybook/react": "^6.5.13",
|
909
914
|
"@storybook/testing-library": "^0.0.13",
|
915
|
+
"@types/babel__generator": "^7.6.4",
|
910
916
|
"@types/make-fetch-happen": "^10.0.1",
|
911
917
|
"@types/minimist": "^1.2.2",
|
912
918
|
"@types/node": "^18.15.3",
|
913
919
|
"@types/react": "^18.0.35",
|
914
920
|
"@types/react-dom": "^18.0.11",
|
915
921
|
"@types/yauzl": "^2.10.0",
|
922
|
+
"@types/yazl": "^2.4.2",
|
916
923
|
"concurrently": "^8.0.1",
|
917
924
|
"copyfiles": "^2.4.1",
|
918
925
|
"eslint-plugin-storybook": "^0.6.7",
|
@@ -934,8 +941,10 @@
|
|
934
941
|
"zod-to-json-schema": "^3.20.4"
|
935
942
|
},
|
936
943
|
"dependencies": {
|
944
|
+
"@babel/generator": "^7.22.9",
|
945
|
+
"@babel/parser": "^7.22.7",
|
946
|
+
"@babel/types": "^7.22.5",
|
937
947
|
"@octokit/rest": "^18.12.0",
|
938
|
-
"@types/yazl": "^2.4.2",
|
939
948
|
"cheerio": "^1.0.0-rc.5",
|
940
949
|
"cli-select": "^1.1.2",
|
941
950
|
"evt": "^2.4.18",
|
@@ -944,6 +953,7 @@
|
|
944
953
|
"minimist": "^1.2.6",
|
945
954
|
"path-browserify": "^1.0.1",
|
946
955
|
"react-markdown": "^5.0.3",
|
956
|
+
"recast": "^0.23.3",
|
947
957
|
"rfc4648": "^1.5.2",
|
948
958
|
"tsafe": "^1.6.0",
|
949
959
|
"yauzl": "^2.10.0",
|
@@ -4,7 +4,7 @@ import { pathJoin } from "keycloakify/bin/tools/pathJoin";
|
|
4
4
|
import { id } from "tsafe/id";
|
5
5
|
import type { KcContext } from "./KcContext";
|
6
6
|
|
7
|
-
const PUBLIC_URL = process.env["PUBLIC_URL"] ?? "/";
|
7
|
+
const PUBLIC_URL = (typeof process !== "object" ? undefined : process.env?.["PUBLIC_URL"]) ?? "/";
|
8
8
|
|
9
9
|
export const kcContextCommonMock: KcContext.Common = {
|
10
10
|
"keycloakifyVersion": "0.0.0",
|
@@ -0,0 +1,179 @@
|
|
1
|
+
import type { ThemeType } from "../generateFtl";
|
2
|
+
import { crawl } from "../../tools/crawl";
|
3
|
+
import { join as pathJoin } from "path";
|
4
|
+
import { readFileSync } from "fs";
|
5
|
+
import { symToStr } from "tsafe/symToStr";
|
6
|
+
import { removeDuplicates } from "evt/tools/reducers/removeDuplicates";
|
7
|
+
import * as recast from "recast";
|
8
|
+
import * as babelParser from "@babel/parser";
|
9
|
+
import babelGenerate from "@babel/generator";
|
10
|
+
import * as babelTypes from "@babel/types";
|
11
|
+
|
12
|
+
export function generateMessageProperties(params: {
|
13
|
+
themeSrcDirPath: string;
|
14
|
+
themeType: ThemeType;
|
15
|
+
}): { languageTag: string; propertiesFileSource: string }[] {
|
16
|
+
const { themeSrcDirPath, themeType } = params;
|
17
|
+
|
18
|
+
let files = crawl({
|
19
|
+
"dirPath": pathJoin(themeSrcDirPath, themeType),
|
20
|
+
"returnedPathsType": "absolute"
|
21
|
+
});
|
22
|
+
|
23
|
+
files = files.filter(file => {
|
24
|
+
const regex = /\.(js|ts|tsx)$/;
|
25
|
+
return regex.test(file);
|
26
|
+
});
|
27
|
+
|
28
|
+
files = files.sort((a, b) => {
|
29
|
+
const regex = /\.i18n\.(ts|js|tsx)$/;
|
30
|
+
const aIsI18nFile = regex.test(a);
|
31
|
+
const bIsI18nFile = regex.test(b);
|
32
|
+
return aIsI18nFile === bIsI18nFile ? 0 : aIsI18nFile ? -1 : 1;
|
33
|
+
});
|
34
|
+
|
35
|
+
files = files.sort((a, b) => a.length - b.length);
|
36
|
+
|
37
|
+
files = files.filter(file => readFileSync(file).toString("utf8").includes("createUseI18n"));
|
38
|
+
|
39
|
+
if (files.length === 0) {
|
40
|
+
return [];
|
41
|
+
}
|
42
|
+
|
43
|
+
const extraMessages = files
|
44
|
+
.map(file => {
|
45
|
+
const root = recast.parse(readFileSync(file).toString("utf8"), {
|
46
|
+
"parser": {
|
47
|
+
"parse": (code: string) => babelParser.parse(code, { "sourceType": "module", "plugins": ["typescript"] }),
|
48
|
+
"generator": babelGenerate,
|
49
|
+
"types": babelTypes
|
50
|
+
}
|
51
|
+
});
|
52
|
+
|
53
|
+
const codes: string[] = [];
|
54
|
+
|
55
|
+
recast.visit(root, {
|
56
|
+
"visitCallExpression": function (path) {
|
57
|
+
if (path.node.callee.type === "Identifier" && path.node.callee.name === "createUseI18n") {
|
58
|
+
codes.push(babelGenerate(path.node.arguments[0] as any).code);
|
59
|
+
}
|
60
|
+
this.traverse(path);
|
61
|
+
}
|
62
|
+
});
|
63
|
+
|
64
|
+
return codes;
|
65
|
+
})
|
66
|
+
.flat()
|
67
|
+
.map(code => {
|
68
|
+
let extraMessages: { [languageTag: string]: Record<string, string> } = {};
|
69
|
+
|
70
|
+
try {
|
71
|
+
eval(`${symToStr({ extraMessages })} = ${code}`);
|
72
|
+
} catch {
|
73
|
+
console.warn(
|
74
|
+
[
|
75
|
+
"WARNING: Make sure that the first argument of createUseI18n can be evaluated in a javascript",
|
76
|
+
"runtime where only the node globals are available.",
|
77
|
+
"This is important because we need to put your i18n messages in messages_*.properties files",
|
78
|
+
"or they won't be available server side.",
|
79
|
+
"\n",
|
80
|
+
"The following code could not be evaluated:",
|
81
|
+
"\n",
|
82
|
+
code
|
83
|
+
].join(" ")
|
84
|
+
);
|
85
|
+
}
|
86
|
+
|
87
|
+
return extraMessages;
|
88
|
+
});
|
89
|
+
|
90
|
+
const languageTags = extraMessages
|
91
|
+
.map(extraMessage => Object.keys(extraMessage))
|
92
|
+
.flat()
|
93
|
+
.reduce(...removeDuplicates<string>());
|
94
|
+
|
95
|
+
const keyValueMapByLanguageTag: Record<string, Record<string, string>> = {};
|
96
|
+
|
97
|
+
for (const languageTag of languageTags) {
|
98
|
+
const keyValueMap: Record<string, string> = {};
|
99
|
+
|
100
|
+
for (const extraMessage of extraMessages) {
|
101
|
+
const keyValueMap_i = extraMessage[languageTag];
|
102
|
+
|
103
|
+
if (keyValueMap_i === undefined) {
|
104
|
+
continue;
|
105
|
+
}
|
106
|
+
|
107
|
+
for (const [key, value] of Object.entries(keyValueMap_i)) {
|
108
|
+
if (keyValueMap[key] !== undefined) {
|
109
|
+
console.warn(
|
110
|
+
[
|
111
|
+
"WARNING: The following key is defined multiple times:",
|
112
|
+
"\n",
|
113
|
+
key,
|
114
|
+
"\n",
|
115
|
+
"The following value will be ignored:",
|
116
|
+
"\n",
|
117
|
+
value,
|
118
|
+
"\n",
|
119
|
+
"The following value was already defined:",
|
120
|
+
"\n",
|
121
|
+
keyValueMap[key]
|
122
|
+
].join(" ")
|
123
|
+
);
|
124
|
+
continue;
|
125
|
+
}
|
126
|
+
|
127
|
+
keyValueMap[key] = value;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
keyValueMapByLanguageTag[languageTag] = keyValueMap;
|
132
|
+
}
|
133
|
+
|
134
|
+
const out: { languageTag: string; propertiesFileSource: string }[] = [];
|
135
|
+
|
136
|
+
for (const [languageTag, keyValueMap] of Object.entries(keyValueMapByLanguageTag)) {
|
137
|
+
const propertiesFileSource = Object.entries(keyValueMap)
|
138
|
+
.map(([key, value]) => `${key}=${escapeString(value)}`)
|
139
|
+
.join("\n");
|
140
|
+
|
141
|
+
out.push({
|
142
|
+
languageTag,
|
143
|
+
"propertiesFileSource": ["# This file was generated by keycloakify", "", "parent=base", "", propertiesFileSource, ""].join("\n")
|
144
|
+
});
|
145
|
+
}
|
146
|
+
|
147
|
+
return out;
|
148
|
+
}
|
149
|
+
|
150
|
+
// Convert a JavaScript string to UTF-16 encoding
|
151
|
+
function toUTF16(codePoint: number): string {
|
152
|
+
if (codePoint <= 0xffff) {
|
153
|
+
// BMP character
|
154
|
+
return "\\u" + codePoint.toString(16).padStart(4, "0");
|
155
|
+
} else {
|
156
|
+
// Non-BMP character
|
157
|
+
codePoint -= 0x10000;
|
158
|
+
let highSurrogate = (codePoint >> 10) + 0xd800;
|
159
|
+
let lowSurrogate = (codePoint % 0x400) + 0xdc00;
|
160
|
+
return "\\u" + highSurrogate.toString(16).padStart(4, "0") + "\\u" + lowSurrogate.toString(16).padStart(4, "0");
|
161
|
+
}
|
162
|
+
}
|
163
|
+
|
164
|
+
// Escapes special characters and converts unicode to UTF-16 encoding
|
165
|
+
function escapeString(str: string): string {
|
166
|
+
let escapedStr = "";
|
167
|
+
for (const char of [...str]) {
|
168
|
+
const codePoint = char.codePointAt(0);
|
169
|
+
if (!codePoint) continue;
|
170
|
+
if (char === "'") {
|
171
|
+
escapedStr += "''"; // double single quotes
|
172
|
+
} else if (codePoint > 0x7f) {
|
173
|
+
escapedStr += toUTF16(codePoint); // non-ascii characters
|
174
|
+
} else {
|
175
|
+
escapedStr += char;
|
176
|
+
}
|
177
|
+
}
|
178
|
+
return escapedStr;
|
179
|
+
}
|
@@ -11,6 +11,7 @@ import { assert } from "tsafe/assert";
|
|
11
11
|
import { downloadKeycloakStaticResources } from "./downloadKeycloakStaticResources";
|
12
12
|
import { readFieldNameUsage } from "./readFieldNameUsage";
|
13
13
|
import { readExtraPagesNames } from "./readExtraPageNames";
|
14
|
+
import { generateMessageProperties } from "./generateMessageProperties";
|
14
15
|
|
15
16
|
export type BuildOptionsLike = BuildOptionsLike.Standalone | BuildOptionsLike.ExternalAssets;
|
16
17
|
|
@@ -173,6 +174,19 @@ export async function generateTheme(params: {
|
|
173
174
|
fs.writeFileSync(pathJoin(themeDirPath, pageId), Buffer.from(ftlCode, "utf8"));
|
174
175
|
});
|
175
176
|
|
177
|
+
generateMessageProperties({
|
178
|
+
themeSrcDirPath,
|
179
|
+
themeType
|
180
|
+
}).forEach(({ languageTag, propertiesFileSource }) => {
|
181
|
+
const messagesDirPath = pathJoin(themeDirPath, "messages");
|
182
|
+
|
183
|
+
fs.mkdirSync(pathJoin(themeDirPath, "messages"), { "recursive": true });
|
184
|
+
|
185
|
+
const propertiesFilePath = pathJoin(messagesDirPath, `messages_${languageTag}.properties`);
|
186
|
+
|
187
|
+
fs.writeFileSync(propertiesFilePath, Buffer.from(propertiesFileSource, "utf8"));
|
188
|
+
});
|
189
|
+
|
176
190
|
//TODO: Remove this block we left it for now only for backward compatibility
|
177
191
|
// we now have a separate script for this
|
178
192
|
copy_keycloak_resources_to_public: {
|
@@ -6,7 +6,7 @@ import { id } from "tsafe/id";
|
|
6
6
|
import { assert, type Equals } from "tsafe/assert";
|
7
7
|
import type { LoginThemePageId } from "keycloakify/bin/keycloakify/generateFtl";
|
8
8
|
|
9
|
-
const PUBLIC_URL = process.env["PUBLIC_URL"] ?? "/";
|
9
|
+
const PUBLIC_URL = (typeof process !== "object" ? undefined : process.env?.["PUBLIC_URL"]) ?? "/";
|
10
10
|
|
11
11
|
const attributes: Attribute[] = [
|
12
12
|
{
|