keycloakify 7.2.0 → 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.
@@ -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
- targetFilePath = (0, path_1.join)(process.cwd(), "src", "keycloak-theme", themeType, "pages", pageBasename);
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;AAE9C,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;gBAE/E,cAAc,GAAG,IAAA,WAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBAE1G,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"}
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,5 @@
1
+ export declare function getThemeSrcDirPath(): {
2
+ themeSrcDirPath: string;
3
+ } | {
4
+ themeSrcDirPath: undefined;
5
+ };
@@ -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 crawl_1 = require("./tools/crawl");
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, "kcContext.ts"))) {
88
- return { "themeSrcDirPath": undefined };
89
- }
90
- return { "themeSrcDirPath": srcDirPath };
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 you ".concat(themeSrcDirBasename, " directory"));
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":"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"}
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.0",
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 targetFilePath = pathJoin(process.cwd(), "src", "keycloak-theme", themeType, "pages", pageBasename);
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 { crawl } from "./tools/crawl";
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, "kcContext.ts"))) {
34
- return { "themeSrcDirPath": undefined };
35
- }
36
- return { "themeSrcDirPath": srcDirPath };
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(`Couldn't locate you ${themeSrcDirBasename} directory`);
27
+ logger.warn("Couldn't locate your theme source directory");
58
28
 
59
29
  process.exit(-1);
60
30
  }