keycloakify 7.2.1 → 7.2.2
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/eject-keycloak-page.js +7 -2
- package/bin/eject-keycloak-page.js.map +1 -1
- package/bin/getThemeSrcDirPath.d.ts +5 -0
- package/bin/getThemeSrcDirPath.js +53 -0
- package/bin/getThemeSrcDirPath.js.map +1 -0
- package/bin/initialize-email-theme.js +3 -25
- package/bin/initialize-email-theme.js.map +1 -1
- package/package.json +5 -1
- package/src/bin/eject-keycloak-page.ts +8 -1
- package/src/bin/getThemeSrcDirPath.ts +33 -0
- package/src/bin/initialize-email-theme.ts +2 -32
@@ -74,8 +74,9 @@ var fs_1 = require("fs");
|
|
74
74
|
var path_1 = require("path");
|
75
75
|
var kebabCaseToSnakeCase_1 = require("./tools/kebabCaseToSnakeCase");
|
76
76
|
var assert_1 = require("tsafe/assert");
|
77
|
+
var getThemeSrcDirPath_1 = require("./getThemeSrcDirPath");
|
77
78
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
78
|
-
var projectRootDir, themeType, pageId, pageBasename, targetFilePath, _a, _b;
|
79
|
+
var projectRootDir, themeType, pageId, pageBasename, themeSrcDirPath, targetFilePath, _a, _b;
|
79
80
|
return __generator(this, function (_c) {
|
80
81
|
switch (_c.label) {
|
81
82
|
case 0:
|
@@ -107,7 +108,11 @@ var assert_1 = require("tsafe/assert");
|
|
107
108
|
case 2:
|
108
109
|
pageId = (_c.sent()).value;
|
109
110
|
pageBasename = (0, capitalize_1.capitalize)((0, kebabCaseToSnakeCase_1.kebabCaseToCamelCase)(pageId)).replace(/ftl$/, "tsx");
|
110
|
-
|
111
|
+
themeSrcDirPath = (0, getThemeSrcDirPath_1.getThemeSrcDirPath)().themeSrcDirPath;
|
112
|
+
if (themeSrcDirPath === undefined) {
|
113
|
+
throw new Error("Couldn't locate your theme sources");
|
114
|
+
}
|
115
|
+
targetFilePath = (0, path_1.join)(themeSrcDirPath, themeType, "pages", pageBasename);
|
111
116
|
if ((0, fs_1.existsSync)(targetFilePath)) {
|
112
117
|
console.log("".concat(pageId, " is already ejected, ").concat((0, path_1.relative)(process.cwd(), targetFilePath), " already exists"));
|
113
118
|
process.exit(-1);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eject-keycloak-page.js","sourceRoot":"","sources":["../src/bin/eject-keycloak-page.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yDAAwD;AACxD,0DAAmC;AACnC,qEAO+C;AAC/C,+CAA8C;AAC9C,wCAAkD;AAClD,yBAAgC;AAChC,6BAAkE;AAClE,qEAAoE;AACpE,uCAA8C;
|
1
|
+
{"version":3,"file":"eject-keycloak-page.js","sourceRoot":"","sources":["../src/bin/eject-keycloak-page.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yDAAwD;AACxD,0DAAmC;AACnC,qEAO+C;AAC/C,+CAA8C;AAC9C,wCAAkD;AAClD,yBAAgC;AAChC,6BAAkE;AAClE,qEAAoE;AACpE,uCAA8C;AAC9C,2DAA0D;AAE1D,CAAC;;;;;gBACS,cAAc,GAAG,IAAA,+BAAc,GAAE,CAAC;gBAExC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBAEN,qBAAM,IAAA,oBAAS,EAAY;wBACpD,QAAQ,2BAAM,wBAAU,SAAC;qBAC5B,CAAC,CAAC,KAAK,CAAC;wBACL,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBAExB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC,CAAC,EAAA;;gBANa,SAAS,GAAK,CAAA,SAM3B,CAAA,MANsB;gBAQxB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBAE3B,qBAAM,IAAA,oBAAS,EAAwC;wBAC7E,QAAQ,EAAE,CAAC;4BACP,QAAQ,SAAS,EAAE;gCACf,KAAK,OAAO;oCACR,gCAAW,+BAAiB,UAAE;gCAClC,KAAK,SAAS;oCACV,gCAAW,iCAAmB,UAAE;6BACvC;4BACD,IAAA,eAAM,EAAkC,KAAK,CAAC,CAAC;wBACnD,CAAC,CAAC,EAAE;qBACP,CAAC,CAAC,KAAK,CAAC;wBACL,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBAExB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC,CAAC,EAAA;;gBAda,MAAM,GAAK,CAAA,SAcxB,CAAA,MAdmB;gBAgBf,YAAY,GAAG,IAAA,uBAAU,EAAC,IAAA,2CAAoB,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAE7E,eAAe,GAAK,IAAA,uCAAkB,GAAE,gBAAzB,CAA0B;gBAEjD,IAAI,eAAe,KAAK,SAAS,EAAE;oBAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;iBACzD;gBAEK,cAAc,GAAG,IAAA,WAAQ,EAAC,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBAEnF,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE;oBAC5B,OAAO,CAAC,GAAG,CAAC,UAAG,MAAM,kCAAwB,IAAA,eAAY,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,oBAAiB,CAAC,CAAC;oBAE3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpB;gBAED,KAAA,oBAAS,CAAA;sBAAC,cAAc;gBAAE,qBAAM,IAAA,mBAAQ,EAAC,IAAA,WAAQ,EAAC,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAA;;gBAA3G,4BAA0B,SAAiF,GAAC,CAAC;gBAE7G,OAAO,CAAC,GAAG,CAAC,UAAG,IAAA,eAAY,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,aAAU,CAAC,CAAC;;;;KACzE,CAAC,EAAE,CAAC"}
|
@@ -0,0 +1,53 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.getThemeSrcDirPath = void 0;
|
27
|
+
var path_1 = require("path");
|
28
|
+
var fs = __importStar(require("fs"));
|
29
|
+
var crawl_1 = require("./tools/crawl");
|
30
|
+
var exclude_1 = require("tsafe/exclude");
|
31
|
+
var reactProjectDirPath = process.cwd();
|
32
|
+
var themeSrcDirBasename = "keycloak-theme";
|
33
|
+
function getThemeSrcDirPath() {
|
34
|
+
var srcDirPath = (0, path_1.join)(reactProjectDirPath, "src");
|
35
|
+
var themeSrcDirPath = (0, crawl_1.crawl)(srcDirPath)
|
36
|
+
.map(function (fileRelativePath) {
|
37
|
+
var split = fileRelativePath.split(themeSrcDirBasename);
|
38
|
+
if (split.length !== 2) {
|
39
|
+
return undefined;
|
40
|
+
}
|
41
|
+
return (0, path_1.join)(srcDirPath, split[0] + themeSrcDirBasename);
|
42
|
+
})
|
43
|
+
.filter((0, exclude_1.exclude)(undefined))[0];
|
44
|
+
if (themeSrcDirBasename === undefined) {
|
45
|
+
if (fs.existsSync((0, path_1.join)(srcDirPath, "login")) || fs.existsSync((0, path_1.join)(srcDirPath, "account"))) {
|
46
|
+
return { "themeSrcDirPath": srcDirPath };
|
47
|
+
}
|
48
|
+
return { "themeSrcDirPath": undefined };
|
49
|
+
}
|
50
|
+
return { themeSrcDirPath: themeSrcDirPath };
|
51
|
+
}
|
52
|
+
exports.getThemeSrcDirPath = getThemeSrcDirPath;
|
53
|
+
//# sourceMappingURL=getThemeSrcDirPath.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getThemeSrcDirPath.js","sourceRoot":"","sources":["../src/bin/getThemeSrcDirPath.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAAwC;AACxC,qCAAyB;AACzB,uCAAsC;AACtC,yCAAwC;AAExC,IAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE1C,IAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAE7C,SAAgB,kBAAkB;IAC9B,IAAM,UAAU,GAAG,IAAA,WAAQ,EAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAExD,IAAM,eAAe,GAAuB,IAAA,aAAK,EAAC,UAAU,CAAC;SACxD,GAAG,CAAC,UAAA,gBAAgB;QACjB,IAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAA,WAAQ,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAChE,CAAC,CAAC;SACD,MAAM,CAAC,IAAA,iBAAO,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,mBAAmB,KAAK,SAAS,EAAE;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAA,WAAQ,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAA,WAAQ,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;YAChG,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;SAC5C;QACD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;KAC3C;IAED,OAAO,EAAE,eAAe,iBAAA,EAAE,CAAC;AAC/B,CAAC;AAvBD,gDAuBC"}
|
@@ -68,31 +68,9 @@ var promptKeycloakVersion_1 = require("./promptKeycloakVersion");
|
|
68
68
|
var fs = __importStar(require("fs"));
|
69
69
|
var cliOptions_1 = require("./tools/cliOptions");
|
70
70
|
var logger_1 = require("./tools/logger");
|
71
|
-
var
|
72
|
-
var exclude_1 = require("tsafe/exclude");
|
73
|
-
var reactProjectDirPath = process.cwd();
|
74
|
-
var themeSrcDirBasename = "keycloak-theme";
|
75
|
-
function getThemeSrcDirPath() {
|
76
|
-
var srcDirPath = (0, path_1.join)(reactProjectDirPath, "src");
|
77
|
-
var themeSrcDirPath = (0, crawl_1.crawl)(srcDirPath)
|
78
|
-
.map(function (fileRelativePath) {
|
79
|
-
var split = fileRelativePath.split(themeSrcDirBasename);
|
80
|
-
if (split.length !== 2) {
|
81
|
-
return undefined;
|
82
|
-
}
|
83
|
-
return (0, path_1.join)(srcDirPath, split[0] + themeSrcDirBasename);
|
84
|
-
})
|
85
|
-
.filter((0, exclude_1.exclude)(undefined))[0];
|
86
|
-
if (themeSrcDirBasename === undefined) {
|
87
|
-
if (fs.existsSync((0, path_1.join)(srcDirPath, "login")) || fs.existsSync((0, path_1.join)(srcDirPath, "account"))) {
|
88
|
-
return { "themeSrcDirPath": srcDirPath };
|
89
|
-
}
|
90
|
-
return { "themeSrcDirPath": undefined };
|
91
|
-
}
|
92
|
-
return { themeSrcDirPath: themeSrcDirPath };
|
93
|
-
}
|
71
|
+
var getThemeSrcDirPath_1 = require("./getThemeSrcDirPath");
|
94
72
|
function getEmailThemeSrcDirPath() {
|
95
|
-
var themeSrcDirPath = getThemeSrcDirPath().themeSrcDirPath;
|
73
|
+
var themeSrcDirPath = (0, getThemeSrcDirPath_1.getThemeSrcDirPath)().themeSrcDirPath;
|
96
74
|
var emailThemeSrcDirPath = themeSrcDirPath === undefined ? undefined : (0, path_1.join)(themeSrcDirPath, "email");
|
97
75
|
return { emailThemeSrcDirPath: emailThemeSrcDirPath };
|
98
76
|
}
|
@@ -107,7 +85,7 @@ function main() {
|
|
107
85
|
logger = (0, logger_1.getLogger)({ isSilent: isSilent });
|
108
86
|
emailThemeSrcDirPath = getEmailThemeSrcDirPath().emailThemeSrcDirPath;
|
109
87
|
if (emailThemeSrcDirPath === undefined) {
|
110
|
-
logger.warn("Couldn't locate
|
88
|
+
logger.warn("Couldn't locate your theme source directory");
|
111
89
|
process.exit(-1);
|
112
90
|
}
|
113
91
|
if (fs.existsSync(emailThemeSrcDirPath)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"initialize-email-theme.js","sourceRoot":"","sources":["../src/bin/initialize-email-theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qFAAiF;AACjF,6BAAkE;AAClE,+DAA8D;AAC9D,iEAAgE;AAChE,qCAAyB;AACzB,iDAAmD;AACnD,yCAA2C;AAC3C,
|
1
|
+
{"version":3,"file":"initialize-email-theme.js","sourceRoot":"","sources":["../src/bin/initialize-email-theme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qFAAiF;AACjF,6BAAkE;AAClE,+DAA8D;AAC9D,iEAAgE;AAChE,qCAAyB;AACzB,iDAAmD;AACnD,yCAA2C;AAC3C,2DAA0D;AAE1D,SAAgB,uBAAuB;IAC3B,IAAA,eAAe,GAAK,IAAA,uCAAkB,GAAE,gBAAzB,CAA0B;IAEjD,IAAM,oBAAoB,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,WAAQ,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAE5G,OAAO,EAAE,oBAAoB,sBAAA,EAAE,CAAC;AACpC,CAAC;AAND,0DAMC;AAED,SAAe,IAAI;;;;;;oBACP,QAAQ,GAAK,IAAA,0BAAa,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAzC,CAA0C;oBACpD,MAAM,GAAG,IAAA,kBAAS,EAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;oBAE/B,oBAAoB,GAAK,uBAAuB,EAAE,qBAA9B,CAA+B;oBAE3D,IAAI,oBAAoB,KAAK,SAAS,EAAE;wBACpC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;wBAE3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpB;oBAED,IAAI,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;wBACrC,MAAM,CAAC,IAAI,CAAC,6BAAsB,IAAA,eAAY,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,0CAAuC,CAAC,CAAC;wBAE5H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpB;oBAE2B,qBAAM,IAAA,6CAAqB,GAAE,EAAA;;oBAAjD,eAAe,GAAK,CAAA,SAA6B,CAAA,gBAAlC;oBAEjB,8BAA8B,GAAG,IAAA,WAAQ,EAAC,oBAAoB,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;oBAEhH,qBAAM,IAAA,8DAA4B,EAAC;4BAC/B,eAAe,iBAAA;4BACf,aAAa,EAAE,8BAA8B;4BAC7C,QAAQ,UAAA;yBACX,CAAC,EAAA;;oBAJF,SAIE,CAAC;oBAEH,IAAA,qCAAiB,EAAC;wBACd,YAAY,EAAE,IAAA,WAAQ,EAAC,8BAA8B,EAAE,MAAM,EAAE,OAAO,CAAC;wBACvE,aAAa,EAAE,oBAAoB;qBACtC,CAAC,CAAC;oBAEH;wBACU,qBAAqB,GAAG,IAAA,WAAQ,EAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;wBAEjF,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAgB,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAC;qBAC3I;oBAED,MAAM,CAAC,GAAG,CAAC,UAAG,IAAA,eAAY,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,iFAA8E,CAAC,CAAC;oBAE/I,EAAE,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;CACnF;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IACzB,IAAI,EAAE,CAAC;CACV"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "keycloakify",
|
3
|
-
"version": "7.2.
|
3
|
+
"version": "7.2.2",
|
4
4
|
"description": "Create Keycloak themes using React",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -68,6 +68,7 @@
|
|
68
68
|
"src/account/pages/Password.tsx",
|
69
69
|
"src/bin/download-builtin-keycloak-theme.ts",
|
70
70
|
"src/bin/eject-keycloak-page.ts",
|
71
|
+
"src/bin/getThemeSrcDirPath.ts",
|
71
72
|
"src/bin/initialize-email-theme.ts",
|
72
73
|
"src/bin/keycloakify/BuildOptions.ts",
|
73
74
|
"src/bin/keycloakify/ftlValuesGlobalName.ts",
|
@@ -308,6 +309,9 @@
|
|
308
309
|
"bin/eject-keycloak-page.d.ts",
|
309
310
|
"bin/eject-keycloak-page.js",
|
310
311
|
"bin/eject-keycloak-page.js.map",
|
312
|
+
"bin/getThemeSrcDirPath.d.ts",
|
313
|
+
"bin/getThemeSrcDirPath.js",
|
314
|
+
"bin/getThemeSrcDirPath.js.map",
|
311
315
|
"bin/initialize-email-theme.d.ts",
|
312
316
|
"bin/initialize-email-theme.js",
|
313
317
|
"bin/initialize-email-theme.js.map",
|
@@ -16,6 +16,7 @@ import { existsSync } from "fs";
|
|
16
16
|
import { join as pathJoin, relative as pathRelative } from "path";
|
17
17
|
import { kebabCaseToCamelCase } from "./tools/kebabCaseToSnakeCase";
|
18
18
|
import { assert, Equals } from "tsafe/assert";
|
19
|
+
import { getThemeSrcDirPath } from "./getThemeSrcDirPath";
|
19
20
|
|
20
21
|
(async () => {
|
21
22
|
const projectRootDir = getProjectRoot();
|
@@ -50,7 +51,13 @@ import { assert, Equals } from "tsafe/assert";
|
|
50
51
|
|
51
52
|
const pageBasename = capitalize(kebabCaseToCamelCase(pageId)).replace(/ftl$/, "tsx");
|
52
53
|
|
53
|
-
const
|
54
|
+
const { themeSrcDirPath } = getThemeSrcDirPath();
|
55
|
+
|
56
|
+
if (themeSrcDirPath === undefined) {
|
57
|
+
throw new Error("Couldn't locate your theme sources");
|
58
|
+
}
|
59
|
+
|
60
|
+
const targetFilePath = pathJoin(themeSrcDirPath, themeType, "pages", pageBasename);
|
54
61
|
|
55
62
|
if (existsSync(targetFilePath)) {
|
56
63
|
console.log(`${pageId} is already ejected, ${pathRelative(process.cwd(), targetFilePath)} already exists`);
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { join as pathJoin } from "path";
|
2
|
+
import * as fs from "fs";
|
3
|
+
import { crawl } from "./tools/crawl";
|
4
|
+
import { exclude } from "tsafe/exclude";
|
5
|
+
|
6
|
+
const reactProjectDirPath = process.cwd();
|
7
|
+
|
8
|
+
const themeSrcDirBasename = "keycloak-theme";
|
9
|
+
|
10
|
+
export function getThemeSrcDirPath() {
|
11
|
+
const srcDirPath = pathJoin(reactProjectDirPath, "src");
|
12
|
+
|
13
|
+
const themeSrcDirPath: string | undefined = crawl(srcDirPath)
|
14
|
+
.map(fileRelativePath => {
|
15
|
+
const split = fileRelativePath.split(themeSrcDirBasename);
|
16
|
+
|
17
|
+
if (split.length !== 2) {
|
18
|
+
return undefined;
|
19
|
+
}
|
20
|
+
|
21
|
+
return pathJoin(srcDirPath, split[0] + themeSrcDirBasename);
|
22
|
+
})
|
23
|
+
.filter(exclude(undefined))[0];
|
24
|
+
|
25
|
+
if (themeSrcDirBasename === undefined) {
|
26
|
+
if (fs.existsSync(pathJoin(srcDirPath, "login")) || fs.existsSync(pathJoin(srcDirPath, "account"))) {
|
27
|
+
return { "themeSrcDirPath": srcDirPath };
|
28
|
+
}
|
29
|
+
return { "themeSrcDirPath": undefined };
|
30
|
+
}
|
31
|
+
|
32
|
+
return { themeSrcDirPath };
|
33
|
+
}
|
@@ -7,37 +7,7 @@ import { promptKeycloakVersion } from "./promptKeycloakVersion";
|
|
7
7
|
import * as fs from "fs";
|
8
8
|
import { getCliOptions } from "./tools/cliOptions";
|
9
9
|
import { getLogger } from "./tools/logger";
|
10
|
-
import {
|
11
|
-
import { exclude } from "tsafe/exclude";
|
12
|
-
|
13
|
-
const reactProjectDirPath = process.cwd();
|
14
|
-
|
15
|
-
const themeSrcDirBasename = "keycloak-theme";
|
16
|
-
|
17
|
-
function getThemeSrcDirPath() {
|
18
|
-
const srcDirPath = pathJoin(reactProjectDirPath, "src");
|
19
|
-
|
20
|
-
const themeSrcDirPath: string | undefined = crawl(srcDirPath)
|
21
|
-
.map(fileRelativePath => {
|
22
|
-
const split = fileRelativePath.split(themeSrcDirBasename);
|
23
|
-
|
24
|
-
if (split.length !== 2) {
|
25
|
-
return undefined;
|
26
|
-
}
|
27
|
-
|
28
|
-
return pathJoin(srcDirPath, split[0] + themeSrcDirBasename);
|
29
|
-
})
|
30
|
-
.filter(exclude(undefined))[0];
|
31
|
-
|
32
|
-
if (themeSrcDirBasename === undefined) {
|
33
|
-
if (fs.existsSync(pathJoin(srcDirPath, "login")) || fs.existsSync(pathJoin(srcDirPath, "account"))) {
|
34
|
-
return { "themeSrcDirPath": srcDirPath };
|
35
|
-
}
|
36
|
-
return { "themeSrcDirPath": undefined };
|
37
|
-
}
|
38
|
-
|
39
|
-
return { themeSrcDirPath };
|
40
|
-
}
|
10
|
+
import { getThemeSrcDirPath } from "./getThemeSrcDirPath";
|
41
11
|
|
42
12
|
export function getEmailThemeSrcDirPath() {
|
43
13
|
const { themeSrcDirPath } = getThemeSrcDirPath();
|
@@ -54,7 +24,7 @@ async function main() {
|
|
54
24
|
const { emailThemeSrcDirPath } = getEmailThemeSrcDirPath();
|
55
25
|
|
56
26
|
if (emailThemeSrcDirPath === undefined) {
|
57
|
-
logger.warn(
|
27
|
+
logger.warn("Couldn't locate your theme source directory");
|
58
28
|
|
59
29
|
process.exit(-1);
|
60
30
|
}
|