diff --git a/.github/workflows/bump-master-version.yaml b/.github/workflows/bump-master-version.yaml index cd9fc33023..df6688d353 100644 --- a/.github/workflows/bump-master-version.yaml +++ b/.github/workflows/bump-master-version.yaml @@ -37,7 +37,7 @@ jobs: echo "status=create" >> $GITHUB_OUTPUT - uses: peter-evans/create-pull-request@v4 - if: ${{ steps.bump.outputs.status == "create" }} + if: ${{ steps.bump.outputs.status == 'create' }} with: add-paths: package.json commit-message: Update package.json version to next preminor because of recent release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c5d84bf0e..4fc05cd5d3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,5 +34,6 @@ jobs: uses: ./.github/workflows/publish-release-npm.yml needs: release if: ${{ needs.release.outputs.version != '' }} + secrets: inherit with: version: ${{ needs.release.outputs.version }} diff --git a/package.json b/package.json index b7a2a9fcca..e05f484da9 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "OpenLens", "description": "OpenLens - Open Source IDE for Kubernetes", "homepage": "https://github.com/lensapp/lens", - "version": "6.4.0-alpha.2", + "version": "6.4.0-alpha.3", "repository": { "type": "git", "url": "git+https://github.com/lensapp/lens.git" @@ -262,12 +262,12 @@ "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", "lodash": "^4.17.15", - "marked": "^4.2.5", + "marked": "^4.2.12", "md5-file": "^5.0.0", "mobx": "^6.7.0", "mobx-observable-history": "^2.0.3", @@ -312,7 +312,7 @@ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@sentry/types": "^6.19.7", "@swc/cli": "^0.1.59", - "@swc/core": "^1.3.25", + "@swc/core": "^1.3.26", "@swc/jest": "^0.2.24", "@testing-library/dom": "^7.31.2", "@testing-library/jest-dom": "^5.16.5", @@ -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", @@ -387,13 +387,13 @@ "electron": "^19.1.9", "electron-builder": "^23.6.0", "electron-notarize": "^0.3.0", - "esbuild": "^0.16.16", - "esbuild-loader": "^2.20.0", - "eslint": "^8.31.0", - "eslint-import-resolver-typescript": "^3.5.2", + "esbuild": "^0.17.0", + "esbuild-loader": "^2.21.0", + "eslint": "^8.32.0", + "eslint-import-resolver-typescript": "^3.5.3", "eslint-plugin-header": "^3.1.1", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-react": "7.31.11", + "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", diff --git a/src/common/catalog-entities/kubernetes-cluster.ts b/src/common/catalog-entities/kubernetes-cluster.ts index d47ab47831..57cac07122 100644 --- a/src/common/catalog-entities/kubernetes-cluster.ts +++ b/src/common/catalog-entities/kubernetes-cluster.ts @@ -8,7 +8,7 @@ import { CatalogEntity, CatalogCategory, categoryVersion } from "../catalog/cata import { broadcastMessage } from "../ipc"; import { app } from "electron"; import type { CatalogEntityConstructor, CatalogEntitySpec } from "../catalog/catalog-entity"; -import { IpcRendererNavigationEvents } from "../../renderer/navigation/events"; +import { IpcRendererNavigationEvents } from "../ipc/navigation-events"; import { requestClusterActivation, requestClusterDisconnection } from "../../renderer/ipc"; import KubeClusterCategoryIcon from "./icons/kubernetes.svg"; import getClusterByIdInjectable from "../cluster-store/get-by-id.injectable"; diff --git a/src/common/front-end-routing/app-navigation-channel.ts b/src/common/front-end-routing/app-navigation-channel.ts index e0b881eff9..b3d8f02c66 100644 --- a/src/common/front-end-routing/app-navigation-channel.ts +++ b/src/common/front-end-routing/app-navigation-channel.ts @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { IpcRendererNavigationEvents } from "../../renderer/navigation/events"; +import { IpcRendererNavigationEvents } from "../ipc/navigation-events"; import type { MessageChannel } from "../utils/channel/message-channel-listener-injection-token"; export type AppNavigationChannel = MessageChannel; diff --git a/src/common/front-end-routing/cluster-frame-navigation-channel.ts b/src/common/front-end-routing/cluster-frame-navigation-channel.ts index 9d9a1904af..2439f523e2 100644 --- a/src/common/front-end-routing/cluster-frame-navigation-channel.ts +++ b/src/common/front-end-routing/cluster-frame-navigation-channel.ts @@ -2,7 +2,7 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { IpcRendererNavigationEvents } from "../../renderer/navigation/events"; +import { IpcRendererNavigationEvents } from "../ipc/navigation-events"; import type { MessageChannel } from "../utils/channel/message-channel-listener-injection-token"; export type ClusterFrameNavigationChannel = MessageChannel; diff --git a/src/common/ipc/ipc-main-injection-token.ts b/src/common/ipc/ipc-main-injection-token.ts new file mode 100644 index 0000000000..932c700c97 --- /dev/null +++ b/src/common/ipc/ipc-main-injection-token.ts @@ -0,0 +1,12 @@ +/** + * 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"; +import type { IpcMain } from "electron"; + +const ipcMainInjectionToken = getInjectionToken({ + id: "ipc-main-injection-token", +}); + +export default ipcMainInjectionToken; diff --git a/src/common/ipc/ipc.ts b/src/common/ipc/ipc.ts index f11227d17e..e84fcfec56 100644 --- a/src/common/ipc/ipc.ts +++ b/src/common/ipc/ipc.ts @@ -12,17 +12,17 @@ import { toJS } from "../utils/toJS"; import type { ClusterFrameInfo } from "../cluster-frames"; import { clusterFrameMap } from "../cluster-frames"; import type { Disposer } from "../utils"; -import ipcMainInjectable from "../../main/utils/channel/ipc-main/ipc-main.injectable"; import { getLegacyGlobalDiForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; import ipcRendererInjectable from "../../renderer/utils/channel/ipc-renderer.injectable"; import loggerInjectable from "../logger.injectable"; +import ipcMainInjectionToken from "./ipc-main-injection-token"; export const broadcastMainChannel = "ipc:broadcast-main"; export function ipcMainHandle(channel: string, listener: (event: Electron.IpcMainInvokeEvent, ...args: any[]) => any) { const di = getLegacyGlobalDiForExtensionApi(); - const ipcMain = di.inject(ipcMainInjectable); + const ipcMain = di.inject(ipcMainInjectionToken); ipcMain.handle(channel, async (event, ...args) => { return sanitizePayload(await listener(event, ...args)); @@ -90,7 +90,7 @@ export async function broadcastMessage(channel: string, ...args: any[]): Promise export function ipcMainOn(channel: string, listener: (event: Electron.IpcMainEvent, ...args: any[]) => any): Disposer { const di = getLegacyGlobalDiForExtensionApi(); - const ipcMain = di.inject(ipcMainInjectable); + const ipcMain = di.inject(ipcMainInjectionToken); ipcMain.on(channel, listener); diff --git a/src/renderer/navigation/events.ts b/src/common/ipc/navigation-events.ts similarity index 100% rename from src/renderer/navigation/events.ts rename to src/common/ipc/navigation-events.ts diff --git a/src/extensions/common-api/k8s-api.ts b/src/extensions/common-api/k8s-api.ts index c24f7d14e3..3150c920f6 100644 --- a/src/extensions/common-api/k8s-api.ts +++ b/src/extensions/common-api/k8s-api.ts @@ -27,6 +27,10 @@ import { getLegacyGlobalDiForExtensionApi } from "../as-legacy-globals-for-exten import maybeKubeApiInjectable from "../../common/k8s-api/maybe-kube-api.injectable"; import { DeploymentApi as InternalDeploymentApi, IngressApi as InternalIngressApi, NodeApi, PersistentVolumeClaimApi, PodApi } from "../../common/k8s-api/endpoints"; import { storesAndApisCanBeCreatedInjectionToken } from "../../common/k8s-api/stores-apis-can-be-created.token"; +import type { JsonApiConfig } from "../../common/k8s-api/json-api"; +import type { KubeJsonApi as InternalKubeJsonApi } from "../../common/k8s-api/kube-json-api"; +import createKubeJsonApiInjectable from "../../common/k8s-api/create-kube-json-api.injectable"; +import type { RequestInit } from "node-fetch"; export const apiManager = asLegacyGlobalForExtensionApi(apiManagerInjectable); export const forCluster = asLegacyGlobalFunctionForExtensionApi(createKubeApiForClusterInjectable); @@ -107,11 +111,24 @@ export { type KubeStatusData, } from "../../common/k8s-api/kube-object"; -export { - KubeJsonApi, - type KubeJsonApiData, +export type { + KubeJsonApiData, } from "../../common/k8s-api/kube-json-api"; +function KubeJsonApiCstr(config: JsonApiConfig, reqInit?: RequestInit) { + const di = getLegacyGlobalDiForExtensionApi(); + const createKubeJsonApi = di.inject(createKubeJsonApiInjectable); + + return createKubeJsonApi(config, reqInit); +} + +export const KubeJsonApi = Object.assign( + KubeJsonApiCstr as unknown as new (config: JsonApiConfig, reqInit?: RequestInit) => InternalKubeJsonApi, + { + forCluster, + }, +); + export abstract class KubeObjectStore< K extends KubeObject = KubeObject, A extends InternalKubeApi = InternalKubeApi>, diff --git a/src/extensions/renderer-api/components.ts b/src/extensions/renderer-api/components.ts index dc8c52053d..e4102433bf 100644 --- a/src/extensions/renderer-api/components.ts +++ b/src/extensions/renderer-api/components.ts @@ -73,14 +73,14 @@ export * from "../../renderer/components/dialog"; export * from "../../renderer/components/line-progress"; export * from "../../renderer/components/menu"; -export type { - CreateNotificationOptions, - Notification, - NotificationId, - NotificationMessage, +export { NotificationStatus, - ShowNotification, - NotificationsStore, + type CreateNotificationOptions, + type Notification, + type NotificationId, + type NotificationMessage, + type ShowNotification, + type NotificationsStore, } from "../../renderer/components/notifications"; export const Notifications = { diff --git a/src/features/preferences/__snapshots__/navigation-to-terminal-preferences.test.ts.snap b/src/features/preferences/__snapshots__/navigation-to-terminal-preferences.test.ts.snap index 0fe8c4df2c..0c485b5f27 100644 --- a/src/features/preferences/__snapshots__/navigation-to-terminal-preferences.test.ts.snap +++ b/src/features/preferences/__snapshots__/navigation-to-terminal-preferences.test.ts.snap @@ -1141,7 +1141,7 @@ exports[`preferences - navigation to terminal preferences given in preferences, class="Select__single-value css-1dimb5e-singleValue" > RobotoMono diff --git a/src/features/preferences/renderer/preference-items/terminal/terminal-font-family/terminal-font-family.tsx b/src/features/preferences/renderer/preference-items/terminal/terminal-font-family/terminal-font-family.tsx index 14bc5efacd..cdd7a96633 100644 --- a/src/features/preferences/renderer/preference-items/terminal/terminal-font-family/terminal-font-family.tsx +++ b/src/features/preferences/renderer/preference-items/terminal/terminal-font-family/terminal-font-family.tsx @@ -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 type { TerminalFontPreferencePresenter } from "./terminal-font-options.injectable"; +import terminalFontPreferencePresenterInjectable from "./terminal-font-options.injectable"; interface Dependencies { - userStore: UserStore; - logger: Logger; + model: TerminalFontPreferencePresenter; } -const NonInjectedTerminalFontFamily = observer( - ({ userStore, logger }: Dependencies) => { +const NonInjectedTerminalFontFamily = observer(({ model }: Dependencies) => ( +
+ + -
- ); - }, -); - -export const TerminalFontFamily = withInjectables( - NonInjectedTerminalFontFamily, - - { - getProps: (di) => ({ - userStore: di.inject(userStoreInjectable), - logger: di.inject(loggerInjectable), - }), - }, -); +export const TerminalFontFamily = withInjectables(NonInjectedTerminalFontFamily, { + getProps: (di) => ({ + model: di.inject(terminalFontPreferencePresenterInjectable), + }), +}); diff --git a/src/features/preferences/renderer/preference-items/terminal/terminal-font-family/terminal-font-options.injectable.tsx b/src/features/preferences/renderer/preference-items/terminal/terminal-font-family/terminal-font-options.injectable.tsx new file mode 100644 index 0000000000..3d6a0d2ae0 --- /dev/null +++ b/src/features/preferences/renderer/preference-items/terminal/terminal-font-family/terminal-font-options.injectable.tsx @@ -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[]>; + readonly current: IComputedValue; + onSelection: (selection: SingleValue>) => 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: ( + + {font.name} + + ), + 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; diff --git a/src/renderer/fonts/AnonymousPro-Regular.ttf b/src/features/terminal/renderer/fonts/AnonymousPro-Regular.ttf similarity index 100% rename from src/renderer/fonts/AnonymousPro-Regular.ttf rename to src/features/terminal/renderer/fonts/AnonymousPro-Regular.ttf diff --git a/src/renderer/fonts/IBMPlexMono-Regular.ttf b/src/features/terminal/renderer/fonts/IBMPlexMono-Regular.ttf similarity index 100% rename from src/renderer/fonts/IBMPlexMono-Regular.ttf rename to src/features/terminal/renderer/fonts/IBMPlexMono-Regular.ttf diff --git a/src/renderer/fonts/JetBrainsMono-Regular.ttf b/src/features/terminal/renderer/fonts/JetBrainsMono-Regular.ttf similarity index 100% rename from src/renderer/fonts/JetBrainsMono-Regular.ttf rename to src/features/terminal/renderer/fonts/JetBrainsMono-Regular.ttf diff --git a/src/renderer/fonts/RedHatMono-Regular.ttf b/src/features/terminal/renderer/fonts/RedHatMono-Regular.ttf similarity index 100% rename from src/renderer/fonts/RedHatMono-Regular.ttf rename to src/features/terminal/renderer/fonts/RedHatMono-Regular.ttf diff --git a/src/renderer/fonts/Roboto-Mono-nerd.ttf b/src/features/terminal/renderer/fonts/Roboto-Mono.ttf similarity index 100% rename from src/renderer/fonts/Roboto-Mono-nerd.ttf rename to src/features/terminal/renderer/fonts/Roboto-Mono.ttf diff --git a/src/renderer/fonts/SourceCodePro-Regular.ttf b/src/features/terminal/renderer/fonts/SourceCodePro-Regular.ttf similarity index 100% rename from src/renderer/fonts/SourceCodePro-Regular.ttf rename to src/features/terminal/renderer/fonts/SourceCodePro-Regular.ttf diff --git a/src/renderer/fonts/SpaceMono-Regular.ttf b/src/features/terminal/renderer/fonts/SpaceMono-Regular.ttf similarity index 100% rename from src/renderer/fonts/SpaceMono-Regular.ttf rename to src/features/terminal/renderer/fonts/SpaceMono-Regular.ttf diff --git a/src/renderer/fonts/UbuntuMono-Regular.ttf b/src/features/terminal/renderer/fonts/UbuntuMono-Regular.ttf similarity index 100% rename from src/renderer/fonts/UbuntuMono-Regular.ttf rename to src/features/terminal/renderer/fonts/UbuntuMono-Regular.ttf diff --git a/src/features/terminal/renderer/fonts/anonymous-pro.injectable.ts b/src/features/terminal/renderer/fonts/anonymous-pro.injectable.ts new file mode 100644 index 0000000000..d0a671e5bd --- /dev/null +++ b/src/features/terminal/renderer/fonts/anonymous-pro.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/fonts.injectable.ts b/src/features/terminal/renderer/fonts/fonts.injectable.ts new file mode 100644 index 0000000000..2c8dc1d57a --- /dev/null +++ b/src/features/terminal/renderer/fonts/fonts.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/ibm-plex-mono.injectable.ts b/src/features/terminal/renderer/fonts/ibm-plex-mono.injectable.ts new file mode 100644 index 0000000000..b75440adbc --- /dev/null +++ b/src/features/terminal/renderer/fonts/ibm-plex-mono.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/jetbrains-mono.injectable.ts b/src/features/terminal/renderer/fonts/jetbrains-mono.injectable.ts new file mode 100644 index 0000000000..c86d93d55a --- /dev/null +++ b/src/features/terminal/renderer/fonts/jetbrains-mono.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/load-font.global-override-for-injectable.ts b/src/features/terminal/renderer/fonts/load-font.global-override-for-injectable.ts new file mode 100644 index 0000000000..0d1b23bfde --- /dev/null +++ b/src/features/terminal/renderer/fonts/load-font.global-override-for-injectable.ts @@ -0,0 +1,9 @@ +/** + * 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 loadTerminalFontInjectable from "./load-font.injectable"; + +export default getGlobalOverride(loadTerminalFontInjectable, () => async () => {}); diff --git a/src/features/terminal/renderer/fonts/load-font.injectable.ts b/src/features/terminal/renderer/fonts/load-font.injectable.ts new file mode 100644 index 0000000000..920042e5df --- /dev/null +++ b/src/features/terminal/renderer/fonts/load-font.injectable.ts @@ -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; + +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; diff --git a/src/features/terminal/renderer/fonts/preload-fonts.injectable.ts b/src/features/terminal/renderer/fonts/preload-fonts.injectable.ts new file mode 100644 index 0000000000..64c40247b7 --- /dev/null +++ b/src/features/terminal/renderer/fonts/preload-fonts.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/red-hat-mono.injectable.ts b/src/features/terminal/renderer/fonts/red-hat-mono.injectable.ts new file mode 100644 index 0000000000..4229bc8d1d --- /dev/null +++ b/src/features/terminal/renderer/fonts/red-hat-mono.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/roboto-mono.injectable.ts b/src/features/terminal/renderer/fonts/roboto-mono.injectable.ts new file mode 100644 index 0000000000..e3aa188486 --- /dev/null +++ b/src/features/terminal/renderer/fonts/roboto-mono.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/source-code-pro.injectable.ts b/src/features/terminal/renderer/fonts/source-code-pro.injectable.ts new file mode 100644 index 0000000000..8b84a275f3 --- /dev/null +++ b/src/features/terminal/renderer/fonts/source-code-pro.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/space-mono.injectable.ts b/src/features/terminal/renderer/fonts/space-mono.injectable.ts new file mode 100644 index 0000000000..ea2df1c72e --- /dev/null +++ b/src/features/terminal/renderer/fonts/space-mono.injectable.ts @@ -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; diff --git a/src/features/terminal/renderer/fonts/token.ts b/src/features/terminal/renderer/fonts/token.ts new file mode 100644 index 0000000000..8f90d400e2 --- /dev/null +++ b/src/features/terminal/renderer/fonts/token.ts @@ -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({ + id: "terminal-font-token", +}); diff --git a/src/features/terminal/renderer/fonts/ubuntu-mono.injectable.ts b/src/features/terminal/renderer/fonts/ubuntu-mono.injectable.ts new file mode 100644 index 0000000000..ab8ffb7b78 --- /dev/null +++ b/src/features/terminal/renderer/fonts/ubuntu-mono.injectable.ts @@ -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; diff --git a/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts b/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts index 6be9826c98..bdcd3034d3 100644 --- a/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts +++ b/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts @@ -4,11 +4,11 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { reaction } from "mobx"; +import ipcMainInjectionToken from "../../common/ipc/ipc-main-injection-token"; import { catalogInitChannel } from "../../common/ipc/catalog"; import { disposer, toJS } from "../../common/utils"; import { getStartableStoppable } from "../../common/utils/get-startable-stoppable"; import catalogEntityRegistryInjectable from "../catalog/entity-registry.injectable"; -import ipcMainInjectable from "../utils/channel/ipc-main/ipc-main.injectable"; import catalogSyncBroadcasterInjectable from "./broadcaster.injectable"; const catalogSyncToRendererInjectable = getInjectable({ @@ -16,7 +16,7 @@ const catalogSyncToRendererInjectable = getInjectable({ instantiate: (di) => { const catalogEntityRegistry = di.inject(catalogEntityRegistryInjectable); - const ipcMain = di.inject(ipcMainInjectable); + const ipcMain = di.inject(ipcMainInjectionToken); const catalogSyncBroadcaster = di.inject(catalogSyncBroadcasterInjectable); return getStartableStoppable( diff --git a/src/main/cluster/manager.ts b/src/main/cluster/manager.ts index 6888a44f5f..650a3b7752 100644 --- a/src/main/cluster/manager.ts +++ b/src/main/cluster/manager.ts @@ -145,31 +145,31 @@ export class ClusterManager { } else { entity.status.phase = (() => { if (!cluster) { - this.dependencies.logger.debug(`${logPrefix} setting entity ${entity.getName()} to DISCONNECTED, reason="no cluster"`); + this.dependencies.logger.silly(`${logPrefix} setting entity ${entity.getName()} to DISCONNECTED, reason="no cluster"`); return LensKubernetesClusterStatus.DISCONNECTED; } if (cluster.accessible) { - this.dependencies.logger.debug(`${logPrefix} setting entity ${entity.getName()} to CONNECTED, reason="cluster is accessible"`); + this.dependencies.logger.silly(`${logPrefix} setting entity ${entity.getName()} to CONNECTED, reason="cluster is accessible"`); return LensKubernetesClusterStatus.CONNECTED; } if (!cluster.disconnected) { - this.dependencies.logger.debug(`${logPrefix} setting entity ${entity.getName()} to CONNECTING, reason="cluster is not disconnected"`); + this.dependencies.logger.silly(`${logPrefix} setting entity ${entity.getName()} to CONNECTING, reason="cluster is not disconnected"`); return LensKubernetesClusterStatus.CONNECTING; } // Extensions are not allowed to use the Lens specific status phases if (!lensSpecificClusterStatuses.has(entity?.status?.phase)) { - this.dependencies.logger.debug(`${logPrefix} not clearing entity ${entity.getName()} status, reason="custom string"`); + this.dependencies.logger.silly(`${logPrefix} not clearing entity ${entity.getName()} status, reason="custom string"`); return entity.status.phase; } - this.dependencies.logger.debug(`${logPrefix} setting entity ${entity.getName()} to DISCONNECTED, reason="fallthrough"`); + this.dependencies.logger.silly(`${logPrefix} setting entity ${entity.getName()} to DISCONNECTED, reason="fallthrough"`); return LensKubernetesClusterStatus.DISCONNECTED; })(); diff --git a/src/main/start-main-application/lens-window/application-window/wait-until-bundled-extensions-are-loaded.injectable.ts b/src/main/start-main-application/lens-window/application-window/wait-until-bundled-extensions-are-loaded.injectable.ts index 2c0f30b83b..4046db5d9d 100644 --- a/src/main/start-main-application/lens-window/application-window/wait-until-bundled-extensions-are-loaded.injectable.ts +++ b/src/main/start-main-application/lens-window/application-window/wait-until-bundled-extensions-are-loaded.injectable.ts @@ -3,15 +3,15 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; +import ipcMainInjectionToken from "../../../../common/ipc/ipc-main-injection-token"; import { bundledExtensionsLoaded } from "../../../../common/ipc/extension-handling"; import { delay } from "../../../../common/utils"; -import ipcMainInjectable from "../../../utils/channel/ipc-main/ipc-main.injectable"; const waitUntilBundledExtensionsAreLoadedInjectable = getInjectable({ id: "wait-until-bundled-extensions-are-loaded", instantiate: (di) => { - const ipcMain = di.inject(ipcMainInjectable); + const ipcMain = di.inject(ipcMainInjectionToken); return async () => { const viewHasLoaded = new Promise((resolve) => { diff --git a/src/main/start-main-application/lens-window/navigate.injectable.ts b/src/main/start-main-application/lens-window/navigate.injectable.ts index 8b204be9b3..7bcd14072b 100644 --- a/src/main/start-main-application/lens-window/navigate.injectable.ts +++ b/src/main/start-main-application/lens-window/navigate.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { iter } from "../../../common/utils"; import clusterFramesInjectable from "../../../common/cluster-frames.injectable"; -import { IpcRendererNavigationEvents } from "../../../renderer/navigation/events"; +import { IpcRendererNavigationEvents } from "../../../common/ipc/navigation-events"; import showApplicationWindowInjectable from "./show-application-window.injectable"; import getCurrentApplicationWindowInjectable from "./application-window/get-current-application-window.injectable"; import assert from "assert"; diff --git a/src/main/utils/channel/channel-listeners/enlist-message-channel-listener.injectable.ts b/src/main/utils/channel/channel-listeners/enlist-message-channel-listener.injectable.ts index 6ace54c845..db6435ea56 100644 --- a/src/main/utils/channel/channel-listeners/enlist-message-channel-listener.injectable.ts +++ b/src/main/utils/channel/channel-listeners/enlist-message-channel-listener.injectable.ts @@ -4,14 +4,14 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import type { IpcMainEvent } from "electron"; -import ipcMainInjectable from "../ipc-main/ipc-main.injectable"; import { enlistMessageChannelListenerInjectionToken } from "../../../../common/utils/channel/enlist-message-channel-listener-injection-token"; +import ipcMainInjectionToken from "../../../../common/ipc/ipc-main-injection-token"; const enlistMessageChannelListenerInjectable = getInjectable({ id: "enlist-message-channel-listener-for-main", instantiate: (di) => { - const ipcMain = di.inject(ipcMainInjectable); + const ipcMain = di.inject(ipcMainInjectionToken); return ({ channel, handler }) => { const nativeOnCallback = (_: IpcMainEvent, message: unknown) => { diff --git a/src/main/utils/channel/channel-listeners/enlist-request-channel-listener.injectable.ts b/src/main/utils/channel/channel-listeners/enlist-request-channel-listener.injectable.ts index d72e4afcaf..1af1b6fb55 100644 --- a/src/main/utils/channel/channel-listeners/enlist-request-channel-listener.injectable.ts +++ b/src/main/utils/channel/channel-listeners/enlist-request-channel-listener.injectable.ts @@ -4,10 +4,10 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import type { IpcMainInvokeEvent } from "electron"; -import ipcMainInjectable from "../ipc-main/ipc-main.injectable"; import type { Disposer } from "../../../../common/utils"; import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token"; import type { RequestChannelListener } from "./listener-tokens"; +import ipcMainInjectionToken from "../../../../common/ipc/ipc-main-injection-token"; export type EnlistRequestChannelListener = >(listener: RequestChannelListener) => Disposer; @@ -15,7 +15,7 @@ const enlistRequestChannelListenerInjectable = getInjectable({ id: "enlist-request-channel-listener-for-main", instantiate: (di): EnlistRequestChannelListener => { - const ipcMain = di.inject(ipcMainInjectable); + const ipcMain = di.inject(ipcMainInjectionToken); return ({ channel, handler }) => { const nativeHandleCallback = (_: IpcMainInvokeEvent, request: unknown) => handler(request); diff --git a/src/main/utils/channel/ipc-main/ipc-main.injectable.ts b/src/main/utils/channel/ipc-main/ipc-main.injectable.ts index 13684bf8ec..b012c5be47 100644 --- a/src/main/utils/channel/ipc-main/ipc-main.injectable.ts +++ b/src/main/utils/channel/ipc-main/ipc-main.injectable.ts @@ -4,11 +4,13 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { ipcMain } from "electron"; +import ipcMainInjectionToken from "../../../../common/ipc/ipc-main-injection-token"; const ipcMainInjectable = getInjectable({ id: "ipc-main", instantiate: () => ipcMain, causesSideEffects: true, + injectionToken: ipcMainInjectionToken, }); export default ipcMainInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts index 20566b5dac..5d6efad5eb 100644 --- a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts @@ -16,7 +16,6 @@ const setupKubernetesClusterCatalogAddMenuListenerInjectable = getInjectable({ instantiate: (di) => ({ id: "setup-kubernetes-cluster-catalog-add-menu-listener", run: () => { - // NOTE: these have to be here so that they are initialized only after the `runAfter` is ran const navigateToAddCluster = di.inject(navigateToAddClusterInjectable); const addSyncEntries = di.inject(addSyncEntriesInjectable); const kubernetesClusterCategory = di.inject(kubernetesClusterCategoryInjectable); diff --git a/src/renderer/components/app.scss b/src/renderer/components/app.scss index f44d1ee165..b8dd5007b1 100755 --- a/src/renderer/components/app.scss +++ b/src/renderer/components/app.scss @@ -232,22 +232,6 @@ iframe { } } -#fonts-preloading { - > span { - position: absolute; - visibility: hidden; - height: 0; - - &:before { - width: 0; - display: block; - overflow: hidden; - content: "text-example"; // some text required to start applying/rendering font in document - font-family: inherit; // font-family must be specified via style="" (see: template.html) - } - } -} - // app's common loading indicator, displaying on the route transitions #loading { position: absolute; diff --git a/src/renderer/components/cluster-manager/cluster-frame-handler.ts b/src/renderer/components/cluster-manager/cluster-frame-handler.ts index cc980eb91d..f1b169915f 100644 --- a/src/renderer/components/cluster-manager/cluster-frame-handler.ts +++ b/src/renderer/components/cluster-manager/cluster-frame-handler.ts @@ -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(); }, ); diff --git a/src/renderer/components/command-palette/command-dialog.tsx b/src/renderer/components/command-palette/command-dialog.tsx index db33bde1cd..ba4036f4c5 100644 --- a/src/renderer/components/command-palette/command-dialog.tsx +++ b/src/renderer/components/command-palette/command-dialog.tsx @@ -11,7 +11,7 @@ import React, { useState } from "react"; import commandOverlayInjectable from "./command-overlay.injectable"; import type { CatalogEntity } from "../../../common/catalog"; import { broadcastMessage } from "../../../common/ipc"; -import { IpcRendererNavigationEvents } from "../../navigation/events"; +import { IpcRendererNavigationEvents } from "../../../common/ipc/navigation-events"; import type { RegisteredCommand } from "./registered-commands/commands"; import { iter } from "../../utils"; import { withInjectables } from "@ogre-tools/injectable-react"; diff --git a/src/renderer/components/dock/terminal/create-terminal.injectable.ts b/src/renderer/components/dock/terminal/create-terminal.injectable.ts index 27c7c0664a..2ff82e2c17 100644 --- a/src/renderer/components/dock/terminal/create-terminal.injectable.ts +++ b/src/renderer/components/dock/terminal/create-terminal.injectable.ts @@ -9,7 +9,8 @@ import type { TabId } from "../dock/store"; import type { TerminalApi } from "../../../api/terminal-api"; import terminalSpawningPoolInjectable from "./terminal-spawning-pool.injectable"; import terminalConfigInjectable from "../../../../common/user-store/terminal-config.injectable"; -import terminalCopyOnSelectInjectable from "../../../../common/user-store/terminal-copy-on-select.injectable"; +import terminalCopyOnSelectInjectable + from "../../../../common/user-store/terminal-copy-on-select.injectable"; import isMacInjectable from "../../../../common/vars/is-mac.injectable"; import openLinkInBrowserInjectable from "../../../../common/utils/open-link-in-browser.injectable"; import xtermColorThemeInjectable from "../../../themes/terminal-colors.injectable"; diff --git a/src/renderer/components/fonts.scss b/src/renderer/components/fonts.scss index 40f9e9625b..ebbe2894dc 100644 --- a/src/renderer/components/fonts.scss +++ b/src/renderer/components/fonts.scss @@ -44,58 +44,3 @@ font-display: block; src: url("../fonts/MaterialIcons-Regular.ttf") format("truetype"); } - - -// Terminal fonts (monospaced) -// Source: https://fonts.google.com/?category=Monospace -@font-face { - font-family: "Anonymous Pro"; - src: local("Anonymous Pro"), url("../fonts/AnonymousPro-Regular.ttf") format("truetype"); - font-display: block; -} - -@font-face { - font-family: "IBM Plex Mono"; - src: local("IBM Plex Mono"), url("../fonts/IBMPlexMono-Regular.ttf") format("truetype"); - font-display: block; -} - -@font-face { - font-family: "JetBrains Mono"; - src: local("JetBrains Mono"), url("../fonts/JetBrainsMono-Regular.ttf") format("truetype"); - font-display: block; -} - -@font-face { - font-family: "Red Hat Mono"; - src: local("Red Hat Mono"), url("../fonts/RedHatMono-Regular.ttf") format("truetype"); - font-display: block; -} - - -@font-face { - font-family: "Source Code Pro"; - src: local("Source Code Pro"), url("../fonts/SourceCodePro-Regular.ttf") format("truetype"); - font-display: block; -} - -@font-face { - font-family: "Space Mono"; - src: local("Space Mono"), url("../fonts/SpaceMono-Regular.ttf") format("truetype"); - font-display: block; -} - -@font-face { - font-family: "Ubuntu Mono"; - src: local("Ubuntu Mono"), url("../fonts/UbuntuMono-Regular.ttf") format("truetype"); - font-display: block; -} - -// Patched RobotoMono font with icons -// RobotoMono Windows Compatible for using in terminal -// https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/RobotoMono -@font-face { - font-family: "RobotoMono"; - src: local("RobotoMono"), url("../fonts/Roboto-Mono-nerd.ttf") format("truetype"); - font-display: block; -} diff --git a/src/renderer/components/kube-object-list-layout/__snapshots__/kube-object-list-layout.test.tsx.snap b/src/renderer/components/kube-object-list-layout/__snapshots__/kube-object-list-layout.test.tsx.snap new file mode 100644 index 0000000000..b450030c9c --- /dev/null +++ b/src/renderer/components/kube-object-list-layout/__snapshots__/kube-object-list-layout.test.tsx.snap @@ -0,0 +1,121 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`kube-object-list-layout given pod store renders 1`] = ` + +
+
+
+
+
+ Pods +
+
+ 0 items +
+
+
+ + +
+
+
+ All namespaces +
+
+ +
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +`; diff --git a/src/renderer/components/kube-object-list-layout/kube-object-list-layout.test.tsx b/src/renderer/components/kube-object-list-layout/kube-object-list-layout.test.tsx new file mode 100644 index 0000000000..d50d70c723 --- /dev/null +++ b/src/renderer/components/kube-object-list-layout/kube-object-list-layout.test.tsx @@ -0,0 +1,108 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import type { DiContainer } from "@ogre-tools/injectable"; +import "@testing-library/jest-dom/extend-expect"; +import type { RenderResult } from "@testing-library/react"; +import React from "react"; +import subscribeStoresInjectable from "../../kube-watch-api/subscribe-stores.injectable"; +import { getDiForUnitTesting } from "../../getDiForUnitTesting"; +import kubeSelectedUrlParamInjectable from "../kube-detail-params/kube-selected-url.injectable"; +import toggleKubeDetailsPaneInjectable from "../kube-detail-params/toggle-details.injectable"; +import type { DiRender } from "../test-utils/renderFor"; +import { renderFor } from "../test-utils/renderFor"; +import { KubeObjectListLayout } from "./index"; +import appPathsStateInjectable from "../../../common/app-paths/app-paths-state.injectable"; +import podStoreInjectable from "../+workloads-pods/store.injectable"; +import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; +import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; +import directoryForKubeConfigsInjectable from "../../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; +import hostedClusterInjectable from "../../cluster-frame-context/hosted-cluster.injectable"; +import createClusterInjectable from "../../../main/create-cluster/create-cluster.injectable"; +import type { PodStore } from "../+workloads-pods/store"; + +describe("kube-object-list-layout", () => { + let di: DiContainer; + let render: DiRender; + let podStore: PodStore; + + beforeEach(() => { + di = getDiForUnitTesting({ doGeneralOverrides: true }); + + di.override(directoryForUserDataInjectable, () => "/some-user-store-path"); + di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs"); + di.override(storesAndApisCanBeCreatedInjectable, () => true); + + const createCluster = di.inject(createClusterInjectable); + + di.override(hostedClusterInjectable, () => createCluster({ + contextName: "some-context-name", + id: "some-cluster-id", + kubeConfigPath: "/some-path-to-a-kubeconfig", + }, { + clusterServerUrl: "https://localhost:8080", + })); + + render = renderFor(di); + + di.override(subscribeStoresInjectable, () => jest.fn().mockImplementation(() => jest.fn())); + di.override(kubeSelectedUrlParamInjectable, () => ({ + get: () => "path", + })); + di.override(toggleKubeDetailsPaneInjectable, () => null); + di.override(appPathsStateInjectable, () => ({ + get: () => ({}), + })); + + podStore = di.inject(podStoreInjectable); + }); + + describe("given pod store", () => { + let result: RenderResult; + + it("renders", () => { + result = render(( +
+ [ +
{pod.getName()}
, + ]} + /> +
+ )); + + expect(result.baseElement).toMatchSnapshot(); + }); + + describe("given resourcename", () => { + it("uses resourcename in search placeholder", () => { + result = render(( +
+ [ +
{pod.getName()}
, + ]} + resourceName="My Custom Items" + searchFilters={[() => null]} + /> +
+ )); + + expect(result.getByPlaceholderText("Search My Custom Items...")).toBeInTheDocument(); + }); + }); + }); +}); + + diff --git a/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx b/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx index 463bb8dd35..82929e788c 100644 --- a/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx +++ b/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx @@ -40,6 +40,12 @@ export interface KubeObjectListLayoutProps< store: KubeObjectStore; dependentStores?: SubscribableStore[]; subscribeStores?: boolean; + + /** + * Customize resource name for e.g. search input ("Search ..."") + * If not provided, ResourceNames is used instead with a fallback to resource kind. + */ + resourceName?: string; } interface Dependencies { @@ -132,7 +138,7 @@ class NonInjectedKubeObjectListLayout< onDetails, ...layoutProps } = this.props; - const placeholderString = ResourceNames[ResourceKindMap[store.api.kind]] || store.api.kind; + const resourceName = this.props.resourceName || ResourceNames[ResourceKindMap[store.api.kind]] || store.api.kind; return ( @@ -151,7 +157,7 @@ class NonInjectedKubeObjectListLayout< ), searchProps: { ...searchProps, - placeholder: `Search ${placeholderString}...`, + placeholder: `Search ${resourceName}...`, }, info: ( <> diff --git a/src/renderer/components/layout/sidebar-cluster.tsx b/src/renderer/components/layout/sidebar-cluster.tsx index 55f3f20ecf..24b0622a85 100644 --- a/src/renderer/components/layout/sidebar-cluster.tsx +++ b/src/renderer/components/layout/sidebar-cluster.tsx @@ -8,7 +8,7 @@ import { observable } from "mobx"; import React, { useState } from "react"; import { broadcastMessage } from "../../../common/ipc"; import type { CatalogEntity, CatalogEntityContextMenu } from "../../api/catalog-entity"; -import { IpcRendererNavigationEvents } from "../../navigation/events"; +import { IpcRendererNavigationEvents } from "../../../common/ipc/navigation-events"; import { Avatar } from "../avatar"; import { Icon } from "../icon"; import { Menu, MenuItem } from "../menu"; diff --git a/src/renderer/initializers/add-sync-entries.injectable.tsx b/src/renderer/initializers/add-sync-entries.injectable.tsx index 5190bac73a..2f9f3ec74e 100644 --- a/src/renderer/initializers/add-sync-entries.injectable.tsx +++ b/src/renderer/initializers/add-sync-entries.injectable.tsx @@ -6,8 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import userStoreInjectable from "../../common/user-store/user-store.injectable"; import React from "react"; import navigateToKubernetesPreferencesInjectable from "../../features/preferences/common/navigate-to-kubernetes-preferences.injectable"; -import discoverAllKubeconfigSyncKindsInjectable from "../../features/preferences/renderer/preference-items/kubernetes/kubeconfig-sync/discover-all-sync-kinds.injectable"; -import { action } from "mobx"; +import { runInAction } from "mobx"; import showSuccessNotificationInjectable from "../components/notifications/show-success-notification.injectable"; const addSyncEntriesInjectable = getInjectable({ @@ -16,14 +15,11 @@ const addSyncEntriesInjectable = getInjectable({ instantiate: (di) => { const userStore = di.inject(userStoreInjectable); const navigateToKubernetesPreferences = di.inject(navigateToKubernetesPreferencesInjectable); - const discoverAllKubeconfigSyncKinds = di.inject(discoverAllKubeconfigSyncKindsInjectable); const showSuccessNotification = di.inject(showSuccessNotificationInjectable); - return async (filePaths: string[]) => { - const kinds = await discoverAllKubeconfigSyncKinds(filePaths); - - action(() => { - for (const [path] of kinds) { + return async (paths: string[]) => { + runInAction(() => { + for (const path of paths) { userStore.syncKubeconfigEntries.set(path, {}); } }); diff --git a/src/renderer/routes/navigate-to-url.injectable.ts b/src/renderer/routes/navigate-to-url.injectable.ts index 832080674c..616bfb6431 100644 --- a/src/renderer/routes/navigate-to-url.injectable.ts +++ b/src/renderer/routes/navigate-to-url.injectable.ts @@ -7,7 +7,7 @@ import observableHistoryInjectable from "../navigation/observable-history.inject import { runInAction } from "mobx"; import type { NavigateToUrl } from "../../common/front-end-routing/navigate-to-url-injection-token"; import { navigateToUrlInjectionToken } from "../../common/front-end-routing/navigate-to-url-injection-token"; -import { IpcRendererNavigationEvents } from "../navigation/events"; +import { IpcRendererNavigationEvents } from "../../common/ipc/navigation-events"; import broadcastMessageInjectable from "../../common/ipc/broadcast-message.injectable"; const navigateToUrlInjectable = getInjectable({ diff --git a/src/renderer/template.html b/src/renderer/template.html index 5860854d9a..87ea5dca3d 100755 --- a/src/renderer/template.html +++ b/src/renderer/template.html @@ -5,17 +5,6 @@
-
- - - - - - - - - -
diff --git a/types/mocks.d.ts b/types/mocks.d.ts index 3826aac829..1835be0c25 100644 --- a/types/mocks.d.ts +++ b/types/mocks.d.ts @@ -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; +} diff --git a/webpack/dev-server.ts b/webpack/dev-server.ts index 68fd72bb35..1f6bc425b4 100644 --- a/webpack/dev-server.ts +++ b/webpack/dev-server.ts @@ -25,19 +25,19 @@ const server = new WebpackDevServer({ host: "localhost", port: webpackDevServerPort, static: buildDir, // aka `devServer.contentBase` in webpack@4 - hot: "only", // use HMR only without errors + hot: true, liveReload: false, + historyApiFallback: true, + compress: true, // enable gzip for everything served devMiddleware: { writeToDisk: false, index: "OpenLensDev.html", publicPath: "/build", }, - proxy: { - "^/$": "/build/", - }, client: { + reconnect: true, overlay: false, // don't show warnings and errors on top of rendered app view - logging: "error", + logging: "info", }, }, compiler); diff --git a/yarn.lock b/yarn.lock index b548a88017..8962848499 100644 --- a/yarn.lock +++ b/yarn.lock @@ -598,125 +598,225 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@esbuild/android-arm64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.16.tgz#833184b8a0a96f9c85105c53d0a67e6d3c5c3f07" - integrity sha512-hFHVAzUKp9Tf8psGq+bDVv+6hTy1bAOoV/jJMUWwhUnIHsh6WbFMhw0ZTkqDuh7TdpffFoHOiIOIxmHc7oYRBQ== +"@esbuild/android-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" + integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== -"@esbuild/android-arm@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" - integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== +"@esbuild/android-arm64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.0.tgz#dd4c28274f08a16be95430d19fc0dab835fd2eae" + integrity sha512-77GVyD7ToESy/7+9eI8z62GGBdS/hsqsrpM+JA4kascky86wHbN29EEFpkVvxajPL7k6mbLJ5VBQABdj7n9FhQ== -"@esbuild/android-arm@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.16.tgz#23761b2fd1dfa4806161dbfc9e0824f04061cb95" - integrity sha512-BUuWMlt4WSXod1HSl7aGK8fJOsi+Tab/M0IDK1V1/GstzoOpqc/v3DqmN8MkuapPKQ9Br1WtLAN4uEgWR8x64A== +"@esbuild/android-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" + integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== -"@esbuild/android-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.16.tgz#ffa09f04c0ffea5b594ab7655fc9ca1220365e9b" - integrity sha512-9WhxJpeb6XumlfivldxqmkJepEcELekmSw3NkGrs+Edq6sS5KRxtUBQuKYDD7KqP59dDkxVbaoPIQFKWQG0KLg== +"@esbuild/android-arm@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.0.tgz#10d289617902f877a28f9f7913f4f54a4e699875" + integrity sha512-hlbX5ym1V5kIKvnwFhm6rhar7MNqfJrZyYTNfk6+WS1uQfQmszFgXeyPH2beP3lSCumZyqX0zMBfOqftOpZ7GA== -"@esbuild/darwin-arm64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.16.tgz#62ed2b4bfab594b9e5e708580361f1d059b53b26" - integrity sha512-8Z+wld+vr/prHPi2O0X7o1zQOfMbXWGAw9hT0jEyU/l/Yrg+0Z3FO9pjPho72dVkZs4ewZk0bDOFLdZHm8jEfw== +"@esbuild/android-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" + integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== -"@esbuild/darwin-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.16.tgz#e9756d34cd9b3737a5354e89ca0fdca32d8df64c" - integrity sha512-CYkxVvkZzGCqFrt7EgjFxQKhlUPyDkuR9P0Y5wEcmJqVI8ncerOIY5Kej52MhZyzOBXkYrJgZeVZC9xXXoEg9A== +"@esbuild/android-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.0.tgz#b0c124e434cec1a6551b400850458c860a30ecb4" + integrity sha512-TroxZdZhtAz0JyD0yahtjcbKuIXrBEAoAazaYSeR2e2tUtp9uXrcbpwFJF6oxxOiOOne6y7l4hx4YVnMW/tdFw== -"@esbuild/freebsd-arm64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.16.tgz#db7bce444d372e5a213a3f359c42aee3acc0dd45" - integrity sha512-fxrw4BYqQ39z/3Ja9xj/a1gMsVq0xEjhSyI4a9MjfvDDD8fUV8IYliac96i7tzZc3+VytyXX+XNsnpEk5sw5Wg== +"@esbuild/darwin-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" + integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== -"@esbuild/freebsd-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.16.tgz#02e8a81b7e56040b5eb883896de445a6cd3501f0" - integrity sha512-8p3v1D+du2jiDvSoNVimHhj7leSfST9YlKsAEO7etBfuqjaBMndo0fmjNLp0JCMld+XIx9L80tooOkyUv1a1PQ== +"@esbuild/darwin-arm64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.0.tgz#4a1b65e756cc29e8d68a5ace0a2eb1c63614a767" + integrity sha512-wP/v4cgdWt1m8TS/WmbaBc3NZON10eCbm6XepdVc3zJuqruHCzCKcC9dTSTEk50zX04REcRcbIbdhTMciQoFIg== -"@esbuild/linux-arm64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.16.tgz#ea8c3df172644fa6437f0083c2a38b50f89e5b98" - integrity sha512-N3u6BBbCVY3xeP2D8Db7QY8I+nZ+2AgOopUIqk+5yCoLnsWkcVxD2ay5E9iIdvApFi1Vg1lZiiwaVp8bOpAc4A== +"@esbuild/darwin-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" + integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== -"@esbuild/linux-arm@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.16.tgz#c1c2e97e67bb7247e6f60e2644de057bfedb8cbb" - integrity sha512-bYaocE1/PTMRmkgSckZ0D0Xn2nox8v2qlk+MVVqm+VECNKDdZvghVZtH41dNtBbwADSvA6qkCHGYeWm9LrNCBw== +"@esbuild/darwin-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.0.tgz#9a59890391f17cd3998d2c7959ea70a1aad28c93" + integrity sha512-R4WB6D6V9KGO/3LVTT8UlwRJO26IBFatOdo/bRXksfJR0vyOi2/lgmAAMBSpgcnnwvts9QsWiyM++mTTlwRseA== -"@esbuild/linux-ia32@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.16.tgz#9a0b0e926926f891a3e7f7c50bb38e3db49c2c9a" - integrity sha512-dxjqLKUW8GqGemoRT9v8IgHk+T4tRm1rn1gUcArsp26W9EkK/27VSjBVUXhEG5NInHZ92JaQ3SSMdTwv/r9a2A== +"@esbuild/freebsd-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" + integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== -"@esbuild/linux-loong64@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" - integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== +"@esbuild/freebsd-arm64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.0.tgz#3412ffa1703c991b4d562176881fb43a9ee6f7e3" + integrity sha512-FO7+UEZv79gen2df8StFYFHZPI9ADozpFepLZCxY+O8sYLDa1rirvenmLwJiOHmeQRJ5orYedFeLk1PFlZ6t8Q== -"@esbuild/linux-loong64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.16.tgz#c5a50ff5981d457ed45f42c3f06a60086759c79b" - integrity sha512-MdUFggHjRiCCwNE9+1AibewoNq6wf94GLB9Q9aXwl+a75UlRmbRK3h6WJyrSGA6ZstDJgaD2wiTSP7tQNUYxwA== +"@esbuild/freebsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" + integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== -"@esbuild/linux-mips64el@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.16.tgz#e85b7e3c25000be2ae373e5208e55e282a9763e0" - integrity sha512-CO3YmO7jYMlGqGoeFeKzdwx/bx8Vtq/SZaMAi+ZLDUnDUdfC7GmGwXzIwDJ70Sg+P9pAemjJyJ1icKJ9R3q/Fg== +"@esbuild/freebsd-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.0.tgz#427f2a07c997fb30f1a8906b070e28959f38f1e2" + integrity sha512-qCsNRsVTaC3ekwZcb2sa7l1gwCtJK3EqCWyDgpoQocYf3lRpbAzaCvqZSF2+NOO64cV+JbedXPsFiXU1aaVcIg== -"@esbuild/linux-ppc64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.16.tgz#24a0013bf727830df44fece571172ebe31b5c5e6" - integrity sha512-DSl5Czh5hCy/7azX0Wl9IdzPHX2H8clC6G87tBnZnzUpNgRxPFhfmArbaHoAysu4JfqCqbB/33u/GL9dUgCBAw== +"@esbuild/linux-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" + integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== -"@esbuild/linux-riscv64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.16.tgz#b080998d8d0480e8235f1384c585ae505e98a19d" - integrity sha512-sSVVMEXsqf1fQu0j7kkhXMViroixU5XoaJXl1u/u+jbXvvhhCt9YvA/B6VM3aM/77HuRQ94neS5bcisijGnKFQ== +"@esbuild/linux-arm64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.0.tgz#0e32c6a6b290406b1203854c2d594987570dd66c" + integrity sha512-js4Vlch5XJQYISbDVJd2hsI/MsfVUz6d/FrclCE73WkQmniH37vFpuQI42ntWAeBghDIfaPZ6f9GilhwGzVFUg== -"@esbuild/linux-s390x@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.16.tgz#5042de05b9b653dfd134f05e1b37b61704c14c42" - integrity sha512-jRqBCre9gZGoCdCN/UWCCMwCMsOg65IpY9Pyj56mKCF5zXy9d60kkNRdDN6YXGjr3rzcC4DXnS/kQVCGcC4yPQ== +"@esbuild/linux-arm@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" + integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== -"@esbuild/linux-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.16.tgz#b7c0750f2276c9dcf41f0f2229adca46ef22f698" - integrity sha512-G1+09TopOzo59/55lk5Q0UokghYLyHTKKzD5lXsAOOlGDbieGEFJpJBr3BLDbf7cz89KX04sBeExAR/pL/26sA== +"@esbuild/linux-arm@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.0.tgz#5a70a95bf336035884dee123b5453aeab9c608f3" + integrity sha512-Y2G2NU6155gcfNKvrakVmZV5xUAEhXjsN/uKtbKKRnvee0mHUuaT3OdQJDJKjHVGr6B0898pc3slRpI1PqspoQ== -"@esbuild/netbsd-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.16.tgz#e2a0ee181fbbe834174d26e24ce1b258232bb3eb" - integrity sha512-xwjGJB5wwDEujLaJIrSMRqWkbigALpBNcsF9SqszoNKc+wY4kPTdKrSxiY5ik3IatojePP+WV108MvF6q6np4w== +"@esbuild/linux-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" + integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== -"@esbuild/openbsd-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.16.tgz#87a84c1932e00f52ab3380c31facf0e48086ffb9" - integrity sha512-yeERkoxG2nR2oxO5n+Ms7MsCeNk23zrby2GXCqnfCpPp7KNc0vxaaacIxb21wPMfXXRhGBrNP4YLIupUBrWdlg== +"@esbuild/linux-ia32@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.0.tgz#47baca8e733405a81952bcc475da1b8e5682915f" + integrity sha512-7tl/jSPkF59R3zeFDB2/09zLGhcM7DM+tCoOqjJbQjuL6qbMWomGT2RglCqRFpCSdzBx0hukmPPgUAMlmdj0sQ== -"@esbuild/sunos-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.16.tgz#996bcd2603cd345733c3aa5f52bfd5b8fa7d1d36" - integrity sha512-nHfbEym0IObXPhtX6Va3H5GaKBty2kdhlAhKmyCj9u255ktAj0b1YACUs9j5H88NRn9cJCthD1Ik/k9wn8YKVg== +"@esbuild/linux-loong64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" + integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== -"@esbuild/win32-arm64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.16.tgz#404a9411d12533d0f2ce0a85df6ddb32e851ef04" - integrity sha512-pdD+M1ZOFy4hE15ZyPX09fd5g4DqbbL1wXGY90YmleVS6Y5YlraW4BvHjim/X/4yuCpTsAFvsT4Nca2lbyDH/A== +"@esbuild/linux-loong64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.0.tgz#809398ca125ba3b57d4d12d261f2471ac32b1edb" + integrity sha512-OG356F7dIVVF+EXJx5UfzFr1I5l6ES53GlMNSr3U1MhlaVyrP9um5PnrSJ+7TSDAzUC7YGjxb2GQWqHLd5XFoA== -"@esbuild/win32-ia32@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.16.tgz#bb5655a48f5f87fee870061883411f5149bc5e44" - integrity sha512-IPEMfU9p0c3Vb8PqxaPX6BM9rYwlTZGYOf9u+kMdhoILZkVKEjq6PKZO0lB+isojWwAnAqh4ZxshD96njTXajg== +"@esbuild/linux-mips64el@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" + integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== -"@esbuild/win32-x64@0.16.16": - version "0.16.16" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.16.tgz#ee22fed0b2e0c00ce895cdfae9d32ef069a12e04" - integrity sha512-1YYpoJ39WV/2bnShPwgdzJklc+XS0bysN6Tpnt1cWPdeoKOG4RMEY1g7i534QxXX/rPvNx/NLJQTTCeORYzipg== +"@esbuild/linux-mips64el@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.0.tgz#94b50097a3421ff538eb6a41cd4fb5db4c4993ff" + integrity sha512-LWQJgGpxrjh2x08UYf6G5R+Km7zhkpCvKXtFQ6SX0fimDvy1C8kslgFHGxLS0wjGV8C4BNnENW/HNy57+RB7iA== + +"@esbuild/linux-ppc64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" + integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== + +"@esbuild/linux-ppc64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.0.tgz#3a580bc8b494d3b273cf08a3bb0d893b31b786ae" + integrity sha512-f40N8fKiTQslUcUuhof2/syOQ+DC9Mqdnm9d063pew+Ptv9r6dBNLQCz4300MOfCLAbb0SdnrcMSzHbMehXWLw== + +"@esbuild/linux-riscv64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" + integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== + +"@esbuild/linux-riscv64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.0.tgz#bf75f769e5fa35d143bc5759520e4277b3a95bcc" + integrity sha512-sc/pvLexRvxgEbmeq7LfLGnzUBFi/E2MGbnQj3CG8tnQ90tWPTi+9CbZEgIADhj6CAlCCmqxpUclIV1CRVUOTw== + +"@esbuild/linux-s390x@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" + integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== + +"@esbuild/linux-s390x@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.0.tgz#ad6569476d6751cc9255fe059a5e074a08dd3e27" + integrity sha512-7xq9/kY0vunCL2vjHKdHGI+660pCdeEC6K6TWBVvbTGXvT8s/qacfxMgr8PCeQRbNUZLOA13G6/G1+c0lYXO1A== + +"@esbuild/linux-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" + integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== + +"@esbuild/linux-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.0.tgz#7e38c248b8c9f39240c0914872f93893bde7182a" + integrity sha512-o7FhBLONk1mLT2ytlj/j/WuJcPdhWcVpysSJn1s9+zRdLwLKveipbPi5SIasJIqMq0T4CkQW76pxJYMqz9HrQA== + +"@esbuild/netbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" + integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== + +"@esbuild/netbsd-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.0.tgz#46e770aa6a14dad73d2cdf6a9521585eca1005ef" + integrity sha512-V6xXsv71b8vwFCW/ky82Rs//SbyA+ORty6A7Mzkg33/4NbYZ/1Vcbk7qAN5oi0i/gS4Q0+7dYT7NqaiVZ7+Xjw== + +"@esbuild/openbsd-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" + integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== + +"@esbuild/openbsd-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.0.tgz#5d4070663448db20d3de42f7a44a2c2dd0cac847" + integrity sha512-StlQor6A0Y9SSDxraytr46Qbz25zsSDmsG3MCaNkBnABKHP3QsngOCfdBikqHVVrXeK0KOTmtX92/ncTGULYgQ== + +"@esbuild/sunos-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" + integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== + +"@esbuild/sunos-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.0.tgz#4a77dbf1691ce2fd9aba69f58248d46f3e28f98b" + integrity sha512-K64Wqw57j8KrwjR3QjsuzN/qDGK6Cno6QYtIlWAmGab5iYPBZCWz7HFtF2a86/130LmUsdXqOID7J0SmjjRFIQ== + +"@esbuild/win32-arm64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" + integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== + +"@esbuild/win32-arm64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.0.tgz#9b7cb6839240cd4408fbca6565c6a08e277d73bb" + integrity sha512-hly6iSWAf0hf3aHD18/qW7iFQbg9KAQ0RFGG9plcxkhL4uGw43O+lETGcSO/PylNleFowP/UztpF6U4oCYgpPw== + +"@esbuild/win32-ia32@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" + integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== + +"@esbuild/win32-ia32@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.0.tgz#059a1651b830bfc188920487badd12a8e1b8f050" + integrity sha512-aL4EWPh0nyC5uYRfn+CHkTgawd4DjtmwquthNDmGf6Ht6+mUc+bQXyZNH1QIw8x20hSqFc4Tf36aLLWP/TPR3g== + +"@esbuild/win32-x64@0.16.17": + version "0.16.17" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" + integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== + +"@esbuild/win32-x64@0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.0.tgz#d2253fef7e7cd11f010f688fa4f5ebb2875f34c1" + integrity sha512-W6IIQ9Rt43I/GqfXeBFLk0TvowKBoirs9sw2LPfhHax6ayMlW5PhFzSJ76I1ac9Pk/aRcSMrHWvVyZs8ZPK2wA== "@eslint/eslintrc@^1.4.1": version "1.4.1" @@ -1745,71 +1845,71 @@ slash "3.0.0" source-map "^0.7.3" -"@swc/core-darwin-arm64@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.25.tgz#01ce7b8a88b545a4fc5283ed6f96b22c5733d6c4" - integrity sha512-8PWAVcjTJyj2VrqPBFOIi2w2P0Z8kOCbzHW3+pe+bSXxfGMG0MKPl5U2IXhsEL0ovm4xSFlqW0yygpoP3MmRPw== +"@swc/core-darwin-arm64@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.26.tgz#43355315f0668a6a5366208f09678349bc0f44ee" + integrity sha512-FWWflBfKRYrUJtko2xiedC5XCa31O75IZZqnTWuLpe9g3C5tnUuF3M8LSXZS/dn6wprome1MhtG9GMPkSYkhkg== -"@swc/core-darwin-x64@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.25.tgz#9fad102c507011f42c5a5d1f84919b81ab96d7f8" - integrity sha512-5DHGiMYFEj5aa208tCjo7Sn5tiG4xPz+4gUiWVlglxqXFptkNim5xu/1G6VYm5Zk7dI5jJkjTU76GQG7IRvPug== +"@swc/core-darwin-x64@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.26.tgz#462fc2e1377437b7c7bbdf5988f51adfeea3efa9" + integrity sha512-0uQeebAtsewqJ2b35aPZstGrylwd6oJjUyAJOfVJNbremFSJ5JzytB3NoDCIw7CT5UQrSRpvD3mU95gfdQjDGA== -"@swc/core-linux-arm-gnueabihf@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.25.tgz#ecf3a34899fdbdc742523524caab29c0db97a6ad" - integrity sha512-YNfLxv9PhZk+jrJbpR1mMrYBUkufo0hiFv3S1OrX3l8edsIP4wPND5w9ZH0Oi898f6Jg9DBrY2zXJMQ+gWkbvA== +"@swc/core-linux-arm-gnueabihf@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.26.tgz#fecd9c2e7d9b69c849907a83a5101a98c047d986" + integrity sha512-06T+LbVFlyciQtwrUB5/a16A1ju1jFoYvd/hq9TWhf7GrtL43U7oJIgqMOPHx2j0+Ps2R3S6R/UUN5YXu618zA== -"@swc/core-linux-arm64-gnu@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.25.tgz#50524c9db2dbf874570e45f0a66e0283f02bc2d9" - integrity sha512-kS+spM5/xQ6QvWF1ms3byfjnhUlpjTfFwgCyHnIKgjvsYkDa+vkAIhKq6HuEdaTPaCRCjts0Zarhub1nClUU0g== +"@swc/core-linux-arm64-gnu@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.26.tgz#82a8462212263f4e4f6691473d4c2839b73c2084" + integrity sha512-2NT/0xALPfK+U01qIlHxjkGdIj6F0txhu1U2v6B0YP2+k0whL2gCgYeg9QUvkYEXSD5r1Yx+vcb2R/vaSCSClg== -"@swc/core-linux-arm64-musl@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.25.tgz#f04a3d3784cff14f96ad9901861485ec0fa14ebf" - integrity sha512-vM3D7LWmjotUAJ2D4F+L+dspFeWrcPNVh0o8TCoTOYCt8DPD5YsUKTpIgOsZ+gReeWUAnNTh0Btx5pGGVfajGA== +"@swc/core-linux-arm64-musl@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.26.tgz#050b7c1aa81d6f34769eb556c3a94c61a9b69aaa" + integrity sha512-64KrTay9hC0mTvZ1AmEFmNEwV5QDjw9U7PJU5riotSc28I+Q/ZoM0qcSFW9JRRa6F2Tr+IfMtyv8+eB2//BQ5g== -"@swc/core-linux-x64-gnu@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.25.tgz#761fb020b8a0130e4dccc9c8dce355fa06df63f4" - integrity sha512-xUCLLMDlYa/zB8BftVa4SrxuVpcDxkltCfmBg5r2pZPVskhC5ZJsQZ/AvWNChoAB11shRhjTaWDlmxJEsa7TIg== +"@swc/core-linux-x64-gnu@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.26.tgz#e306778c2c1838350f588c8ae800e74434dc2b9a" + integrity sha512-Te8G13l3dcRM1Mf3J4JzGUngzNXLKnMYlUmBOYN/ORsx7e+VNelR3zsTLHC0+0jGqELDgqvMyzDfk+dux/C/bQ== -"@swc/core-linux-x64-musl@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.25.tgz#f944ee48c972ebdcb3e6d6fd62d67eb98dbb1268" - integrity sha512-QzHU3BIaUVRSFNsUn3Qxx1vgtF/f5NqsFMAAPSq9Y8Yq5nrlc2t7cNuOROxHLbUqE+NPUp6+RglleJMoeWz5mA== +"@swc/core-linux-x64-musl@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.26.tgz#531d9ec7c37f56df5c6cc121db5dd6faff5e2c38" + integrity sha512-nqQWuSM6OTKepUiQ9+rXgERq/JiO72RBOpXKO2afYppsL96sngjIRewV74v5f6IAfyzw+k+AhC5pgRA4Xu/Jkg== -"@swc/core-win32-arm64-msvc@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.25.tgz#af63ae850ef6e7322e8a5a0959529e96096239d2" - integrity sha512-77VSVtneVOAUL4zkRyQZ6pWVpTsVVdqwly/DKnRnloglGKxYuk5DG5MUBsL72Nnfv4OCHjZ27eI3NUrpLsUb2Q== +"@swc/core-win32-arm64-msvc@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.26.tgz#9c7f245903694484bd00c4da5142f24070094d0f" + integrity sha512-xx34mx+9IBV1sun7sxoNFiqNom9wiOuvsQFJUyQptCnZHgYwOr9OI204LBF95dCcBCZsTm2hT1wBnySJOeimYw== -"@swc/core-win32-ia32-msvc@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.25.tgz#96a869aa4b4c41c44c9c9893ac4aad68d1233022" - integrity sha512-kz0v3K3H6OPEZR3ry72Ad/6C5GrZBRRUk69K58LORQ8tZXQD3UGl85pUbQqyHl8fR5NU76Muxgovj9CI9iTHGA== +"@swc/core-win32-ia32-msvc@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.26.tgz#56d83cc216218d78cc578f01499777cdfc0a4eeb" + integrity sha512-48LZ/HKNuU9zl8c7qG6IQKb5rBCwmJgysGOmEGzTRBYxAf/x6Scmt0aqxCoV4J02HOs2WduCBDnhUKsSQ2kcXQ== -"@swc/core-win32-x64-msvc@1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.25.tgz#9035c11626653322a404f3f44af11a02d989094c" - integrity sha512-nmQOAzIpNRRnupWzkenJmW4i+h1M76cVNUqEU2MjmtesEkRZEGqv//jefXiyCP2zcbeLNLKiB2ptVJhpd1BvRA== +"@swc/core-win32-x64-msvc@1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.26.tgz#bb65bc0fff712c8ca3702d9c0adc59894ca54bae" + integrity sha512-UPe7S+MezD/S6cKBIc50TduGzmw6PBz1Ms5p+5wDLOKYNS/LSEM4iRmLwvePzP5X8mOyesXrsbwxLy8KHP65Yw== -"@swc/core@^1.3.25": - version "1.3.25" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.25.tgz#53786ea51fac319684d6822de1738eb55b73a4b7" - integrity sha512-wqzvM/wu6OsTVYPMStOpm7kIQcPX3GoZ0sC85qzDdsCxmJ1rmItLAD91sXPUmmdk0XqPYjLgT9MRDEIP5woz4g== +"@swc/core@^1.3.26": + version "1.3.26" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.26.tgz#6f7fe6ad54eac7ecffbdfa75d5c4300e2f96b8f6" + integrity sha512-U7vEsaLn3IGg0XCRLJX/GTkK9WIfFHUX5USdrp1L2QD29sWPe25HqNndXmUR9KytzKmpDMNoUuHyiuhpVrnNeQ== optionalDependencies: - "@swc/core-darwin-arm64" "1.3.25" - "@swc/core-darwin-x64" "1.3.25" - "@swc/core-linux-arm-gnueabihf" "1.3.25" - "@swc/core-linux-arm64-gnu" "1.3.25" - "@swc/core-linux-arm64-musl" "1.3.25" - "@swc/core-linux-x64-gnu" "1.3.25" - "@swc/core-linux-x64-musl" "1.3.25" - "@swc/core-win32-arm64-msvc" "1.3.25" - "@swc/core-win32-ia32-msvc" "1.3.25" - "@swc/core-win32-x64-msvc" "1.3.25" + "@swc/core-darwin-arm64" "1.3.26" + "@swc/core-darwin-x64" "1.3.26" + "@swc/core-linux-arm-gnueabihf" "1.3.26" + "@swc/core-linux-arm64-gnu" "1.3.26" + "@swc/core-linux-arm64-musl" "1.3.26" + "@swc/core-linux-x64-gnu" "1.3.26" + "@swc/core-linux-x64-musl" "1.3.26" + "@swc/core-win32-arm64-msvc" "1.3.26" + "@swc/core-win32-ia32-msvc" "1.3.26" + "@swc/core-win32-x64-msvc" "1.3.26" "@swc/jest@^0.2.24": version "0.2.24" @@ -2768,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" @@ -2783,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": @@ -3373,14 +3473,14 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.2.5: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.3.1: @@ -5537,7 +5637,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.1.1" -es-abstract@^1.19.0, es-abstract@^1.19.2, es-abstract@^1.19.5: +es-abstract@^1.19.0, es-abstract@^1.19.5: version "1.20.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.0.tgz#b2d526489cceca004588296334726329e0a6bfb6" integrity sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA== @@ -5622,173 +5722,73 @@ es6-error@^4.1.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -esbuild-android-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" - integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== - -esbuild-android-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" - integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== - -esbuild-darwin-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" - integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== - -esbuild-darwin-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" - integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== - -esbuild-freebsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" - integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== - -esbuild-freebsd-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" - integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== - -esbuild-linux-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" - integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== - -esbuild-linux-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" - integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== - -esbuild-linux-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" - integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== - -esbuild-linux-arm@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" - integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== - -esbuild-linux-mips64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" - integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== - -esbuild-linux-ppc64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" - integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== - -esbuild-linux-riscv64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" - integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== - -esbuild-linux-s390x@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" - integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== - -esbuild-loader@^2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.20.0.tgz#28fcff0142fa7bd227512d69f31e9a6e202bb88f" - integrity sha512-dr+j8O4w5RvqZ7I4PPB4EIyVTd679EBQnMm+JBB7av+vu05Zpje2IpK5N3ld1VWa+WxrInIbNFAg093+E1aRsA== +esbuild-loader@^2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.21.0.tgz#2698a3e565b0db2bb19a3dd91c2b6c9aad526c80" + integrity sha512-k7ijTkCT43YBSZ6+fBCW1Gin7s46RrJ0VQaM8qA7lq7W+OLsGgtLyFV8470FzYi/4TeDexniTBTPTwZUnXXR5g== dependencies: - esbuild "^0.15.6" + esbuild "^0.16.17" joycon "^3.0.1" json5 "^2.2.0" loader-utils "^2.0.0" tapable "^2.2.0" - webpack-sources "^2.2.0" + webpack-sources "^1.4.3" -esbuild-netbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" - integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== - -esbuild-openbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" - integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== - -esbuild-sunos-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" - integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== - -esbuild-windows-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" - integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== - -esbuild-windows-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" - integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== - -esbuild-windows-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" - integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== - -esbuild@^0.15.6: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" - integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== +esbuild@^0.16.17: + version "0.16.17" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" + integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== optionalDependencies: - "@esbuild/android-arm" "0.15.18" - "@esbuild/linux-loong64" "0.15.18" - esbuild-android-64 "0.15.18" - esbuild-android-arm64 "0.15.18" - esbuild-darwin-64 "0.15.18" - esbuild-darwin-arm64 "0.15.18" - esbuild-freebsd-64 "0.15.18" - esbuild-freebsd-arm64 "0.15.18" - esbuild-linux-32 "0.15.18" - esbuild-linux-64 "0.15.18" - esbuild-linux-arm "0.15.18" - esbuild-linux-arm64 "0.15.18" - esbuild-linux-mips64le "0.15.18" - esbuild-linux-ppc64le "0.15.18" - esbuild-linux-riscv64 "0.15.18" - esbuild-linux-s390x "0.15.18" - esbuild-netbsd-64 "0.15.18" - esbuild-openbsd-64 "0.15.18" - esbuild-sunos-64 "0.15.18" - esbuild-windows-32 "0.15.18" - esbuild-windows-64 "0.15.18" - esbuild-windows-arm64 "0.15.18" + "@esbuild/android-arm" "0.16.17" + "@esbuild/android-arm64" "0.16.17" + "@esbuild/android-x64" "0.16.17" + "@esbuild/darwin-arm64" "0.16.17" + "@esbuild/darwin-x64" "0.16.17" + "@esbuild/freebsd-arm64" "0.16.17" + "@esbuild/freebsd-x64" "0.16.17" + "@esbuild/linux-arm" "0.16.17" + "@esbuild/linux-arm64" "0.16.17" + "@esbuild/linux-ia32" "0.16.17" + "@esbuild/linux-loong64" "0.16.17" + "@esbuild/linux-mips64el" "0.16.17" + "@esbuild/linux-ppc64" "0.16.17" + "@esbuild/linux-riscv64" "0.16.17" + "@esbuild/linux-s390x" "0.16.17" + "@esbuild/linux-x64" "0.16.17" + "@esbuild/netbsd-x64" "0.16.17" + "@esbuild/openbsd-x64" "0.16.17" + "@esbuild/sunos-x64" "0.16.17" + "@esbuild/win32-arm64" "0.16.17" + "@esbuild/win32-ia32" "0.16.17" + "@esbuild/win32-x64" "0.16.17" -esbuild@^0.16.16: - version "0.16.16" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.16.tgz#e8a27820a30cc1449066f9bbe8916b145dbc9046" - integrity sha512-24JyKq10KXM5EBIgPotYIJ2fInNWVVqflv3gicIyQqfmUqi4HvDW1VR790cBgLJHCl96Syy7lhoz7tLFcmuRmg== +esbuild@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.0.tgz#fcf19373d1d546bdbec1557276284c0e6350380b" + integrity sha512-4yGk3rD95iS/wGzrx0Ji5czZcx1j2wvfF1iAJaX2FIYLB6sU6wYkDeplpZHzfwQw2yXGXsAoxmO6LnMQkl04Kg== optionalDependencies: - "@esbuild/android-arm" "0.16.16" - "@esbuild/android-arm64" "0.16.16" - "@esbuild/android-x64" "0.16.16" - "@esbuild/darwin-arm64" "0.16.16" - "@esbuild/darwin-x64" "0.16.16" - "@esbuild/freebsd-arm64" "0.16.16" - "@esbuild/freebsd-x64" "0.16.16" - "@esbuild/linux-arm" "0.16.16" - "@esbuild/linux-arm64" "0.16.16" - "@esbuild/linux-ia32" "0.16.16" - "@esbuild/linux-loong64" "0.16.16" - "@esbuild/linux-mips64el" "0.16.16" - "@esbuild/linux-ppc64" "0.16.16" - "@esbuild/linux-riscv64" "0.16.16" - "@esbuild/linux-s390x" "0.16.16" - "@esbuild/linux-x64" "0.16.16" - "@esbuild/netbsd-x64" "0.16.16" - "@esbuild/openbsd-x64" "0.16.16" - "@esbuild/sunos-x64" "0.16.16" - "@esbuild/win32-arm64" "0.16.16" - "@esbuild/win32-ia32" "0.16.16" - "@esbuild/win32-x64" "0.16.16" + "@esbuild/android-arm" "0.17.0" + "@esbuild/android-arm64" "0.17.0" + "@esbuild/android-x64" "0.17.0" + "@esbuild/darwin-arm64" "0.17.0" + "@esbuild/darwin-x64" "0.17.0" + "@esbuild/freebsd-arm64" "0.17.0" + "@esbuild/freebsd-x64" "0.17.0" + "@esbuild/linux-arm" "0.17.0" + "@esbuild/linux-arm64" "0.17.0" + "@esbuild/linux-ia32" "0.17.0" + "@esbuild/linux-loong64" "0.17.0" + "@esbuild/linux-mips64el" "0.17.0" + "@esbuild/linux-ppc64" "0.17.0" + "@esbuild/linux-riscv64" "0.17.0" + "@esbuild/linux-s390x" "0.17.0" + "@esbuild/linux-x64" "0.17.0" + "@esbuild/netbsd-x64" "0.17.0" + "@esbuild/openbsd-x64" "0.17.0" + "@esbuild/sunos-x64" "0.17.0" + "@esbuild/win32-arm64" "0.17.0" + "@esbuild/win32-ia32" "0.17.0" + "@esbuild/win32-x64" "0.17.0" escalade@^3.1.1: version "3.1.1" @@ -5839,18 +5839,19 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" -eslint-import-resolver-typescript@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.2.tgz#9431acded7d898fd94591a08ea9eec3514c7de91" - integrity sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ== +eslint-import-resolver-typescript@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz#db5ed9e906651b7a59dd84870aaef0e78c663a05" + integrity sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ== dependencies: debug "^4.3.4" enhanced-resolve "^5.10.0" @@ -5860,36 +5861,37 @@ eslint-import-resolver-typescript@^3.5.2: is-glob "^4.0.3" synckit "^0.8.4" -eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== +eslint-module-utils@^2.7.4: + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" - find-up "^2.1.0" eslint-plugin-header@^3.1.1: version "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.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== +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.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.11.0" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" tsconfig-paths "^3.14.1" eslint-plugin-react-hooks@^4.6.0: @@ -5897,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.31.11: - version "7.31.11" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" - integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== +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" @@ -5914,7 +5916,7 @@ eslint-plugin-react@7.31.11: object.hasown "^1.1.2" object.values "^1.1.6" prop-types "^15.8.1" - resolve "^2.0.0-next.3" + resolve "^2.0.0-next.4" semver "^6.3.0" string.prototype.matchall "^4.0.8" @@ -5963,10 +5965,10 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.31.0: - version "8.31.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" - integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== +eslint@^8.32.0: + version "8.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861" + integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ== dependencies: "@eslint/eslintrc" "^1.4.1" "@humanwhocodes/config-array" "^0.11.8" @@ -6474,13 +6476,6 @@ find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -7459,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" @@ -7678,20 +7673,13 @@ is-cidr@^4.0.2: dependencies: cidr-regex "^3.1.1" -is-core-module@^2.10.0: +is-core-module@^2.10.0, is-core-module@^2.11.0, is-core-module@^2.8.1, is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" -is-core-module@^2.2.0, is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -9041,14 +9029,6 @@ localforage@^1.8.1: dependencies: lie "3.1.1" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -9316,10 +9296,10 @@ markdown@^0.5.0: dependencies: nopt "~2.1.1" -marked@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.5.tgz#979813dfc1252cc123a79b71b095759a32f42a5d" - integrity sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ== +marked@^4.2.12, marked@^4.2.5: + version "4.2.12" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" + integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== matcher-collection@^2.0.0: version "2.0.1" @@ -10239,7 +10219,7 @@ object.pick@^1.2.0: dependencies: isobject "^3.0.1" -object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -10396,13 +10376,6 @@ p-is-promise@^1.1.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" integrity sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -10417,13 +10390,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -10467,11 +10433,6 @@ p-timeout@^2.0.1: dependencies: p-finally "^1.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -10596,7 +10557,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -11609,7 +11570,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.12.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.9.0: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.12.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.9.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -11618,13 +11579,14 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.12.0, resolve@^1.20.0, resolve@^1.22. path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" responselike@1.0.2, responselike@^1.0.2: version "1.0.2" @@ -12183,7 +12145,7 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.1: +source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -13619,13 +13581,13 @@ webpack-node-externals@^3.0.0: resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== -webpack-sources@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" - integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== +webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" + source-list-map "^2.0.0" + source-map "~0.6.1" webpack-sources@^3.2.3: version "3.2.3"