diff --git a/package.json b/package.json index 027cb977..b1f89b73 100644 --- a/package.json +++ b/package.json @@ -6,24 +6,18 @@ "type": "git", "url": "git://github.com/keycloakify/keycloakify.git" }, - "main": "dist/index.js", - "types": "dist/index.d.ts", "scripts": { - "prepare": "yarn generate-i18n-messages", - "build": "tsc -p src/bin && tsc -p src && tsc -p src/vite-plugin && tsc-alias -p src/tsconfig.json && yarn grant-exec-perms && yarn run copy-files && cp -r src dist/", + "prepare": "ts-node --skipProject scripts/generate-i18n-messages.ts", + "build": "ts-node --skipProject scripts/build.ts", "watch": "chokidar './src/**/*' -c 'yarn build'", - "grant-exec-perms": "ts-node --skipProject scripts/grant-exec-perms.ts", - "copy-files": "copyfiles -u 1 'src/**/*.ftl' dist/", "test": "yarn test:types && vitest run", - "test:keycloakify-starter": "ts-node scripts/test-keycloakify-starter", "test:types": "tsc -p test/tsconfig.json --noEmit", "_format": "prettier '**/*.{ts,tsx,json,md}'", "format": "yarn _format --write", "format:check": "yarn _format --list-different", - "generate-i18n-messages": "ts-node --skipProject scripts/generate-i18n-messages.ts", "link-in-app": "ts-node --skipProject scripts/link-in-app.ts", "link-in-starter": "ts-node --skipProject scripts/link-in-app.ts keycloakify-starter && yarn watch", - "copy-keycloak-resources-to-storybook-static": "PUBLIC_DIR_PATH=.storybook/static node dist/bin/copy-keycloak-resources-to-public.js", + "copy-keycloak-resources-to-storybook-static": "PUBLIC_DIR_PATH=.storybook/static node dist/bin/main.js copy-keycloak-resources-to-public", "storybook": "yarn build && yarn copy-keycloak-resources-to-storybook-static && start-storybook -p 6006", "build-storybook": "yarn build && yarn copy-keycloak-resources-to-storybook-static && build-storybook" }, @@ -46,7 +40,15 @@ "src/", "dist/", "!dist/tsconfig.tsbuildinfo", - "!dist/bin/tsconfig.tsbuildinfo" + "!dist/bin/", + "dist/bin/main.js", + "dist/bin/*.index.js", + "dist/bin/shared/constants.js", + "dist/bin/shared/constants.d.ts", + "dist/bin/shared/constants.js.map", + "!dist/vite-plugin/", + "dist/vite-plugin/index.d.ts", + "dist/vite-plugin/index.ts" ], "keywords": [ "bluehats", @@ -62,9 +64,19 @@ "peerDependencies": { "react": "*" }, + "dependencies": { + "evt": "^2.5.7", + "minimal-polyfills": "^2.2.2", + "react-markdown": "^5.0.3", + "tsafe": "^1.6.0" + }, "devDependencies": { "@babel/core": "^7.0.0", + "@babel/generator": "^7.22.9", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", "@emotion/react": "^11.10.6", + "@octokit/rest": "^20.1.1", "@storybook/addon-a11y": "^6.5.16", "@storybook/addon-actions": "^6.5.13", "@storybook/addon-essentials": "^6.5.13", @@ -82,47 +94,35 @@ "@types/react-dom": "^18.0.11", "@types/yauzl": "^2.10.0", "@types/yazl": "^2.4.2", + "@vercel/ncc": "^0.38.1", + "chalk": "4.1.2", + "cheerio": "^1.0.0-rc.5", "chokidar-cli": "^3.0.0", - "concurrently": "^8.0.1", - "copyfiles": "^2.4.1", + "cli-select": "^1.1.2", "eslint-plugin-storybook": "^0.6.7", "husky": "^4.3.8", "lint-staged": "^11.0.0", + "magic-string": "^0.30.7", + "make-fetch-happen": "^11.0.3", + "patch-package": "^8.0.0", "powerhooks": "^0.26.7", "prettier": "^2.3.0", "properties-parser": "^0.3.1", "react": "^18.2.0", "react-dom": "^18.2.0", + "recast": "^0.23.3", "scripting-tools": "^0.19.13", "storybook-dark-mode": "^1.1.2", + "termost": "^0.12.0", "ts-node": "^10.9.1", "tsc-alias": "^1.8.3", "tss-react": "^4.8.2", "typescript": "^5.4.5", "vite": "^5.0.12", "vitest": "^0.29.8", - "zod-to-json-schema": "^3.20.4" - }, - "dependencies": { - "@babel/generator": "^7.22.9", - "@babel/parser": "^7.22.7", - "@babel/types": "^7.22.5", - "@octokit/rest": "^20.1.1", - "chalk": "4.1.2", - "cheerio": "^1.0.0-rc.5", - "cli-select": "^1.1.2", - "evt": "^2.5.7", - "magic-string": "^0.30.7", - "make-fetch-happen": "^11.0.3", - "minimal-polyfills": "^2.2.2", - "minimist": "^1.2.6", - "react-markdown": "^5.0.3", - "recast": "^0.23.3", - "rfc4648": "^1.5.2", - "termost": "^0.12.0", - "tsafe": "^1.6.0", "yauzl": "^2.10.0", "yazl": "^2.5.1", - "zod": "^3.17.10" + "zod": "^3.17.10", + "zod-to-json-schema": "^3.20.4" } } diff --git a/scripts/build.ts b/scripts/build.ts new file mode 100644 index 00000000..6210fe53 --- /dev/null +++ b/scripts/build.ts @@ -0,0 +1,94 @@ +import * as child_process from "child_process"; +import * as fs from "fs"; +import { join } from "path"; +import { assert } from "tsafe/assert"; +import { transformCodebase } from "../src/bin/tools/transformCodebase"; + +if (fs.existsSync(join("dist", "bin", "main.original.js"))) { + fs.renameSync(join("dist", "bin", "main.original.js"), join("dist", "bin", "main.js")); + + fs.readdirSync(join("dist", "bin")).forEach(fileBasename => { + if (/[0-9]\.index.js/.test(fileBasename)) { + fs.rmSync(join("dist", "bin", fileBasename)); + } + }); +} + +run(`npx tsc -p ${join("src", "bin", "tsconfig.json")}`); + +fs.cpSync(join("dist", "bin", "main.js"), join("dist", "bin", "main.original.js")); + +run(`npx ncc build ${join("dist", "bin", "main.js")} -o ${join("dist", "ncc_out")}`); + +transformCodebase({ + "srcDirPath": join("dist", "ncc_out"), + "destDirPath": join("dist", "bin"), + "transformSourceCode": ({ fileRelativePath, sourceCode }) => { + if (fileRelativePath === "index.js") { + return { + "newFileName": "main.js", + "modifiedSourceCode": sourceCode + }; + } + + return { "modifiedSourceCode": sourceCode }; + } +}); + +fs.rmSync(join("dist", "ncc_out"), { "recursive": true }); + +{ + const before = fs.readFileSync(join("dist", "bin", "main.js")).toString("utf8"); + + const search = `fs + .readFileSync((0, path_1.join)(__dirname, "ftl_object_to_js_code_declaring_an_object.ftl"))`; + + const after = before.replace( + search, + [ + `Buffer.from("`, + fs.readFileSync(join("src", "bin", "keycloakify", "generateFtl", "ftl_object_to_js_code_declaring_an_object.ftl")).toString("base64"), + `", "base64")` + ].join("") + ); + + assert(after !== before, "Ned to update the code that bundles the ftl file"); + + fs.writeFileSync(join("dist", "bin", "main.js"), Buffer.from(after, "utf8")); +} + +fs.chmodSync( + join("dist", "bin", "main.js"), + fs.statSync(join("dist", "bin", "main.js")).mode | fs.constants.S_IXUSR | fs.constants.S_IXGRP | fs.constants.S_IXOTH +); + +run(`npx tsc -p ${join("src", "tsconfig.json")}`); +run(`npx tsc-alias -p ${join("src", "tsconfig.json")}`); + +if (fs.existsSync(join("dist", "vite-plugin", "index.original.js"))) { + fs.renameSync(join("dist", "vite-plugin", "index.original.js"), join("dist", "vite-plugin", "index.js")); +} + +run(`npx tsc -p ${join("src", "vite-plugin", "tsconfig.json")}`); + +fs.cpSync(join("dist", "vite-plugin", "index.js"), join("dist", "vite-plugin", "index.original.js")); + +run(`npx ncc build ${join("dist", "vite-plugin", "index.js")} -o ${join("dist", "ncc_out")}`); + +transformCodebase({ + "srcDirPath": join("dist", "ncc_out"), + "destDirPath": join("dist", "vite-plugin"), + "transformSourceCode": ({ fileRelativePath, sourceCode }) => { + assert(fileRelativePath === "index.js"); + + return { "modifiedSourceCode": sourceCode }; + } +}); + +fs.rmSync(join("dist", "ncc_out"), { "recursive": true }); + +function run(command: string) { + console.log(`$ ${command}`); + + child_process.execSync(command, { "stdio": "inherit" }); +} diff --git a/scripts/generate-i18n-messages.ts b/scripts/generate-i18n-messages.ts index b268b5de..30a51b00 100644 --- a/scripts/generate-i18n-messages.ts +++ b/scripts/generate-i18n-messages.ts @@ -4,7 +4,6 @@ import { join as pathJoin, relative as pathRelative, dirname as pathDirname, sep import { crawl } from "../src/bin/tools/crawl"; import { downloadBuiltinKeycloakTheme } from "../src/bin/shared/downloadBuiltinKeycloakTheme"; import { getThisCodebaseRootDirPath } from "../src/bin/tools/getThisCodebaseRootDirPath"; -import { getLogger } from "../src/bin/tools/logger"; import { rmSync } from "../src/bin/tools/fs.rmSync"; // NOTE: To run without argument when we want to generate src/i18n/generated_kcMessages files, @@ -13,10 +12,6 @@ import { rmSync } from "../src/bin/tools/fs.rmSync"; //@ts-ignore const propertiesParser = require("properties-parser"); -const isSilent = true; - -const logger = getLogger({ isSilent }); - async function main() { const keycloakVersion = "24.0.4"; @@ -106,7 +101,7 @@ async function main() { ) ); - logger.log(`${filePath} wrote`); + //console.log(`${filePath} wrote`); }); fs.writeFileSync( diff --git a/scripts/test-keycloakify-starter.ts b/scripts/test-keycloakify-starter.ts deleted file mode 100644 index af512083..00000000 --- a/scripts/test-keycloakify-starter.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { execSync } from "child_process"; -import { existsSync, readFileSync, rmSync, writeFileSync } from "fs"; -import path from "path"; - -const testDir = "keycloakify_starter_test"; - -if (existsSync(path.join(process.cwd(), testDir))) { - rmSync(path.join(process.cwd(), testDir), { recursive: true }); -} -// Build and link package -execSync("yarn build"); -const pkgJSON = JSON.parse(readFileSync(path.join(process.cwd(), "package.json")).toString("utf8")); -pkgJSON.main = "./index.js"; -pkgJSON.types = "./index.d.ts"; -pkgJSON.scripts.prepare = undefined; -writeFileSync(path.join(process.cwd(), "dist", "package.json"), JSON.stringify(pkgJSON)); -// Wrapped in a try/catch because unlink errors if the package isn't linked -try { - execSync("yarn unlink"); -} catch {} -execSync("yarn link", { "cwd": path.join(process.cwd(), "dist") }); - -// Clone latest keycloakify-starter and link to keycloakify output -execSync(`git clone https://github.com/keycloakify/keycloakify-starter.git ${testDir}`); -execSync("yarn install", { "cwd": path.join(process.cwd(), testDir) }); -execSync("yarn link keycloakify", { "cwd": path.join(process.cwd(), testDir) }); - -//Ensure keycloak theme can be built -execSync("yarn build-keycloak-theme", { "cwd": path.join(process.cwd(), testDir) }); diff --git a/src/account/index.ts b/src/account/index.ts index 6615ea3d..ddcab7f7 100644 --- a/src/account/index.ts +++ b/src/account/index.ts @@ -4,7 +4,7 @@ export default Fallback; export { getKcContext } from "keycloakify/account/kcContext/getKcContext"; export { createGetKcContext } from "keycloakify/account/kcContext/createGetKcContext"; -export type { AccountThemePageId as PageId } from "keycloakify/bin/shared/pageIds"; +export type { AccountThemePageId as PageId } from "keycloakify/bin/shared/constants"; export { createUseI18n } from "keycloakify/account/i18n/i18n"; export type { PageProps } from "keycloakify/account/pages/PageProps"; diff --git a/src/account/kcContext/KcContext.ts b/src/account/kcContext/KcContext.ts index 764693e0..dd38bc63 100644 --- a/src/account/kcContext/KcContext.ts +++ b/src/account/kcContext/KcContext.ts @@ -1,7 +1,6 @@ -import type { AccountThemePageId } from "keycloakify/bin/shared/pageIds"; import { assert } from "tsafe/assert"; import type { Equals } from "tsafe"; -import { type ThemeType } from "keycloakify/bin/shared/constants"; +import type { ThemeType, AccountThemePageId } from "keycloakify/bin/shared/constants"; export type KcContext = | KcContext.Password diff --git a/src/bin/eject-keycloak-page.ts b/src/bin/eject-keycloak-page.ts index 90f0ec2e..a7ae4900 100644 --- a/src/bin/eject-keycloak-page.ts +++ b/src/bin/eject-keycloak-page.ts @@ -2,14 +2,20 @@ import { getThisCodebaseRootDirPath } from "./tools/getThisCodebaseRootDirPath"; import cliSelect from "cli-select"; -import { loginThemePageIds, accountThemePageIds, type LoginThemePageId, type AccountThemePageId } from "./shared/pageIds"; +import { + loginThemePageIds, + accountThemePageIds, + type LoginThemePageId, + type AccountThemePageId, + themeTypes, + type ThemeType +} from "./shared/constants"; import { capitalize } from "tsafe/capitalize"; import * as fs from "fs"; import { join as pathJoin, relative as pathRelative, dirname as pathDirname } from "path"; import { kebabCaseToCamelCase } from "./tools/kebabCaseToSnakeCase"; import { assert, Equals } from "tsafe/assert"; import { getThemeSrcDirPath } from "./shared/getThemeSrcDirPath"; -import { themeTypes, type ThemeType } from "./shared/constants"; import type { CliCommandOptions } from "./main"; import { readBuildOptions } from "./shared/buildOptions"; diff --git a/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts b/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts index 9897e7d2..814fdb7b 100644 --- a/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts +++ b/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts @@ -4,13 +4,14 @@ import { join as pathJoin, resolve as pathResolve } from "path"; import { replaceImportsInJsCode } from "../replacers/replaceImportsInJsCode"; import { replaceImportsInCssCode } from "../replacers/replaceImportsInCssCode"; import { generateFtlFilesCodeFactory } from "../generateFtl"; -import { loginThemePageIds, accountThemePageIds } from "../../shared/pageIds"; import { type ThemeType, lastKeycloakVersionWithAccountV1, keycloak_resources, accountV1ThemeName, - basenameOfTheKeycloakifyResourcesDir + basenameOfTheKeycloakifyResourcesDir, + loginThemePageIds, + accountThemePageIds } from "../../shared/constants"; import { isInside } from "../../tools/isInside"; import type { BuildOptions } from "../../shared/buildOptions"; diff --git a/src/bin/keycloakify/generateSrcMainResources/readExtraPageNames.ts b/src/bin/keycloakify/generateSrcMainResources/readExtraPageNames.ts index 18e8b06b..c4237bfd 100644 --- a/src/bin/keycloakify/generateSrcMainResources/readExtraPageNames.ts +++ b/src/bin/keycloakify/generateSrcMainResources/readExtraPageNames.ts @@ -1,10 +1,9 @@ import { crawl } from "../../tools/crawl"; -import { accountThemePageIds, loginThemePageIds } from "../../shared/pageIds"; import { id } from "tsafe/id"; import { removeDuplicates } from "evt/tools/reducers/removeDuplicates"; import * as fs from "fs"; import { join as pathJoin } from "path"; -import type { ThemeType } from "../../shared/constants"; +import { type ThemeType, accountThemePageIds, loginThemePageIds } from "../../shared/constants"; export function readExtraPagesNames(params: { themeSrcDirPath: string; themeType: ThemeType }): string[] { const { themeSrcDirPath, themeType } = params; diff --git a/src/bin/main.ts b/src/bin/main.ts index f3e0f845..269b7762 100644 --- a/src/bin/main.ts +++ b/src/bin/main.ts @@ -1,13 +1,18 @@ #!/usr/bin/env node import { termost } from "termost"; +import { readThisNpmPackageVersion } from "./tools/readThisNpmPackageVersion"; import * as child_process from "child_process"; export type CliCommandOptions = { reactAppRootDirPath: string | undefined; }; -const program = termost("Keycloakify CLI"); +const program = termost({ + "name": "keycloakify", + "description": "Keycloakify CLI", + "version": readThisNpmPackageVersion() +}); const optionsKeys: string[] = []; @@ -58,7 +63,7 @@ program skip, "handler": cliCommandOptions => runAndLogErrors(async () => { - const { command } = await import("./keycloakify"); + const { command } = await import("./keycloakify/index"); await runAndLogErrors(() => command({ cliCommandOptions })); }) diff --git a/src/bin/shared/constants.ts b/src/bin/shared/constants.ts index 96024346..69e5a569 100644 --- a/src/bin/shared/constants.ts +++ b/src/bin/shared/constants.ts @@ -13,3 +13,53 @@ export const vitePluginSubScriptEnvNames = { "runPostBuildScript": "KEYCLOAKIFY_RUN_POST_BUILD_SCRIPT", "resolveViteConfig": "KEYCLOAKIFY_RESOLVE_VITE_CONFIG" } as const; + +export const loginThemePageIds = [ + "login.ftl", + "login-username.ftl", + "login-password.ftl", + "webauthn-authenticate.ftl", + "webauthn-register.ftl", + "register.ftl", + "info.ftl", + "error.ftl", + "login-reset-password.ftl", + "login-verify-email.ftl", + "terms.ftl", + "login-oauth2-device-verify-user-code.ftl", + "login-oauth-grant.ftl", + "login-otp.ftl", + "login-update-profile.ftl", + "login-update-password.ftl", + "login-idp-link-confirm.ftl", + "login-idp-link-email.ftl", + "login-page-expired.ftl", + "login-config-totp.ftl", + "logout-confirm.ftl", + "idp-review-user-profile.ftl", + "update-email.ftl", + "select-authenticator.ftl", + "saml-post-form.ftl", + "delete-credential.ftl", + "code.ftl", + "delete-account-confirm.ftl", + "frontchannel-logout.ftl", + "login-recovery-authn-code-config.ftl", + "login-recovery-authn-code-input.ftl", + "login-reset-otp.ftl", + "login-x509-info.ftl", + "webauthn-error.ftl" +] as const; + +export const accountThemePageIds = [ + "password.ftl", + "account.ftl", + "sessions.ftl", + "totp.ftl", + "applications.ftl", + "log.ftl", + "federatedIdentity.ftl" +] as const; + +export type LoginThemePageId = (typeof loginThemePageIds)[number]; +export type AccountThemePageId = (typeof accountThemePageIds)[number]; diff --git a/src/bin/shared/pageIds.ts b/src/bin/shared/pageIds.ts deleted file mode 100644 index fe83f196..00000000 --- a/src/bin/shared/pageIds.ts +++ /dev/null @@ -1,49 +0,0 @@ -export const loginThemePageIds = [ - "login.ftl", - "login-username.ftl", - "login-password.ftl", - "webauthn-authenticate.ftl", - "webauthn-register.ftl", - "register.ftl", - "info.ftl", - "error.ftl", - "login-reset-password.ftl", - "login-verify-email.ftl", - "terms.ftl", - "login-oauth2-device-verify-user-code.ftl", - "login-oauth-grant.ftl", - "login-otp.ftl", - "login-update-profile.ftl", - "login-update-password.ftl", - "login-idp-link-confirm.ftl", - "login-idp-link-email.ftl", - "login-page-expired.ftl", - "login-config-totp.ftl", - "logout-confirm.ftl", - "idp-review-user-profile.ftl", - "update-email.ftl", - "select-authenticator.ftl", - "saml-post-form.ftl", - "delete-credential.ftl", - "code.ftl", - "delete-account-confirm.ftl", - "frontchannel-logout.ftl", - "login-recovery-authn-code-config.ftl", - "login-recovery-authn-code-input.ftl", - "login-reset-otp.ftl", - "login-x509-info.ftl", - "webauthn-error.ftl" -] as const; - -export const accountThemePageIds = [ - "password.ftl", - "account.ftl", - "sessions.ftl", - "totp.ftl", - "applications.ftl", - "log.ftl", - "federatedIdentity.ftl" -] as const; - -export type LoginThemePageId = (typeof loginThemePageIds)[number]; -export type AccountThemePageId = (typeof accountThemePageIds)[number]; diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 054789a7..00000000 --- a/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { createKeycloakAdapter } from "keycloakify/lib/keycloakJsAdapter"; diff --git a/src/lib/keycloakJsAdapter.ts b/src/lib/keycloakJsAdapter.ts deleted file mode 100644 index 9666bd3d..00000000 --- a/src/lib/keycloakJsAdapter.ts +++ /dev/null @@ -1,118 +0,0 @@ -export declare namespace keycloak_js { - export type KeycloakPromiseCallback = (result: T) => void; - export class KeycloakPromise extends Promise { - success(callback: KeycloakPromiseCallback): KeycloakPromise; - error(callback: KeycloakPromiseCallback): KeycloakPromise; - } - export interface KeycloakAdapter { - login(options?: KeycloakLoginOptions): KeycloakPromise; - logout(options?: KeycloakLogoutOptions): KeycloakPromise; - register(options?: KeycloakLoginOptions): KeycloakPromise; - accountManagement(): KeycloakPromise; - redirectUri(options: { redirectUri: string }, encodeHash: boolean): string; - } - export interface KeycloakLogoutOptions { - redirectUri?: string; - } - export interface KeycloakLoginOptions { - scope?: string; - redirectUri?: string; - prompt?: "none" | "login"; - action?: string; - maxAge?: number; - loginHint?: string; - idpHint?: string; - locale?: string; - cordovaOptions?: { [optionName: string]: string }; - } - - export type KeycloakInstance = Record< - "createLoginUrl" | "createLogoutUrl" | "createRegisterUrl", - (options: KeycloakLoginOptions | undefined) => string - > & { - createAccountUrl(): string; - redirectUri?: string; - }; -} - -/** - * @deprecated: This will be removed in the next major version. - * If you use this, please copy paste the code into your project. - * Better yet migrate away from keycloak-js and use https://docs.oidc-spa.dev instead. - * - * NOTE: This is just a slightly modified version of the default adapter in keycloak-js - * The goal here is just to be able to inject search param in url before keycloak redirect. - * Our use case for it is to pass over the login screen the states of useGlobalState - * namely isDarkModeEnabled, lgn... - */ -export function createKeycloakAdapter(params: { - keycloakInstance: keycloak_js.KeycloakInstance; - transformUrlBeforeRedirect: (url: string) => string; - getRedirectMethod?: () => "overwrite location.href" | "location.replace"; -}): keycloak_js.KeycloakAdapter { - const { keycloakInstance, transformUrlBeforeRedirect, getRedirectMethod = () => "overwrite location.href" } = params; - - const neverResolvingPromise: keycloak_js.KeycloakPromise = Object.defineProperties(new Promise(() => {}), { - "success": { "value": () => {} }, - "error": { "value": () => {} } - }) as any; - - return { - "login": options => { - const newHref = transformUrlBeforeRedirect(keycloakInstance.createLoginUrl(options)); - switch (getRedirectMethod()) { - case "location.replace": - window.location.replace(newHref); - break; - case "overwrite location.href": - window.location.href = newHref; - break; - } - return neverResolvingPromise; - }, - "register": options => { - const newHref = transformUrlBeforeRedirect(keycloakInstance.createRegisterUrl(options)); - switch (getRedirectMethod()) { - case "location.replace": - window.location.replace(newHref); - break; - case "overwrite location.href": - window.location.href = newHref; - break; - } - - return neverResolvingPromise; - }, - "logout": options => { - window.location.replace(transformUrlBeforeRedirect(keycloakInstance.createLogoutUrl(options))); - return neverResolvingPromise; - }, - "accountManagement": () => { - const accountUrl = transformUrlBeforeRedirect(keycloakInstance.createAccountUrl()); - - if (accountUrl === "undefined") { - throw new Error("Not supported by the OIDC server"); - } - - switch (getRedirectMethod()) { - case "location.replace": - window.location.replace(accountUrl); - break; - case "overwrite location.href": - window.location.href = accountUrl; - break; - } - - return neverResolvingPromise; - }, - "redirectUri": options => { - if (options && options.redirectUri) { - return options.redirectUri; - } else if (keycloakInstance.redirectUri) { - return keycloakInstance.redirectUri; - } else { - return window.location.href; - } - } - }; -} diff --git a/src/login/index.ts b/src/login/index.ts index f1b9436e..a0610265 100644 --- a/src/login/index.ts +++ b/src/login/index.ts @@ -5,7 +5,7 @@ export default Fallback; export { useDownloadTerms } from "keycloakify/login/lib/useDownloadTerms"; export { getKcContext } from "keycloakify/login/kcContext/getKcContext"; export { createGetKcContext } from "keycloakify/login/kcContext/createGetKcContext"; -export type { LoginThemePageId as PageId } from "keycloakify/bin/shared/pageIds"; +export type { LoginThemePageId as PageId } from "keycloakify/bin/shared/constants"; export { createUseI18n } from "keycloakify/login/i18n/i18n"; export type { PageProps } from "keycloakify/login/pages/PageProps"; diff --git a/src/login/kcContext/KcContext.ts b/src/login/kcContext/KcContext.ts index 28d44cae..14f32b53 100644 --- a/src/login/kcContext/KcContext.ts +++ b/src/login/kcContext/KcContext.ts @@ -1,5 +1,4 @@ -import type { LoginThemePageId } from "keycloakify/bin/shared/pageIds"; -import { type ThemeType } from "keycloakify/bin/shared/constants"; +import type { ThemeType, LoginThemePageId } from "keycloakify/bin/shared/constants"; import { assert } from "tsafe/assert"; import type { Equals } from "tsafe"; import type { MessageKey } from "../i18n/i18n"; diff --git a/src/login/kcContext/kcContextMocks.ts b/src/login/kcContext/kcContextMocks.ts index e0a8006a..60d744a9 100644 --- a/src/login/kcContext/kcContextMocks.ts +++ b/src/login/kcContext/kcContextMocks.ts @@ -1,9 +1,8 @@ import "minimal-polyfills/Object.fromEntries"; import type { KcContext, Attribute } from "./KcContext"; -import { resources_common, keycloak_resources } from "keycloakify/bin/shared/constants"; +import { resources_common, keycloak_resources, type LoginThemePageId } from "keycloakify/bin/shared/constants"; import { id } from "tsafe/id"; import { assert, type Equals } from "tsafe/assert"; -import type { LoginThemePageId } from "keycloakify/bin/shared/pageIds"; import { BASE_URL } from "keycloakify/lib/BASE_URL"; const attributes: Attribute[] = [ diff --git a/src/vite-plugin/tsconfig.json b/src/vite-plugin/tsconfig.json index 3fd7aee3..2b1eb244 100644 --- a/src/vite-plugin/tsconfig.json +++ b/src/vite-plugin/tsconfig.json @@ -8,7 +8,8 @@ "outDir": "../../dist/vite-plugin", "rootDir": ".", // https://github.com/vitejs/vite/issues/15112#issuecomment-1823908010 - "skipLibCheck": true + "skipLibCheck": true, + "sourceMap": false }, "references": [ { diff --git a/yarn.lock b/yarn.lock index 816d6d29..49c803be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3341,6 +3341,11 @@ "@typescript-eslint/types" "5.59.0" eslint-visitor-keys "^3.3.0" +"@vercel/ncc@^0.38.1": + version "0.38.1" + resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.38.1.tgz#13f08738111e1d9e8a22fd6141f3590e54d9a60e" + integrity sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw== + "@vitest/expect@0.29.8": version "0.29.8" resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.29.8.tgz#6ecdd031b4ea8414717d10b65ccd800908384612" @@ -3652,6 +3657,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -4632,6 +4642,17 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + call-me-maybe@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" @@ -4854,6 +4875,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.7.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -4960,15 +4986,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -5132,21 +5149,6 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concurrently@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.0.1.tgz#80c0591920a9fa3e68ba0dd8aa6eac8487eb904c" - integrity sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA== - dependencies: - chalk "^4.1.2" - date-fns "^2.29.3" - lodash "^4.17.21" - rxjs "^7.8.0" - shell-quote "^1.8.0" - spawn-command "0.0.2-1" - supports-color "^8.1.1" - tree-kill "^1.2.2" - yargs "^17.7.1" - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -5206,19 +5208,6 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -copyfiles@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" - integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== - dependencies: - glob "^7.0.5" - minimatch "^3.0.3" - mkdirp "^1.0.4" - noms "0.0.0" - through2 "^2.0.1" - untildify "^4.0.0" - yargs "^16.1.0" - core-js-compat@^3.25.1, core-js-compat@^3.8.1: version "3.30.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.1.tgz#961541e22db9c27fc48bfc13a3cafa8734171dfe" @@ -5453,11 +5442,6 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -date-fns@^2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== - debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -5543,6 +5527,15 @@ default-browser-id@^1.0.4: meow "^3.1.0" untildify "^2.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -5974,6 +5967,18 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-get-iterator@^1.0.2, es-get-iterator@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" @@ -6585,6 +6590,13 @@ find-versions@^4.0.0: dependencies: semver-regex "^3.1.2" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -6775,6 +6787,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.0, function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -6829,6 +6846,17 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -6906,7 +6934,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -7027,6 +7055,13 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + has-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" @@ -7104,6 +7139,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + hast-to-hyperscript@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" @@ -7941,11 +7983,6 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -8147,6 +8184,16 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-stable-stringify@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" + integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== + dependencies: + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + json5@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" @@ -8173,6 +8220,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + junk@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" @@ -8202,6 +8254,13 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -8823,7 +8882,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1: +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -9107,14 +9166,6 @@ node-releases@^2.0.8: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== -noms@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" - integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== - dependencies: - inherits "^2.0.1" - readable-stream "~1.0.31" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -9302,7 +9353,7 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^7.0.3: +open@^7.0.3, open@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -9346,6 +9397,11 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + p-all@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0" @@ -9557,6 +9613,27 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== +patch-package@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" + integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.2" + ci-info "^3.7.0" + cross-spawn "^7.0.3" + find-yarn-workspace-root "^2.0.0" + fs-extra "^9.0.0" + json-stable-stringify "^1.0.2" + klaw-sync "^6.0.0" + minimist "^1.2.6" + open "^7.4.2" + rimraf "^2.6.3" + semver "^7.5.3" + slash "^2.0.0" + tmp "^0.0.33" + yaml "^2.2.2" + path-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" @@ -10327,16 +10404,6 @@ readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~1.0.31: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -10631,11 +10698,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfc4648@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/rfc4648/-/rfc4648-1.5.2.tgz#cf5dac417dd83e7f4debf52e3797a723c1373383" - integrity sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg== - rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" @@ -10725,7 +10787,7 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^7.5.1, rxjs@^7.8.0: +rxjs@^7.5.1: version "7.8.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== @@ -10858,6 +10920,11 @@ semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: dependencies: lru-cache "^6.0.0" +semver@^7.5.3: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -10924,6 +10991,18 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -10988,11 +11067,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.8.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -11159,11 +11233,6 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== -spawn-command@0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== - spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -11422,11 +11491,6 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -11537,7 +11601,7 @@ stylis@4.1.3: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== -supports-color@8.1.1, supports-color@^8.0.0, supports-color@^8.1.1: +supports-color@8.1.1, supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -11697,7 +11761,7 @@ throttle-debounce@^3.0.1: resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== -through2@^2.0.0, through2@^2.0.1: +through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -11740,6 +11804,13 @@ tinyspy@^1.0.2: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -11797,11 +11868,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -12196,11 +12262,6 @@ untildify@^2.0.0: dependencies: os-homedir "^1.0.0" -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -12813,6 +12874,11 @@ yaml@^1.10.0, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -12826,11 +12892,6 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.9: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -12847,7 +12908,7 @@ yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^16.1.0, yargs@^16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -12860,19 +12921,6 @@ yargs@^16.1.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.7.1: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"