keycloakify 7.3.3 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/keycloakify/BuildOptions.d.ts +2 -1
- package/bin/keycloakify/BuildOptions.js +11 -10
- package/bin/keycloakify/BuildOptions.js.map +1 -1
- package/bin/keycloakify/build-paths.js +3 -3
- package/bin/keycloakify/build-paths.js.map +1 -1
- package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +1 -2
- package/bin/keycloakify/generateFtl/generateFtl.d.ts +6 -3
- package/bin/keycloakify/generateFtl/generateFtl.js +3 -6
- package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
- package/bin/keycloakify/generateKeycloakThemeResources.d.ts +1 -0
- package/bin/keycloakify/generateKeycloakThemeResources.js +2 -6
- package/bin/keycloakify/generateKeycloakThemeResources.js.map +1 -1
- package/bin/keycloakify/{parsed-package-json.d.ts → parsedPackageJson.d.ts} +2 -0
- package/bin/keycloakify/{parsed-package-json.js → parsedPackageJson.js} +4 -2
- package/bin/keycloakify/parsedPackageJson.js.map +1 -0
- package/package.json +5 -5
- package/src/bin/keycloakify/BuildOptions.ts +10 -7
- package/src/bin/keycloakify/build-paths.ts +1 -1
- package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +1 -2
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +22 -17
- package/src/bin/keycloakify/generateKeycloakThemeResources.ts +3 -7
- package/src/bin/keycloakify/{parsed-package-json.ts → parsedPackageJson.ts} +5 -1
- package/bin/keycloakify/parsed-package-json.js.map +0 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import type
|
1
|
+
import { type Bundler } from "./parsedPackageJson";
|
2
2
|
/** Consolidated build option gathered form CLI arguments and config in package.json */
|
3
3
|
export type BuildOptions = BuildOptions.Standalone | BuildOptions.ExternalAssets;
|
4
4
|
export declare namespace BuildOptions {
|
@@ -15,6 +15,7 @@ export declare namespace BuildOptions {
|
|
15
15
|
keycloakVersionDefaultAssets: string;
|
16
16
|
appInputPath: string;
|
17
17
|
keycloakBuildPath: string;
|
18
|
+
customUserAttributes: string[];
|
18
19
|
};
|
19
20
|
type Standalone = Common & {
|
20
21
|
isStandalone: true;
|
@@ -42,12 +42,12 @@ var id_1 = require("tsafe/id");
|
|
42
42
|
var url_1 = require("url");
|
43
43
|
var typeGuard_1 = require("tsafe/typeGuard");
|
44
44
|
var symToStr_1 = require("tsafe/symToStr");
|
45
|
-
var
|
45
|
+
var parsedPackageJson_1 = require("./parsedPackageJson");
|
46
46
|
var build_paths_1 = require("./build-paths");
|
47
47
|
function readBuildOptions(params) {
|
48
48
|
var _a;
|
49
49
|
var CNAME = params.CNAME, isExternalAssetsCliParamProvided = params.isExternalAssetsCliParamProvided, isSilent = params.isSilent;
|
50
|
-
var parsedPackageJson = (0,
|
50
|
+
var parsedPackageJson = (0, parsedPackageJson_1.getParsedPackageJson)();
|
51
51
|
var url = (function () {
|
52
52
|
var homepage = parsedPackageJson.homepage;
|
53
53
|
var url = undefined;
|
@@ -69,10 +69,10 @@ function readBuildOptions(params) {
|
|
69
69
|
};
|
70
70
|
})();
|
71
71
|
var common = (function () {
|
72
|
-
var _a, _b, _c;
|
73
|
-
var name = parsedPackageJson.name,
|
74
|
-
var
|
75
|
-
var themeName = name
|
72
|
+
var _a, _b, _c, _d, _e;
|
73
|
+
var name = parsedPackageJson.name, _f = parsedPackageJson.keycloakify, keycloakify = _f === void 0 ? {} : _f, version = parsedPackageJson.version, homepage = parsedPackageJson.homepage;
|
74
|
+
var _g = keycloakify !== null && keycloakify !== void 0 ? keycloakify : {}, extraPages = _g.extraPages, extraLoginPages = _g.extraLoginPages, extraAccountPages = _g.extraAccountPages, extraThemeProperties = _g.extraThemeProperties, groupId = _g.groupId, artifactId = _g.artifactId, bundler = _g.bundler, keycloakVersionDefaultAssets = _g.keycloakVersionDefaultAssets;
|
75
|
+
var themeName = (_a = keycloakify.themeName) !== null && _a !== void 0 ? _a : name
|
76
76
|
.replace(/^@(.*)/, "$1")
|
77
77
|
.split("/")
|
78
78
|
.join("-");
|
@@ -81,10 +81,10 @@ function readBuildOptions(params) {
|
|
81
81
|
"bundler": (function () {
|
82
82
|
var _a;
|
83
83
|
var KEYCLOAKIFY_BUNDLER = process.env.KEYCLOAKIFY_BUNDLER;
|
84
|
-
(0, assert_1.assert)((0, typeGuard_1.typeGuard)(KEYCLOAKIFY_BUNDLER, __spreadArray([undefined], __read((0, id_1.id)(
|
84
|
+
(0, assert_1.assert)((0, typeGuard_1.typeGuard)(KEYCLOAKIFY_BUNDLER, __spreadArray([undefined], __read((0, id_1.id)(parsedPackageJson_1.bundlers)), false).includes(KEYCLOAKIFY_BUNDLER)), "".concat((0, symToStr_1.symToStr)({ KEYCLOAKIFY_BUNDLER: KEYCLOAKIFY_BUNDLER }), " should be one of ").concat(parsedPackageJson_1.bundlers.join(", ")));
|
85
85
|
return (_a = KEYCLOAKIFY_BUNDLER !== null && KEYCLOAKIFY_BUNDLER !== void 0 ? KEYCLOAKIFY_BUNDLER : bundler) !== null && _a !== void 0 ? _a : "keycloakify";
|
86
86
|
})(),
|
87
|
-
"artifactId": (
|
87
|
+
"artifactId": (_c = (_b = process.env.KEYCLOAKIFY_ARTIFACT_ID) !== null && _b !== void 0 ? _b : artifactId) !== null && _c !== void 0 ? _c : "".concat(themeName, "-keycloak-theme"),
|
88
88
|
"groupId": (function () {
|
89
89
|
var _a, _b, _c, _d, _e;
|
90
90
|
var fallbackGroupId = "".concat(themeName, ".keycloak");
|
@@ -93,14 +93,15 @@ function readBuildOptions(params) {
|
|
93
93
|
: (_e = (_d = (_c = (0, url_1.parse)(homepage)
|
94
94
|
.host) === null || _c === void 0 ? void 0 : _c.replace(/:[0-9]+$/, "")) === null || _d === void 0 ? void 0 : _d.split(".").reverse().join(".")) !== null && _e !== void 0 ? _e : fallbackGroupId) + ".keycloak");
|
95
95
|
})(),
|
96
|
-
"version": (
|
96
|
+
"version": (_d = process.env.KEYCLOAKIFY_VERSION) !== null && _d !== void 0 ? _d : version,
|
97
97
|
"extraLoginPages": __spreadArray(__spreadArray([], __read((extraPages !== null && extraPages !== void 0 ? extraPages : [])), false), __read((extraLoginPages !== null && extraLoginPages !== void 0 ? extraLoginPages : [])), false),
|
98
98
|
extraAccountPages: extraAccountPages,
|
99
99
|
extraThemeProperties: extraThemeProperties,
|
100
100
|
isSilent: isSilent,
|
101
101
|
"keycloakVersionDefaultAssets": keycloakVersionDefaultAssets !== null && keycloakVersionDefaultAssets !== void 0 ? keycloakVersionDefaultAssets : "11.0.3",
|
102
102
|
appInputPath: (0, build_paths_1.getAppInputPath)(),
|
103
|
-
keycloakBuildPath: (0, build_paths_1.getKeycloakBuildPath)()
|
103
|
+
keycloakBuildPath: (0, build_paths_1.getKeycloakBuildPath)(),
|
104
|
+
"customUserAttributes": (_e = keycloakify.customUserAttributes) !== null && _e !== void 0 ? _e : []
|
104
105
|
};
|
105
106
|
})();
|
106
107
|
if (isExternalAssetsCliParamProvided) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BuildOptions.js","sourceRoot":"","sources":["../../src/bin/keycloakify/BuildOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,+BAA8B;AAC9B,2BAAwC;AACxC,6CAA4C;AAC5C,2CAA0C;AAC1C,
|
1
|
+
{"version":3,"file":"BuildOptions.js","sourceRoot":"","sources":["../../src/bin/keycloakify/BuildOptions.ts"],"names":[],"mappings":"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"}
|
@@ -28,7 +28,7 @@ var fs = __importStar(require("fs"));
|
|
28
28
|
var tsafe_1 = require("tsafe");
|
29
29
|
var crawl_1 = require("../tools/crawl");
|
30
30
|
var pathJoin_1 = require("../tools/pathJoin");
|
31
|
-
var
|
31
|
+
var parsedPackageJson_1 = require("./parsedPackageJson");
|
32
32
|
var DEFAULT_APP_INPUT_PATH = "build";
|
33
33
|
var DEFAULT_KEYCLOAK_BUILD_PATH = "build_keycloak";
|
34
34
|
var THEME_SRC_DIR_BASENAME = "keycloak-theme";
|
@@ -56,12 +56,12 @@ var parseKeycloakBuildPath = function (path) {
|
|
56
56
|
};
|
57
57
|
var getAppInputPath = function () {
|
58
58
|
var _a;
|
59
|
-
return parseAppInputPath((_a = (0,
|
59
|
+
return parseAppInputPath((_a = (0, parsedPackageJson_1.getParsedPackageJson)().keycloakify) === null || _a === void 0 ? void 0 : _a.appInputPath);
|
60
60
|
};
|
61
61
|
exports.getAppInputPath = getAppInputPath;
|
62
62
|
var getKeycloakBuildPath = function () {
|
63
63
|
var _a;
|
64
|
-
return parseKeycloakBuildPath((_a = (0,
|
64
|
+
return parseKeycloakBuildPath((_a = (0, parsedPackageJson_1.getParsedPackageJson)().keycloakify) === null || _a === void 0 ? void 0 : _a.keycloakBuildPath);
|
65
65
|
};
|
66
66
|
exports.getKeycloakBuildPath = getKeycloakBuildPath;
|
67
67
|
var getThemeSrcDirPath = function () {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"build-paths.js","sourceRoot":"","sources":["../../src/bin/keycloakify/build-paths.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,+BAAgC;AAChC,wCAAuC;AACvC,8CAA6C;AAC7C,
|
1
|
+
{"version":3,"file":"build-paths.js","sourceRoot":"","sources":["../../src/bin/keycloakify/build-paths.ts"],"names":[],"mappings":"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"}
|
@@ -13,8 +13,7 @@
|
|
13
13
|
"totp", "totpSecret", "SAMLRequest", "SAMLResponse", "relayState", "device_user_code", "code",
|
14
14
|
"password-new", "rememberMe", "login", "authenticationExecution", "cancel-aia", "clientDataJSON",
|
15
15
|
"authenticatorData", "signature", "credentialId", "userHandle", "error", "authn_use_chk", "authenticationExecution",
|
16
|
-
"isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel"
|
17
|
-
"location", "occupation"
|
16
|
+
"isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel"CUSTOM_USER_ATTRIBUTES_eKsIY4ZsZ4xeM
|
18
17
|
]>
|
19
18
|
|
20
19
|
<#attempt>
|
@@ -6,7 +6,10 @@ export type LoginThemePageId = (typeof loginThemePageIds)[number];
|
|
6
6
|
export type AccountThemePageId = (typeof accountThemePageIds)[number];
|
7
7
|
export type BuildOptionsLike = BuildOptionsLike.Standalone | BuildOptionsLike.ExternalAssets;
|
8
8
|
export declare namespace BuildOptionsLike {
|
9
|
-
type
|
9
|
+
type Common = {
|
10
|
+
customUserAttributes: string[];
|
11
|
+
};
|
12
|
+
type Standalone = Common & {
|
10
13
|
isStandalone: true;
|
11
14
|
urlPathname: string | undefined;
|
12
15
|
};
|
@@ -15,10 +18,10 @@ export declare namespace BuildOptionsLike {
|
|
15
18
|
type CommonExternalAssets = {
|
16
19
|
isStandalone: false;
|
17
20
|
};
|
18
|
-
type SameDomain = CommonExternalAssets & {
|
21
|
+
type SameDomain = Common & CommonExternalAssets & {
|
19
22
|
areAppAndKeycloakServerSharingSameDomain: true;
|
20
23
|
};
|
21
|
-
type DifferentDomains = CommonExternalAssets & {
|
24
|
+
type DifferentDomains = Common & CommonExternalAssets & {
|
22
25
|
areAppAndKeycloakServerSharingSameDomain: false;
|
23
26
|
urlOrigin: string;
|
24
27
|
urlPathname: string | undefined;
|
@@ -63,7 +63,6 @@ var path_1 = require("path");
|
|
63
63
|
var objectKeys_1 = require("tsafe/objectKeys");
|
64
64
|
var ftlValuesGlobalName_1 = require("../ftlValuesGlobalName");
|
65
65
|
var assert_1 = require("tsafe/assert");
|
66
|
-
var Reflect_1 = require("tsafe/Reflect");
|
67
66
|
exports.themeTypes = ["login", "account"];
|
68
67
|
exports.loginThemePageIds = [
|
69
68
|
"login.ftl",
|
@@ -90,10 +89,7 @@ exports.loginThemePageIds = [
|
|
90
89
|
"update-email.ftl"
|
91
90
|
];
|
92
91
|
exports.accountThemePageIds = ["password.ftl", "account.ftl"];
|
93
|
-
|
94
|
-
var buildOptions = (0, Reflect_1.Reflect)();
|
95
|
-
(0, assert_1.assert)();
|
96
|
-
}
|
92
|
+
(0, assert_1.assert)();
|
97
93
|
function generateFtlFilesCodeFactory(params) {
|
98
94
|
var cssGlobalsToDefine = params.cssGlobalsToDefine, indexHtmlCode = params.indexHtmlCode, buildOptions = params.buildOptions;
|
99
95
|
var $ = cheerio_1.default.load(indexHtmlCode);
|
@@ -164,7 +160,8 @@ function generateFtlFilesCodeFactory(params) {
|
|
164
160
|
'{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }': fs
|
165
161
|
.readFileSync((0, path_1.join)(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
|
166
162
|
.toString("utf8")
|
167
|
-
.match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)[1]
|
163
|
+
.match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)[1]
|
164
|
+
.replace("CUSTOM_USER_ATTRIBUTES_eKsIY4ZsZ4xeM", buildOptions.customUserAttributes.length === 0 ? "" : ", " + buildOptions.customUserAttributes.map(function (name) { return "\"".concat(name, "\""); }).join(", ")),
|
168
165
|
"<!-- xIdLqMeOedErIdLsPdNdI9dSlxI -->": [
|
169
166
|
"<#if scripts??>",
|
170
167
|
" <#list scripts as script>",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generateFtl.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/generateFtl/generateFtl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA8B;AAC9B,kGAAiG;AACjG,gFAAsF;AACtF,4FAA2F;AAC3F,qCAAyB;AACzB,6BAAwC;AACxC,+CAA8C;AAC9C,8DAA6D;AAE7D,uCAAsC;
|
1
|
+
{"version":3,"file":"generateFtl.js","sourceRoot":"","sources":["../../../src/bin/keycloakify/generateFtl/generateFtl.ts"],"names":[],"mappings":"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"}
|
@@ -117,11 +117,7 @@ var download_builtin_keycloak_theme_1 = require("../download-builtin-keycloak-th
|
|
117
117
|
var mockTestingResourcesPath_1 = require("../mockTestingResourcesPath");
|
118
118
|
var isInside_1 = require("../tools/isInside");
|
119
119
|
var assert_1 = require("tsafe/assert");
|
120
|
-
|
121
|
-
{
|
122
|
-
var buildOptions = (0, Reflect_1.Reflect)();
|
123
|
-
(0, assert_1.assert)();
|
124
|
-
}
|
120
|
+
(0, assert_1.assert)();
|
125
121
|
function generateKeycloakThemeResources(params) {
|
126
122
|
var _a, _b;
|
127
123
|
return __awaiter(this, void 0, void 0, function () {
|
@@ -196,7 +192,7 @@ function generateKeycloakThemeResources(params) {
|
|
196
192
|
var generateFtlFilesCode = (0, generateFtl_1.generateFtlFilesCodeFactory)({
|
197
193
|
"indexHtmlCode": fs.readFileSync((0, path_1.join)(reactAppBuildDirPath, "index.html")).toString("utf8"),
|
198
194
|
"cssGlobalsToDefine": allCssGlobalsToDefine,
|
199
|
-
|
195
|
+
buildOptions: buildOptions
|
200
196
|
}).generateFtlFilesCode;
|
201
197
|
return generateFtlFilesCode;
|
202
198
|
})();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generateKeycloakThemeResources.js","sourceRoot":"","sources":["../../src/bin/keycloakify/generateKeycloakThemeResources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA+D;AAC/D,qCAAyB;AACzB,6BAAkE;AAClE,iGAAgG;AAChG,+EAA8E;AAC9E,6CAAgI;AAChI,sFAAkF;AAClF,wEAA6I;AAC7I,8CAA6C;AAE7C,uCAAsC;
|
1
|
+
{"version":3,"file":"generateKeycloakThemeResources.js","sourceRoot":"","sources":["../../src/bin/keycloakify/generateKeycloakThemeResources.ts"],"names":[],"mappings":"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"}
|
@@ -16,5 +16,7 @@ export declare const getParsedPackageJson: () => {
|
|
16
16
|
keycloakVersionDefaultAssets?: string | undefined;
|
17
17
|
appInputPath?: string | undefined;
|
18
18
|
keycloakBuildPath?: string | undefined;
|
19
|
+
customUserAttributes?: string[] | undefined;
|
20
|
+
themeName?: string | undefined;
|
19
21
|
} | undefined;
|
20
22
|
};
|
@@ -46,7 +46,9 @@ var zParsedPackageJson = zod_1.z.object({
|
|
46
46
|
"bundler": zod_1.z.enum(exports.bundlers).optional(),
|
47
47
|
"keycloakVersionDefaultAssets": zod_1.z.string().optional(),
|
48
48
|
"appInputPath": zod_1.z.string().optional(),
|
49
|
-
"keycloakBuildPath": zod_1.z.string().optional()
|
49
|
+
"keycloakBuildPath": zod_1.z.string().optional(),
|
50
|
+
"customUserAttributes": zod_1.z.array(zod_1.z.string()).optional(),
|
51
|
+
"themeName": zod_1.z.string().optional()
|
50
52
|
})
|
51
53
|
.optional()
|
52
54
|
});
|
@@ -59,4 +61,4 @@ var getParsedPackageJson = function () {
|
|
59
61
|
return parsedPackageJson;
|
60
62
|
};
|
61
63
|
exports.getParsedPackageJson = getParsedPackageJson;
|
62
|
-
//# sourceMappingURL=
|
64
|
+
//# sourceMappingURL=parsedPackageJson.js.map
|
@@ -0,0 +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;AAE7C,IAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAA,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;AAwBhE,IAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,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,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1C,sBAAsB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,QAAQ,EAAE;CAClB,CAAC,CAAC;AAEH,IAAA,cAAM,GAA+E,CAAC;AAEtF,IAAI,iBAA+E,CAAC;AAC7E,IAAM,oBAAoB,GAAG;IAChC,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAChD,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAA,mBAAQ,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1I,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "keycloakify",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.5.0",
|
4
4
|
"description": "Create Keycloak themes using React",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -80,7 +80,7 @@
|
|
80
80
|
"src/bin/keycloakify/generateStartKeycloakTestingContainer.ts",
|
81
81
|
"src/bin/keycloakify/index.ts",
|
82
82
|
"src/bin/keycloakify/keycloakify.ts",
|
83
|
-
"src/bin/keycloakify/
|
83
|
+
"src/bin/keycloakify/parsedPackageJson.ts",
|
84
84
|
"src/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.ts",
|
85
85
|
"src/bin/keycloakify/replacers/replaceImportsInCssCode.ts",
|
86
86
|
"src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts",
|
@@ -348,9 +348,9 @@
|
|
348
348
|
"bin/keycloakify/keycloakify.d.ts",
|
349
349
|
"bin/keycloakify/keycloakify.js",
|
350
350
|
"bin/keycloakify/keycloakify.js.map",
|
351
|
-
"bin/keycloakify/
|
352
|
-
"bin/keycloakify/
|
353
|
-
"bin/keycloakify/
|
351
|
+
"bin/keycloakify/parsedPackageJson.d.ts",
|
352
|
+
"bin/keycloakify/parsedPackageJson.js",
|
353
|
+
"bin/keycloakify/parsedPackageJson.js.map",
|
354
354
|
"bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.d.ts",
|
355
355
|
"bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.js",
|
356
356
|
"bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.js.map",
|
@@ -3,8 +3,7 @@ import { id } from "tsafe/id";
|
|
3
3
|
import { parse as urlParse } from "url";
|
4
4
|
import { typeGuard } from "tsafe/typeGuard";
|
5
5
|
import { symToStr } from "tsafe/symToStr";
|
6
|
-
import { bundlers, getParsedPackageJson } from "./
|
7
|
-
import type { Bundler } from "./parsed-package-json";
|
6
|
+
import { bundlers, getParsedPackageJson, type Bundler } from "./parsedPackageJson";
|
8
7
|
import { getAppInputPath, getKeycloakBuildPath } from "./build-paths";
|
9
8
|
|
10
9
|
/** Consolidated build option gathered form CLI arguments and config in package.json */
|
@@ -26,6 +25,7 @@ export namespace BuildOptions {
|
|
26
25
|
appInputPath: string;
|
27
26
|
// Directory that keycloakify outputs to. Defaults to {cwd}/build_keycloak
|
28
27
|
keycloakBuildPath: string;
|
28
|
+
customUserAttributes: string[];
|
29
29
|
};
|
30
30
|
|
31
31
|
export type Standalone = Common & {
|
@@ -90,10 +90,12 @@ export function readBuildOptions(params: { CNAME: string | undefined; isExternal
|
|
90
90
|
const { extraPages, extraLoginPages, extraAccountPages, extraThemeProperties, groupId, artifactId, bundler, keycloakVersionDefaultAssets } =
|
91
91
|
keycloakify ?? {};
|
92
92
|
|
93
|
-
const themeName =
|
94
|
-
.
|
95
|
-
|
96
|
-
|
93
|
+
const themeName =
|
94
|
+
keycloakify.themeName ??
|
95
|
+
name
|
96
|
+
.replace(/^@(.*)/, "$1")
|
97
|
+
.split("/")
|
98
|
+
.join("-");
|
97
99
|
|
98
100
|
return {
|
99
101
|
themeName,
|
@@ -133,7 +135,8 @@ export function readBuildOptions(params: { CNAME: string | undefined; isExternal
|
|
133
135
|
isSilent,
|
134
136
|
"keycloakVersionDefaultAssets": keycloakVersionDefaultAssets ?? "11.0.3",
|
135
137
|
appInputPath: getAppInputPath(),
|
136
|
-
keycloakBuildPath: getKeycloakBuildPath()
|
138
|
+
keycloakBuildPath: getKeycloakBuildPath(),
|
139
|
+
"customUserAttributes": keycloakify.customUserAttributes ?? []
|
137
140
|
};
|
138
141
|
})();
|
139
142
|
|
@@ -2,7 +2,7 @@ import * as fs from "fs";
|
|
2
2
|
import { exclude } from "tsafe";
|
3
3
|
import { crawl } from "../tools/crawl";
|
4
4
|
import { pathJoin } from "../tools/pathJoin";
|
5
|
-
import { getParsedPackageJson } from "./
|
5
|
+
import { getParsedPackageJson } from "./parsedPackageJson";
|
6
6
|
|
7
7
|
const DEFAULT_APP_INPUT_PATH = "build";
|
8
8
|
|
@@ -13,8 +13,7 @@
|
|
13
13
|
"totp", "totpSecret", "SAMLRequest", "SAMLResponse", "relayState", "device_user_code", "code",
|
14
14
|
"password-new", "rememberMe", "login", "authenticationExecution", "cancel-aia", "clientDataJSON",
|
15
15
|
"authenticatorData", "signature", "credentialId", "userHandle", "error", "authn_use_chk", "authenticationExecution",
|
16
|
-
"isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel"
|
17
|
-
"location", "occupation"
|
16
|
+
"isSetRetry", "try-again", "attestationObject", "publicKeyCredentialId", "authenticatorLabel"CUSTOM_USER_ATTRIBUTES_eKsIY4ZsZ4xeM
|
18
17
|
]>
|
19
18
|
|
20
19
|
<#attempt>
|
@@ -8,7 +8,6 @@ import { objectKeys } from "tsafe/objectKeys";
|
|
8
8
|
import { ftlValuesGlobalName } from "../ftlValuesGlobalName";
|
9
9
|
import type { BuildOptions } from "../BuildOptions";
|
10
10
|
import { assert } from "tsafe/assert";
|
11
|
-
import { Reflect } from "tsafe/Reflect";
|
12
11
|
|
13
12
|
export const themeTypes = ["login", "account"] as const;
|
14
13
|
|
@@ -47,7 +46,11 @@ export type AccountThemePageId = (typeof accountThemePageIds)[number];
|
|
47
46
|
export type BuildOptionsLike = BuildOptionsLike.Standalone | BuildOptionsLike.ExternalAssets;
|
48
47
|
|
49
48
|
export namespace BuildOptionsLike {
|
50
|
-
export type
|
49
|
+
export type Common = {
|
50
|
+
customUserAttributes: string[];
|
51
|
+
};
|
52
|
+
|
53
|
+
export type Standalone = Common & {
|
51
54
|
isStandalone: true;
|
52
55
|
urlPathname: string | undefined;
|
53
56
|
};
|
@@ -59,23 +62,21 @@ export namespace BuildOptionsLike {
|
|
59
62
|
isStandalone: false;
|
60
63
|
};
|
61
64
|
|
62
|
-
export type SameDomain =
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
65
|
+
export type SameDomain = Common &
|
66
|
+
CommonExternalAssets & {
|
67
|
+
areAppAndKeycloakServerSharingSameDomain: true;
|
68
|
+
};
|
69
|
+
|
70
|
+
export type DifferentDomains = Common &
|
71
|
+
CommonExternalAssets & {
|
72
|
+
areAppAndKeycloakServerSharingSameDomain: false;
|
73
|
+
urlOrigin: string;
|
74
|
+
urlPathname: string | undefined;
|
75
|
+
};
|
71
76
|
}
|
72
77
|
}
|
73
78
|
|
74
|
-
|
75
|
-
const buildOptions = Reflect<BuildOptions>();
|
76
|
-
|
77
|
-
assert<typeof buildOptions extends BuildOptionsLike ? true : false>();
|
78
|
-
}
|
79
|
+
assert<BuildOptions extends BuildOptionsLike ? true : false>();
|
79
80
|
|
80
81
|
export function generateFtlFilesCodeFactory(params: {
|
81
82
|
indexHtmlCode: string;
|
@@ -153,7 +154,11 @@ export function generateFtlFilesCodeFactory(params: {
|
|
153
154
|
'{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }': fs
|
154
155
|
.readFileSync(pathJoin(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))
|
155
156
|
.toString("utf8")
|
156
|
-
.match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)![1]
|
157
|
+
.match(/^<script>const _=((?:.|\n)+)<\/script>[\n]?$/)![1]
|
158
|
+
.replace(
|
159
|
+
"CUSTOM_USER_ATTRIBUTES_eKsIY4ZsZ4xeM",
|
160
|
+
buildOptions.customUserAttributes.length === 0 ? "" : ", " + buildOptions.customUserAttributes.map(name => `"${name}"`).join(", ")
|
161
|
+
),
|
157
162
|
"<!-- xIdLqMeOedErIdLsPdNdI9dSlxI -->": [
|
158
163
|
"<#if scripts??>",
|
159
164
|
" <#list scripts as script>",
|
@@ -9,7 +9,6 @@ import { mockTestingResourcesCommonPath, mockTestingResourcesPath, mockTestingSu
|
|
9
9
|
import { isInside } from "../tools/isInside";
|
10
10
|
import type { BuildOptions } from "./BuildOptions";
|
11
11
|
import { assert } from "tsafe/assert";
|
12
|
-
import { Reflect } from "tsafe/Reflect";
|
13
12
|
|
14
13
|
export type BuildOptionsLike = BuildOptionsLike.Standalone | BuildOptionsLike.ExternalAssets;
|
15
14
|
|
@@ -20,6 +19,7 @@ export namespace BuildOptionsLike {
|
|
20
19
|
extraAccountPages?: string[];
|
21
20
|
extraThemeProperties?: string[];
|
22
21
|
isSilent: boolean;
|
22
|
+
customUserAttributes: string[];
|
23
23
|
};
|
24
24
|
|
25
25
|
export type Standalone = Common & {
|
@@ -46,11 +46,7 @@ export namespace BuildOptionsLike {
|
|
46
46
|
}
|
47
47
|
}
|
48
48
|
|
49
|
-
|
50
|
-
const buildOptions = Reflect<BuildOptions>();
|
51
|
-
|
52
|
-
assert<typeof buildOptions extends BuildOptionsLike ? true : false>();
|
53
|
-
}
|
49
|
+
assert<BuildOptions extends BuildOptionsLike ? true : false>();
|
54
50
|
|
55
51
|
export async function generateKeycloakThemeResources(params: {
|
56
52
|
reactAppBuildDirPath: string;
|
@@ -142,7 +138,7 @@ export async function generateKeycloakThemeResources(params: {
|
|
142
138
|
const { generateFtlFilesCode } = generateFtlFilesCodeFactory({
|
143
139
|
"indexHtmlCode": fs.readFileSync(pathJoin(reactAppBuildDirPath, "index.html")).toString("utf8"),
|
144
140
|
"cssGlobalsToDefine": allCssGlobalsToDefine,
|
145
|
-
|
141
|
+
buildOptions
|
146
142
|
});
|
147
143
|
|
148
144
|
return generateFtlFilesCode;
|
@@ -24,6 +24,8 @@ type ParsedPackageJson = {
|
|
24
24
|
keycloakVersionDefaultAssets?: string;
|
25
25
|
appInputPath?: string;
|
26
26
|
keycloakBuildPath?: string;
|
27
|
+
customUserAttributes?: string[];
|
28
|
+
themeName?: string;
|
27
29
|
};
|
28
30
|
};
|
29
31
|
|
@@ -43,7 +45,9 @@ const zParsedPackageJson = z.object({
|
|
43
45
|
"bundler": z.enum(bundlers).optional(),
|
44
46
|
"keycloakVersionDefaultAssets": z.string().optional(),
|
45
47
|
"appInputPath": z.string().optional(),
|
46
|
-
"keycloakBuildPath": z.string().optional()
|
48
|
+
"keycloakBuildPath": z.string().optional(),
|
49
|
+
"customUserAttributes": z.array(z.string()).optional(),
|
50
|
+
"themeName": z.string().optional()
|
47
51
|
})
|
48
52
|
.optional()
|
49
53
|
});
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parsed-package-json.js","sourceRoot":"","sources":["../../src/bin/keycloakify/parsed-package-json.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,+BAA+B;AAE/B,2BAAwB;AACxB,8CAA6C;AAE7C,IAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7B,QAAA,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;AAsBhE,IAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,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,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7C,CAAC;SACD,QAAQ,EAAE;CAClB,CAAC,CAAC;AAEH,IAAA,cAAM,GAA+E,CAAC;AAEtF,IAAI,iBAA+E,CAAC;AAC7E,IAAM,oBAAoB,GAAG;IAChC,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAChD,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAA,mBAAQ,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1I,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B"}
|