keycloakify 7.12.8 → 7.13.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 +4 -0
- package/bin/getSrcDirPath.d.ts +0 -5
- package/bin/getSrcDirPath.js +1 -8
- package/bin/getSrcDirPath.js.map +1 -1
- package/bin/initialize-email-theme.js +5 -4
- package/bin/initialize-email-theme.js.map +1 -1
- package/bin/keycloakify/BuildOptions.d.ts +0 -1
- package/bin/keycloakify/BuildOptions.js +4 -5
- package/bin/keycloakify/BuildOptions.js.map +1 -1
- package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +5 -11
- package/bin/keycloakify/generateFtl/generateFtl.d.ts +1 -1
- package/bin/keycloakify/generateFtl/generateFtl.js +2 -2
- package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
- package/bin/keycloakify/generateJavaStackFiles.d.ts +2 -1
- package/bin/keycloakify/generateJavaStackFiles.js +10 -3
- package/bin/keycloakify/generateJavaStackFiles.js.map +1 -1
- package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -1
- package/bin/keycloakify/generateTheme/generateTheme.d.ts +3 -5
- package/bin/keycloakify/generateTheme/generateTheme.js +15 -7
- package/bin/keycloakify/generateTheme/generateTheme.js.map +1 -1
- package/bin/keycloakify/generateTheme/readFieldNameUsage.d.ts +6 -0
- package/bin/keycloakify/generateTheme/readFieldNameUsage.js +162 -0
- package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +1 -0
- package/bin/keycloakify/keycloakify.js +40 -15
- package/bin/keycloakify/keycloakify.js.map +1 -1
- package/bin/keycloakify/parsedPackageJson.d.ts +0 -7
- package/bin/keycloakify/parsedPackageJson.js +0 -1
- package/bin/keycloakify/parsedPackageJson.js.map +1 -1
- package/package.json +176 -1
- package/src/bin/getSrcDirPath.ts +0 -10
- package/src/bin/initialize-email-theme.ts +5 -3
- package/src/bin/keycloakify/BuildOptions.ts +1 -3
- package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +5 -11
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +3 -6
- package/src/bin/keycloakify/generateJavaStackFiles.ts +6 -4
- package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +0 -1
- package/src/bin/keycloakify/generateTheme/generateTheme.ts +17 -12
- package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +96 -0
- package/src/bin/keycloakify/keycloakify.ts +33 -20
- package/src/bin/keycloakify/parsedPackageJson.ts +0 -2
@@ -122,9 +122,10 @@ var jar_1 = __importDefault(require("../tools/jar"));
|
|
122
122
|
var assert_1 = require("tsafe/assert");
|
123
123
|
var getSrcDirPath_1 = require("../getSrcDirPath");
|
124
124
|
var getProjectRoot_1 = require("../tools/getProjectRoot");
|
125
|
+
var objectKeys_1 = require("tsafe/objectKeys");
|
125
126
|
function main() {
|
126
127
|
return __awaiter(this, void 0, void 0, function () {
|
127
|
-
var projectDirPath, buildOptions, logger,
|
128
|
+
var projectDirPath, buildOptions, logger, keycloakifyDirPath, themeSrcDirPath, _a, _b, themeName, e_1_1, jarFilePath, _c, containerKeycloakVersion;
|
128
129
|
var e_1, _d;
|
129
130
|
return __generator(this, function (_e) {
|
130
131
|
switch (_e.label) {
|
@@ -136,6 +137,8 @@ function main() {
|
|
136
137
|
});
|
137
138
|
logger = (0, logger_1.getLogger)({ "isSilent": buildOptions.isSilent });
|
138
139
|
logger.log("🔏 Building the keycloak theme...⌚");
|
140
|
+
keycloakifyDirPath = (0, getProjectRoot_1.getProjectRoot)();
|
141
|
+
themeSrcDirPath = (0, getSrcDirPath_1.getThemeSrcDirPath)({ projectDirPath: projectDirPath }).themeSrcDirPath;
|
139
142
|
_e.label = 1;
|
140
143
|
case 1:
|
141
144
|
_e.trys.push([1, 6, 7, 8]);
|
@@ -145,25 +148,19 @@ function main() {
|
|
145
148
|
if (!!_b.done) return [3 /*break*/, 5];
|
146
149
|
themeName = _b.value;
|
147
150
|
return [4 /*yield*/, (0, generateTheme_1.generateTheme)({
|
148
|
-
keycloakThemeBuildingDirPath: buildOptions.keycloakifyBuildDirPath,
|
149
|
-
|
150
|
-
|
151
|
-
if (emailThemeSrcDirPath === undefined || !fs.existsSync(emailThemeSrcDirPath)) {
|
152
|
-
return;
|
153
|
-
}
|
154
|
-
return emailThemeSrcDirPath;
|
155
|
-
})(),
|
151
|
+
"keycloakThemeBuildingDirPath": buildOptions.keycloakifyBuildDirPath,
|
152
|
+
themeSrcDirPath: themeSrcDirPath,
|
153
|
+
"keycloakifySrcDirPath": (0, path_1.join)(keycloakifyDirPath, "src"),
|
156
154
|
"reactAppBuildDirPath": buildOptions.reactAppBuildDirPath,
|
157
155
|
"buildOptions": __assign(__assign({}, buildOptions), { "themeName": themeName }),
|
158
156
|
"keycloakifyVersion": (function () {
|
159
|
-
var version = JSON.parse(fs.readFileSync((0, path_1.join)(
|
157
|
+
var version = JSON.parse(fs.readFileSync((0, path_1.join)(keycloakifyDirPath, "package.json")).toString("utf8"))["version"];
|
160
158
|
(0, assert_1.assert)(typeof version === "string");
|
161
159
|
return version;
|
162
160
|
})()
|
163
161
|
})];
|
164
162
|
case 3:
|
165
|
-
|
166
|
-
doBundlesEmailTemplate !== null && doBundlesEmailTemplate !== void 0 ? doBundlesEmailTemplate : (doBundlesEmailTemplate = doBundlesEmailTemplate_);
|
163
|
+
_e.sent();
|
167
164
|
_e.label = 4;
|
168
165
|
case 4:
|
169
166
|
_b = _a.next();
|
@@ -180,10 +177,38 @@ function main() {
|
|
180
177
|
finally { if (e_1) throw e_1.error; }
|
181
178
|
return [7 /*endfinally*/];
|
182
179
|
case 8:
|
183
|
-
(0, assert_1.assert)(doBundlesEmailTemplate !== undefined);
|
184
180
|
jarFilePath = (0, generateJavaStackFiles_1.generateJavaStackFiles)({
|
185
|
-
keycloakThemeBuildingDirPath: buildOptions.keycloakifyBuildDirPath,
|
186
|
-
|
181
|
+
"keycloakThemeBuildingDirPath": buildOptions.keycloakifyBuildDirPath,
|
182
|
+
"implementedThemeTypes": (function () {
|
183
|
+
var e_2, _a;
|
184
|
+
var implementedThemeTypes = {
|
185
|
+
"login": false,
|
186
|
+
"account": false,
|
187
|
+
"email": false
|
188
|
+
};
|
189
|
+
if (themeSrcDirPath === undefined) {
|
190
|
+
implementedThemeTypes["login"] = true;
|
191
|
+
implementedThemeTypes["account"] = true;
|
192
|
+
return implementedThemeTypes;
|
193
|
+
}
|
194
|
+
try {
|
195
|
+
for (var _b = __values((0, objectKeys_1.objectKeys)(implementedThemeTypes)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
196
|
+
var themeType = _c.value;
|
197
|
+
if (!fs.existsSync((0, path_1.join)(themeSrcDirPath, themeType))) {
|
198
|
+
continue;
|
199
|
+
}
|
200
|
+
implementedThemeTypes[themeType] = true;
|
201
|
+
}
|
202
|
+
}
|
203
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
204
|
+
finally {
|
205
|
+
try {
|
206
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
207
|
+
}
|
208
|
+
finally { if (e_2) throw e_2.error; }
|
209
|
+
}
|
210
|
+
return implementedThemeTypes;
|
211
|
+
})(),
|
187
212
|
buildOptions: buildOptions
|
188
213
|
}).jarFilePath;
|
189
214
|
_c = buildOptions.bundler;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keycloakify.js","sourceRoot":"","sources":["../../src/bin/keycloakify/keycloakify.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAgD;AAChD,mEAAkE;AAClE,6BAA4G;AAC5G,2DAA+C;AAC/C,iGAAgG;AAChG,qCAAyB;AACzB,+CAAkD;AAClD,0CAA4C;AAC5C,qDAA+B;AAC/B,uCAAsC;AAEtC,
|
1
|
+
{"version":3,"file":"keycloakify.js","sourceRoot":"","sources":["../../src/bin/keycloakify/keycloakify.ts"],"names":[],"mappings":"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"}
|
@@ -18,7 +18,6 @@ export type ParsedPackageJson = {
|
|
18
18
|
keycloakVersionDefaultAssets?: string;
|
19
19
|
reactAppBuildDirPath?: string;
|
20
20
|
keycloakifyBuildDirPath?: string;
|
21
|
-
customUserAttributes?: string[];
|
22
21
|
themeName?: string;
|
23
22
|
extraThemeNames?: string[];
|
24
23
|
};
|
@@ -39,7 +38,6 @@ export declare const zParsedPackageJson: z.ZodObject<{
|
|
39
38
|
keycloakVersionDefaultAssets: z.ZodOptional<z.ZodString>;
|
40
39
|
reactAppBuildDirPath: z.ZodOptional<z.ZodString>;
|
41
40
|
keycloakifyBuildDirPath: z.ZodOptional<z.ZodString>;
|
42
|
-
customUserAttributes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
43
41
|
themeName: z.ZodOptional<z.ZodString>;
|
44
42
|
extraThemeNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
45
43
|
}, "strip", z.ZodTypeAny, {
|
@@ -54,7 +52,6 @@ export declare const zParsedPackageJson: z.ZodObject<{
|
|
54
52
|
keycloakVersionDefaultAssets?: string | undefined;
|
55
53
|
reactAppBuildDirPath?: string | undefined;
|
56
54
|
keycloakifyBuildDirPath?: string | undefined;
|
57
|
-
customUserAttributes?: string[] | undefined;
|
58
55
|
themeName?: string | undefined;
|
59
56
|
extraThemeNames?: string[] | undefined;
|
60
57
|
}, {
|
@@ -69,7 +66,6 @@ export declare const zParsedPackageJson: z.ZodObject<{
|
|
69
66
|
keycloakVersionDefaultAssets?: string | undefined;
|
70
67
|
reactAppBuildDirPath?: string | undefined;
|
71
68
|
keycloakifyBuildDirPath?: string | undefined;
|
72
|
-
customUserAttributes?: string[] | undefined;
|
73
69
|
themeName?: string | undefined;
|
74
70
|
extraThemeNames?: string[] | undefined;
|
75
71
|
}>>;
|
@@ -89,7 +85,6 @@ export declare const zParsedPackageJson: z.ZodObject<{
|
|
89
85
|
keycloakVersionDefaultAssets?: string | undefined;
|
90
86
|
reactAppBuildDirPath?: string | undefined;
|
91
87
|
keycloakifyBuildDirPath?: string | undefined;
|
92
|
-
customUserAttributes?: string[] | undefined;
|
93
88
|
themeName?: string | undefined;
|
94
89
|
extraThemeNames?: string[] | undefined;
|
95
90
|
} | undefined;
|
@@ -109,7 +104,6 @@ export declare const zParsedPackageJson: z.ZodObject<{
|
|
109
104
|
keycloakVersionDefaultAssets?: string | undefined;
|
110
105
|
reactAppBuildDirPath?: string | undefined;
|
111
106
|
keycloakifyBuildDirPath?: string | undefined;
|
112
|
-
customUserAttributes?: string[] | undefined;
|
113
107
|
themeName?: string | undefined;
|
114
108
|
extraThemeNames?: string[] | undefined;
|
115
109
|
} | undefined;
|
@@ -132,7 +126,6 @@ export declare function getParsedPackageJson(params: {
|
|
132
126
|
keycloakVersionDefaultAssets?: string | undefined;
|
133
127
|
reactAppBuildDirPath?: string | undefined;
|
134
128
|
keycloakifyBuildDirPath?: string | undefined;
|
135
|
-
customUserAttributes?: string[] | undefined;
|
136
129
|
themeName?: string | undefined;
|
137
130
|
extraThemeNames?: string[] | undefined;
|
138
131
|
} | undefined;
|
@@ -46,7 +46,6 @@ exports.zParsedPackageJson = zod_1.z.object({
|
|
46
46
|
"keycloakVersionDefaultAssets": zod_1.z.string().optional(),
|
47
47
|
"reactAppBuildDirPath": zod_1.z.string().optional(),
|
48
48
|
"keycloakifyBuildDirPath": zod_1.z.string().optional(),
|
49
|
-
"customUserAttributes": zod_1.z.array(zod_1.z.string()).optional(),
|
50
49
|
"themeName": zod_1.z.string().optional(),
|
51
50
|
"extraThemeNames": zod_1.z.array(zod_1.z.string()).optional()
|
52
51
|
})
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parsedPackageJson.js","sourceRoot":"","sources":["../../src/bin/keycloakify/parsedPackageJson.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,+BAA+B;AAE/B,2BAAwB;AACxB,8CAA6C;AAEhC,QAAA,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;
|
1
|
+
{"version":3,"file":"parsedPackageJson.js","sourceRoot":"","sources":["../../src/bin/keycloakify/parsedPackageJson.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,+BAA+B;AAE/B,2BAAwB;AACxB,8CAA6C;AAEhC,QAAA,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;AAwBnD,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,aAAa,EAAE,OAAC;SACX,MAAM,CAAC;QACJ,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC5C,iBAAiB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACjD,mBAAmB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnD,sBAAsB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtD,0CAA0C,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAClE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,gBAAQ,CAAC,CAAC,QAAQ,EAAE;QACtC,8BAA8B,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrD,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7C,yBAAyB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,iBAAiB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACpD,CAAC;SACD,QAAQ,EAAE;CAClB,CAAC,CAAC;AAEH,IAAA,cAAM,GAA+E,CAAC;AAEtF,IAAI,iBAA+E,CAAC;AACpF,SAAgB,oBAAoB,CAAC,MAAkC;IAC3D,IAAA,cAAc,GAAK,MAAM,eAAX,CAAY;IAClC,IAAI,iBAAiB,EAAE;QACnB,OAAO,iBAAiB,CAAC;KAC5B;IACD,iBAAiB,GAAG,0BAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAA,mBAAQ,EAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrI,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AAPD,oDAOC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "keycloakify",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.13.1",
|
4
4
|
"description": "Create Keycloak themes using React",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -84,6 +84,7 @@
|
|
84
84
|
"src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts",
|
85
85
|
"src/bin/keycloakify/generateTheme/generateTheme.ts",
|
86
86
|
"src/bin/keycloakify/generateTheme/index.ts",
|
87
|
+
"src/bin/keycloakify/generateTheme/readFieldNameUsage.ts",
|
87
88
|
"src/bin/keycloakify/index.ts",
|
88
89
|
"src/bin/keycloakify/keycloakify.ts",
|
89
90
|
"src/bin/keycloakify/parsedPackageJson.ts",
|
@@ -364,6 +365,9 @@
|
|
364
365
|
"bin/keycloakify/generateTheme/index.d.ts",
|
365
366
|
"bin/keycloakify/generateTheme/index.js",
|
366
367
|
"bin/keycloakify/generateTheme/index.js.map",
|
368
|
+
"bin/keycloakify/generateTheme/readFieldNameUsage.d.ts",
|
369
|
+
"bin/keycloakify/generateTheme/readFieldNameUsage.js",
|
370
|
+
"bin/keycloakify/generateTheme/readFieldNameUsage.js.map",
|
367
371
|
"bin/keycloakify/index.d.ts",
|
368
372
|
"bin/keycloakify/index.js",
|
369
373
|
"bin/keycloakify/index.js.map",
|
@@ -655,6 +659,177 @@
|
|
655
659
|
"login/pages/shared/UserProfileFormFields.d.ts",
|
656
660
|
"login/pages/shared/UserProfileFormFields.js",
|
657
661
|
"login/pages/shared/UserProfileFormFields.js.map",
|
662
|
+
"src/account/Fallback.tsx",
|
663
|
+
"src/account/Template.tsx",
|
664
|
+
"src/account/TemplateProps.ts",
|
665
|
+
"src/account/i18n/baseMessages/ar.ts",
|
666
|
+
"src/account/i18n/baseMessages/ca.ts",
|
667
|
+
"src/account/i18n/baseMessages/cs.ts",
|
668
|
+
"src/account/i18n/baseMessages/da.ts",
|
669
|
+
"src/account/i18n/baseMessages/de.ts",
|
670
|
+
"src/account/i18n/baseMessages/en.ts",
|
671
|
+
"src/account/i18n/baseMessages/es.ts",
|
672
|
+
"src/account/i18n/baseMessages/fi.ts",
|
673
|
+
"src/account/i18n/baseMessages/fr.ts",
|
674
|
+
"src/account/i18n/baseMessages/hu.ts",
|
675
|
+
"src/account/i18n/baseMessages/index.ts",
|
676
|
+
"src/account/i18n/baseMessages/it.ts",
|
677
|
+
"src/account/i18n/baseMessages/ja.ts",
|
678
|
+
"src/account/i18n/baseMessages/lt.ts",
|
679
|
+
"src/account/i18n/baseMessages/lv.ts",
|
680
|
+
"src/account/i18n/baseMessages/nl.ts",
|
681
|
+
"src/account/i18n/baseMessages/no.ts",
|
682
|
+
"src/account/i18n/baseMessages/pl.ts",
|
683
|
+
"src/account/i18n/baseMessages/pt-BR.ts",
|
684
|
+
"src/account/i18n/baseMessages/ru.ts",
|
685
|
+
"src/account/i18n/baseMessages/sk.ts",
|
686
|
+
"src/account/i18n/baseMessages/sv.ts",
|
687
|
+
"src/account/i18n/baseMessages/tr.ts",
|
688
|
+
"src/account/i18n/baseMessages/zh-CN.ts",
|
689
|
+
"src/account/i18n/i18n.tsx",
|
690
|
+
"src/account/i18n/index.ts",
|
691
|
+
"src/account/index.ts",
|
692
|
+
"src/account/kcContext/KcContext.ts",
|
693
|
+
"src/account/kcContext/createGetKcContext.ts",
|
694
|
+
"src/account/kcContext/getKcContext.ts",
|
695
|
+
"src/account/kcContext/getKcContextFromWindow.ts",
|
696
|
+
"src/account/kcContext/index.ts",
|
697
|
+
"src/account/kcContext/kcContextMocks.ts",
|
698
|
+
"src/account/lib/useGetClassName.ts",
|
699
|
+
"src/account/pages/Account.tsx",
|
700
|
+
"src/account/pages/PageProps.ts",
|
701
|
+
"src/account/pages/Password.tsx",
|
702
|
+
"src/bin/copy-keycloak-resources-to-public.ts",
|
703
|
+
"src/bin/download-builtin-keycloak-theme.ts",
|
704
|
+
"src/bin/eject-keycloak-page.ts",
|
705
|
+
"src/bin/getSrcDirPath.ts",
|
706
|
+
"src/bin/initialize-email-theme.ts",
|
707
|
+
"src/bin/keycloakify/BuildOptions.ts",
|
708
|
+
"src/bin/keycloakify/ftlValuesGlobalName.ts",
|
709
|
+
"src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl",
|
710
|
+
"src/bin/keycloakify/generateFtl/generateFtl.ts",
|
711
|
+
"src/bin/keycloakify/generateFtl/index.ts",
|
712
|
+
"src/bin/keycloakify/generateFtl/pageId.ts",
|
713
|
+
"src/bin/keycloakify/generateJavaStackFiles.ts",
|
714
|
+
"src/bin/keycloakify/generateStartKeycloakTestingContainer.ts",
|
715
|
+
"src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts",
|
716
|
+
"src/bin/keycloakify/generateTheme/generateTheme.ts",
|
717
|
+
"src/bin/keycloakify/generateTheme/index.ts",
|
718
|
+
"src/bin/keycloakify/generateTheme/readFieldNameUsage.ts",
|
719
|
+
"src/bin/keycloakify/index.ts",
|
720
|
+
"src/bin/keycloakify/keycloakify.ts",
|
721
|
+
"src/bin/keycloakify/parsedPackageJson.ts",
|
722
|
+
"src/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.ts",
|
723
|
+
"src/bin/keycloakify/replacers/replaceImportsInCssCode.ts",
|
724
|
+
"src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts",
|
725
|
+
"src/bin/mockTestingResourcesPath.ts",
|
726
|
+
"src/bin/promptKeycloakVersion.ts",
|
727
|
+
"src/bin/tools/NpmModuleVersion.ts",
|
728
|
+
"src/bin/tools/crawl.ts",
|
729
|
+
"src/bin/tools/crc32.ts",
|
730
|
+
"src/bin/tools/deflate.ts",
|
731
|
+
"src/bin/tools/downloadAndUnzip.ts",
|
732
|
+
"src/bin/tools/getProjectRoot.ts",
|
733
|
+
"src/bin/tools/grant-exec-perms.ts",
|
734
|
+
"src/bin/tools/isInside.ts",
|
735
|
+
"src/bin/tools/jar.ts",
|
736
|
+
"src/bin/tools/kebabCaseToSnakeCase.ts",
|
737
|
+
"src/bin/tools/logger.ts",
|
738
|
+
"src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts",
|
739
|
+
"src/bin/tools/octokit-addons/listTags.ts",
|
740
|
+
"src/bin/tools/partitionPromiseSettledResults.ts",
|
741
|
+
"src/bin/tools/pathJoin.ts",
|
742
|
+
"src/bin/tools/tee.ts",
|
743
|
+
"src/bin/tools/transformCodebase.ts",
|
744
|
+
"src/bin/tools/trimIndent.ts",
|
745
|
+
"src/bin/tools/unzip.ts",
|
746
|
+
"src/bin/tools/walk.ts",
|
747
|
+
"src/bin/tsconfig.json",
|
748
|
+
"src/index.ts",
|
749
|
+
"src/lib/keycloakJsAdapter.ts",
|
750
|
+
"src/lib/useGetClassName.ts",
|
751
|
+
"src/lib/usePrepareTemplate.ts",
|
752
|
+
"src/login/Fallback.tsx",
|
753
|
+
"src/login/Template.tsx",
|
754
|
+
"src/login/TemplateProps.ts",
|
755
|
+
"src/login/i18n/baseMessages/ar.ts",
|
756
|
+
"src/login/i18n/baseMessages/ca.ts",
|
757
|
+
"src/login/i18n/baseMessages/cs.ts",
|
758
|
+
"src/login/i18n/baseMessages/da.ts",
|
759
|
+
"src/login/i18n/baseMessages/de.ts",
|
760
|
+
"src/login/i18n/baseMessages/en.ts",
|
761
|
+
"src/login/i18n/baseMessages/es.ts",
|
762
|
+
"src/login/i18n/baseMessages/fi.ts",
|
763
|
+
"src/login/i18n/baseMessages/fr.ts",
|
764
|
+
"src/login/i18n/baseMessages/hu.ts",
|
765
|
+
"src/login/i18n/baseMessages/index.ts",
|
766
|
+
"src/login/i18n/baseMessages/it.ts",
|
767
|
+
"src/login/i18n/baseMessages/ja.ts",
|
768
|
+
"src/login/i18n/baseMessages/lt.ts",
|
769
|
+
"src/login/i18n/baseMessages/lv.ts",
|
770
|
+
"src/login/i18n/baseMessages/nl.ts",
|
771
|
+
"src/login/i18n/baseMessages/no.ts",
|
772
|
+
"src/login/i18n/baseMessages/pl.ts",
|
773
|
+
"src/login/i18n/baseMessages/pt-BR.ts",
|
774
|
+
"src/login/i18n/baseMessages/ru.ts",
|
775
|
+
"src/login/i18n/baseMessages/sk.ts",
|
776
|
+
"src/login/i18n/baseMessages/sv.ts",
|
777
|
+
"src/login/i18n/baseMessages/tr.ts",
|
778
|
+
"src/login/i18n/baseMessages/zh-CN.ts",
|
779
|
+
"src/login/i18n/i18n.tsx",
|
780
|
+
"src/login/i18n/index.ts",
|
781
|
+
"src/login/index.ts",
|
782
|
+
"src/login/kcContext/KcContext.ts",
|
783
|
+
"src/login/kcContext/createGetKcContext.ts",
|
784
|
+
"src/login/kcContext/getKcContext.ts",
|
785
|
+
"src/login/kcContext/getKcContextFromWindow.ts",
|
786
|
+
"src/login/kcContext/index.ts",
|
787
|
+
"src/login/kcContext/kcContextMocks.ts",
|
788
|
+
"src/login/lib/useDownloadTerms.ts",
|
789
|
+
"src/login/lib/useFormValidation.tsx",
|
790
|
+
"src/login/lib/useGetClassName.ts",
|
791
|
+
"src/login/pages/Error.tsx",
|
792
|
+
"src/login/pages/IdpReviewUserProfile.tsx",
|
793
|
+
"src/login/pages/Info.tsx",
|
794
|
+
"src/login/pages/Login.tsx",
|
795
|
+
"src/login/pages/LoginConfigTotp.tsx",
|
796
|
+
"src/login/pages/LoginIdpLinkConfirm.tsx",
|
797
|
+
"src/login/pages/LoginIdpLinkEmail.tsx",
|
798
|
+
"src/login/pages/LoginOtp.tsx",
|
799
|
+
"src/login/pages/LoginPageExpired.tsx",
|
800
|
+
"src/login/pages/LoginPassword.tsx",
|
801
|
+
"src/login/pages/LoginResetPassword.tsx",
|
802
|
+
"src/login/pages/LoginUpdatePassword.tsx",
|
803
|
+
"src/login/pages/LoginUpdateProfile.tsx",
|
804
|
+
"src/login/pages/LoginUsername.tsx",
|
805
|
+
"src/login/pages/LoginVerifyEmail.tsx",
|
806
|
+
"src/login/pages/LogoutConfirm.tsx",
|
807
|
+
"src/login/pages/PageProps.ts",
|
808
|
+
"src/login/pages/Register.tsx",
|
809
|
+
"src/login/pages/RegisterUserProfile.tsx",
|
810
|
+
"src/login/pages/SamlPostForm.tsx",
|
811
|
+
"src/login/pages/SelectAuthenticator.tsx",
|
812
|
+
"src/login/pages/Terms.tsx",
|
813
|
+
"src/login/pages/UpdateEmail.tsx",
|
814
|
+
"src/login/pages/UpdateUserProfile.tsx",
|
815
|
+
"src/login/pages/WebauthnAuthenticate.tsx",
|
816
|
+
"src/login/pages/shared/UserProfileFormFields.tsx",
|
817
|
+
"src/tools/AndByDiscriminatingKey.ts",
|
818
|
+
"src/tools/Array.prototype.every.ts",
|
819
|
+
"src/tools/DeepPartial.ts",
|
820
|
+
"src/tools/HTMLElement.prototype.prepend.ts",
|
821
|
+
"src/tools/Markdown.ts",
|
822
|
+
"src/tools/assert.ts",
|
823
|
+
"src/tools/clsx.ts",
|
824
|
+
"src/tools/deepAssign.ts",
|
825
|
+
"src/tools/deepClone.ts",
|
826
|
+
"src/tools/emailRegExp.ts",
|
827
|
+
"src/tools/headInsert.ts",
|
828
|
+
"src/tools/memoize.ts",
|
829
|
+
"src/tools/pathBasename.ts",
|
830
|
+
"src/tools/useConst.ts",
|
831
|
+
"src/tools/useConstCallback.ts",
|
832
|
+
"src/tsconfig.json",
|
658
833
|
"tools/AndByDiscriminatingKey.d.ts",
|
659
834
|
"tools/AndByDiscriminatingKey.js",
|
660
835
|
"tools/AndByDiscriminatingKey.js.map",
|
package/src/bin/getSrcDirPath.ts
CHANGED
@@ -31,13 +31,3 @@ export function getThemeSrcDirPath(params: { projectDirPath: string }) {
|
|
31
31
|
|
32
32
|
return { themeSrcDirPath };
|
33
33
|
}
|
34
|
-
|
35
|
-
export function getEmailThemeSrcDirPath(params: { projectDirPath: string }) {
|
36
|
-
const { projectDirPath } = params;
|
37
|
-
|
38
|
-
const { themeSrcDirPath } = getThemeSrcDirPath({ projectDirPath });
|
39
|
-
|
40
|
-
const emailThemeSrcDirPath = themeSrcDirPath === undefined ? undefined : pathJoin(themeSrcDirPath, "email");
|
41
|
-
|
42
|
-
return { emailThemeSrcDirPath };
|
43
|
-
}
|
@@ -7,7 +7,7 @@ import { promptKeycloakVersion } from "./promptKeycloakVersion";
|
|
7
7
|
import { readBuildOptions } from "./keycloakify/BuildOptions";
|
8
8
|
import * as fs from "fs";
|
9
9
|
import { getLogger } from "./tools/logger";
|
10
|
-
import {
|
10
|
+
import { getThemeSrcDirPath } from "./getSrcDirPath";
|
11
11
|
|
12
12
|
export async function main() {
|
13
13
|
const { isSilent } = readBuildOptions({
|
@@ -17,16 +17,18 @@ export async function main() {
|
|
17
17
|
|
18
18
|
const logger = getLogger({ isSilent });
|
19
19
|
|
20
|
-
const {
|
20
|
+
const { themeSrcDirPath } = getThemeSrcDirPath({
|
21
21
|
"projectDirPath": process.cwd()
|
22
22
|
});
|
23
23
|
|
24
|
-
if (
|
24
|
+
if (themeSrcDirPath === undefined) {
|
25
25
|
logger.warn("Couldn't locate your theme source directory");
|
26
26
|
|
27
27
|
process.exit(-1);
|
28
28
|
}
|
29
29
|
|
30
|
+
const emailThemeSrcDirPath = pathJoin(themeSrcDirPath, "email");
|
31
|
+
|
30
32
|
if (fs.existsSync(emailThemeSrcDirPath)) {
|
31
33
|
logger.warn(`There is already a ${pathRelative(process.cwd(), emailThemeSrcDirPath)} directory in your project. Aborting.`);
|
32
34
|
|
@@ -28,7 +28,6 @@ export namespace BuildOptions {
|
|
28
28
|
reactAppBuildDirPath: string;
|
29
29
|
/** Directory that keycloakify outputs to. Defaults to {cwd}/build_keycloak */
|
30
30
|
keycloakifyBuildDirPath: string;
|
31
|
-
customUserAttributes: string[];
|
32
31
|
};
|
33
32
|
|
34
33
|
export type Standalone = Common & {
|
@@ -199,8 +198,7 @@ export function readBuildOptions(params: { projectDirPath: string; processArgv:
|
|
199
198
|
}
|
200
199
|
|
201
200
|
return keycloakifyBuildDirPath;
|
202
|
-
})()
|
203
|
-
"customUserAttributes": keycloakify.customUserAttributes ?? []
|
201
|
+
})()
|
204
202
|
};
|
205
203
|
})();
|
206
204
|
|
@@ -8,13 +8,7 @@
|
|
8
8
|
out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
|
9
9
|
|
10
10
|
out["messagesPerField"]= {
|
11
|
-
<#assign fieldNames = [
|
12
|
-
"global", "userLabel", "username", "email", "firstName", "lastName", "password", "password-confirm",
|
13
|
-
"totp", "totpSecret", "SAMLRequest", "SAMLResponse", "relayState", "device_user_code", "code",
|
14
|
-
"password-new", "rememberMe", "login", "authenticationExecution", "cancel-aia", "clientDataJSON",
|
15
|
-
"authenticatorData", "signature", "credentialId", "userHandle", "error", "authn_use_chk", "authenticationExecution",
|
16
|
-
"isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel"CUSTOM_USER_ATTRIBUTES_eKsIY4ZsZ4xeM
|
17
|
-
]>
|
11
|
+
<#assign fieldNames = [ FIELD_NAMES_eKsIY4ZsZ4xeM ]>
|
18
12
|
|
19
13
|
<#attempt>
|
20
14
|
<#if profile?? && profile.attributes?? && profile.attributes?is_enumerable>
|
@@ -123,7 +117,7 @@
|
|
123
117
|
}
|
124
118
|
</#list>
|
125
119
|
|
126
|
-
throw new Error(
|
120
|
+
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
127
121
|
},
|
128
122
|
"existsError": function (fieldName) {
|
129
123
|
|
@@ -206,7 +200,7 @@
|
|
206
200
|
}
|
207
201
|
</#list>
|
208
202
|
|
209
|
-
throw new Error(
|
203
|
+
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
210
204
|
|
211
205
|
},
|
212
206
|
"get": function (fieldName) {
|
@@ -307,7 +301,7 @@
|
|
307
301
|
}
|
308
302
|
</#list>
|
309
303
|
|
310
|
-
throw new Error(
|
304
|
+
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
311
305
|
|
312
306
|
},
|
313
307
|
"exists": function (fieldName) {
|
@@ -391,7 +385,7 @@
|
|
391
385
|
}
|
392
386
|
</#list>
|
393
387
|
|
394
|
-
throw new Error(
|
388
|
+
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
395
389
|
|
396
390
|
}
|
397
391
|
};
|
@@ -18,7 +18,6 @@ export type BuildOptionsLike = BuildOptionsLike.Standalone | BuildOptionsLike.Ex
|
|
18
18
|
export namespace BuildOptionsLike {
|
19
19
|
export type Common = {
|
20
20
|
themeName: string;
|
21
|
-
customUserAttributes: string[];
|
22
21
|
themeVersion: string;
|
23
22
|
};
|
24
23
|
|
@@ -57,8 +56,9 @@ export function generateFtlFilesCodeFactory(params: {
|
|
57
56
|
buildOptions: BuildOptionsLike;
|
58
57
|
keycloakifyVersion: string;
|
59
58
|
themeType: ThemeType;
|
59
|
+
fieldNames: string[];
|
60
60
|
}) {
|
61
|
-
const { cssGlobalsToDefine, indexHtmlCode, buildOptions, keycloakifyVersion, themeType } = params;
|
61
|
+
const { cssGlobalsToDefine, indexHtmlCode, buildOptions, keycloakifyVersion, themeType, fieldNames } = params;
|
62
62
|
|
63
63
|
const $ = cheerio.load(indexHtmlCode);
|
64
64
|
|
@@ -129,10 +129,7 @@ export function generateFtlFilesCodeFactory(params: {
|
|
129
129
|
.readFileSync(pathJoin(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
|
130
130
|
.toString("utf8")
|
131
131
|
.match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)![1]
|
132
|
-
.replace(
|
133
|
-
"CUSTOM_USER_ATTRIBUTES_eKsIY4ZsZ4xeM",
|
134
|
-
buildOptions.customUserAttributes.length === 0 ? "" : ", " + buildOptions.customUserAttributes.map(name => `"${name}"`).join(", ")
|
135
|
-
)
|
132
|
+
.replace("FIELD_NAMES_eKsIY4ZsZ4xeM", fieldNames.map(name => `"${name}"`).join(", "))
|
136
133
|
.replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion)
|
137
134
|
.replace("KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx", buildOptions.themeVersion)
|
138
135
|
.replace("KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr", themeType)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import * as fs from "fs";
|
2
2
|
import { join as pathJoin, dirname as pathDirname } from "path";
|
3
|
-
import { themeTypes } from "./generateFtl/generateFtl";
|
4
3
|
import { assert } from "tsafe/assert";
|
5
4
|
import { Reflect } from "tsafe/Reflect";
|
6
5
|
import type { BuildOptions } from "./BuildOptions";
|
6
|
+
import type { ThemeType } from "./generateFtl";
|
7
7
|
|
8
8
|
export type BuildOptionsLike = {
|
9
9
|
themeName: string;
|
@@ -21,7 +21,7 @@ export type BuildOptionsLike = {
|
|
21
21
|
|
22
22
|
export function generateJavaStackFiles(params: {
|
23
23
|
keycloakThemeBuildingDirPath: string;
|
24
|
-
|
24
|
+
implementedThemeTypes: Record<ThemeType | "email", boolean>;
|
25
25
|
buildOptions: BuildOptionsLike;
|
26
26
|
}): {
|
27
27
|
jarFilePath: string;
|
@@ -29,7 +29,7 @@ export function generateJavaStackFiles(params: {
|
|
29
29
|
const {
|
30
30
|
buildOptions: { groupId, themeName, extraThemeNames, themeVersion, artifactId },
|
31
31
|
keycloakThemeBuildingDirPath,
|
32
|
-
|
32
|
+
implementedThemeTypes
|
33
33
|
} = params;
|
34
34
|
|
35
35
|
{
|
@@ -70,7 +70,9 @@ export function generateJavaStackFiles(params: {
|
|
70
70
|
{
|
71
71
|
"themes": [themeName, ...extraThemeNames].map(themeName => ({
|
72
72
|
"name": themeName,
|
73
|
-
"types":
|
73
|
+
"types": Object.entries(implementedThemeTypes)
|
74
|
+
.filter(([, isImplemented]) => isImplemented)
|
75
|
+
.map(([themeType]) => themeType)
|
74
76
|
}))
|
75
77
|
},
|
76
78
|
null,
|