diff --git a/src/bin/keycloakify/BuildOptions.ts b/src/bin/keycloakify/BuildOptions.ts index 3af57011..b3321a04 100644 --- a/src/bin/keycloakify/BuildOptions.ts +++ b/src/bin/keycloakify/BuildOptions.ts @@ -3,8 +3,7 @@ import { id } from "tsafe/id"; import { parse as urlParse } from "url"; import { typeGuard } from "tsafe/typeGuard"; import { symToStr } from "tsafe/symToStr"; -import { bundlers, getParsedPackageJson } from "./parsed-package-json"; -import type { Bundler } from "./parsed-package-json"; +import { bundlers, getParsedPackageJson, type Bundler } from "./parsedPackageJson"; import { getAppInputPath, getKeycloakBuildPath } from "./build-paths"; /** Consolidated build option gathered form CLI arguments and config in package.json */ @@ -91,10 +90,12 @@ export function readBuildOptions(params: { CNAME: string | undefined; isExternal const { extraPages, extraLoginPages, extraAccountPages, extraThemeProperties, groupId, artifactId, bundler, keycloakVersionDefaultAssets } = keycloakify ?? {}; - const themeName = name - .replace(/^@(.*)/, "$1") - .split("/") - .join("-"); + const themeName = + keycloakify.themeName ?? + name + .replace(/^@(.*)/, "$1") + .split("/") + .join("-"); return { themeName, diff --git a/src/bin/keycloakify/build-paths.ts b/src/bin/keycloakify/build-paths.ts index 200139f1..2de13bcb 100644 --- a/src/bin/keycloakify/build-paths.ts +++ b/src/bin/keycloakify/build-paths.ts @@ -2,7 +2,7 @@ import * as fs from "fs"; import { exclude } from "tsafe"; import { crawl } from "../tools/crawl"; import { pathJoin } from "../tools/pathJoin"; -import { getParsedPackageJson } from "./parsed-package-json"; +import { getParsedPackageJson } from "./parsedPackageJson"; const DEFAULT_APP_INPUT_PATH = "build"; diff --git a/src/bin/keycloakify/parsed-package-json.ts b/src/bin/keycloakify/parsedPackageJson.ts similarity index 96% rename from src/bin/keycloakify/parsed-package-json.ts rename to src/bin/keycloakify/parsedPackageJson.ts index f20d6ba3..5487bc96 100644 --- a/src/bin/keycloakify/parsed-package-json.ts +++ b/src/bin/keycloakify/parsedPackageJson.ts @@ -25,6 +25,7 @@ type ParsedPackageJson = { appInputPath?: string; keycloakBuildPath?: string; customUserAttributes?: string[]; + themeName?: string; }; }; @@ -45,7 +46,8 @@ const zParsedPackageJson = z.object({ "keycloakVersionDefaultAssets": z.string().optional(), "appInputPath": z.string().optional(), "keycloakBuildPath": z.string().optional(), - "customUserAttributes": z.array(z.string()).optional() + "customUserAttributes": z.array(z.string()).optional(), + "themeName": z.string().optional() }) .optional() });