diff --git a/Makefile b/Makefile index a3436115e9..1a21ef0e02 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,7 @@ $(extension_node_modules): node_modules $(extension_dists): src/extensions/npm/extensions/dist $(extension_node_modules) cd $(@:/dist=) && ../../node_modules/.bin/npm run build + rm -rf ./node_modules/$(shell basename $(@:/dist=)) .PHONY: clean-old-extensions clean-old-extensions: @@ -76,6 +77,7 @@ clean-old-extensions: .PHONY: build-extensions build-extensions: node_modules clean-old-extensions $(extension_dists) + yarn install --check-files --frozen-lockfile --network-timeout=100000 .PHONY: test-extensions test-extensions: $(extension_node_modules) diff --git a/extensions/kube-object-event-status/package.json b/extensions/kube-object-event-status/package.json index 934ebbbdb8..4e65471429 100644 --- a/extensions/kube-object-event-status/package.json +++ b/extensions/kube-object-event-status/package.json @@ -8,7 +8,7 @@ "styles": [] }, "scripts": { - "build": "npx webpack && npm pack", + "build": "npx webpack", "dev": "npx webpack -- --watch", "test": "echo NO TESTS" }, diff --git a/extensions/metrics-cluster-feature/package.json b/extensions/metrics-cluster-feature/package.json index 03ad0df7a5..3be7b58d58 100644 --- a/extensions/metrics-cluster-feature/package.json +++ b/extensions/metrics-cluster-feature/package.json @@ -8,7 +8,7 @@ "styles": [] }, "scripts": { - "build": "npx webpack && npm pack", + "build": "npx webpack", "dev": "npx webpack -- --watch", "test": "npx jest --passWithNoTests --env=jsdom src $@", "clean": "rm -rf dist/ && rm *.tgz" diff --git a/extensions/node-menu/package.json b/extensions/node-menu/package.json index 3b56dc6e62..df2d490ee0 100644 --- a/extensions/node-menu/package.json +++ b/extensions/node-menu/package.json @@ -8,7 +8,7 @@ "styles": [] }, "scripts": { - "build": "npx webpack && npm pack", + "build": "npx webpack", "dev": "npx webpack -- --watch", "test": "npx jest --passWithNoTests --env=jsdom src $@" }, diff --git a/extensions/pod-menu/package.json b/extensions/pod-menu/package.json index ba3f107f80..3b44d3c44d 100644 --- a/extensions/pod-menu/package.json +++ b/extensions/pod-menu/package.json @@ -8,7 +8,7 @@ "styles": [] }, "scripts": { - "build": "npx webpack && npm pack", + "build": "npx webpack", "dev": "npx webpack -- --watch", "test": "npx jest --passWithNoTests --env=jsdom src $@" }, diff --git a/package.json b/package.json index 4e6f5955f2..6945ecc71e 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,13 @@ "bundledHelmVersion": "3.7.2", "sentryDsn": "", "contentSecurityPolicy": "script-src 'unsafe-eval' 'self'; frame-src http://*.localhost:*/; img-src * data:", - "welcomeRoute": "/welcome" + "welcomeRoute": "/welcome", + "extensions": [ + "kube-object-event-status", + "metrics-cluster-feature", + "node-menu", + "pod-menu" + ] }, "engines": { "node": ">=16 <17" @@ -120,15 +126,6 @@ ], "afterSign": "build/notarize.js", "extraResources": [ - { - "from": "extensions/", - "to": "./extensions/", - "filter": [ - "**/*.tgz", - "**/package.json", - "!**/node_modules" - ] - }, { "from": "templates/", "to": "./templates/", @@ -258,9 +255,14 @@ "joi": "^17.7.0", "js-yaml": "^4.1.0", "jsdom": "^16.7.0", + "kube-object-event-status": "file:./extensions/kube-object-event-status", + "lens-metrics-cluster-feature": "file:./extensions/metrics-cluster-feature", + "lens-node-menu": "file:./extensions/node-menu", + "lens-pod-menu": "file:./extensions/pod-menu", "lodash": "^4.17.15", "marked": "^4.2.3", "md5-file": "^5.0.0", + "metrics-cluster-feature": "file:./extensions/metrics-cluster-feature", "mobx": "^6.7.0", "mobx-observable-history": "^2.0.3", "mobx-react": "^7.6.0", @@ -271,10 +273,12 @@ "monaco-editor": "^0.29.1", "monaco-editor-webpack-plugin": "^5.0.0", "node-fetch": "^3.3.0", + "node-menu": "file:./extensions/node-menu", "node-pty": "0.10.1", "npm": "^8.19.3", "p-limit": "^3.1.0", "path-to-regexp": "^6.2.0", + "pod-menu": "file:./extensions/pod-menu", "proper-lockfile": "^4.1.2", "react": "^17.0.2", "react-dom": "^17.0.2", @@ -287,7 +291,7 @@ "rfc6902": "^4.0.2", "selfsigned": "^2.1.1", "semver": "^7.3.8", - "tar": "^6.1.12", + "tar": "^6.1.13", "tcp-port-used": "^1.0.2", "tempy": "1.0.1", "typed-regex": "^0.0.8", @@ -308,7 +312,7 @@ "@sentry/types": "^6.19.7", "@swc/cli": "^0.1.57", "@swc/core": "^1.3.21", - "@swc/jest": "^0.2.23", + "@swc/jest": "^0.2.24", "@testing-library/dom": "^7.31.2", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", @@ -365,8 +369,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.45.1", - "@typescript-eslint/parser": "^5.45.1", + "@typescript-eslint/eslint-plugin": "^5.46.0", + "@typescript-eslint/parser": "^5.46.0", "adr": "^1.4.3", "ansi_up": "^5.1.0", "chalk": "^4.1.2", @@ -382,7 +386,7 @@ "electron": "^19.1.9", "electron-builder": "^23.6.0", "electron-notarize": "^0.3.0", - "esbuild": "^0.15.18", + "esbuild": "^0.16.3", "esbuild-loader": "^2.20.0", "eslint": "^8.29.0", "eslint-import-resolver-typescript": "^3.5.2", @@ -403,13 +407,13 @@ "jest-mock-extended": "^2.0.9", "make-plural": "^6.2.2", "memorystream": "^0.3.1", - "mini-css-extract-plugin": "^2.7.1", + "mini-css-extract-plugin": "^2.7.2", "mock-http": "^1.1.0", "node-gyp": "^8.3.0", "node-loader": "^2.0.0", "nodemon": "^2.0.20", "playwright": "^1.28.1", - "postcss": "^8.4.19", + "postcss": "^8.4.20", "postcss-loader": "^6.2.1", "query-string": "^7.1.3", "randomcolor": "^0.6.2", @@ -433,7 +437,7 @@ "typed-emitter": "^1.4.0", "typedoc": "0.23.21", "typedoc-plugin-markdown": "^3.13.6", - "typescript": "^4.9.3", + "typescript": "^4.9.4", "typescript-plugin-css-modules": "^3.4.0", "webpack": "^5.75.0", "webpack-cli": "^4.9.2", diff --git a/src/common/vars/application-information.global-override-for-injectable.ts b/src/common/vars/application-information.global-override-for-injectable.ts index 232a189ce1..83b9559d73 100644 --- a/src/common/vars/application-information.global-override-for-injectable.ts +++ b/src/common/vars/application-information.global-override-for-injectable.ts @@ -18,6 +18,7 @@ export default getGlobalOverride(applicationInformationInjectable, () => ({ sentryDsn: "", contentSecurityPolicy: "script-src 'unsafe-eval' 'self'; frame-src http://*.localhost:*/; img-src * data:", welcomeRoute: "/welcome", + extensions: [], }, copyright: "some-copyright-information", description: "some-descriptive-text", diff --git a/src/common/vars/static-files-directory.global-override-for-injectable.ts b/src/common/vars/static-files-directory.global-override-for-injectable.ts index 57ea132a0a..3b8ec43046 100644 --- a/src/common/vars/static-files-directory.global-override-for-injectable.ts +++ b/src/common/vars/static-files-directory.global-override-for-injectable.ts @@ -5,5 +5,4 @@ import { getGlobalOverride } from "../test-utils/get-global-override"; import staticFilesDirectoryInjectable from "./static-files-directory.injectable"; - -export default getGlobalOverride(staticFilesDirectoryInjectable, () => "some-static-directory"); +export default getGlobalOverride(staticFilesDirectoryInjectable, () => "/some-static-directory"); diff --git a/src/extensions/extension-discovery/extension-discovery.injectable.ts b/src/extensions/extension-discovery/extension-discovery.injectable.ts index 549f9c9de7..ad146e2fd7 100644 --- a/src/extensions/extension-discovery/extension-discovery.injectable.ts +++ b/src/extensions/extension-discovery/extension-discovery.injectable.ts @@ -10,7 +10,6 @@ import extensionsStoreInjectable from "../extensions-store/extensions-store.inje import extensionInstallationStateStoreInjectable from "../extension-installation-state-store/extension-installation-state-store.injectable"; import installExtensionInjectable from "../extension-installer/install-extension/install-extension.injectable"; import extensionPackageRootDirectoryInjectable from "../extension-installer/extension-package-root-directory/extension-package-root-directory.injectable"; -import installExtensionsInjectable from "../extension-installer/install-extensions/install-extensions.injectable"; import readJsonFileInjectable from "../../common/fs/read-json-file.injectable"; import loggerInjectable from "../../common/logger.injectable"; import pathExistsInjectable from "../../common/fs/path-exists.injectable"; @@ -28,6 +27,7 @@ import getRelativePathInjectable from "../../common/path/get-relative-path.injec import joinPathsInjectable from "../../common/path/join-paths.injectable"; import removePathInjectable from "../../common/fs/remove-path.injectable"; import homeDirectoryPathInjectable from "../../common/os/home-directory-path.injectable"; +import applicationInformationInjectable from "../../common/vars/application-information.injectable"; import lensResourcesDirInjectable from "../../common/vars/lens-resources-dir.injectable"; const extensionDiscoveryInjectable = getInjectable({ @@ -39,7 +39,6 @@ const extensionDiscoveryInjectable = getInjectable({ extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), isCompatibleExtension: di.inject(isCompatibleExtensionInjectable), installExtension: di.inject(installExtensionInjectable), - installExtensions: di.inject(installExtensionsInjectable), extensionPackageRootDirectory: di.inject(extensionPackageRootDirectoryInjectable), resourcesDirectory: di.inject(lensResourcesDirInjectable), readJsonFile: di.inject(readJsonFileInjectable), @@ -59,6 +58,7 @@ const extensionDiscoveryInjectable = getInjectable({ getRelativePath: di.inject(getRelativePathInjectable), joinPaths: di.inject(joinPathsInjectable), homeDirectoryPath: di.inject(homeDirectoryPathInjectable), + applicationInformation: di.inject(applicationInformationInjectable), }), }); diff --git a/src/extensions/extension-discovery/extension-discovery.ts b/src/extensions/extension-discovery/extension-discovery.ts index a23cebd9c2..511bfba8a9 100644 --- a/src/extensions/extension-discovery/extension-discovery.ts +++ b/src/extensions/extension-discovery/extension-discovery.ts @@ -12,7 +12,6 @@ import type { ExtensionsStore } from "../extensions-store/extensions-store"; import type { ExtensionLoader } from "../extension-loader"; import type { LensExtensionId, LensExtensionManifest } from "../lens-extension"; import type { ExtensionInstallationStateStore } from "../extension-installation-state-store/extension-installation-state-store"; -import type { PackageJson } from "type-fest"; import { extensionDiscoveryStateChannel } from "../../common/ipc/extension-handling"; import { requestInitialExtensionDiscovery } from "../../renderer/ipc"; import type { ReadJson } from "../../common/fs/read-json-file.injectable"; @@ -20,7 +19,6 @@ import type { Logger } from "../../common/logger"; import type { PathExists } from "../../common/fs/path-exists.injectable"; import type { Watch } from "../../common/fs/watch/watch.injectable"; import type { Stats } from "fs"; -import { constants } from "fs"; import type { LStat } from "../../common/fs/lstat.injectable"; import type { ReadDirectory } from "../../common/fs/read-directory.injectable"; import type { EnsureDirectory } from "../../common/fs/ensure-dir.injectable"; @@ -32,6 +30,7 @@ import type { GetDirnameOfPath } from "../../common/path/get-dirname.injectable" import type { GetRelativePath } from "../../common/path/get-relative-path.injectable"; import type { RemovePath } from "../../common/fs/remove-path.injectable"; import type TypedEventEmitter from "typed-emitter"; +import type { ApplicationInformation } from "../../common/vars/application-information.injectable"; interface Dependencies { readonly extensionLoader: ExtensionLoader; @@ -43,9 +42,9 @@ interface Dependencies { readonly isProduction: boolean; readonly fileSystemSeparator: string; readonly homeDirectoryPath: string; + readonly applicationInformation: ApplicationInformation; isCompatibleExtension: (manifest: LensExtensionManifest) => boolean; installExtension: (name: string) => Promise; - installExtensions: (packageJsonPath: string, packagesJson: PackageJson) => Promise; readJsonFile: ReadJson; pathExists: PathExists; removePath: RemovePath; @@ -137,14 +136,6 @@ export class ExtensionDiscovery { return this.dependencies.joinPaths(this.dependencies.extensionPackageRootDirectory, manifestFilename); } - get inTreeTargetPath(): string { - return this.dependencies.joinPaths(this.dependencies.extensionPackageRootDirectory, "extensions"); - } - - get inTreeFolderPath(): string { - return this.dependencies.joinPaths(this.dependencies.resourcesDirectory, "extensions"); - } - get nodeModulesPath(): string { return this.dependencies.joinPaths(this.dependencies.extensionPackageRootDirectory, "node_modules"); } @@ -329,26 +320,6 @@ export class ExtensionDiscovery { ); await this.dependencies.removePath(this.dependencies.joinPaths(this.dependencies.extensionPackageRootDirectory, "package-lock.json")); - - const canWriteToInTreeFolder = await this.dependencies.accessPath(this.inTreeFolderPath, constants.W_OK); - - if (canWriteToInTreeFolder) { - // Set bundled folder path to static/extensions - this.bundledFolderPath = this.inTreeFolderPath; - } else { - // Remove e.g. /Users//Library/Application Support/LensDev/extensions - await this.dependencies.removePath(this.inTreeTargetPath); - - // Create folder e.g. /Users//Library/Application Support/LensDev/extensions - await this.dependencies.ensureDirectory(this.inTreeTargetPath); - - // Copy static/extensions to e.g. /Users//Library/Application Support/LensDev/extensions - await this.dependencies.copy(this.inTreeFolderPath, this.inTreeTargetPath); - - // Set bundled folder path to e.g. /Users//Library/Application Support/LensDev/extensions - this.bundledFolderPath = this.inTreeTargetPath; - } - await this.dependencies.ensureDirectory(this.nodeModulesPath); await this.dependencies.ensureDirectory(this.localFolderPath); @@ -382,7 +353,7 @@ export class ExtensionDiscovery { protected async getByManifest(manifestPath: string, { isBundled = false } = {}): Promise { try { const manifest = await this.dependencies.readJsonFile(manifestPath) as unknown as LensExtensionManifest; - const id = this.getInstalledManifestPath(manifest.name); + const id = isBundled ? manifestPath : this.getInstalledManifestPath(manifest.name); const isEnabled = this.dependencies.extensionsStore.isEnabled({ id, isBundled }); const extensionDir = this.dependencies.getDirnameOfPath(manifestPath); const npmPackage = this.dependencies.joinPaths(extensionDir, `${manifest.name}-${manifest.version}.tgz`); @@ -417,39 +388,24 @@ export class ExtensionDiscovery { const userExtensions = await this.loadFromFolder(this.localFolderPath, bundledExtensions.map((extension) => extension.manifest.name)); const extensions = bundledExtensions.concat(userExtensions); - await this.installBundledPackages(this.packageJsonPath, extensions); - return this.extensions = new Map(extensions.map(extension => [extension.id, extension])); } - /** - * Write package.json to file system and install dependencies. - */ - installBundledPackages(packageJsonPath: string, extensions: InstalledExtension[]): Promise { - const dependencies = Object.fromEntries( - extensions.filter(extension => extension.isBundled).map(extension => [extension.manifest.name, extension.absolutePath]), - ); - const optionalDependencies = Object.fromEntries( - extensions.filter(extension => !extension.isBundled).map(extension => [extension.manifest.name, extension.absolutePath]), - ); - - return this.dependencies.installExtensions(packageJsonPath, { dependencies, optionalDependencies }); - } - async loadBundledExtensions(): Promise { const extensions: InstalledExtension[] = []; - const folderPath = this.bundledFolderPath; - const paths = await this.dependencies.readDirectory(folderPath); + const extensionNames = this.dependencies.applicationInformation.config.extensions || []; - for (const fileName of paths) { - const absPath = this.dependencies.joinPaths(folderPath, fileName); + for (const dirName of extensionNames) { + const absPath = this.dependencies.joinPaths(__dirname, "..", "..", "node_modules", dirName); const extension = await this.loadExtensionFromFolder(absPath, { isBundled: true }); - if (extension) { - extensions.push(extension); + if (!extension) { + throw new Error(`Couldn't load bundled extension: ${dirName}`); } + + extensions.push(extension); } - this.dependencies.logger.debug(`${logModule}: ${extensions.length} extensions loaded`, { folderPath, extensions }); + this.dependencies.logger.debug(`${logModule}: ${extensions.length} extensions loaded`, { extensions }); return extensions; } diff --git a/src/extensions/extension-installer/extension-installer.ts b/src/extensions/extension-installer/extension-installer.ts index de97c71f00..941f8700d1 100644 --- a/src/extensions/extension-installer/extension-installer.ts +++ b/src/extensions/extension-installer/extension-installer.ts @@ -5,10 +5,7 @@ import AwaitLock from "await-lock"; import child_process from "child_process"; -import fs from "fs-extra"; -import path from "path"; import logger from "../../main/logger"; -import type { PackageJson } from "type-fest"; const logModule = "[EXTENSION-INSTALLER]"; @@ -38,27 +35,6 @@ export class ExtensionInstaller { return __non_webpack_require__.resolve("npm"); } - /** - * Write package.json to the file system and execute npm install for it. - */ - installPackages = async (packageJsonPath: string, packagesJson: PackageJson): Promise => { - // Mutual exclusion to install packages in sequence - await this.installLock.acquireAsync(); - - try { - // Write the package.json which will be installed in .installDependencies() - await fs.writeFile(path.join(packageJsonPath), JSON.stringify(packagesJson, null, 2), { - mode: 0o600, - }); - - logger.info(`${logModule} installing dependencies at ${this.dependencies.extensionPackageRootDirectory}`); - await this.npm(...baseNpmInstallArgs); - logger.info(`${logModule} dependencies installed at ${this.dependencies.extensionPackageRootDirectory}`); - } finally { - this.installLock.release(); - } - }; - /** * Install single package using npm */ diff --git a/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts b/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts deleted file mode 100644 index 7387326e15..0000000000 --- a/src/extensions/extension-installer/install-extensions/install-extensions.injectable.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { getInjectable } from "@ogre-tools/injectable"; -import extensionInstallerInjectable from "../extension-installer.injectable"; - -const installExtensionsInjectable = getInjectable({ - id: "install-extensions", - instantiate: (di) => di.inject(extensionInstallerInjectable).installPackages, -}); - -export default installExtensionsInjectable; diff --git a/src/main/logger/console-format.ts b/src/main/logger/console-format.ts index 909b244aa0..e9aeb30786 100644 --- a/src/main/logger/console-format.ts +++ b/src/main/logger/console-format.ts @@ -7,6 +7,7 @@ import { LEVEL, MESSAGE, SPLAT } from "triple-beam"; import chalk from "chalk"; import type { InspectOptions } from "util"; import { inspect } from "util"; +import { omit } from "lodash"; // The following license was copied from https://github.com/duccio/winston-console-format/blob/master/LICENSE // This was modified to support formatting causes @@ -112,8 +113,8 @@ export class ConsoleFormat { const messages: string[] = []; if (source instanceof Error && source.cause) { - messages.push(`Cause: ${source.cause}`); - messages.push(...this.getLines(source.cause).map(l => ` ${l}`)); + messages.push("Cause:"); + messages.push(...this.getLines(omit(source.cause, "response")).map(l => ` ${l}`)); messages.push(...this._cause(source.cause)); } diff --git a/src/renderer/components/table/table-head.scss b/src/renderer/components/table/table-head.scss index 381fb68b9c..ff9c6afec7 100644 --- a/src/renderer/components/table/table-head.scss +++ b/src/renderer/components/table/table-head.scss @@ -4,18 +4,14 @@ */ .TableHead { - $border: 1px solid var(--tableHeaderBorderColor); - background-color: var(--tableHeaderBackground); - border-bottom-width: var(--tableHeaderBorderWidth); - border-bottom-style: solid; - border-bottom-color: var(--tableHeaderBorderColor); + border-bottom: 1px solid var(--borderFaintColor); color: var(--tableHeaderColor); display: flex; flex-shrink: 0; &.topLine { - border-top: $border; + border-top: 1px solid var(--borderFaintColor); } &.sticky { diff --git a/src/renderer/themes/lens-dark.ts b/src/renderer/themes/lens-dark.ts index da4d9dc0c9..8eea180e86 100644 --- a/src/renderer/themes/lens-dark.ts +++ b/src/renderer/themes/lens-dark.ts @@ -45,8 +45,6 @@ const lensDarkTheme: LensTheme = { "tableBgcStripe": "#2a2d33", "tableBgcSelected": "#383c42", "tableHeaderBackground": "#262b2f", - "tableHeaderBorderWidth": "1px", - "tableHeaderBorderColor": "#36393e", "tableHeaderColor": "#ffffff", "tableSelectedRowColor": "#ffffff", "helmLogoBackground": "#ffffff", diff --git a/src/renderer/themes/lens-light.ts b/src/renderer/themes/lens-light.ts index f7fcbc23e2..70951b896c 100644 --- a/src/renderer/themes/lens-light.ts +++ b/src/renderer/themes/lens-light.ts @@ -44,8 +44,6 @@ const lensLightTheme: LensTheme = { "tableBgcStripe": "#f8f8f8", "tableBgcSelected": "#f4f5f5", "tableHeaderBackground": "#f1f1f1", - "tableHeaderBorderWidth": "2px", - "tableHeaderBorderColor": "#3d90ce", "tableHeaderColor": "#555555", "tableSelectedRowColor": "#222222", "helmLogoBackground": "#ffffff", diff --git a/src/renderer/themes/theme-vars.css b/src/renderer/themes/theme-vars.css index 5c0c275bca..ab117246e6 100644 --- a/src/renderer/themes/theme-vars.css +++ b/src/renderer/themes/theme-vars.css @@ -1,5 +1,5 @@ -/* +/* Generated Lens theme CSS-variables, don't edit manually. To refresh file run $: yarn run ts-node build/build_theme_vars.ts */ @@ -38,8 +38,6 @@ --tableBgcStripe: #2a2d33; --tableBgcSelected: #383c42; --tableHeaderBackground: #262b2f; ---tableHeaderBorderWidth: 1px; ---tableHeaderBorderColor: #36393e; --tableHeaderColor: #ffffff; --tableSelectedRowColor: #ffffff; --helmLogoBackground: #ffffff; diff --git a/tsconfig.json b/tsconfig.json index b97369efc7..6036d1452d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -34,7 +34,10 @@ }, "plugins": [ { - "name": "typescript-plugin-css-modules" + "name": "typescript-plugin-css-modules", + "options": { + "namedExports": false + } } ] }, diff --git a/yarn.lock b/yarn.lock index f9f35148da..032aae3cc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -598,16 +598,126 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== +"@esbuild/android-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz#6af6d16be6d534d776a51fc215bfd81a68906d2c" + integrity sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg== + "@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-arm@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.3.tgz#2a091222f3b1928e3246fb3c5202eaca88baab67" + integrity sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA== + +"@esbuild/android-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.3.tgz#a6d749c58b022d371dc40d50ac1bb4aebd1eb953" + integrity sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ== + +"@esbuild/darwin-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.3.tgz#92d1826ed2f21dcac5830b70d7215c6afbb744e2" + integrity sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw== + +"@esbuild/darwin-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.3.tgz#7fc3570c2b16e9ff4fc178593a0a4adb1ae8ea57" + integrity sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ== + +"@esbuild/freebsd-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.3.tgz#16735ce16f8c9a4e7289e9e259aa01a8d9874307" + integrity sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw== + +"@esbuild/freebsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.3.tgz#f4edd1464cb072799ed6b8ab5178478e71c13459" + integrity sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug== + +"@esbuild/linux-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.3.tgz#4b7ae6fe3618d9a40d6ca39c6edc991ac1447203" + integrity sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ== + +"@esbuild/linux-arm@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.3.tgz#4b3e9f849822e16a76a70844c4db68075b259a58" + integrity sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ== + +"@esbuild/linux-ia32@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.3.tgz#2ff3936b91bfff62f9ecf7f6411ef399b29ed22d" + integrity sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA== + "@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/linux-loong64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.3.tgz#ff8aa59f49d9ccbc1ff952ba1f5cd01a534562df" + integrity sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw== + +"@esbuild/linux-mips64el@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.3.tgz#5dd5e118071c3912df69beedbfd11fb117f0fe5e" + integrity sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw== + +"@esbuild/linux-ppc64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.3.tgz#36c62e24eae7fa3f0d921506da8fc1e6098a1364" + integrity sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q== + +"@esbuild/linux-riscv64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.3.tgz#f0fec8e7affb5bcc817fefc61a21cbb95539e393" + integrity sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ== + +"@esbuild/linux-s390x@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.3.tgz#22e10edd6e91f53c2e1f60e46abd453d7794409b" + integrity sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ== + +"@esbuild/linux-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.3.tgz#38388b73fd9eebe45b073d7d8099b9c2e54f7139" + integrity sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w== + +"@esbuild/netbsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.3.tgz#e0270569567f1530b8dbe6d11d5b4930b9cc71ae" + integrity sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA== + +"@esbuild/openbsd-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.3.tgz#3b16642d443848bca605f33ee3978a1890911e6d" + integrity sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg== + +"@esbuild/sunos-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.3.tgz#a838f247867380f0ae25ce1936dc5ab6f57b7734" + integrity sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw== + +"@esbuild/win32-arm64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.3.tgz#bedd9bef5fb41f89ce2599f1761973cf6d6a67b6" + integrity sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg== + +"@esbuild/win32-ia32@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.3.tgz#49800aa812d8cc35ceef61e8d3b01224684cc0b1" + integrity sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ== + +"@esbuild/win32-x64@0.16.3": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.3.tgz#94047dae921949cfb308117d993c4b941291ae10" + integrity sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow== + "@eslint/eslintrc@^1.3.3": version "1.3.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" @@ -1690,10 +1800,10 @@ "@swc/core-win32-ia32-msvc" "1.3.21" "@swc/core-win32-x64-msvc" "1.3.21" -"@swc/jest@^0.2.23": - version "0.2.23" - resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.23.tgz#0b7499d5927faaa090c5b7a4a0e35122968fef30" - integrity sha512-ZLj17XjHbPtNsgqjm83qizENw05emLkKGu3WuPUttcy9hkngl0/kcc7fDbcSBpADS0GUtsO+iKPjZFWVAtJSlA== +"@swc/jest@^0.2.24": + version "0.2.24" + resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.24.tgz#35d9377ede049613cd5fdd6c24af2b8dcf622875" + integrity sha512-fwgxQbM1wXzyKzl1+IW0aGrRvAA8k0Y3NxFhKigbPjOJ4mCKnWEcNX9HQS3gshflcxq8YKhadabGUVfdwjCr6Q== dependencies: "@jest/create-cache-key-function" "^27.4.2" jsonc-parser "^3.2.0" @@ -2635,14 +2745,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.1.tgz#ee5b51405f6c9ee7e60e4006d68c69450d3b4536" - integrity sha512-cOizjPlKEh0bXdFrBLTrI/J6B/QMlhwE9auOov53tgB+qMukH6/h8YAK/qw+QJGct/PTbdh2lytGyipxCcEtAw== +"@typescript-eslint/eslint-plugin@^5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.0.tgz#9a96a713b9616c783501a3c1774c9e2b40217ad0" + integrity sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q== dependencies: - "@typescript-eslint/scope-manager" "5.45.1" - "@typescript-eslint/type-utils" "5.45.1" - "@typescript-eslint/utils" "5.45.1" + "@typescript-eslint/scope-manager" "5.46.0" + "@typescript-eslint/type-utils" "5.46.0" + "@typescript-eslint/utils" "5.46.0" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -2650,72 +2760,72 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.45.1.tgz#6440ec283fa1373a12652d4e2fef4cb6e7b7e8c6" - integrity sha512-JQ3Ep8bEOXu16q0ztsatp/iQfDCtvap7sp/DKo7DWltUquj5AfCOpX2zSzJ8YkAVnrQNqQ5R62PBz2UtrfmCkA== +"@typescript-eslint/parser@^5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.46.0.tgz#002d8e67122947922a62547acfed3347cbf2c0b6" + integrity sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA== dependencies: - "@typescript-eslint/scope-manager" "5.45.1" - "@typescript-eslint/types" "5.45.1" - "@typescript-eslint/typescript-estree" "5.45.1" + "@typescript-eslint/scope-manager" "5.46.0" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/typescript-estree" "5.46.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.45.1.tgz#5b87d025eec7035d879b99c260f03be5c247883c" - integrity sha512-D6fCileR6Iai7E35Eb4Kp+k0iW7F1wxXYrOhX/3dywsOJpJAQ20Fwgcf+P/TDtvQ7zcsWsrJaglaQWDhOMsspQ== +"@typescript-eslint/scope-manager@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.46.0.tgz#60790b14d0c687dd633b22b8121374764f76ce0d" + integrity sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA== dependencies: - "@typescript-eslint/types" "5.45.1" - "@typescript-eslint/visitor-keys" "5.45.1" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/visitor-keys" "5.46.0" -"@typescript-eslint/type-utils@5.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.45.1.tgz#cb7d300c3c95802cea9f87c7f8be363cf8f8538c" - integrity sha512-aosxFa+0CoYgYEl3aptLe1svP910DJq68nwEJzyQcrtRhC4BN0tJAvZGAe+D0tzjJmFXe+h4leSsiZhwBa2vrA== +"@typescript-eslint/type-utils@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.46.0.tgz#3a4507b3b437e2fd9e95c3e5eea5ae16f79d64b3" + integrity sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg== dependencies: - "@typescript-eslint/typescript-estree" "5.45.1" - "@typescript-eslint/utils" "5.45.1" + "@typescript-eslint/typescript-estree" "5.46.0" + "@typescript-eslint/utils" "5.46.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.45.1.tgz#8e1883041cee23f1bb7e1343b0139f97f6a17c14" - integrity sha512-HEW3U0E5dLjUT+nk7b4lLbOherS1U4ap+b9pfu2oGsW3oPu7genRaY9dDv3nMczC1rbnRY2W/D7SN05wYoGImg== +"@typescript-eslint/types@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.46.0.tgz#f4d76622a996b88153bbd829ea9ccb9f7a5d28bc" + integrity sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw== -"@typescript-eslint/typescript-estree@5.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.1.tgz#b3dc37f0c4f0fe73e09917fc735e6f96eabf9ba4" - integrity sha512-76NZpmpCzWVrrb0XmYEpbwOz/FENBi+5W7ipVXAsG3OoFrQKJMiaqsBMbvGRyLtPotGqUfcY7Ur8j0dksDJDng== +"@typescript-eslint/typescript-estree@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.0.tgz#a6c2b84b9351f78209a1d1f2d99ca553f7fa29a5" + integrity sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw== dependencies: - "@typescript-eslint/types" "5.45.1" - "@typescript-eslint/visitor-keys" "5.45.1" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/visitor-keys" "5.46.0" 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.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.45.1.tgz#39610c98bde82c4792f2a858b29b7d0053448be2" - integrity sha512-rlbC5VZz68+yjAzQBc4I7KDYVzWG2X/OrqoZrMahYq3u8FFtmQYc+9rovo/7wlJH5kugJ+jQXV5pJMnofGmPRw== +"@typescript-eslint/utils@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.46.0.tgz#600cd873ba471b7d8b0b9f35de34cf852c6fcb31" + integrity sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.45.1" - "@typescript-eslint/types" "5.45.1" - "@typescript-eslint/typescript-estree" "5.45.1" + "@typescript-eslint/scope-manager" "5.46.0" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/typescript-estree" "5.46.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.45.1": - version "5.45.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.1.tgz#204428430ad6a830d24c5ac87c71366a1cfe1948" - integrity sha512-cy9ln+6rmthYWjH9fmx+5FU/JDpjQb586++x2FZlveq7GdGuLLW9a2Jcst2TGekH82bXpfmRNSwP9tyEs6RjvQ== +"@typescript-eslint/visitor-keys@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.0.tgz#36d87248ae20c61ef72404bcd61f14aa2563915f" + integrity sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw== dependencies: - "@typescript-eslint/types" "5.45.1" + "@typescript-eslint/types" "5.46.0" eslint-visitor-keys "^3.3.0" "@webassemblyjs/ast@1.11.1": @@ -5430,7 +5540,7 @@ esbuild-windows-arm64@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.18, esbuild@^0.15.6: +esbuild@^0.15.6: version "0.15.18" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== @@ -5458,6 +5568,34 @@ esbuild@^0.15.18, esbuild@^0.15.6: esbuild-windows-64 "0.15.18" esbuild-windows-arm64 "0.15.18" +esbuild@^0.16.3: + version "0.16.3" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.3.tgz#5868632fa23f7a8547f2a4ea359c44e946515c94" + integrity sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg== + optionalDependencies: + "@esbuild/android-arm" "0.16.3" + "@esbuild/android-arm64" "0.16.3" + "@esbuild/android-x64" "0.16.3" + "@esbuild/darwin-arm64" "0.16.3" + "@esbuild/darwin-x64" "0.16.3" + "@esbuild/freebsd-arm64" "0.16.3" + "@esbuild/freebsd-x64" "0.16.3" + "@esbuild/linux-arm" "0.16.3" + "@esbuild/linux-arm64" "0.16.3" + "@esbuild/linux-ia32" "0.16.3" + "@esbuild/linux-loong64" "0.16.3" + "@esbuild/linux-mips64el" "0.16.3" + "@esbuild/linux-ppc64" "0.16.3" + "@esbuild/linux-riscv64" "0.16.3" + "@esbuild/linux-s390x" "0.16.3" + "@esbuild/linux-x64" "0.16.3" + "@esbuild/netbsd-x64" "0.16.3" + "@esbuild/openbsd-x64" "0.16.3" + "@esbuild/sunos-x64" "0.16.3" + "@esbuild/win32-arm64" "0.16.3" + "@esbuild/win32-ia32" "0.16.3" + "@esbuild/win32-x64" "0.16.3" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -8256,6 +8394,9 @@ klona@^2.0.4, klona@^2.0.5: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== +"kube-object-event-status@file:./extensions/kube-object-event-status": + version "6.1.1" + kuler@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" @@ -8273,6 +8414,15 @@ lazy-val@^1.0.4, lazy-val@^1.0.5: resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== +"lens-metrics-cluster-feature@file:./extensions/metrics-cluster-feature": + version "6.1.0" + +"lens-node-menu@file:./extensions/node-menu": + version "6.1.0" + +"lens-pod-menu@file:./extensions/pod-menu": + version "6.1.0" + less@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/less/-/less-4.1.2.tgz#6099ee584999750c2624b65f80145f8674e4b4b0" @@ -8838,6 +8988,9 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= +"metrics-cluster-feature@file:./extensions/metrics-cluster-feature": + version "6.1.0" + micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -8893,10 +9046,10 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@*, mini-css-extract-plugin@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.1.tgz#ec924df783cff32ce6183fceb653028f70128643" - integrity sha512-viOoaUFy+Z2w43VsGPbtfwFrr0tKwDctK9dUofG5MBViYhD1noGFUzzDIVw0KPwCGUP+c7zqLxm+acuQs7zLzw== +mini-css-extract-plugin@*, mini-css-extract-plugin@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz#e049d3ea7d3e4e773aad585c6cb329ce0c7b72d7" + integrity sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw== dependencies: schema-utils "^4.0.0" @@ -8996,6 +9149,13 @@ minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3. dependencies: yallist "^4.0.0" +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== + dependencies: + yallist "^4.0.0" + minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -9277,6 +9437,9 @@ node-loader@^2.0.0: dependencies: loader-utils "^2.0.0" +"node-menu@file:./extensions/node-menu": + version "6.1.0" + node-pty@0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.1.tgz#cd05d03a2710315ec40221232ec04186f6ac2c6d" @@ -10082,6 +10245,9 @@ plist@^3.0.1, plist@^3.0.4: base64-js "^1.5.1" xmlbuilder "^9.0.7" +"pod-menu@file:./extensions/pod-menu": + version "6.1.0" + popper.js@1.16.1-lts: version "1.16.1-lts" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" @@ -10209,10 +10375,10 @@ postcss@^6.0.14, postcss@^6.0.2: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^8.3.0, postcss@^8.4.18, postcss@^8.4.19: - version "8.4.19" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" - integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== +postcss@^8.3.0, postcss@^8.4.18, postcss@^8.4.20: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -11985,14 +12151,14 @@ tar-stream@^2.1.4, tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.12, tar@^6.1.2: - version "6.1.12" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" - integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== +tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.13, tar@^6.1.2: + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^4.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -12444,10 +12610,10 @@ typescript-plugin-css-modules@^3.4.0: stylus "^0.54.8" tsconfig-paths "^3.9.0" -typescript@^4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" - integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== +typescript@^4.9.4: + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== typical@^4.0.0: version "4.0.0"