From b4e94d3c00aed3a561d083b895a4b2c1302ea02e Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Mon, 16 Sep 2024 13:36:50 +0200 Subject: [PATCH] Use keycloakify-dev-resources instead of .keycloakify --- scripts/build-storybook.ts | 51 ------------------- ...createPublicKeycloakifyDevResourcesDir.ts} | 4 +- scripts/build/main.ts | 4 +- src/account/KcContext/kcContextMocks.ts | 2 +- .../generateResourcesForMainTheme.ts | 6 +-- src/bin/shared/constants.ts | 2 +- .../shared/copyKeycloakResourcesToPublic.ts | 4 +- src/login/KcContext/kcContextMocks.ts | 2 +- src/vite-plugin/vite-plugin.ts | 5 +- 9 files changed, 16 insertions(+), 64 deletions(-) rename scripts/build/{createPublicDotKeycloakifyDir.ts => createPublicKeycloakifyDevResourcesDir.ts} (94%) diff --git a/scripts/build-storybook.ts b/scripts/build-storybook.ts index eeccbb9e..51aac8ca 100644 --- a/scripts/build-storybook.ts +++ b/scripts/build-storybook.ts @@ -1,59 +1,8 @@ import * as child_process from "child_process"; -import { transformCodebase } from "../src/bin/tools/transformCodebase"; -import { join as pathJoin, sep as pathSep } from "path"; -import { assert } from "tsafe/assert"; run("yarn build"); run("npx build-storybook"); -const storybookStaticDirPath = "storybook-static"; - -{ - let hasPatched = false; - - transformCodebase({ - srcDirPath: storybookStaticDirPath, - destDirPath: storybookStaticDirPath, - transformSourceCode: ({ fileRelativePath, sourceCode }) => { - replace_dot_keycloakify: { - if (fileRelativePath.includes(pathSep)) { - break replace_dot_keycloakify; - } - - if (!fileRelativePath.endsWith(".js")) { - break replace_dot_keycloakify; - } - - const search = `DOT_KEYCLOAKIFY:".keycloakify"`; - - if (!sourceCode.includes(search)) { - break replace_dot_keycloakify; - } - - hasPatched = true; - - return { - modifiedSourceCode: Buffer.from( - sourceCode - .toString("utf8") - .replace(search, `DOT_KEYCLOAKIFY:"dot_keycloakify"`), - "utf8" - ) - }; - } - - return { modifiedSourceCode: sourceCode }; - } - }); - - assert(hasPatched); -} - -transformCodebase({ - srcDirPath: pathJoin(storybookStaticDirPath, ".keycloakify"), - destDirPath: pathJoin(storybookStaticDirPath, "dot_keycloakify") -}); - function run(command: string, options?: { env?: NodeJS.ProcessEnv }) { console.log(`$ ${command}`); diff --git a/scripts/build/createPublicDotKeycloakifyDir.ts b/scripts/build/createPublicKeycloakifyDevResourcesDir.ts similarity index 94% rename from scripts/build/createPublicDotKeycloakifyDir.ts rename to scripts/build/createPublicKeycloakifyDevResourcesDir.ts index 667124ea..29673261 100644 --- a/scripts/build/createPublicDotKeycloakifyDir.ts +++ b/scripts/build/createPublicKeycloakifyDevResourcesDir.ts @@ -7,7 +7,7 @@ import { WELL_KNOWN_DIRECTORY_BASE_NAME } from "../../src/bin/shared/constants"; import { assert, type Equals } from "tsafe/assert"; import * as fsPr from "fs/promises"; -export async function createPublicDotKeycloakifyDir() { +export async function createPublicKeycloakifyDevResourcesDir() { await Promise.all( (["login", "account"] as const).map(async themeType => { const { extractedDirPath } = await downloadKeycloakDefaultTheme({ @@ -27,7 +27,7 @@ export async function createPublicDotKeycloakifyDir() { "dist", "res", "public", - WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY, + WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES, themeType ); diff --git a/scripts/build/main.ts b/scripts/build/main.ts index 40896817..b07a054f 100644 --- a/scripts/build/main.ts +++ b/scripts/build/main.ts @@ -3,7 +3,7 @@ import * as fs from "fs"; import { join } from "path"; import { assert } from "tsafe/assert"; import { transformCodebase } from "../../src/bin/tools/transformCodebase"; -import { createPublicDotKeycloakifyDir } from "./createPublicDotKeycloakifyDir"; +import { createPublicKeycloakifyDevResourcesDir } from "./createPublicKeycloakifyDevResourcesDir"; import { createAccountV1Dir } from "./createAccountV1Dir"; import chalk from "chalk"; @@ -144,7 +144,7 @@ import chalk from "chalk"; fs.cpSync(dirBasename, destDirPath, { recursive: true }); } - await createPublicDotKeycloakifyDir(); + await createPublicKeycloakifyDevResourcesDir(); await createAccountV1Dir(); transformCodebase({ diff --git a/src/account/KcContext/kcContextMocks.ts b/src/account/KcContext/kcContextMocks.ts index a80ed058..6569bc4e 100644 --- a/src/account/KcContext/kcContextMocks.ts +++ b/src/account/KcContext/kcContextMocks.ts @@ -4,7 +4,7 @@ import { id } from "tsafe/id"; import type { KcContext } from "./KcContext"; import { BASE_URL } from "keycloakify/lib/BASE_URL"; -const resourcesPath = `${BASE_URL}${WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY}/account`; +const resourcesPath = `${BASE_URL}${WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES}/account`; export const kcContextCommonMock: KcContext.Common = { themeVersion: "0.0.0", diff --git a/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts b/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts index bad77af6..e6ecf77e 100644 --- a/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +++ b/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts @@ -99,7 +99,7 @@ export async function generateResourcesForMainTheme(params: { { const dirPath = pathJoin( buildContext.projectBuildDirPath, - WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY + WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES ); if (fs.existsSync(dirPath)) { @@ -107,7 +107,7 @@ export async function generateResourcesForMainTheme(params: { throw new Error( [ - `Keycloakify build error: The ${WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY} directory shouldn't exist in your build directory.`, + `Keycloakify build error: The ${WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES} directory shouldn't exist in your build directory.`, `(${pathRelative(process.cwd(), dirPath)}).\n`, `Theses assets are only required for local development with Storybook.", "Please remove this directory as an additional step of your command.\n`, @@ -256,7 +256,7 @@ export async function generateResourcesForMainTheme(params: { getThisCodebaseRootDirPath(), "res", "public", - WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY, + WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES, themeType ), destDirPath: pathJoin(themeTypeDirPath, "resources") diff --git a/src/bin/shared/constants.ts b/src/bin/shared/constants.ts index adf6e3fc..d0707a90 100644 --- a/src/bin/shared/constants.ts +++ b/src/bin/shared/constants.ts @@ -1,5 +1,5 @@ export const WELL_KNOWN_DIRECTORY_BASE_NAME = { - DOT_KEYCLOAKIFY: ".keycloakify", + KEYCLOAKIFY_DEV_RESOURCES: "keycloakify-dev-resources", RESOURCES_COMMON: "resources-common", DIST: "dist" } as const; diff --git a/src/bin/shared/copyKeycloakResourcesToPublic.ts b/src/bin/shared/copyKeycloakResourcesToPublic.ts index e9a90762..bd73ef9c 100644 --- a/src/bin/shared/copyKeycloakResourcesToPublic.ts +++ b/src/bin/shared/copyKeycloakResourcesToPublic.ts @@ -21,7 +21,7 @@ export function copyKeycloakResourcesToPublic(params: { const destDirPath = pathJoin( buildContext.publicDirPath, - WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY + WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES ); const keycloakifyBuildinfoFilePath = pathJoin(destDirPath, "keycloakify.buildinfo"); @@ -67,7 +67,7 @@ export function copyKeycloakResourcesToPublic(params: { getThisCodebaseRootDirPath(), "res", "public", - WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY + WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES ), destDirPath }); diff --git a/src/login/KcContext/kcContextMocks.ts b/src/login/KcContext/kcContextMocks.ts index af190a45..6600708c 100644 --- a/src/login/KcContext/kcContextMocks.ts +++ b/src/login/KcContext/kcContextMocks.ts @@ -75,7 +75,7 @@ const attributesByName = Object.fromEntries( ]).map(attribute => [attribute.name, attribute]) ); -const resourcesPath = `${BASE_URL}${WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY}/login`; +const resourcesPath = `${BASE_URL}${WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES}/login`; export const kcContextCommonMock: KcContext.Common = { themeVersion: "0.0.0", diff --git a/src/vite-plugin/vite-plugin.ts b/src/vite-plugin/vite-plugin.ts index d773be8b..1ccfaf89 100644 --- a/src/vite-plugin/vite-plugin.ts +++ b/src/vite-plugin/vite-plugin.ts @@ -201,7 +201,10 @@ export function keycloakify(params: keycloakify.Params) { assert(buildDirPath !== undefined); await rm( - pathJoin(buildDirPath, WELL_KNOWN_DIRECTORY_BASE_NAME.DOT_KEYCLOAKIFY), + pathJoin( + buildDirPath, + WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES + ), { recursive: true, force: true