mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Merge remote-tracking branch 'origin/master' into namespace-select-badge
This commit is contained in:
commit
5452972cb4
10
package.json
10
package.json
@ -262,7 +262,7 @@
|
||||
"history": "^4.10.1",
|
||||
"hpagent": "^1.2.0",
|
||||
"http-proxy": "^1.18.1",
|
||||
"immer": "^9.0.17",
|
||||
"immer": "^9.0.18",
|
||||
"joi": "^17.7.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"jsdom": "^16.7.0",
|
||||
@ -370,8 +370,8 @@
|
||||
"@types/webpack-dev-server": "^4.7.2",
|
||||
"@types/webpack-env": "^1.18.0",
|
||||
"@types/webpack-node-externals": "^2.5.3",
|
||||
"@typescript-eslint/eslint-plugin": "^5.48.1",
|
||||
"@typescript-eslint/parser": "^5.48.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.48.2",
|
||||
"@typescript-eslint/parser": "^5.48.2",
|
||||
"adr": "^1.4.3",
|
||||
"ansi_up": "^5.1.0",
|
||||
"chalk": "^4.1.2",
|
||||
@ -392,8 +392,8 @@
|
||||
"eslint": "^8.32.0",
|
||||
"eslint-import-resolver-typescript": "^3.5.3",
|
||||
"eslint-plugin-header": "^3.1.1",
|
||||
"eslint-plugin-import": "^2.27.4",
|
||||
"eslint-plugin-react": "7.32.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-react": "^7.32.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"eslint-plugin-unused-imports": "^2.0.0",
|
||||
"fork-ts-checker-webpack-plugin": "^6.5.2",
|
||||
|
||||
@ -5,66 +5,30 @@
|
||||
import React from "react";
|
||||
import { SubTitle } from "../../../../../../renderer/components/layout/sub-title";
|
||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||
import type { UserStore } from "../../../../../../common/user-store";
|
||||
import userStoreInjectable from "../../../../../../common/user-store/user-store.injectable";
|
||||
import { observer } from "mobx-react";
|
||||
import type { SelectOption } from "../../../../../../renderer/components/select";
|
||||
import { Select } from "../../../../../../renderer/components/select";
|
||||
import type { Logger } from "../../../../../../common/logger";
|
||||
import { action } from "mobx";
|
||||
import loggerInjectable from "../../../../../../common/logger.injectable";
|
||||
import {
|
||||
terminalFontsInjectable,
|
||||
} from "../../../../../../renderer/components/dock/terminal/terminal-fonts.injectable";
|
||||
import type { TerminalFontPreferencePresenter } from "./terminal-font-options.injectable";
|
||||
import terminalFontPreferencePresenterInjectable from "./terminal-font-options.injectable";
|
||||
|
||||
interface Dependencies {
|
||||
userStore: UserStore;
|
||||
logger: Logger;
|
||||
terminalFonts: Map<string, string>;
|
||||
model: TerminalFontPreferencePresenter;
|
||||
}
|
||||
|
||||
const NonInjectedTerminalFontFamily = observer(
|
||||
({ userStore, logger, terminalFonts }: Dependencies) => {
|
||||
const bundledFonts: SelectOption<string>[] = Array.from(terminalFonts.keys()).map(font => {
|
||||
const { fontFamily, fontSize } = userStore.terminalConfig;
|
||||
|
||||
return {
|
||||
label: (
|
||||
<span style={{ fontFamily: `${font}, var(--font-terminal)`, fontSize }}>
|
||||
{font}
|
||||
</span>
|
||||
),
|
||||
value: font,
|
||||
isSelected: fontFamily === font,
|
||||
};
|
||||
});
|
||||
|
||||
const onFontFamilyChange = action(({ value: fontFamily }: SelectOption<string>) => {
|
||||
logger.info(`setting terminal font to ${fontFamily}`);
|
||||
|
||||
userStore.terminalConfig.fontFamily = fontFamily; // save to external storage
|
||||
});
|
||||
|
||||
|
||||
return (
|
||||
<section>
|
||||
<SubTitle title="Font family" />
|
||||
<Select
|
||||
themeName="lens"
|
||||
controlShouldRenderValue
|
||||
value={userStore.terminalConfig.fontFamily}
|
||||
options={bundledFonts}
|
||||
onChange={onFontFamilyChange as any}
|
||||
/>
|
||||
</section>
|
||||
);
|
||||
},
|
||||
);
|
||||
const NonInjectedTerminalFontFamily = observer(({ model }: Dependencies) => (
|
||||
<section>
|
||||
<SubTitle title="Font family" />
|
||||
<Select
|
||||
themeName="lens"
|
||||
controlShouldRenderValue
|
||||
value={model.current.get()}
|
||||
options={model.options.get()}
|
||||
onChange={model.onSelection}
|
||||
/>
|
||||
</section>
|
||||
));
|
||||
|
||||
export const TerminalFontFamily = withInjectables<Dependencies>(NonInjectedTerminalFontFamily, {
|
||||
getProps: (di) => ({
|
||||
userStore: di.inject(userStoreInjectable),
|
||||
logger: di.inject(loggerInjectable),
|
||||
terminalFonts: di.inject(terminalFontsInjectable),
|
||||
model: di.inject(terminalFontPreferencePresenterInjectable),
|
||||
}),
|
||||
});
|
||||
|
||||
@ -0,0 +1,50 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { IComputedValue } from "mobx";
|
||||
import { action, computed } from "mobx";
|
||||
import React from "react";
|
||||
import type { SingleValue } from "react-select";
|
||||
import userStoreInjectable from "../../../../../../common/user-store/user-store.injectable";
|
||||
import { defaultTerminalFontFamily } from "../../../../../../common/vars";
|
||||
import type { SelectOption } from "../../../../../../renderer/components/select";
|
||||
import { terminalFontInjectionToken } from "../../../../../terminal/renderer/fonts/token";
|
||||
|
||||
export interface TerminalFontPreferencePresenter {
|
||||
readonly options: IComputedValue<SelectOption<string>[]>;
|
||||
readonly current: IComputedValue<string>;
|
||||
onSelection: (selection: SingleValue<SelectOption<string>>) => void;
|
||||
}
|
||||
|
||||
const terminalFontPreferencePresenterInjectable = getInjectable({
|
||||
id: "terminal-font-preference-presenter",
|
||||
instantiate: (di): TerminalFontPreferencePresenter => {
|
||||
const userStore = di.inject(userStoreInjectable);
|
||||
const terminalFonts = di.injectMany(terminalFontInjectionToken);
|
||||
|
||||
return {
|
||||
options: computed(() => terminalFonts.map(font => ({
|
||||
label: (
|
||||
<span
|
||||
style={{
|
||||
fontFamily: `${font.name}, var(--font-terminal)`,
|
||||
fontSize: userStore.terminalConfig.fontSize,
|
||||
}}
|
||||
>
|
||||
{font.name}
|
||||
</span>
|
||||
),
|
||||
value: font.name,
|
||||
isSelected: userStore.terminalConfig.fontFamily === font.name,
|
||||
}))),
|
||||
current: computed(() => userStore.terminalConfig.fontFamily),
|
||||
onSelection: action(selection => {
|
||||
userStore.terminalConfig.fontFamily = selection?.value ?? defaultTerminalFontFamily;
|
||||
}),
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
export default terminalFontPreferencePresenterInjectable;
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import AnonymousPro from "./AnonymousPro-Regular.ttf";
|
||||
|
||||
const anonymousProTerminalFontInjectable = getInjectable({
|
||||
id: "anonymous-pro-terminal-font",
|
||||
instantiate: () => ({
|
||||
name:"Anonymous Pro",
|
||||
url: AnonymousPro,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default anonymousProTerminalFontInjectable;
|
||||
13
src/features/terminal/renderer/fonts/fonts.injectable.ts
Normal file
13
src/features/terminal/renderer/fonts/fonts.injectable.ts
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
|
||||
const terminalFontsInjectable = getInjectable({
|
||||
id: "terminal-fonts",
|
||||
instantiate: (di) => di.injectMany(terminalFontInjectionToken),
|
||||
});
|
||||
|
||||
export default terminalFontsInjectable;
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import IBMPlexMono from "./IBMPlexMono-Regular.ttf";
|
||||
|
||||
const ibmPlexMonoTerminalFontInjectable = getInjectable({
|
||||
id: "ibm-plex-mono-terminal-font",
|
||||
instantiate: () => ({
|
||||
name: "IBM Plex Mono",
|
||||
url: IBMPlexMono,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default ibmPlexMonoTerminalFontInjectable;
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import JetBrainsMono from "./JetBrainsMono-Regular.ttf";
|
||||
|
||||
const jetbrainsMonoTerminalFontInjectable = getInjectable({
|
||||
id: "jetbrains-mono-terminal-font",
|
||||
instantiate: () => ({
|
||||
name: "JetBrains Mono",
|
||||
url: JetBrainsMono,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default jetbrainsMonoTerminalFontInjectable;
|
||||
@ -2,13 +2,8 @@
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getGlobalOverride } from "../../../../common/test-utils/get-global-override";
|
||||
import { preloadAllTerminalFontsInjectable } from "./terminal-fonts.injectable";
|
||||
|
||||
export default getGlobalOverride(preloadAllTerminalFontsInjectable, () => {
|
||||
return {
|
||||
id: "",
|
||||
async run() {
|
||||
},
|
||||
};
|
||||
});
|
||||
import { getGlobalOverride } from "../../../../common/test-utils/get-global-override";
|
||||
import loadTerminalFontInjectable from "./load-font.injectable";
|
||||
|
||||
export default getGlobalOverride(loadTerminalFontInjectable, () => async () => {});
|
||||
27
src/features/terminal/renderer/fonts/load-font.injectable.ts
Normal file
27
src/features/terminal/renderer/fonts/load-font.injectable.ts
Normal file
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { TerminalFont } from "./token";
|
||||
|
||||
export type LoadTerminalFont = (font: TerminalFont) => Promise<void>;
|
||||
|
||||
const loadTerminalFontInjectable = getInjectable({
|
||||
id: "load-terminal-font",
|
||||
instantiate: (): LoadTerminalFont => async (font) => {
|
||||
const fontLoaded = document.fonts.check(`10px ${font.name}`);
|
||||
|
||||
if (fontLoaded) {
|
||||
return;
|
||||
}
|
||||
|
||||
const fontFace = new FontFace(font.name, `url(${font.url})`);
|
||||
|
||||
document.fonts.add(fontFace);
|
||||
await fontFace.load();
|
||||
},
|
||||
causesSideEffects: true,
|
||||
});
|
||||
|
||||
export default loadTerminalFontInjectable;
|
||||
@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { beforeFrameStartsFirstInjectionToken } from "../../../../renderer/before-frame-starts/tokens";
|
||||
import terminalFontsInjectable from "./fonts.injectable";
|
||||
import loadTerminalFontInjectable from "./load-font.injectable";
|
||||
|
||||
const preloadTerminalFontsInjectable = getInjectable({
|
||||
id: "preload-terminal-fonts",
|
||||
instantiate: (di) => ({
|
||||
id: "preload-terminal-fonts",
|
||||
run: async () => {
|
||||
const terminalFonts = di.inject(terminalFontsInjectable);
|
||||
const loadTerminalFont = di.inject(loadTerminalFontInjectable);
|
||||
|
||||
await Promise.allSettled(terminalFonts.map(loadTerminalFont));
|
||||
},
|
||||
}),
|
||||
injectionToken: beforeFrameStartsFirstInjectionToken,
|
||||
});
|
||||
|
||||
export default preloadTerminalFontsInjectable;
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import RedHatMono from "./RedHatMono-Regular.ttf";
|
||||
|
||||
const redHatMonoTerminalFontInjectable = getInjectable({
|
||||
id: "red-hat-mono-terminal-font",
|
||||
instantiate: () => ({
|
||||
name: "Red Hat Mono",
|
||||
url: RedHatMono,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default redHatMonoTerminalFontInjectable;
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import RobotoMono from "./Roboto-Mono.ttf"; // patched font with icons
|
||||
|
||||
const robotoMonoTerminalFontInjectable = getInjectable({
|
||||
id: "roboto-mono-terminal-font",
|
||||
instantiate: () => ({
|
||||
name: "RobotoMono",
|
||||
url: RobotoMono,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default robotoMonoTerminalFontInjectable;
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import SourceCodePro from "./SourceCodePro-Regular.ttf";
|
||||
|
||||
const sourceCodeProTerminalFontInjectable = getInjectable({
|
||||
id: "source-code-pro-terminal-font",
|
||||
instantiate: () => ({
|
||||
name: "Source Code Pro",
|
||||
url: SourceCodePro,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default sourceCodeProTerminalFontInjectable;
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import SpaceMono from "./SpaceMono-Regular.ttf";
|
||||
|
||||
const spaceMonoTerminalFontInjectable = getInjectable({
|
||||
id: "space-mono-terminal-font",
|
||||
instantiate: () => ({
|
||||
name: "Space Mono",
|
||||
url: SpaceMono,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default spaceMonoTerminalFontInjectable;
|
||||
15
src/features/terminal/renderer/fonts/token.ts
Normal file
15
src/features/terminal/renderer/fonts/token.ts
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||
|
||||
export interface TerminalFont {
|
||||
name: string;
|
||||
url: string;
|
||||
}
|
||||
|
||||
export const terminalFontInjectionToken = getInjectionToken<TerminalFont>({
|
||||
id: "terminal-font-token",
|
||||
});
|
||||
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { terminalFontInjectionToken } from "./token";
|
||||
import UbuntuMono from "./UbuntuMono-Regular.ttf";
|
||||
|
||||
const ubunutuMonoTerminalFontInjectable = getInjectable({
|
||||
id: "ubunutu-mono-terminal-font",
|
||||
instantiate: () => ({
|
||||
name: "Ubuntu Mono",
|
||||
url: UbuntuMono,
|
||||
}),
|
||||
injectionToken: terminalFontInjectionToken,
|
||||
});
|
||||
|
||||
export default ubunutuMonoTerminalFontInjectable;
|
||||
@ -88,7 +88,15 @@ export class ClusterFrameHandler {
|
||||
() => {
|
||||
this.dependencies.logger.info(`[LENS-VIEW]: remove dashboard, clusterId=${clusterId}`);
|
||||
this.views.delete(clusterId);
|
||||
parentElem.removeChild(iframe);
|
||||
|
||||
// Must only remove iframe from DOM after it unloads old code. Else it crashes
|
||||
iframe.addEventListener("load", () => parentElem.removeChild(iframe), {
|
||||
once: true,
|
||||
});
|
||||
|
||||
// This causes the old code to be unloaded.
|
||||
iframe.setAttribute("src", "");
|
||||
|
||||
dispose();
|
||||
},
|
||||
);
|
||||
|
||||
@ -1,78 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { beforeFrameStartsFirstInjectionToken } from "../../../before-frame-starts/tokens";
|
||||
import RobotoMono from "../../../fonts/Roboto-Mono-nerd.ttf"; // patched font with icons
|
||||
import AnonymousPro from "../../../fonts/AnonymousPro-Regular.ttf";
|
||||
import IBMPlexMono from "../../../fonts/IBMPlexMono-Regular.ttf";
|
||||
import JetBrainsMono from "../../../fonts/JetBrainsMono-Regular.ttf";
|
||||
import RedHatMono from "../../../fonts/RedHatMono-Regular.ttf";
|
||||
import SourceCodePro from "../../../fonts/SourceCodePro-Regular.ttf";
|
||||
import SpaceMono from "../../../fonts/SpaceMono-Regular.ttf";
|
||||
import UbuntuMono from "../../../fonts/UbuntuMono-Regular.ttf";
|
||||
|
||||
export const terminalFontsInjectable = getInjectable({
|
||||
id: "terminalFontsInjectable",
|
||||
|
||||
instantiate() {
|
||||
return new Map([
|
||||
["RobotoMono", RobotoMono],
|
||||
["Anonymous Pro", AnonymousPro],
|
||||
["IBM Plex Mono", IBMPlexMono],
|
||||
["JetBrains Mono", JetBrainsMono],
|
||||
["Red Hat Mono", RedHatMono],
|
||||
["Source Code Pro", SourceCodePro],
|
||||
["Space Mono", SpaceMono],
|
||||
["Ubuntu Mono", UbuntuMono],
|
||||
]);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
export const preloadTerminalFontInjectable = getInjectable({
|
||||
id: "preloadTerminalFontInjectable",
|
||||
|
||||
instantiate(di) {
|
||||
const terminalFonts = di.inject(terminalFontsInjectable);
|
||||
|
||||
return async function (fontFamily: string): Promise<void> {
|
||||
const fontBundledPath = terminalFonts.get(fontFamily);
|
||||
const fontLoaded = document.fonts.check(`10px ${fontFamily}`);
|
||||
|
||||
if (fontLoaded || !fontBundledPath) return;
|
||||
|
||||
const font = new FontFace(fontFamily, `url(${fontBundledPath})`);
|
||||
|
||||
document.fonts.add(font);
|
||||
await font.load();
|
||||
};
|
||||
},
|
||||
|
||||
causesSideEffects: true,
|
||||
});
|
||||
|
||||
export const preloadAllTerminalFontsInjectable = getInjectable({
|
||||
id: "preloadAllTerminalFontsInjectable",
|
||||
|
||||
instantiate(di) {
|
||||
const terminalFonts = di.inject(terminalFontsInjectable);
|
||||
const preloadFont = di.inject(preloadTerminalFontInjectable);
|
||||
|
||||
return {
|
||||
id: "preload-all-terminal-fonts",
|
||||
|
||||
async run() {
|
||||
await Promise.allSettled(
|
||||
Array.from(terminalFonts.keys()).map(preloadFont),
|
||||
);
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
injectionToken: beforeFrameStartsFirstInjectionToken,
|
||||
|
||||
causesSideEffects: true,
|
||||
});
|
||||
6
types/mocks.d.ts
vendored
6
types/mocks.d.ts
vendored
@ -32,4 +32,8 @@ declare module "*.png";
|
||||
declare module "*.eot";
|
||||
declare module "*.woff";
|
||||
declare module "*.woff2";
|
||||
declare module "*.ttf";
|
||||
|
||||
declare module "*.ttf" {
|
||||
const content: string;
|
||||
export = content;
|
||||
}
|
||||
|
||||
124
yarn.lock
124
yarn.lock
@ -2868,14 +2868,14 @@
|
||||
dependencies:
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.1.tgz#deee67e399f2cb6b4608c935777110e509d8018c"
|
||||
integrity sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ==
|
||||
"@typescript-eslint/eslint-plugin@^5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz#112e6ae1e23a1dc8333ce82bb9c65c2608b4d8a3"
|
||||
integrity sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.48.1"
|
||||
"@typescript-eslint/type-utils" "5.48.1"
|
||||
"@typescript-eslint/utils" "5.48.1"
|
||||
"@typescript-eslint/scope-manager" "5.48.2"
|
||||
"@typescript-eslint/type-utils" "5.48.2"
|
||||
"@typescript-eslint/utils" "5.48.2"
|
||||
debug "^4.3.4"
|
||||
ignore "^5.2.0"
|
||||
natural-compare-lite "^1.4.0"
|
||||
@ -2883,72 +2883,72 @@
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/parser@^5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.1.tgz#d0125792dab7e232035434ab8ef0658154db2f10"
|
||||
integrity sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA==
|
||||
"@typescript-eslint/parser@^5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.2.tgz#c9edef2a0922d26a37dba03be20c5fff378313b3"
|
||||
integrity sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.48.1"
|
||||
"@typescript-eslint/types" "5.48.1"
|
||||
"@typescript-eslint/typescript-estree" "5.48.1"
|
||||
"@typescript-eslint/scope-manager" "5.48.2"
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/typescript-estree" "5.48.2"
|
||||
debug "^4.3.4"
|
||||
|
||||
"@typescript-eslint/scope-manager@5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.1.tgz#39c71e4de639f5fe08b988005beaaf6d79f9d64d"
|
||||
integrity sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ==
|
||||
"@typescript-eslint/scope-manager@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc"
|
||||
integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.48.1"
|
||||
"@typescript-eslint/visitor-keys" "5.48.1"
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/visitor-keys" "5.48.2"
|
||||
|
||||
"@typescript-eslint/type-utils@5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.1.tgz#5d94ac0c269a81a91ad77c03407cea2caf481412"
|
||||
integrity sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ==
|
||||
"@typescript-eslint/type-utils@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz#7d3aeca9fa37a7ab7e3d9056a99b42f342c48ad7"
|
||||
integrity sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "5.48.1"
|
||||
"@typescript-eslint/utils" "5.48.1"
|
||||
"@typescript-eslint/typescript-estree" "5.48.2"
|
||||
"@typescript-eslint/utils" "5.48.2"
|
||||
debug "^4.3.4"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/types@5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.1.tgz#efd1913a9aaf67caf8a6e6779fd53e14e8587e14"
|
||||
integrity sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg==
|
||||
"@typescript-eslint/types@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e"
|
||||
integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.1.tgz#9efa8ee2aa471c6ab62e649f6e64d8d121bc2056"
|
||||
integrity sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA==
|
||||
"@typescript-eslint/typescript-estree@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0"
|
||||
integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.48.1"
|
||||
"@typescript-eslint/visitor-keys" "5.48.1"
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/visitor-keys" "5.48.2"
|
||||
debug "^4.3.4"
|
||||
globby "^11.1.0"
|
||||
is-glob "^4.0.3"
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/utils@5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.1.tgz#20f2f4e88e9e2a0961cbebcb47a1f0f7da7ba7f9"
|
||||
integrity sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA==
|
||||
"@typescript-eslint/utils@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3"
|
||||
integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.9"
|
||||
"@types/semver" "^7.3.12"
|
||||
"@typescript-eslint/scope-manager" "5.48.1"
|
||||
"@typescript-eslint/types" "5.48.1"
|
||||
"@typescript-eslint/typescript-estree" "5.48.1"
|
||||
"@typescript-eslint/scope-manager" "5.48.2"
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
"@typescript-eslint/typescript-estree" "5.48.2"
|
||||
eslint-scope "^5.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
semver "^7.3.7"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.48.1":
|
||||
version "5.48.1"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.1.tgz#79fd4fb9996023ef86849bf6f904f33eb6c8fccb"
|
||||
integrity sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA==
|
||||
"@typescript-eslint/visitor-keys@5.48.2":
|
||||
version "5.48.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060"
|
||||
integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.48.1"
|
||||
"@typescript-eslint/types" "5.48.2"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@webassemblyjs/ast@1.11.1":
|
||||
@ -3483,7 +3483,7 @@ array.prototype.flat@^1.3.1:
|
||||
es-abstract "^1.20.4"
|
||||
es-shim-unscopables "^1.0.0"
|
||||
|
||||
array.prototype.flatmap@^1.3.0, array.prototype.flatmap@^1.3.1:
|
||||
array.prototype.flatmap@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183"
|
||||
integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==
|
||||
@ -5873,14 +5873,14 @@ eslint-plugin-header@^3.1.1:
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6"
|
||||
integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==
|
||||
|
||||
eslint-plugin-import@^2.27.4:
|
||||
version "2.27.4"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.4.tgz#319c2f6f6580e1678d674a258ee5e981c10cc25b"
|
||||
integrity sha512-Z1jVt1EGKia1X9CnBCkpAOhWy8FgQ7OmJ/IblEkT82yrFU/xJaxwujaTzLWqigewwynRQ9mmHfX9MtAfhxm0sA==
|
||||
eslint-plugin-import@^2.27.5:
|
||||
version "2.27.5"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65"
|
||||
integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==
|
||||
dependencies:
|
||||
array-includes "^3.1.6"
|
||||
array.prototype.flat "^1.3.1"
|
||||
array.prototype.flatmap "^1.3.0"
|
||||
array.prototype.flatmap "^1.3.1"
|
||||
debug "^3.2.7"
|
||||
doctrine "^2.1.0"
|
||||
eslint-import-resolver-node "^0.3.7"
|
||||
@ -5899,10 +5899,10 @@ eslint-plugin-react-hooks@^4.6.0:
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
|
||||
integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
|
||||
|
||||
eslint-plugin-react@7.32.0:
|
||||
version "7.32.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.0.tgz#d80f794a638c5770f952ba2ae793f0a516be7c09"
|
||||
integrity sha512-vSBi1+SrPiLZCGvxpiZIa28fMEUaMjXtCplrvxcIxGzmFiYdsXQDwInEjuv5/i/2CTTxbkS87tE8lsQ0Qxinbw==
|
||||
eslint-plugin-react@^7.32.1:
|
||||
version "7.32.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200"
|
||||
integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==
|
||||
dependencies:
|
||||
array-includes "^3.1.6"
|
||||
array.prototype.flatmap "^1.3.1"
|
||||
@ -7454,10 +7454,10 @@ immediate@~3.0.5:
|
||||
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
|
||||
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
|
||||
|
||||
immer@^9.0.17:
|
||||
version "9.0.17"
|
||||
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.17.tgz#7cfe8fbb8b461096444e9da7a5ec4a67c6c4adf4"
|
||||
integrity sha512-+hBruaLSQvkPfxRiTLK/mi4vLH+/VQS6z2KJahdoxlleFOI8ARqzOF17uy12eFDlqWmPoygwc5evgwcp+dlHhg==
|
||||
immer@^9.0.18:
|
||||
version "9.0.18"
|
||||
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.18.tgz#d2faee58fd0e34f017f329b98cdab37826fa31b8"
|
||||
integrity sha512-eAPNpsj7Ax1q6Y/3lm2PmlwRcFzpON7HSNQ3ru5WQH1/PSpnyed/HpNOELl2CxLKoj4r+bAHgdyKqW5gc2Se1A==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.0.0"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user