From 988b96825f7ae04895839f4ce3af53ad229db78f Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Sun, 12 May 2024 21:41:49 +0200 Subject: [PATCH] Only buildJar function left to implement --- src/bin/keycloakify/buildJars/buildJar.ts | 6 +- .../buildJars/extensionVersions.ts | 15 +++- src/bin/keycloakify/buildJars/generatePom.ts | 78 ++++++++++++------- .../getKeycloakVersionRangeForJar.ts | 12 +-- 4 files changed, 71 insertions(+), 40 deletions(-) diff --git a/src/bin/keycloakify/buildJars/buildJar.ts b/src/bin/keycloakify/buildJars/buildJar.ts index 7a7ba43c..981fcc20 100644 --- a/src/bin/keycloakify/buildJars/buildJar.ts +++ b/src/bin/keycloakify/buildJars/buildJar.ts @@ -1,11 +1,11 @@ import { assert, type Equals } from "tsafe/assert"; import { exclude } from "tsafe/exclude"; -import type { KeycloakAccountV1Versions, KeycloakThemeAdditionalInfoExtensionVersions } from "./extensionVersions"; +import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions"; export async function buildJar(params: { jarFileBasename: string; - keycloakAccountV1Version: KeycloakAccountV1Versions; - keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersions; + keycloakAccountV1Version: KeycloakAccountV1Version; + keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion; buildOptions: { keycloakifyBuildDirPath: string; }; diff --git a/src/bin/keycloakify/buildJars/extensionVersions.ts b/src/bin/keycloakify/buildJars/extensionVersions.ts index 79fac401..8b9b1b01 100644 --- a/src/bin/keycloakify/buildJars/extensionVersions.ts +++ b/src/bin/keycloakify/buildJars/extensionVersions.ts @@ -1,7 +1,16 @@ +// NOTE: v0.5 is a dummy version. export const keycloakAccountV1Versions = [null, "0.3", "0.4"] as const; -export type KeycloakAccountV1Versions = (typeof keycloakAccountV1Versions)[number]; +/** + * https://central.sonatype.com/artifact/io.phasetwo.keycloak/keycloak-account-v1 + * https://github.com/p2-inc/keycloak-account-v1 + */ +export type KeycloakAccountV1Version = (typeof keycloakAccountV1Versions)[number]; -export const keycloakThemeAdditionalInfoExtensionVersions = [null, "0.1"] as const; +export const keycloakThemeAdditionalInfoExtensionVersions = [null, "1.1.5"] as const; -export type KeycloakThemeAdditionalInfoExtensionVersions = (typeof keycloakThemeAdditionalInfoExtensionVersions)[number]; +/** + * https://central.sonatype.com/artifact/dev.jcputney/keycloak-theme-additional-info-extension + * https://github.com/jcputney/keycloak-theme-additional-info-extension + * */ +export type KeycloakThemeAdditionalInfoExtensionVersion = (typeof keycloakThemeAdditionalInfoExtensionVersions)[number]; diff --git a/src/bin/keycloakify/buildJars/generatePom.ts b/src/bin/keycloakify/buildJars/generatePom.ts index 9ee1df71..8faea660 100644 --- a/src/bin/keycloakify/buildJars/generatePom.ts +++ b/src/bin/keycloakify/buildJars/generatePom.ts @@ -1,12 +1,12 @@ import { assert } from "tsafe/assert"; import { Reflect } from "tsafe/Reflect"; import type { BuildOptions } from "../buildOptions"; +import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions"; type BuildOptionsLike = { groupId: string; artifactId: string; themeVersion: string; - keycloakifyBuildDirPath: string; }; { @@ -15,8 +15,13 @@ type BuildOptionsLike = { assert(); } -export function generatePom(params: { buildOptions: BuildOptionsLike }) { - const { buildOptions } = params; +export function generatePom(params: { + keycloakAccountV1Version: KeycloakAccountV1Version; + keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion; + + buildOptions: BuildOptionsLike; +}) { + const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, buildOptions } = params; const { pomFileCode } = (function generatePomFileCode(): { pomFileCode: string; @@ -36,31 +41,48 @@ export function generatePom(params: { buildOptions: BuildOptionsLike }) { ` `, ` UTF-8`, ` `, - ` `, - ` `, - ` `, - ` org.apache.maven.plugins`, - ` maven-shade-plugin`, - ` 3.5.1`, - ` `, - ` `, - ` package`, - ` `, - ` shade`, - ` `, - ` `, - ` `, - ` `, - ` `, - ` `, - ` `, - ` `, - ` io.phasetwo.keycloak`, - ` keycloak-account-v1`, - ` 0.1`, - ` `, - ` `, - `` + ...(keycloakAccountV1Version !== null && keycloakThemeAdditionalInfoExtensionVersion !== null + ? [ + ` `, + ` `, + ` `, + ` org.apache.maven.plugins`, + ` maven-shade-plugin`, + ` 3.5.1`, + ` `, + ` `, + ` package`, + ` `, + ` shade`, + ` `, + ` `, + ` `, + ` `, + ` `, + ` `, + ` `, + ...(keycloakAccountV1Version !== null + ? [ + ` `, + ` io.phasetwo.keycloak`, + ` keycloak-account-v1`, + ` ${keycloakAccountV1Version}`, + ` ` + ] + : []), + ...(keycloakThemeAdditionalInfoExtensionVersion !== null + ? [ + ` `, + ` dev.jcputney`, + ` keycloak-theme-additional-info-extension`, + ` ${keycloakThemeAdditionalInfoExtensionVersion}`, + ` ` + ] + : []), + ` `, + `` + ] + : []) ].join("\n"); return { pomFileCode }; diff --git a/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts b/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts index 7cf11480..5984315c 100644 --- a/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +++ b/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts @@ -1,10 +1,10 @@ import { assert, type Equals } from "tsafe/assert"; -import type { KeycloakAccountV1Versions, KeycloakThemeAdditionalInfoExtensionVersions } from "./extensionVersions"; +import type { KeycloakAccountV1Version, KeycloakThemeAdditionalInfoExtensionVersion } from "./extensionVersions"; export function getKeycloakVersionRangeForJar(params: { doesImplementAccountTheme: boolean; - keycloakAccountV1Version: KeycloakAccountV1Versions; - keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersions; + keycloakAccountV1Version: KeycloakAccountV1Version; + keycloakThemeAdditionalInfoExtensionVersion: KeycloakThemeAdditionalInfoExtensionVersion; }): string | undefined { const { keycloakAccountV1Version, keycloakThemeAdditionalInfoExtensionVersion, doesImplementAccountTheme } = params; @@ -13,7 +13,7 @@ export function getKeycloakVersionRangeForJar(params: { switch (keycloakThemeAdditionalInfoExtensionVersion) { case null: return doesImplementAccountTheme ? "21-and-below" : "21-and-below"; - case "0.1": + case "1.1.5": return doesImplementAccountTheme ? undefined : "22-and-above"; } assert>(false); @@ -21,7 +21,7 @@ export function getKeycloakVersionRangeForJar(params: { switch (keycloakThemeAdditionalInfoExtensionVersion) { case null: return doesImplementAccountTheme ? undefined : undefined; - case "0.1": + case "1.1.5": return doesImplementAccountTheme ? "23" : undefined; } assert>(false); @@ -29,7 +29,7 @@ export function getKeycloakVersionRangeForJar(params: { switch (keycloakThemeAdditionalInfoExtensionVersion) { case null: return doesImplementAccountTheme ? undefined : undefined; - case "0.1": + case "1.1.5": return doesImplementAccountTheme ? "24-and-above" : undefined; } assert>(false);