Compare commits

...

9 Commits

Author SHA1 Message Date
30efd8fcf4 Bump version 2024-11-21 06:27:09 +01:00
f4c4e92ca1 #726 2024-11-21 06:26:54 +01:00
cfda99f5b0 Bump version 2024-11-19 03:49:32 +01:00
5063b1c7ab Rename LoginDeviceVerifyUserCode to LoginOauth2DeviceVerifyUserCode (as it should have been) 2024-11-19 03:49:01 +01:00
955b6cac45 Remove noisy stories 2024-11-19 03:22:49 +01:00
1fa3d6133c Remove unused template prop 2024-11-19 03:22:35 +01:00
023939a064 Bump version 2024-11-18 21:38:59 +01:00
de4490cf0f Update tsafe 2024-11-18 21:38:27 +01:00
e0cda43724 Change pattern for telling if linked 2024-11-18 21:34:10 +01:00
21 changed files with 122 additions and 125 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "keycloakify", "name": "keycloakify",
"version": "11.3.25", "version": "11.3.28",
"description": "Framework to create custom Keycloak UIs", "description": "Framework to create custom Keycloak UIs",
"repository": { "repository": {
"type": "git", "type": "git",
@ -64,7 +64,7 @@
], ],
"homepage": "https://www.keycloakify.dev", "homepage": "https://www.keycloakify.dev",
"dependencies": { "dependencies": {
"tsafe": "^1.7.5" "tsafe": "^1.8.5"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.24.5", "@babel/core": "^7.24.5",
@ -95,14 +95,14 @@
"cli-select": "^1.1.2", "cli-select": "^1.1.2",
"dompurify": "^3.1.6", "dompurify": "^3.1.6",
"eslint-plugin-storybook": "^0.6.7", "eslint-plugin-storybook": "^0.6.7",
"evt": "^2.5.7", "evt": "^2.5.8",
"html-entities": "^2.5.2", "html-entities": "^2.5.2",
"husky": "^4.3.8", "husky": "^4.3.8",
"isomorphic-dompurify": "^2.15.0", "isomorphic-dompurify": "^2.15.0",
"lint-staged": "^11.0.0", "lint-staged": "^11.0.0",
"magic-string": "^0.30.7", "magic-string": "^0.30.7",
"make-fetch-happen": "^11.0.3", "make-fetch-happen": "^11.0.3",
"powerhooks": "^1.0.10", "powerhooks": "^1.0.19",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"properties-parser": "^0.3.1", "properties-parser": "^0.3.1",
"react": "^18.2.0", "react": "^18.2.0",

View File

@ -4,8 +4,7 @@ import { SemVer } from "../src/bin/tools/SemVer";
import { join as pathJoin, relative as pathRelative } from "path"; import { join as pathJoin, relative as pathRelative } from "path";
import chalk from "chalk"; import chalk from "chalk";
import { Deferred } from "evt/tools/Deferred"; import { Deferred } from "evt/tools/Deferred";
import { assert } from "tsafe/assert"; import { assert, is } from "tsafe/assert";
import { is } from "tsafe/is";
import { run } from "./shared/run"; import { run } from "./shared/run";
(async () => { (async () => {

View File

@ -9,8 +9,7 @@ import {
import { SemVer } from "../tools/SemVer"; import { SemVer } from "../tools/SemVer";
import fetch from "make-fetch-happen"; import fetch from "make-fetch-happen";
import { z } from "zod"; import { z } from "zod";
import { assert, type Equals } from "tsafe/assert"; import { assert, type Equals, is } from "tsafe/assert";
import { is } from "tsafe/is";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import { npmInstall } from "../tools/npmInstall"; import { npmInstall } from "../tools/npmInstall";
import { copyBoilerplate } from "./copyBoilerplate"; import { copyBoilerplate } from "./copyBoilerplate";

View File

@ -1,11 +1,10 @@
import { join as pathJoin } from "path"; import { join as pathJoin } from "path";
import { assert, type Equals } from "tsafe/assert"; import { assert, type Equals, is } from "tsafe/assert";
import type { BuildContext } from "../shared/buildContext"; import type { BuildContext } from "../shared/buildContext";
import * as fs from "fs"; import * as fs from "fs";
import chalk from "chalk"; import chalk from "chalk";
import { z } from "zod"; import { z } from "zod";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import { is } from "tsafe/is";
export type BuildContextLike = { export type BuildContextLike = {
bundler: BuildContext["bundler"]; bundler: BuildContext["bundler"];

View File

@ -1,5 +1,4 @@
import { assert, type Equals } from "tsafe/assert"; import { assert, type Equals, is } from "tsafe/assert";
import { is } from "tsafe/is";
import type { BuildContext } from "../shared/buildContext"; import type { BuildContext } from "../shared/buildContext";
import type { UiModuleMeta } from "./uiModuleMeta"; import type { UiModuleMeta } from "./uiModuleMeta";
import { z } from "zod"; import { z } from "zod";

View File

@ -1,10 +1,9 @@
import { assert, type Equals } from "tsafe/assert"; import { assert, type Equals, is } from "tsafe/assert";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import { z } from "zod"; import { z } from "zod";
import { join as pathJoin, dirname as pathDirname } from "path"; import { join as pathJoin, dirname as pathDirname } from "path";
import * as fsPr from "fs/promises"; import * as fsPr from "fs/promises";
import type { BuildContext } from "../shared/buildContext"; import type { BuildContext } from "../shared/buildContext";
import { is } from "tsafe/is";
import { existsAsync } from "../tools/fs.existsAsync"; import { existsAsync } from "../tools/fs.existsAsync";
import { listInstalledModules } from "../tools/listInstalledModules"; import { listInstalledModules } from "../tools/listInstalledModules";
import { crawlAsync } from "../tools/crawlAsync"; import { crawlAsync } from "../tools/crawlAsync";

View File

@ -9,7 +9,7 @@ import {
import { getAbsoluteAndInOsFormatPath } from "../tools/getAbsoluteAndInOsFormatPath"; import { getAbsoluteAndInOsFormatPath } from "../tools/getAbsoluteAndInOsFormatPath";
import { z } from "zod"; import { z } from "zod";
import * as fs from "fs"; import * as fs from "fs";
import { assert, type Equals } from "tsafe/assert"; import { assert, type Equals, is } from "tsafe/assert";
import * as child_process from "child_process"; import * as child_process from "child_process";
import { import {
VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES, VITE_PLUGIN_SUB_SCRIPTS_ENV_NAMES,
@ -23,7 +23,6 @@ import { objectEntries } from "tsafe/objectEntries";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import chalk from "chalk"; import chalk from "chalk";
import { getProxyFetchOptions, type FetchOptionsLike } from "../tools/fetchProxyOptions"; import { getProxyFetchOptions, type FetchOptionsLike } from "../tools/fetchProxyOptions";
import { is } from "tsafe/is";
export type BuildContext = { export type BuildContext = {
themeVersion: string; themeVersion: string;

View File

@ -1,9 +1,8 @@
import { assert, type Equals } from "tsafe/assert"; import { assert, type Equals, is } from "tsafe/assert";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import { z } from "zod"; import { z } from "zod";
import { join as pathJoin, dirname as pathDirname } from "path"; import { join as pathJoin, dirname as pathDirname } from "path";
import * as fsPr from "fs/promises"; import * as fsPr from "fs/promises";
import { is } from "tsafe/is";
import { getInstalledModuleDirPath } from "../tools/getInstalledModuleDirPath"; import { getInstalledModuleDirPath } from "../tools/getInstalledModuleDirPath";
import { exclude } from "tsafe/exclude"; import { exclude } from "tsafe/exclude";

View File

@ -3,9 +3,8 @@ import { join as pathJoin, dirname as pathDirname } from "path";
import * as child_process from "child_process"; import * as child_process from "child_process";
import chalk from "chalk"; import chalk from "chalk";
import { z } from "zod"; import { z } from "zod";
import { assert, type Equals } from "tsafe/assert"; import { assert, type Equals, is } from "tsafe/assert";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import { is } from "tsafe/is";
import { objectKeys } from "tsafe/objectKeys"; import { objectKeys } from "tsafe/objectKeys";
import { getAbsoluteAndInOsFormatPath } from "./getAbsoluteAndInOsFormatPath"; import { getAbsoluteAndInOsFormatPath } from "./getAbsoluteAndInOsFormatPath";
import { exclude } from "tsafe/exclude"; import { exclude } from "tsafe/exclude";

View File

@ -2,10 +2,9 @@ import { getNodeModulesBinDirPath } from "./nodeModulesBinDirPath";
import { join as pathJoin, resolve as pathResolve } from "path"; import { join as pathJoin, resolve as pathResolve } from "path";
import * as fsPr from "fs/promises"; import * as fsPr from "fs/promises";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import { assert } from "tsafe/assert"; import { assert, is } from "tsafe/assert";
import chalk from "chalk"; import chalk from "chalk";
import * as crypto from "crypto"; import * as crypto from "crypto";
import { is } from "tsafe/is";
import { symToStr } from "tsafe/symToStr"; import { symToStr } from "tsafe/symToStr";
import { readThisNpmPackageVersion } from "./readThisNpmPackageVersion"; import { readThisNpmPackageVersion } from "./readThisNpmPackageVersion";
@ -50,7 +49,7 @@ export async function getPrettier(): Promise<PrettierAndConfigHash> {
// of prettier, that is the one of the project, not the one of this repo. // of prettier, that is the one of the project, not the one of this repo.
// So we do a sketchy eval to bypass ncc. // So we do a sketchy eval to bypass ncc.
// We make sure to only do that when linking, otherwise we import properly. // We make sure to only do that when linking, otherwise we import properly.
if (readThisNpmPackageVersion() === "0.0.0") { if (readThisNpmPackageVersion().startsWith("0.0.0")) {
eval( eval(
`${symToStr({ prettier })} = require("${pathResolve(pathJoin(getNodeModulesBinDirPath(), "..", "prettier"))}")` `${symToStr({ prettier })} = require("${pathResolve(pathJoin(getNodeModulesBinDirPath(), "..", "prettier"))}")`
); );

View File

@ -1,8 +1,7 @@
import type { Param0 } from "tsafe"; import type { Param0 } from "tsafe";
import { type CxArg, clsx_withTransform } from "../tools/clsx_withTransform"; import { type CxArg, clsx_withTransform } from "../tools/clsx_withTransform";
import { clsx } from "../tools/clsx"; import { clsx } from "../tools/clsx";
import { assert } from "tsafe/assert"; import { assert, is } from "tsafe/assert";
import { is } from "tsafe/is";
export function createGetKcClsx<ClassKey extends string>(params: { export function createGetKcClsx<ClassKey extends string>(params: {
defaultClasses: Record<ClassKey, string | undefined>; defaultClasses: Record<ClassKey, string | undefined>;

View File

@ -33,7 +33,7 @@ export type KcContext =
| KcContext.LoginResetPassword | KcContext.LoginResetPassword
| KcContext.LoginVerifyEmail | KcContext.LoginVerifyEmail
| KcContext.Terms | KcContext.Terms
| KcContext.LoginDeviceVerifyUserCode | KcContext.LoginOauth2DeviceVerifyUserCode
| KcContext.LoginOauthGrant | KcContext.LoginOauthGrant
| KcContext.LoginOtp | KcContext.LoginOtp
| KcContext.LoginUsername | KcContext.LoginUsername
@ -277,7 +277,7 @@ export declare namespace KcContext {
__localizationRealmOverridesTermsText?: string; __localizationRealmOverridesTermsText?: string;
}; };
export type LoginDeviceVerifyUserCode = Common & { export type LoginOauth2DeviceVerifyUserCode = Common & {
pageId: "login-oauth2-device-verify-user-code.ftl"; pageId: "login-oauth2-device-verify-user-code.ftl";
url: { url: {
oauth2DeviceVerificationAction: string; oauth2DeviceVerificationAction: string;

View File

@ -290,7 +290,7 @@ export const kcContextMocks = [
...kcContextCommonMock, ...kcContextCommonMock,
pageId: "terms.ftl" pageId: "terms.ftl"
}), }),
id<KcContext.LoginDeviceVerifyUserCode>({ id<KcContext.LoginOauth2DeviceVerifyUserCode>({
...kcContextCommonMock, ...kcContextCommonMock,
pageId: "login-oauth2-device-verify-user-code.ftl", pageId: "login-oauth2-device-verify-user-code.ftl",
url: loginUrl url: loginUrl

View File

@ -11,7 +11,6 @@ export type TemplateProps<KcContext, I18n> = {
displayInfo?: boolean; displayInfo?: boolean;
displayMessage?: boolean; displayMessage?: boolean;
displayRequiredFields?: boolean; displayRequiredFields?: boolean;
showAnotherWayIfPresent?: boolean;
headerNode: ReactNode; headerNode: ReactNode;
socialProvidersNode?: ReactNode; socialProvidersNode?: ReactNode;
infoNode?: ReactNode; infoNode?: ReactNode;

View File

@ -1,11 +1,11 @@
import "keycloakify/tools/Object.fromEntries"; import "keycloakify/tools/Object.fromEntries";
import { assert } from "tsafe/assert"; import { assert, is } from "tsafe/assert";
import { extractLastParenthesisContent } from "keycloakify/tools/extractLastParenthesisContent";
import messages_defaultSet_fallbackLanguage from "../messages_defaultSet/en"; import messages_defaultSet_fallbackLanguage from "../messages_defaultSet/en";
import { fetchMessages_defaultSet } from "../messages_defaultSet"; import { fetchMessages_defaultSet } from "../messages_defaultSet";
import type { KcContext } from "../../KcContext"; import type { KcContext } from "../../KcContext";
import { FALLBACK_LANGUAGE_TAG } from "keycloakify/bin/shared/constants"; import { FALLBACK_LANGUAGE_TAG } from "keycloakify/bin/shared/constants";
import { id } from "tsafe/id"; import { id } from "tsafe/id";
import { is } from "tsafe/is";
import { Reflect } from "tsafe/Reflect"; import { Reflect } from "tsafe/Reflect";
import { import {
type LanguageTag as LanguageTag_defaultSet, type LanguageTag as LanguageTag_defaultSet,
@ -169,12 +169,10 @@ export function createGetI18n<
break from_server; break from_server;
} }
// cspell: disable-next-line const lastParenthesisContent = extractLastParenthesisContent(supportedEntry.label);
// from "Espagnol (Español)" we want to extract "Español"
const match = supportedEntry.label.match(/[^(]+\(([^)]+)\)/);
if (match !== null) { if (lastParenthesisContent !== undefined) {
return match[1]; return lastParenthesisContent;
} }
return supportedEntry.label; return supportedEntry.label;

View File

@ -1,5 +1,4 @@
import { assert } from "tsafe/assert"; import { assert, is } from "tsafe/assert";
import { is } from "tsafe/is";
export type StatefulObservable<T> = { export type StatefulObservable<T> = {
current: T; current: T;

View File

@ -1,5 +1,4 @@
import { assert } from "tsafe/assert"; import { assert, is } from "tsafe/assert";
import { is } from "tsafe/is";
import { structuredCloneButFunctions } from "./structuredCloneButFunctions"; import { structuredCloneButFunctions } from "./structuredCloneButFunctions";
/** NOTE: Array a copied over, not merged. */ /** NOTE: Array a copied over, not merged. */

View File

@ -0,0 +1,43 @@
/**
* "Hello (world)" => "world"
* "Hello (world) (foo)" => "foo"
* "Hello (world (foo))" => "world (foo)"
*/
export function extractLastParenthesisContent(str: string): string | undefined {
const chars: string[] = [];
for (const char of str) {
chars.push(char);
}
const extractedChars: string[] = [];
let openingCount = 0;
loop_through_char: for (let i = chars.length - 1; i >= 0; i--) {
const char = chars[i];
if (i === chars.length - 1) {
if (char !== ")") {
return undefined;
}
continue;
}
switch (char) {
case ")":
openingCount++;
break;
case "(":
if (openingCount === 0) {
return extractedChars.join("");
}
openingCount--;
break;
}
extractedChars.unshift(char);
}
return undefined;
}

View File

@ -17,6 +17,7 @@ export const Default: Story = {
render: () => ( render: () => (
<KcPageStory <KcPageStory
kcContext={{ kcContext={{
messageHeader: "Message header",
message: { message: {
summary: "Server info message" summary: "Server info message"
} }
@ -29,6 +30,7 @@ export const WithLinkBack: Story = {
render: () => ( render: () => (
<KcPageStory <KcPageStory
kcContext={{ kcContext={{
messageHeader: "Message header",
message: { message: {
summary: "Server message" summary: "Server message"
}, },
@ -42,6 +44,7 @@ export const WithRequiredActions: Story = {
render: () => ( render: () => (
<KcPageStory <KcPageStory
kcContext={{ kcContext={{
messageHeader: "Message header",
message: { message: {
summary: "Required actions: " summary: "Required actions: "
}, },
@ -55,42 +58,3 @@ export const WithRequiredActions: Story = {
/> />
) )
}; };
export const WithPageRedirect: Story = {
render: () => (
<KcPageStory
kcContext={{
message: { summary: "You will be redirected shortly." },
pageRedirectUri: "https://example.com"
}}
/>
)
};
export const WithoutClientBaseUrl: Story = {
render: () => (
<KcPageStory
kcContext={{
message: { summary: "No client base URL defined." },
client: { baseUrl: undefined }
}}
/>
)
};
export const WithMessageHeader: Story = {
render: () => (
<KcPageStory
kcContext={{
messageHeader: "Important Notice",
message: { summary: "This is an important message." }
}}
/>
)
};
export const WithAdvancedMessage: Story = {
render: () => (
<KcPageStory
kcContext={{
message: { summary: "Please take note of this <strong>important</strong> information." }
}}
/>
)
};

View File

@ -1,18 +0,0 @@
import React from "react";
import type { Meta, StoryObj } from "@storybook/react";
import { createKcPageStory } from "../KcPageStory";
const { KcPageStory } = createKcPageStory({ pageId: "login-device-verify-user-code.ftl" });
const meta = {
title: "login/login-device-verify-user-code.ftl",
component: KcPageStory
} satisfies Meta<typeof KcPageStory>;
export default meta;
type Story = StoryObj<typeof meta>;
export const Default: Story = {
render: () => <KcPageStory />
};

View File

@ -6172,6 +6172,14 @@ d@1, d@^1.0.1:
es5-ext "^0.10.50" es5-ext "^0.10.50"
type "^1.0.1" type "^1.0.1"
d@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de"
integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==
dependencies:
es5-ext "^0.10.64"
type "^2.7.2"
data-urls@^5.0.0: data-urls@^5.0.0:
version "5.0.0" version "5.0.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde"
@ -6743,7 +6751,7 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1" is-date-object "^1.0.1"
is-symbol "^1.0.2" is-symbol "^1.0.2"
es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
version "0.10.62" version "0.10.62"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"
integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==
@ -6752,6 +6760,16 @@ es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@
es6-symbol "^3.1.3" es6-symbol "^3.1.3"
next-tick "^1.1.0" next-tick "^1.1.0"
es5-ext@^0.10.62, es5-ext@^0.10.64:
version "0.10.64"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
dependencies:
es6-iterator "^2.0.3"
es6-symbol "^3.1.3"
esniff "^2.0.1"
next-tick "^1.1.0"
es5-shim@^4.5.13: es5-shim@^4.5.13:
version "4.6.7" version "4.6.7"
resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.7.tgz#bc67ae0fc3dd520636e0a1601cc73b450ad3e955" resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.7.tgz#bc67ae0fc3dd520636e0a1601cc73b450ad3e955"
@ -6920,6 +6938,16 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc"
integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==
esniff@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308"
integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==
dependencies:
d "^1.0.1"
es5-ext "^0.10.62"
event-emitter "^0.3.5"
type "^2.7.2"
esprima@^4.0.1, esprima@~4.0.0: esprima@^4.0.1, esprima@~4.0.0:
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
@ -6994,14 +7022,14 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
md5.js "^1.3.4" md5.js "^1.3.4"
safe-buffer "^5.1.1" safe-buffer "^5.1.1"
evt@^2.5.7: evt@^2.5.8:
version "2.5.7" version "2.5.8"
resolved "https://registry.yarnpkg.com/evt/-/evt-2.5.7.tgz#55c5f8ff910f4b7531bfac91e963d4cb3231f253" resolved "https://registry.yarnpkg.com/evt/-/evt-2.5.8.tgz#4cc4e2db92d89cc43e00a0755703317f5f9b6d4c"
integrity sha512-dr7Wd16ry5F8WNU1xXLKpFpO3HsoAGg8zC48e08vDdzMzGWCP9/QFGt1PQptEEDh8SwYP3EL8M+d/Gb0kgUp6g== integrity sha512-wjurRtEqepH03fZSzkCUAw2tNNtEoeoEYXf7EqG8uU52wQ3D/+ctyQE8hf+YR/5DXZlwl2jNGLMm4hAd/wyD6g==
dependencies: dependencies:
minimal-polyfills "^2.2.3" minimal-polyfills "^2.2.3"
run-exclusive "^2.2.19" run-exclusive "^2.2.19"
tsafe "^1.6.6" tsafe "^1.8.5"
execa@^5.1.1: execa@^5.1.1:
version "5.1.1" version "5.1.1"
@ -9350,13 +9378,13 @@ memfs@^3.1.2, memfs@^3.2.2:
dependencies: dependencies:
fs-monkey "^1.0.3" fs-monkey "^1.0.3"
memoizee@^0.4.15: memoizee@^0.4.17:
version "0.4.15" version "0.4.17"
resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.17.tgz#942a5f8acee281fa6fb9c620bddc57e3b7382949"
integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== integrity sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==
dependencies: dependencies:
d "^1.0.1" d "^1.0.2"
es5-ext "^0.10.53" es5-ext "^0.10.64"
es6-weak-map "^2.0.3" es6-weak-map "^2.0.3"
event-emitter "^0.3.5" event-emitter "^0.3.5"
is-promise "^2.2.2" is-promise "^2.2.2"
@ -10629,14 +10657,14 @@ postcss@^8.4.38:
picocolors "^1.0.0" picocolors "^1.0.0"
source-map-js "^1.2.0" source-map-js "^1.2.0"
powerhooks@^1.0.10: powerhooks@^1.0.19:
version "1.0.10" version "1.0.19"
resolved "https://registry.yarnpkg.com/powerhooks/-/powerhooks-1.0.10.tgz#9d532b23294cba69d5872d859bdf843b91cb9c41" resolved "https://registry.yarnpkg.com/powerhooks/-/powerhooks-1.0.19.tgz#e93ce44f55d31ca26a4511883a49cfe5341d47af"
integrity sha512-fJmKSVJk9Bkotl9rK1ryVPSqhY4xOZKxM6deyTaMbICK8jHh/CQztN2mNTxlKu6vkJBIFj1cRd/7N6slh3uM6w== integrity sha512-kmZX0LLvJyaIphwf2FjKABAQwQFrRqsEA41N4CB8EzfDobyXle545t4teajVo/NPboy0HEaioyv55FWN7d58/Q==
dependencies: dependencies:
evt "^2.5.7" evt "^2.5.8"
memoizee "^0.4.15" memoizee "^0.4.17"
tsafe "^1.6.6" tsafe "^1.8.5"
prelude-ls@~1.1.2: prelude-ls@~1.1.2:
version "1.1.2" version "1.1.2"
@ -12574,15 +12602,10 @@ ts-pnp@^1.1.6:
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
tsafe@^1.6.6: tsafe@^1.8.5:
version "1.6.6" version "1.8.5"
resolved "https://registry.yarnpkg.com/tsafe/-/tsafe-1.6.6.tgz#fd93e64d6eb13ef83ed1650669cc24bad4f5df9f" resolved "https://registry.yarnpkg.com/tsafe/-/tsafe-1.8.5.tgz#cdf9fa3111974ac480d7ee519f8241815e5d22ea"
integrity sha512-gzkapsdbMNwBnTIjgO758GujLCj031IgHK/PKr2mrmkCSJMhSOR5FeOuSxKLMUoYc0vAA4RGEYYbjt/v6afD3g== integrity sha512-LFWTWQrW6rwSY+IBNFl2ridGfUzVsPwrZ26T4KUJww/py8rzaQ/SY+MIz6YROozpUCaRcuISqagmlwub9YT9kw==
tsafe@^1.7.5:
version "1.7.5"
resolved "https://registry.yarnpkg.com/tsafe/-/tsafe-1.7.5.tgz#0d3a31202b5ef87c7ba997e66e03fd80801278ef"
integrity sha512-tbNyyBSbwfbilFfiuXkSOj82a6++ovgANwcoqBAcO9/REPoZMEQoE8kWPeO0dy5A2D/2Lajr8Ohue5T0ifIvLQ==
tsc-alias@^1.8.10: tsc-alias@^1.8.10:
version "1.8.10" version "1.8.10"