diff --git a/src/bin/keycloakify/BuildOptions.ts b/src/bin/keycloakify/BuildOptions.ts index aa68cd41..30831022 100644 --- a/src/bin/keycloakify/BuildOptions.ts +++ b/src/bin/keycloakify/BuildOptions.ts @@ -13,7 +13,7 @@ export type BuildOptions = BuildOptions.Standalone | BuildOptions.ExternalAssets export namespace BuildOptions { export type Common = { isSilent: boolean; - version: string; + themeVersion: string; themeName: string; extraLoginPages: string[] | undefined; extraAccountPages: string[] | undefined; @@ -139,7 +139,7 @@ export function readBuildOptions(params: { projectDirPath: string; isExternalAss .join(".") ?? fallbackGroupId) + ".keycloak" ); })(), - "version": process.env.KEYCLOAKIFY_VERSION ?? version, + "themeVersion": process.env.KEYCLOAKIFY_THEME_VERSION ?? process.env.KEYCLOAKIFY_VERSION ?? version ?? "0.0.0", "extraLoginPages": [...(extraPages ?? []), ...(extraLoginPages ?? [])], extraAccountPages, extraThemeProperties, diff --git a/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl b/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl index ffb9ee97..67c90f19 100644 --- a/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +++ b/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl @@ -118,8 +118,9 @@ }; - out["pageId"] = "PAGE_ID_xIgLsPgGId9D8e"; out["keycloakifyVersion"] = "KEYCLOAKIFY_VERSION_xEdKd3xEdr"; + out["themeVersion"] = "KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx"; + out["pageId"] = "PAGE_ID_xIgLsPgGId9D8e"; return out; diff --git a/src/bin/keycloakify/generateFtl/generateFtl.ts b/src/bin/keycloakify/generateFtl/generateFtl.ts index 48257180..be79ef37 100644 --- a/src/bin/keycloakify/generateFtl/generateFtl.ts +++ b/src/bin/keycloakify/generateFtl/generateFtl.ts @@ -18,6 +18,7 @@ export type BuildOptionsLike = BuildOptionsLike.Standalone | BuildOptionsLike.Ex export namespace BuildOptionsLike { export type Common = { customUserAttributes: string[]; + themeVersion: string; }; export type Standalone = Common & { @@ -130,7 +131,8 @@ export function generateFtlFilesCodeFactory(params: { "CUSTOM_USER_ATTRIBUTES_eKsIY4ZsZ4xeM", buildOptions.customUserAttributes.length === 0 ? "" : ", " + buildOptions.customUserAttributes.map(name => `"${name}"`).join(", ") ) - .replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion), + .replace("KEYCLOAKIFY_VERSION_xEdKd3xEdr", keycloakifyVersion) + .replace("KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx", buildOptions.themeVersion), "": [ "<#if scripts??>", " <#list scripts as script>", diff --git a/src/bin/keycloakify/generateJavaStackFiles.ts b/src/bin/keycloakify/generateJavaStackFiles.ts index 890cc44c..0ee215df 100644 --- a/src/bin/keycloakify/generateJavaStackFiles.ts +++ b/src/bin/keycloakify/generateJavaStackFiles.ts @@ -9,7 +9,7 @@ export type BuildOptionsLike = { themeName: string; groupId: string; artifactId?: string; - version: string; + themeVersion: string; }; { @@ -26,7 +26,7 @@ export function generateJavaStackFiles(params: { jarFilePath: string; } { const { - buildOptions: { groupId, themeName, version, artifactId }, + buildOptions: { groupId, themeName, themeVersion, artifactId }, keycloakThemeBuildingDirPath, doBundlesEmailTemplate } = params; @@ -43,7 +43,7 @@ export function generateJavaStackFiles(params: { ` 4.0.0`, ` ${groupId}`, ` ${artifactId}`, - ` ${version}`, + ` ${themeVersion}`, ` ${artifactId}`, ` `, `` @@ -83,6 +83,6 @@ export function generateJavaStackFiles(params: { } return { - "jarFilePath": pathJoin(keycloakThemeBuildingDirPath, "target", `${artifactId}-${version}.jar`) + "jarFilePath": pathJoin(keycloakThemeBuildingDirPath, "target", `${artifactId}-${themeVersion}.jar`) }; } diff --git a/src/bin/keycloakify/generateKeycloakThemeResources.ts b/src/bin/keycloakify/generateKeycloakThemeResources.ts index 8d12de60..870e9230 100644 --- a/src/bin/keycloakify/generateKeycloakThemeResources.ts +++ b/src/bin/keycloakify/generateKeycloakThemeResources.ts @@ -20,6 +20,7 @@ export namespace BuildOptionsLike { extraThemeProperties?: string[]; isSilent: boolean; customUserAttributes: string[]; + themeVersion: string; }; export type Standalone = Common & { diff --git a/src/bin/keycloakify/keycloakify.ts b/src/bin/keycloakify/keycloakify.ts index 228f7ae2..2640de18 100644 --- a/src/bin/keycloakify/keycloakify.ts +++ b/src/bin/keycloakify/keycloakify.ts @@ -63,7 +63,7 @@ export async function main() { logger.log("🫶 Let keycloakify do its thang"); await jar({ "rootPath": pathJoin(buildOptions.keycloakifyBuildDirPath, "src", "main", "resources"), - "version": buildOptions.version, + "version": buildOptions.themeVersion, "groupId": buildOptions.groupId, "artifactId": buildOptions.artifactId, "targetPath": jarFilePath diff --git a/src/bin/keycloakify/parsedPackageJson.ts b/src/bin/keycloakify/parsedPackageJson.ts index 4dc3c6f0..6ee593fd 100644 --- a/src/bin/keycloakify/parsedPackageJson.ts +++ b/src/bin/keycloakify/parsedPackageJson.ts @@ -8,7 +8,7 @@ export const bundlers = ["mvn", "keycloakify", "none"] as const; export type Bundler = (typeof bundlers)[number]; export type ParsedPackageJson = { name: string; - version: string; + version?: string; homepage?: string; keycloakify?: { /** @deprecated: use extraLoginPages instead */ @@ -30,7 +30,7 @@ export type ParsedPackageJson = { export const zParsedPackageJson = z.object({ "name": z.string(), - "version": z.string(), + "version": z.string().optional(), "homepage": z.string().optional(), "keycloakify": z .object({