1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Merge branch 'master' into issue-3498

This commit is contained in:
Sebastian Malton 2023-01-30 16:11:19 -05:00
commit 5db9def8e5
58 changed files with 4495 additions and 383 deletions

View File

@ -4,6 +4,6 @@
"packages": [
"packages/*"
],
"version": "6.4.0-beta.8",
"version": "6.4.0-beta.10",
"npmClient": "yarn"
}

View File

@ -3,7 +3,7 @@
"productName": "",
"description": "Lens Desktop Core",
"homepage": "https://github.com/lensapp/lens",
"version": "6.4.0-beta.8",
"version": "6.4.0-beta.10",
"repository": {
"type": "git",
"url": "git+https://github.com/lensapp/lens.git"
@ -127,7 +127,7 @@
"@astronautlabs/jsonpath": "^1.1.0",
"@hapi/call": "^9.0.0",
"@hapi/subtext": "^7.0.4",
"@k8slens/node-fetch": "^6.4.0-beta.8",
"@k8slens/node-fetch": "^6.4.0-beta.10",
"@kubernetes/client-node": "^0.18.1",
"@material-ui/styles": "^4.11.5",
"@ogre-tools/fp": "^12.0.1",
@ -158,7 +158,7 @@
"history": "^4.10.1",
"hpagent": "^1.2.0",
"http-proxy": "^1.18.1",
"immer": "^9.0.18",
"immer": "^9.0.19",
"joi": "^17.7.0",
"js-yaml": "^4.1.0",
"jsdom": "^16.7.0",
@ -205,7 +205,7 @@
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
"@sentry/types": "^6.19.7",
"@swc/cli": "^0.1.59",
"@swc/core": "^1.3.28",
"@swc/core": "^1.3.30",
"@swc/jest": "^0.2.24",
"@testing-library/dom": "^7.31.2",
"@testing-library/jest-dom": "^5.16.5",
@ -276,11 +276,11 @@
"electron-notarize": "^0.3.0",
"esbuild": "^0.17.3",
"esbuild-loader": "^2.21.0",
"eslint": "^8.32.0",
"eslint": "^8.33.0",
"eslint-import-resolver-typescript": "^3.5.3",
"eslint-plugin-header": "^3.1.1",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-react": "^7.32.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-unused-imports": "^2.0.0",
"fork-ts-checker-webpack-plugin": "^7.3.0",

View File

@ -0,0 +1,20 @@
/**
* 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 verticalPodAutoscalersRouteInjectable from "./vertical-pod-autoscalers-route.injectable";
import { navigateToRouteInjectionToken } from "../../../../navigate-to-route-injection-token";
const navigateToVerticalPodAutoscalersInjectable = getInjectable({
id: "navigate-to-vertical-pod-autoscalers",
instantiate: (di) => {
const navigateToRoute = di.inject(navigateToRouteInjectionToken);
const route = di.inject(verticalPodAutoscalersRouteInjectable);
return () => navigateToRoute(route);
},
});
export default navigateToVerticalPodAutoscalersInjectable;

View File

@ -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 { shouldShowResourceInjectionToken } from "../../../../../cluster-store/allowed-resources-injection-token";
import { frontEndRouteInjectionToken } from "../../../../front-end-route-injection-token";
const verticalPodAutoscalersRouteInjectable = getInjectable({
id: "vertical-pod-autoscalers-route",
instantiate: (di) => ({
path: "/vpa",
clusterFrame: true,
isEnabled: di.inject(shouldShowResourceInjectionToken, {
apiName: "verticalpodautoscalers",
group: "autoscaling.k8s.io",
}),
}),
injectionToken: frontEndRouteInjectionToken,
});
export default verticalPodAutoscalersRouteInjectable;

View File

@ -8,6 +8,7 @@ import type { DerivedKubeApiOptions, KubeApiDependencies } from "../kube-api";
import { KubeApi } from "../kube-api";
import type { BaseKubeObjectCondition, LabelSelector, NamespaceScopedMetadata } from "../kube-object";
import { KubeObject } from "../kube-object";
import type { CrossVersionObjectReference } from "./types/cross-version-object-reference";
export enum HpaMetricType {
Resource = "Resource",
@ -299,12 +300,6 @@ export type HorizontalPodAutoscalerMetricStatus =
| OptionVarient<HpaMetricType.Pods, BaseHorizontalPodAutoscalerMetricStatus, "pods">
| OptionVarient<HpaMetricType.ContainerResource, BaseHorizontalPodAutoscalerMetricStatus, "containerResource">;
export interface CrossVersionObjectReference {
kind: string;
name: string;
apiVersion: string;
}
export interface HorizontalPodAutoscalerSpec {
scaleTargetRef: CrossVersionObjectReference;
minReplicas?: number;

View File

@ -44,3 +44,4 @@ export * from "./service-account.api";
export * from "./stateful-set.api";
export * from "./storage-class.api";
export * from "./types";
export * from "./vertical-pod-autoscaler.api";

View File

@ -0,0 +1,11 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
export interface CrossVersionObjectReference {
kind: string;
name: string;
apiVersion: string;
}

View File

@ -7,6 +7,7 @@ export * from "./aggregation-rule";
export * from "./capabilities";
export * from "./container";
export * from "./container-port";
export * from "./cross-version-object-reference";
export * from "./env-from-source";
export * from "./env-source";
export * from "./env-var-key-selector";

View File

@ -0,0 +1,27 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import assert from "assert";
import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token";
import { VerticalPodAutoscalerApi } from "./vertical-pod-autoscaler.api";
import { kubeApiInjectionToken } from "../kube-api/kube-api-injection-token";
import loggerInjectable from "../../logger.injectable";
import maybeKubeApiInjectable from "../maybe-kube-api.injectable";
const verticalPodAutoscalerApiInjectable = getInjectable({
id: "vertical-pod-autoscaler-api",
instantiate: (di) => {
assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "verticalPodAutoscalerApi is only available in certain environments");
return new VerticalPodAutoscalerApi({
logger: di.inject(loggerInjectable),
maybeKubeApi: di.inject(maybeKubeApiInjectable),
});
},
injectionToken: kubeApiInjectionToken,
});
export default verticalPodAutoscalerApiInjectable;

View File

@ -0,0 +1,149 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { BaseKubeObjectCondition, NamespaceScopedMetadata } from "../kube-object";
import { KubeObject } from "../kube-object";
import type { DerivedKubeApiOptions, KubeApiDependencies } from "../kube-api";
import { KubeApi } from "../kube-api";
import type { CrossVersionObjectReference } from "./types/cross-version-object-reference";
export enum ResourceName {
ResourceCPU = "cpu",
ResourceMemory = "memory",
ResourceStorage = "storage",
}
export type ResourceList = Partial<Record<string, string>>;
export interface RecommendedContainerResources {
containerName?: string;
target: ResourceList;
lowerBound?: ResourceList;
upperBound?: ResourceList;
uncappedTarget?: ResourceList;
}
export interface RecommendedPodResources {
containerRecommendations?: RecommendedContainerResources[];
}
export interface VerticalPodAutoscalerStatus {
conditions?: BaseKubeObjectCondition[];
recommendation?: RecommendedPodResources;
}
export interface VerticalPodAutoscalerRecommenderSelector {
name: string;
}
export enum ContainerScalingMode {
ContainerScalingModeAuto = "Auto",
ContainerScalingModeOff = "Off",
}
export enum ControlledValues {
ControlledValueRequestsAndLimits = "RequestsAndLimits",
ControlledValueRequestsOnly = "RequestsOnly",
}
/**
* ContainerResourcePolicy controls how autoscaler computes the recommended resources for
* a specific container.
*/
export interface ContainerResourcePolicy {
containerName?: string;
mode?: ContainerScalingMode;
minAllowed?: ResourceList;
maxAllowed?: ResourceList;
controlledResources?: ResourceName[];
controlledValues?: ControlledValues;
}
/**
* Controls how the autoscaler computes recommended resources.
* The resource policy may be used to set constraints on the recommendations for individual
* containers.
* If not specified, the autoscaler computes recommended resources for all containers in the
* pod, without additional constraints.
*/
export interface PodResourcePolicy {
containerPolicies?: ContainerResourcePolicy[]; // Per-container resource policies.
}
export enum UpdateMode {
/**
* UpdateModeOff means that autoscaler never changes Pod resources.
* The recommender still sets the recommended resources in the
* VerticalPodAutoscaler object. This can be used for a "dry run".
*/
UpdateModeOff = "Off",
/**
* UpdateModeInitial means that autoscaler only assigns resources on pod
* creation and does not change them during the lifetime of the pod.
*/
UpdateModeInitial = "Initial",
/**
* UpdateModeRecreate means that autoscaler assigns resources on pod
* creation and additionally can update them during the lifetime of the
* pod by deleting and recreating the pod.
*/
UpdateModeRecreate = "Recreate",
/**
* UpdateModeAuto means that autoscaler assigns resources on pod creation
* and additionally can update them during the lifetime of the pod,
* using any available update method. Currently this is equivalent to
* Recreate, which is the only available update method.
*/
UpdateModeAuto = "Auto",
}
export interface PodUpdatePolicy {
minReplicas?: number;
updateMode?: UpdateMode;
}
export interface VerticalPodAutoscalerSpec {
targetRef: CrossVersionObjectReference;
updatePolicy?: PodUpdatePolicy;
resourcePolicy?: PodResourcePolicy;
recommenders?: VerticalPodAutoscalerRecommenderSelector[];
}
export class VerticalPodAutoscaler extends KubeObject<
NamespaceScopedMetadata,
VerticalPodAutoscalerStatus,
VerticalPodAutoscalerSpec
> {
static readonly kind = "VerticalPodAutoscaler";
static readonly namespaced = true;
static readonly apiBase = "/apis/autoscaling.k8s.io/v1/verticalpodautoscalers";
getReadyConditions() {
return this.getConditions().filter(({ isReady }) => isReady);
}
getConditions() {
return this.status?.conditions?.map(condition => {
const { message, reason, lastTransitionTime, status } = condition;
return {
...condition,
isReady: status === "True",
tooltip: `${message || reason || ""} (${lastTransitionTime})`,
};
}) ?? [];
}
getMode() {
return this.spec.updatePolicy?.updateMode ?? UpdateMode.UpdateModeAuto;
}
}
export class VerticalPodAutoscalerApi extends KubeApi<VerticalPodAutoscaler> {
constructor(deps: KubeApiDependencies, opts?: DerivedKubeApiOptions) {
super(deps, {
...opts ?? {},
objectConstructor: VerticalPodAutoscaler,
});
}
}

View File

@ -7,7 +7,7 @@ export type KubeResource =
"namespaces" | "nodes" | "events" | "resourcequotas" | "services" | "limitranges" | "leases" |
"secrets" | "configmaps" | "ingresses" | "ingressclasses" | "networkpolicies" | "persistentvolumeclaims" | "persistentvolumes" | "storageclasses" |
"pods" | "daemonsets" | "deployments" | "statefulsets" | "replicasets" | "jobs" | "cronjobs" |
"endpoints" | "customresourcedefinitions" | "horizontalpodautoscalers" | "podsecuritypolicies" | "poddisruptionbudgets" |
"endpoints" | "customresourcedefinitions" | "horizontalpodautoscalers" | "verticalpodautoscalers" | "podsecuritypolicies" | "poddisruptionbudgets" |
"priorityclasses" | "runtimeclasses" |
"roles" | "clusterroles" | "rolebindings" | "clusterrolebindings" | "serviceaccounts";
@ -206,4 +206,9 @@ export const apiResourceRecord: Record<KubeResource, KubeApiResourceData> = {
group: "storage.k8s.io",
namespaced: false,
},
verticalpodautoscalers: {
kind: "VerticalPodAutoscaler",
group: "autoscaling.k8s.io",
namespaced: true,
},
};

View File

@ -6,6 +6,7 @@
import { LensExtension, lensExtensionDependencies } from "./lens-extension";
import type { CatalogEntity } from "../common/catalog";
import type { IComputedValue, IObservableArray } from "mobx";
import { isObservableArray } from "mobx";
import type { MenuRegistration } from "../features/application-menu/main/menu-registration";
import type { TrayMenuRegistration } from "../main/tray/tray-menu-registration";
import type { ShellEnvModifier } from "../main/shell-session/shell-env-modifier/shell-env-modifier-registration";
@ -34,8 +35,12 @@ export class LensMainExtension extends LensExtension<LensMainExtensionDependenci
await this[lensExtensionDependencies].navigate(this.id, pageId, params, frameId);
}
addCatalogSource(id: string, source: IObservableArray<CatalogEntity>) {
this[lensExtensionDependencies].entityRegistry.addObservableSource(`${this.name}:${id}`, source);
addCatalogSource(id: string, source: IObservableArray<CatalogEntity> | IComputedValue<CatalogEntity[]>) {
if (isObservableArray(source)) {
this[lensExtensionDependencies].entityRegistry.addObservableSource(`${this.name}:${id}`, source);
} else {
this[lensExtensionDependencies].entityRegistry.addComputedSource(`${this.name}:${id}`, source);
}
}
removeCatalogSource(id: string) {

View File

@ -23,6 +23,7 @@ import secretApiInjectable from "../../common/k8s-api/endpoints/secret.api.injec
import resourceQuotaApiInjectable from "../../common/k8s-api/endpoints/resource-quota.api.injectable";
import limitRangeApiInjectable from "../../common/k8s-api/endpoints/limit-range.api.injectable";
import horizontalPodAutoscalerApiInjectable from "../../common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable";
import verticalPodAutoscalerApiInjectable from "../../common/k8s-api/endpoints/vertical-pod-autoscaler.api.injectable";
import podDisruptionBudgetApiInjectable from "../../common/k8s-api/endpoints/pod-disruption-budget.api.injectable";
import priorityClassStoreApiInjectable from "../../common/k8s-api/endpoints/priority-class.api.injectable";
import serviceApiInjectable from "../../common/k8s-api/endpoints/service.api.injectable";
@ -76,6 +77,7 @@ export const resourceQuotaApi = asLegacyGlobalForExtensionApi(resourceQuotaApiIn
export const limitRangeApi = asLegacyGlobalForExtensionApi(limitRangeApiInjectable);
export const serviceApi = asLegacyGlobalForExtensionApi(serviceApiInjectable);
export const hpaApi = asLegacyGlobalForExtensionApi(horizontalPodAutoscalerApiInjectable);
export const vpaApi = asLegacyGlobalForExtensionApi(verticalPodAutoscalerApiInjectable);
export const pdbApi = asLegacyGlobalForExtensionApi(podDisruptionBudgetApiInjectable);
export const pcApi = asLegacyGlobalForExtensionApi(priorityClassStoreApiInjectable);
export const endpointApi = asLegacyGlobalForExtensionApi(endpointsApiInjectable);
@ -110,7 +112,14 @@ export type { SecretStore as SecretsStore } from "../../renderer/components/+con
export type { ReplicaSetStore } from "../../renderer/components/+workloads-replicasets/store";
export type { ResourceQuotaStore as ResourceQuotasStore } from "../../renderer/components/+config-resource-quotas/store";
export type { LimitRangeStore as LimitRangesStore } from "../../renderer/components/+config-limit-ranges/store";
export type { HorizontalPodAutoscalerStore as HPAStore } from "../../renderer/components/+config-autoscalers/store";
export type {
/**
* @deprecated
*/
HorizontalPodAutoscalerStore as HPAStore,
HorizontalPodAutoscalerStore,
} from "../../renderer/components/+config-horizontal-pod-autoscalers/store";
export type { VerticalPodAutoscalerStore } from "../../renderer/components/+config-vertical-pod-autoscalers/store";
export type { PodDisruptionBudgetStore as PodDisruptionBudgetsStore } from "../../renderer/components/+config-pod-disruption-budgets/store";
export type { PriorityClassStore as PriorityClassStoreStore } from "../../renderer/components/+config-priority-classes/store";
export type { ServiceStore } from "../../renderer/components/+network-services/store";

View File

@ -0,0 +1,24 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
$vpa-status-colors: (
recommendationprovided: var(--colorOk),
lowconfidence: var(--colorInfo),
fetchinghistory: var(--colorInfo),
nopodsmatched: var(--colorInfo),
configdeprecated: var(--colorSoftError),
configunsupported: var(--colorError),
);
@mixin vpa-status-bgc {
@each $status,
$color in $vpa-status-colors {
&.#{$status} {
background: $color;
color: white;
}
}
}

View File

@ -0,0 +1,7 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
export * from "./vpa";
export * from "./vpa-details";

View File

@ -0,0 +1,29 @@
/**
* 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 assert from "assert";
import loggerInjectable from "../../../common/logger.injectable";
import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token";
import verticalPodAutoscalerApiInjectable from "../../../common/k8s-api/endpoints/vertical-pod-autoscaler.api.injectable";
import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable";
import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable";
import { VerticalPodAutoscalerStore } from "./store";
const verticalPodAutoscalerStoreInjectable = getInjectable({
id: "vertical-pod-autoscaler-store",
instantiate: (di) => {
assert(di.inject(storesAndApisCanBeCreatedInjectable), "verticalPodAutoscalerStore is only available in certain environments");
const api = di.inject(verticalPodAutoscalerApiInjectable);
return new VerticalPodAutoscalerStore({
context: di.inject(clusterFrameContextForNamespacedResourcesInjectable),
logger: di.inject(loggerInjectable),
}, api);
},
injectionToken: kubeObjectStoreInjectionToken,
});
export default verticalPodAutoscalerStoreInjectable;

View File

@ -0,0 +1,10 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { KubeObjectStore } from "../../../common/k8s-api/kube-object.store";
import type { VerticalPodAutoscaler, VerticalPodAutoscalerApi } from "../../../common/k8s-api/endpoints/vertical-pod-autoscaler.api";
export class VerticalPodAutoscalerStore extends KubeObjectStore<VerticalPodAutoscaler, VerticalPodAutoscalerApi> {
}

View File

@ -0,0 +1,38 @@
/**
* 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 { computed } from "mobx";
import verticalPodAutoscalersRouteInjectable from "../../../common/front-end-routing/routes/cluster/config/vertical-pod-autoscalers/vertical-pod-autoscalers-route.injectable";
import { configSidebarItemId } from "../+config/config-sidebar-items.injectable";
import type { SidebarItemRegistration } from "../layout/sidebar-items.injectable";
import { sidebarItemsInjectionToken } from "../layout/sidebar-items.injectable";
import routeIsActiveInjectable from "../../routes/route-is-active.injectable";
import navigateToVerticalPodAutoscalersInjectable from "../../../common/front-end-routing/routes/cluster/config/vertical-pod-autoscalers/navigate-to-vertical-pod-autoscalers.injectable";
const verticalPodAutoScalersSidebarItemsInjectable = getInjectable({
id: "vertical-pod-auto-scalers-sidebar-items",
instantiate: (di) => {
const route = di.inject(verticalPodAutoscalersRouteInjectable);
const navigateToVerticalPodAutoscalers = di.inject(navigateToVerticalPodAutoscalersInjectable);
const routeIsActive = di.inject(routeIsActiveInjectable, route);
return computed((): SidebarItemRegistration[] => [
{
id: "vertical-pod-auto-scalers",
parentId: configSidebarItemId,
title: "VPA",
onClick: navigateToVerticalPodAutoscalers,
isActive: routeIsActive,
isVisible: route.isEnabled,
orderNumber: 50,
},
]);
},
injectionToken: sidebarItemsInjectionToken,
});
export default verticalPodAutoScalersSidebarItemsInjectable;

View File

@ -0,0 +1,21 @@
/**
* 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 { routeSpecificComponentInjectionToken } from "../../routes/route-specific-component-injection-token";
import verticalPodAutoscalersRouteInjectable from "../../../common/front-end-routing/routes/cluster/config/vertical-pod-autoscalers/vertical-pod-autoscalers-route.injectable";
import { VerticalPodAutoscalers } from "./vpa";
const verticalPodAutoscalersRouteComponentInjectable = getInjectable({
id: "vertical-pod-autoscalers-route-component",
instantiate: (di) => ({
route: di.inject(verticalPodAutoscalersRouteInjectable),
Component: VerticalPodAutoscalers,
}),
injectionToken: routeSpecificComponentInjectionToken,
});
export default verticalPodAutoscalersRouteComponentInjectable;

View File

@ -0,0 +1,22 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
@import "autoscaler.mixins";
.VpaDetails {
.status {
@include vpa-status-bgc;
}
.metrics .Table {
.TableCell {
word-break: break-word;
&.name {
flex-grow: 2;
}
}
}
}

View File

@ -0,0 +1,220 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import "./vpa-details.scss";
import startCase from "lodash/startCase";
import React from "react";
import { observer } from "mobx-react";
import { Link } from "react-router-dom";
import { DrawerItem, DrawerTitle } from "../drawer";
import { Badge } from "../badge";
import type { KubeObjectDetailsProps } from "../kube-object-details";
import { cssNames } from "../../utils";
import { ContainerScalingMode, ControlledValues, ResourceName, UpdateMode, VerticalPodAutoscaler } from "../../../common/k8s-api/endpoints/vertical-pod-autoscaler.api";
import type { PodUpdatePolicy, PodResourcePolicy, VerticalPodAutoscalerStatus } from "../../../common/k8s-api/endpoints/vertical-pod-autoscaler.api";
import type { ApiManager } from "../../../common/k8s-api/api-manager";
import loggerInjectable from "../../../common/logger.injectable";
import type { Logger } from "../../../common/logger";
import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.injectable";
import { withInjectables } from "@ogre-tools/injectable-react";
import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable";
import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable";
export interface VpaDetailsProps extends KubeObjectDetailsProps<VerticalPodAutoscaler> {
}
interface Dependencies {
apiManager: ApiManager;
getDetailsUrl: GetDetailsUrl;
logger: Logger;
}
@observer
class NonInjectedVpaDetails extends React.Component<VpaDetailsProps & Dependencies> {
renderStatus(status: VerticalPodAutoscalerStatus) {
const { recommendation } = status;
const { object: vpa } = this.props;
return (
<div>
<DrawerTitle>Status</DrawerTitle>
<DrawerItem
name="Status"
className="status"
labelsOnly
>
{vpa.getReadyConditions()
.map(({ type, tooltip, isReady }) => (
<Badge
key={type}
label={type}
tooltip={tooltip}
className={cssNames({ [type.toLowerCase()]: isReady })}
/>
))}
</DrawerItem>
{recommendation?.containerRecommendations && (
recommendation.containerRecommendations
.map( ({ containerName, target, lowerBound, upperBound, uncappedTarget }) => {
return (
<div key={containerName}>
<DrawerTitle>{`Container Recommendation for ${containerName}`}</DrawerTitle>
<DrawerItem name="target" >
{Object.entries(target).map(([name, value]) => (
<DrawerItem key={name} name={startCase(name)}>
{value}
</DrawerItem>
))}
</DrawerItem>
{lowerBound && (
<DrawerItem name="lowerBound" >
{Object.entries(lowerBound).map(([name, value]) => (
<DrawerItem key={name} name={startCase(name)}>
{value}
</DrawerItem>
))}
</DrawerItem>
)}
{upperBound && (
<DrawerItem name="upperBound" >
{Object.entries(upperBound).map(([name, value]) => (
<DrawerItem key={name} name={startCase(name)}>
{value}
</DrawerItem>
))}
</DrawerItem>
)}
{uncappedTarget && (
<DrawerItem name="uncappedTarget" >
{Object.entries(uncappedTarget).map(([name, value]) => (
<DrawerItem key={name} name={startCase(name)}>
{value}
</DrawerItem>
))}
</DrawerItem>
)}
</div>
);
})
)}
</div>
);
}
renderUpdatePolicy(updatePolicy: PodUpdatePolicy) {
return (
<div>
<DrawerTitle>Update Policy</DrawerTitle>
<DrawerItem name="updateMode" >
{updatePolicy?.updateMode ?? UpdateMode.UpdateModeAuto}
</DrawerItem>
<DrawerItem name="minReplicas" >
{updatePolicy?.minReplicas}
</DrawerItem>
</div>
);
}
renderResourcePolicy(resourcePolicy: PodResourcePolicy) {
return (
<div>
{resourcePolicy.containerPolicies && (
<div>
{resourcePolicy.containerPolicies
.map( ({ containerName, mode, minAllowed, maxAllowed, controlledResources, controlledValues }) => {
return (
<div key={containerName}>
<DrawerTitle>{`Container Policy for ${containerName}`}</DrawerTitle>
<DrawerItem name="mode" >
{mode ?? ContainerScalingMode.ContainerScalingModeAuto}
</DrawerItem>
{minAllowed && (
<DrawerItem name="minAllowed" >
{Object.entries(minAllowed).map(([name, value]) => (
<DrawerItem key={name} name={startCase(name)}>
{value}
</DrawerItem>
))}
</DrawerItem>
)}
{maxAllowed && (
<DrawerItem name="maxAllowed" >
{Object.entries(maxAllowed).map(([name, value]) => (
<DrawerItem key={name} name={startCase(name)}>
{value}
</DrawerItem>
))}
</DrawerItem>
)}
<DrawerItem name="controlledResources" >
{controlledResources?.length ? controlledResources.join(", ") : `${ResourceName.ResourceCPU}, ${ResourceName.ResourceMemory}`}
</DrawerItem>
<DrawerItem name="controlledValues" >
{controlledValues ?? ControlledValues.ControlledValueRequestsAndLimits}
</DrawerItem>
</div>
);
})
}
</div>
)}
</div>
);
}
render() {
const { object: vpa, apiManager, getDetailsUrl, logger } = this.props;
if (!vpa) {
return null;
}
if (!(vpa instanceof VerticalPodAutoscaler)) {
logger.error("[VpaDetails]: passed object that is not an instanceof VerticalPodAutoscaler", vpa);
return null;
}
const { targetRef, recommenders, resourcePolicy, updatePolicy } = vpa.spec;
return (
<div className="VpaDetails">
<DrawerItem name="Reference">
{targetRef && (
<Link to={getDetailsUrl(apiManager.lookupApiLink(targetRef, vpa))}>
{targetRef.kind}
/
{targetRef.name}
</Link>
)}
</DrawerItem>
<DrawerItem name="Recommender">
{
/* according to the spec there can be 0 or 1 recommenders, only */
recommenders?.length ? recommenders[0].name : "default"
}
</DrawerItem>
{vpa.status && this.renderStatus(vpa.status)}
{updatePolicy && this.renderUpdatePolicy(updatePolicy)}
{resourcePolicy && this.renderResourcePolicy(resourcePolicy)}
<DrawerTitle>CRD details</DrawerTitle>
</div>
);
}
}
export const VpaDetails = withInjectables<Dependencies, VpaDetailsProps>(NonInjectedVpaDetails, {
getProps: (di, props) => ({
...props,
apiManager: di.inject(apiManagerInjectable),
getDetailsUrl: di.inject(getDetailsUrlInjectable),
logger: di.inject(loggerInjectable),
}),
});

View File

@ -0,0 +1,32 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
@import "autoscaler.mixins";
.VerticalPodAutoscalers {
.TableCell {
&.name {
flex: 1.5;
}
&.warning {
@include table-cell-warning;
}
&.metrics {
flex: 1.5;
}
&.status {
flex: 1.5;
@include table-cell-labels-offsets;
@include vpa-status-bgc;
}
&.age {
flex: .5;
}
}
}

View File

@ -0,0 +1,99 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import "./vpa.scss";
import React from "react";
import { observer } from "mobx-react";
import { KubeObjectListLayout } from "../kube-object-list-layout";
import { Badge } from "../badge";
import { cssNames, prevDefault } from "../../utils";
import { KubeObjectStatusIcon } from "../kube-object-status-icon";
import { SiblingsInTabLayout } from "../layout/siblings-in-tab-layout";
import { KubeObjectAge } from "../kube-object/age";
import type { VerticalPodAutoscalerStore } from "./store";
import type { FilterByNamespace } from "../+namespaces/namespace-select-filter-model/filter-by-namespace.injectable";
import { withInjectables } from "@ogre-tools/injectable-react";
import filterByNamespaceInjectable from "../+namespaces/namespace-select-filter-model/filter-by-namespace.injectable";
import verticalPodAutoscalerStoreInjectable from "./store.injectable";
enum columnId {
name = "name",
namespace = "namespace",
mode = "mode",
age = "age",
status = "status",
}
interface Dependencies {
verticalPodAutoscalerStore: VerticalPodAutoscalerStore;
filterByNamespace: FilterByNamespace;
}
@observer
class NonInjectedVerticalPodAutoscalers extends React.Component<Dependencies> {
render() {
return (
<SiblingsInTabLayout>
<KubeObjectListLayout
isConfigurable
tableId="configuration_vpa"
className="VerticalPodAutoscalers"
store={this.props.verticalPodAutoscalerStore}
sortingCallbacks={{
[columnId.name]: vpa => vpa.getName(),
[columnId.namespace]: vpa => vpa.getNs(),
[columnId.age]: vpa => -vpa.getCreationTimestamp(),
}}
searchFilters={[
vpa => vpa.getSearchFields(),
]}
renderHeaderTitle="Vertical Pod Autoscalers"
renderTableHeader={[
{ title: "Name", className: "name", sortBy: columnId.name },
{ className: "warning", showWithColumn: columnId.name },
{ title: "Namespace", className: "namespace", sortBy: columnId.namespace, id: columnId.namespace },
{ title: "Mode", className: "mode", sortBy: columnId.mode, id: columnId.mode },
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
{ title: "Status", className: "status scrollable", id: columnId.status },
]}
renderTableContents={vpa => [
vpa.getName(),
<KubeObjectStatusIcon key="icon" object={vpa} />,
<a
key="namespace"
className="filterNamespace"
onClick={prevDefault(() => this.props.filterByNamespace(vpa.getNs()))}
>
{vpa.getNs()}
</a>,
vpa.getMode(),
<KubeObjectAge key="age" object={vpa} />,
vpa.getConditions()
.filter(({ isReady }) => isReady)
.map(({ type, tooltip }) => (
<Badge
key={type}
label={type}
tooltip={tooltip}
className={cssNames(type.toLowerCase())}
expandable={false}
scrollable={true}
/>
)),
]}
/>
</SiblingsInTabLayout>
);
}
}
export const VerticalPodAutoscalers = withInjectables<Dependencies>(NonInjectedVerticalPodAutoscalers, {
getProps: (di, props) => ({
...props,
filterByNamespace: di.inject(filterByNamespaceInjectable),
verticalPodAutoscalerStore: di.inject(verticalPodAutoscalerStoreInjectable),
}),
});

View File

@ -4,7 +4,7 @@
*/
import { getInjectable } from "@ogre-tools/injectable";
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
import { HpaDetails } from "../../../+config-autoscalers";
import { HpaDetails } from "../../../+config-horizontal-pod-autoscalers";
import { computed } from "mobx";
import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version";
import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable";

View File

@ -0,0 +1,33 @@
/**
* 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 { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
import { VpaDetails } from "../../../+config-vertical-pod-autoscalers";
import { computed } from "mobx";
import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version";
import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable";
const verticalPodAutoscalerDetailItemInjectable = getInjectable({
id: "vertical-pod-autoscaler-detail-item",
instantiate: (di) => {
const kubeObject = di.inject(currentKubeObjectInDetailsInjectable);
return {
Component: VpaDetails,
enabled: computed(() => isVerticalPodAutoscaler(kubeObject.value.get()?.object)),
orderNumber: 10,
};
},
injectionToken: kubeObjectDetailItemInjectionToken,
});
export const isVerticalPodAutoscaler = kubeObjectMatchesToKindAndApiVersion(
"VerticalPodAutoscaler",
["autoscaling.k8s.io/v1"],
);
export default verticalPodAutoscalerDetailItemInjectable;

View File

@ -42,6 +42,7 @@ export const ResourceNames: Record<KubeResource, string> = {
"clusterrolebindings": "Cluster Role Bindings",
"clusterroles": "Cluster Roles",
"serviceaccounts": "Service Accounts",
"verticalpodautoscalers": "Vertical Pod Autoscalers",
};
export const ResourceKindMap = object.fromEntries(

View File

@ -1268,6 +1268,13 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@k8slens/node-fetch@^6.4.0-beta.10":
version "6.4.0-beta.10"
resolved "https://registry.yarnpkg.com/@k8slens/node-fetch/-/node-fetch-6.4.0-beta.10.tgz#48ebaf120d84b605e2e1ad9259cf40fe2cbe99fa"
integrity sha512-m804GvcQB+FdsIQiUJOtCVLh8y2nmpF62muxVegxSsX0uW41SUYgxno5JgGifXEESKCf5qCnVYQwpTam2w6ZUw==
dependencies:
node-fetch "^3.3.0"
"@kubernetes/client-node@^0.18.1":
version "0.18.1"
resolved "https://registry.yarnpkg.com/@kubernetes/client-node/-/client-node-0.18.1.tgz#58d864c8f584efd0f8670f6c46bb8e9d5abd58f6"
@ -1827,71 +1834,71 @@
slash "3.0.0"
source-map "^0.7.3"
"@swc/core-darwin-arm64@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.28.tgz#3ab15dd6f0ede5b3c7d6ed557a26c0fad34ee5c9"
integrity sha512-f1ph5DDIOX6bvjhlOuWz8ZDiTghhq144Sy9gaRi+DjK3gdnftc4p5AyZHA4Xb03MZ+fd0mj8q6/znco5aBMi1A==
"@swc/core-darwin-arm64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.30.tgz#fb9b20a46455f49597e760e4dfe829196e0fe12e"
integrity sha512-GZ4mZZbH77N8renK34A3Lkhl6x8z+c97SCbl43pn5E0Z0sifohA8WNhrtucKrUdid0svYibwotJzeFNpDtg7gQ==
"@swc/core-darwin-x64@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.28.tgz#e0eaa0eb763bc7def581df93b1a5df1249eb5528"
integrity sha512-5dB5Z4Ry45UTXXAxhwagCYfh57njffkdIJkjid1f+Qt4i7cOznOaIiD4wobGD7xHCATEcs8F23yWkAmvrbacew==
"@swc/core-darwin-x64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.30.tgz#2fd86123d697c024f7fe45995a3ef5a4e5e4eef0"
integrity sha512-ppGrAJmKpT3vFr2vGaxXFL8JqHsb6kSAj0dVYTNYicl3c6XOjnMiNSfu6HRbdmXt0VpFHhC5L/a7Ta89mQ1sJA==
"@swc/core-linux-arm-gnueabihf@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.28.tgz#f7038e60bddebc6b0c0aa444c50157fe4908fb58"
integrity sha512-VmtAQAENJ5SHBXTKxXNlnnM34xGOtJpHYva83zeZM/2epdoz1BJ6Ny3gTBXDftaWgAj2SRwVIjMR3/c71aJysQ==
"@swc/core-linux-arm-gnueabihf@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.30.tgz#a67ffdc80a63b68471bc176206237bd68576be40"
integrity sha512-XQYY/VNRnM0/779ehfMgh2poO3reOANvfzOprF8xmGK20+DxFqbMWjHhJutscQuEjLtdwk/LfgCkwmTaB1hhwg==
"@swc/core-linux-arm64-gnu@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.28.tgz#6e3013176c4cc5dd006c848911e3bccaf1fa77dd"
integrity sha512-KIJ1SHGbusM6W2rxue1f+IN/iuzmspgMY9qP/qW5Z43Mm9mrHdzDmhsMoEH1y2gPUsu/ZZnkXlODJ0M0454JNQ==
"@swc/core-linux-arm64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.30.tgz#7f9b2f860b8abac6636b6ffb46004da4589b513f"
integrity sha512-ME4BjMYSXana0Lfswa3aQW0rTdmR9wa1NGQ3t6MYLdBVm+76Xwe29JKlOfnI1iCCtcbRBoWy4dlhyuxW8DN7cw==
"@swc/core-linux-arm64-musl@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.28.tgz#01896d81f967104fb851534962dd344252d85025"
integrity sha512-Zz2DZj8ncSvVEAsol8gtoXrVLP8e+IYSx6o8txYVR0p0pviJBzeuYGaLe5sbQdQnVVS2M5N90LX28P6/mQb6sQ==
"@swc/core-linux-arm64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.30.tgz#b917db1f71b8382e033b8bcbeccd8a326747c41b"
integrity sha512-h3X9Pn1m5kuFSW8lJyDiMB4ELNZFJ+QxLva5GCxZDArQttkNeY4tMNWFcaG44xUXeywffrgjpXO7Yj2JGzmG4g==
"@swc/core-linux-x64-gnu@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.28.tgz#03d9b0171267ccc5d0efd2a939150f5d1da550ae"
integrity sha512-Za3uowhcP74qSCNqjZLBx3nAmjIFYNbB0nGBKwkLBopbMcpO0BjvnsdzmoWqv2Uq41vaeVk/o9vATQMojfHHQg==
"@swc/core-linux-x64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.30.tgz#fc63a70a34d444b0a9460caeb239c630e8cf905b"
integrity sha512-vfPR8cakx5IZQSpNuXPrpkRprBdVxXsvN5JWN3fpuNVIgFFo3q8njihaItujKvePIHQwov4achfBZlm4JRitWQ==
"@swc/core-linux-x64-musl@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.28.tgz#6badfc87d94b7891c11aa71496498d2ff29535db"
integrity sha512-i3BAkmrf19VXybbjuS9Jnlnx5Ie4vukLMCQRfXCQqIqaiSw3QzubjolYo07sGtzoVI3nBscDt3i8T+oxTPOMkw==
"@swc/core-linux-x64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.30.tgz#07003373a8813c3b82bd8ad2c2ea500a8cd6c9cd"
integrity sha512-jtfv8N+00E2RMTVjwfTfimeqzo0B9FmbbSkzlnLvkmV8xDAPyLmX7v/xL5YiVJRLeSrlJ7DmkCSxLzpJao73dw==
"@swc/core-win32-arm64-msvc@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.28.tgz#2441d2cdbc313618332de014be0c6c3573931b62"
integrity sha512-DdNxKP/P0/OFqX1dtl9Ubrd567QPMSeJvp9iDtMdgCBWN2N6HXvyMj623WIA0y9FIcA7wexz0Hh3gS+G9Jof+Q==
"@swc/core-win32-arm64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.30.tgz#473eb708d2a162dd91bca2327e540ad3be57051d"
integrity sha512-fX3T6JzS5F8JJ/UZQWrZfdml8nLuSzgA0EFKetTNa5AHh1x9ltShmlFOJ3OPpD9BKI/QcQSLxyoAjxt7NtAnaQ==
"@swc/core-win32-ia32-msvc@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.28.tgz#82319fcff87289e3e9439dd76524a7bdfe58f5fa"
integrity sha512-/jZWBIgaNkKTlKiZ7DXmMJzW0n1ychDKS1bYRuNLrtTRthMP5M3LRZXITz0AcvPl0mIA0IXeMQbE4ZMUc7LAFg==
"@swc/core-win32-ia32-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.30.tgz#7ea1b9b9d68d91050d25baf300a119f699ccb5a7"
integrity sha512-m88NjTcVFHFAciWRWTW7NbeQPrzjKKBzSoSPukhjvKSWQNk5v6BBbTAKpymNGQssPn5WLarC2QlQzCwjyh1QLA==
"@swc/core-win32-x64-msvc@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.28.tgz#a2067da2f3f4f95ef1b05eb86941d0609a66e9c6"
integrity sha512-HKhE0LznEwTP/qi6EVclmJzfNdykzuK6sjYMTjcDqNJOuuRNMu+IJzPzCPuakgljymWGFmddnuuubd9Y+kl3eg==
"@swc/core-win32-x64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.30.tgz#43bd3cd1d48a0b7659a8834e0a3e5a3322cea8ca"
integrity sha512-HsePRjbdD5XsnS8NkN+MmhtUyjF16cU3COd92DjRYKsB1rMDE51itfacBvOeZPHFV6VkrLsakubAZCMc+3d/Ag==
"@swc/core@^1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.28.tgz#e0fc1fd15b2e7e01d0f16d55eb60b74e65fb1025"
integrity sha512-yzc61HbAIjHeOYTUW/IgXAywlSviMFymnUiLY7dNUELGHjMVxSp0XnIlPQN4v5UekYbwLEV8+KChaoQRACiQCw==
"@swc/core@^1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.30.tgz#f4b3b55d37f766d6246829528b123bc4c8068866"
integrity sha512-pg6GWw615EwCh4vJ5k7xll1E4WJSPeINrRvF/EPyBvNNhlXR3s6+KZevJTx3PpA5PXjprDR0aqwi0/aigSCAPA==
optionalDependencies:
"@swc/core-darwin-arm64" "1.3.28"
"@swc/core-darwin-x64" "1.3.28"
"@swc/core-linux-arm-gnueabihf" "1.3.28"
"@swc/core-linux-arm64-gnu" "1.3.28"
"@swc/core-linux-arm64-musl" "1.3.28"
"@swc/core-linux-x64-gnu" "1.3.28"
"@swc/core-linux-x64-musl" "1.3.28"
"@swc/core-win32-arm64-msvc" "1.3.28"
"@swc/core-win32-ia32-msvc" "1.3.28"
"@swc/core-win32-x64-msvc" "1.3.28"
"@swc/core-darwin-arm64" "1.3.30"
"@swc/core-darwin-x64" "1.3.30"
"@swc/core-linux-arm-gnueabihf" "1.3.30"
"@swc/core-linux-arm64-gnu" "1.3.30"
"@swc/core-linux-arm64-musl" "1.3.30"
"@swc/core-linux-x64-gnu" "1.3.30"
"@swc/core-linux-x64-musl" "1.3.30"
"@swc/core-win32-arm64-msvc" "1.3.30"
"@swc/core-win32-ia32-msvc" "1.3.30"
"@swc/core-win32-x64-msvc" "1.3.30"
"@swc/jest@^0.2.24":
version "0.2.24"
@ -4812,6 +4819,11 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
data-uri-to-buffer@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e"
integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==
data-urls@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
@ -5810,10 +5822,10 @@ eslint-plugin-react-hooks@^4.6.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
eslint-plugin-react@^7.32.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==
eslint-plugin-react@^7.32.2:
version "7.32.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10"
integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==
dependencies:
array-includes "^3.1.6"
array.prototype.flatmap "^1.3.1"
@ -5876,10 +5888,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.32.0:
version "8.32.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861"
integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==
eslint@^8.33.0:
version "8.33.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
dependencies:
"@eslint/eslintrc" "^1.4.1"
"@humanwhocodes/config-array" "^0.11.8"
@ -6227,6 +6239,14 @@ fecha@^4.2.0:
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
fetch-blob@^3.1.2, fetch-blob@^3.1.4:
version "3.2.0"
resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
dependencies:
node-domexception "^1.0.0"
web-streams-polyfill "^3.0.3"
figures@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
@ -6493,6 +6513,13 @@ form-data@~2.3.2:
combined-stream "^1.0.6"
mime-types "^2.1.12"
formdata-polyfill@^4.0.10:
version "4.0.10"
resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
dependencies:
fetch-blob "^3.1.2"
forwarded@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
@ -7322,10 +7349,10 @@ immediate@~3.0.5:
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
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==
immer@^9.0.19:
version "9.0.19"
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.19.tgz#67fb97310555690b5f9cd8380d38fc0aabb6b38b"
integrity sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ==
immutable@^4.0.0:
version "4.0.0"
@ -9631,6 +9658,20 @@ node-addon-api@^5.0.0:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
node-domexception@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
node-fetch@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4"
integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==
dependencies:
data-uri-to-buffer "^4.0.0"
fetch-blob "^3.1.4"
formdata-polyfill "^4.0.10"
node-forge@^1, node-forge@^1.2.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
@ -13253,6 +13294,11 @@ wcwidth@^1.0.0:
dependencies:
defaults "^1.0.3"
web-streams-polyfill@^3.0.3:
version "3.2.1"
resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
webidl-conversions@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"

View File

@ -1,12 +1,13 @@
{
"name": "@k8slens/download-binaries",
"version": "6.4.0-beta.8",
"name": "@k8slens/ensure-binaries",
"version": "6.4.0-beta.10",
"description": "CLI for downloading configured versions of the bundled versions of CLIs",
"main": "dist/index.mjs",
"license": "MIT",
"scripts": {
"clean": "rm -rf dist/",
"build": "swc ./src/index.ts -o ./dist/index.mjs"
"build": "swc ./src/index.ts -o ./dist/index.mjs",
"prepare:dev": "npm run build"
},
"bin": "./dist/index.mjs",
"files": [
@ -27,7 +28,7 @@
},
"devDependencies": {
"@swc/cli": "^0.1.59",
"@swc/core": "^1.3.28",
"@swc/core": "^1.3.30",
"@types/cli-progress": "^3.11.0",
"@types/gunzip-maybe": "^1.4.0",
"@types/node": "^16.18.11",

View File

@ -40,71 +40,71 @@
slash "3.0.0"
source-map "^0.7.3"
"@swc/core-darwin-arm64@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.29.tgz#7bc67b8b5021772a7ebff4c6e9b90eff4797ed56"
integrity sha512-1RQ0MCmWOQmo3qG60vhbNaO/qMZ25lDfjhTayAzHjS1k7WyoUv3M8Em2Fip2VKJz5cN2M7MWiP5aHMotMovuaQ==
"@swc/core-darwin-arm64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.30.tgz#fb9b20a46455f49597e760e4dfe829196e0fe12e"
integrity sha512-GZ4mZZbH77N8renK34A3Lkhl6x8z+c97SCbl43pn5E0Z0sifohA8WNhrtucKrUdid0svYibwotJzeFNpDtg7gQ==
"@swc/core-darwin-x64@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.29.tgz#344629d621f4d7c5c4dffe9310f4c95403dac413"
integrity sha512-UXiVOkt9i/mwarhHiN6o5RAi3Q7riCQTiOO2e98c/qi3SiYqbgd6kil+2gBcpVB0CGEFyyGB9rECwNBkaYe7zw==
"@swc/core-darwin-x64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.30.tgz#2fd86123d697c024f7fe45995a3ef5a4e5e4eef0"
integrity sha512-ppGrAJmKpT3vFr2vGaxXFL8JqHsb6kSAj0dVYTNYicl3c6XOjnMiNSfu6HRbdmXt0VpFHhC5L/a7Ta89mQ1sJA==
"@swc/core-linux-arm-gnueabihf@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.29.tgz#f0dc4615121b6e292a8fd285e96af7ed2d95e0ff"
integrity sha512-0B7+FoYgEE1Yg6j5EAtEpKVbHby3jnJo6Y4g0dGxecRtXUhu8TKVI4P93sj4PJ+l4XkAyzdhSsQ+ytFRsbOJ6w==
"@swc/core-linux-arm-gnueabihf@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.30.tgz#a67ffdc80a63b68471bc176206237bd68576be40"
integrity sha512-XQYY/VNRnM0/779ehfMgh2poO3reOANvfzOprF8xmGK20+DxFqbMWjHhJutscQuEjLtdwk/LfgCkwmTaB1hhwg==
"@swc/core-linux-arm64-gnu@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.29.tgz#22d6bee12e383cb34fa8d288e687dd74e59c9199"
integrity sha512-XN9axiTuiFOm+UBnDDOQV3b2OekziXHtVPBAPSEssRsNGS4uN7YvCyVAcS8GYdK7GoZ+cmoZBYwD4trir48WXw==
"@swc/core-linux-arm64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.30.tgz#7f9b2f860b8abac6636b6ffb46004da4589b513f"
integrity sha512-ME4BjMYSXana0Lfswa3aQW0rTdmR9wa1NGQ3t6MYLdBVm+76Xwe29JKlOfnI1iCCtcbRBoWy4dlhyuxW8DN7cw==
"@swc/core-linux-arm64-musl@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.29.tgz#794f7c425cb24d752d7527d8c3ddd43cae3e9b26"
integrity sha512-M6eE02Dzl1efRLozitGvgjiNEee0VQInqMX4tvfpzQwqZsKNAD8/NGPeTG4763BLDHc4hnMZbnt5wncDLjFq7A==
"@swc/core-linux-arm64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.30.tgz#b917db1f71b8382e033b8bcbeccd8a326747c41b"
integrity sha512-h3X9Pn1m5kuFSW8lJyDiMB4ELNZFJ+QxLva5GCxZDArQttkNeY4tMNWFcaG44xUXeywffrgjpXO7Yj2JGzmG4g==
"@swc/core-linux-x64-gnu@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.29.tgz#8a0fd16684c9ea57105d8740402206777de938bf"
integrity sha512-t2e9byHRpxKyUsLeODlb3yKJcm8wMirsLIxjr24q5YbnChD3QUMQwA8aA9w2PWc86ihukw7Ksx3RYT7uR706HA==
"@swc/core-linux-x64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.30.tgz#fc63a70a34d444b0a9460caeb239c630e8cf905b"
integrity sha512-vfPR8cakx5IZQSpNuXPrpkRprBdVxXsvN5JWN3fpuNVIgFFo3q8njihaItujKvePIHQwov4achfBZlm4JRitWQ==
"@swc/core-linux-x64-musl@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.29.tgz#d7c9d4207c6354749587bf2568cae0a71d1e5c83"
integrity sha512-3jDzDYIyHXrXKOSnTtsN56eINbTPuVQj65D3K8+zo1o52GGwNGyCvQt2RpxNfM8+ptb4j6v7weSU8kVvbUzGTQ==
"@swc/core-linux-x64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.30.tgz#07003373a8813c3b82bd8ad2c2ea500a8cd6c9cd"
integrity sha512-jtfv8N+00E2RMTVjwfTfimeqzo0B9FmbbSkzlnLvkmV8xDAPyLmX7v/xL5YiVJRLeSrlJ7DmkCSxLzpJao73dw==
"@swc/core-win32-arm64-msvc@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.29.tgz#8499eec31fdf62343ee30e513d4c84aa162ec9f2"
integrity sha512-3PadPieyslG++7SQ42OApfiXtQdzFpnCv/i/UJ6gOL5d0MluNzZ2nIxD8LwXXizVdmcm8bmc0WRhK3JhvhzVJA==
"@swc/core-win32-arm64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.30.tgz#473eb708d2a162dd91bca2327e540ad3be57051d"
integrity sha512-fX3T6JzS5F8JJ/UZQWrZfdml8nLuSzgA0EFKetTNa5AHh1x9ltShmlFOJ3OPpD9BKI/QcQSLxyoAjxt7NtAnaQ==
"@swc/core-win32-ia32-msvc@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.29.tgz#690ddb2dcfa74121ab2d993f99f472d0dc36d7df"
integrity sha512-tUFrHxxYz9Cfz07yGwDXdtRziC3q1ia2SHodzZ3obTpY+HQiBDHs0QO/HkbUBNF+du0vhnsgtWilnsMQDILFDQ==
"@swc/core-win32-ia32-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.30.tgz#7ea1b9b9d68d91050d25baf300a119f699ccb5a7"
integrity sha512-m88NjTcVFHFAciWRWTW7NbeQPrzjKKBzSoSPukhjvKSWQNk5v6BBbTAKpymNGQssPn5WLarC2QlQzCwjyh1QLA==
"@swc/core-win32-x64-msvc@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.29.tgz#3ec1ac4ded9f63cc729cfa5d3a5bd173b9f956f3"
integrity sha512-/Z3kxMXGKlIhtkxBxsCSZl8j/qYfbA4dtW7RKv1RNxbPLbwk8k3Owhgk/Y3JeRavcUKwja1rUX5rhMjLYeN3tw==
"@swc/core-win32-x64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.30.tgz#43bd3cd1d48a0b7659a8834e0a3e5a3322cea8ca"
integrity sha512-HsePRjbdD5XsnS8NkN+MmhtUyjF16cU3COd92DjRYKsB1rMDE51itfacBvOeZPHFV6VkrLsakubAZCMc+3d/Ag==
"@swc/core@^1.3.28":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.29.tgz#14fd38b9ff740f910f317c338ec0adef69e6aec9"
integrity sha512-BYDBEqQ77ASZNQYTP7PlKnMLwbHh3lhtlzD/gQP2zIK9XhqQlcy/zIcLljYDn0EOogLn3IyaUiXgAzDWoAmWMg==
"@swc/core@^1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.30.tgz#f4b3b55d37f766d6246829528b123bc4c8068866"
integrity sha512-pg6GWw615EwCh4vJ5k7xll1E4WJSPeINrRvF/EPyBvNNhlXR3s6+KZevJTx3PpA5PXjprDR0aqwi0/aigSCAPA==
optionalDependencies:
"@swc/core-darwin-arm64" "1.3.29"
"@swc/core-darwin-x64" "1.3.29"
"@swc/core-linux-arm-gnueabihf" "1.3.29"
"@swc/core-linux-arm64-gnu" "1.3.29"
"@swc/core-linux-arm64-musl" "1.3.29"
"@swc/core-linux-x64-gnu" "1.3.29"
"@swc/core-linux-x64-musl" "1.3.29"
"@swc/core-win32-arm64-msvc" "1.3.29"
"@swc/core-win32-ia32-msvc" "1.3.29"
"@swc/core-win32-x64-msvc" "1.3.29"
"@swc/core-darwin-arm64" "1.3.30"
"@swc/core-darwin-x64" "1.3.30"
"@swc/core-linux-arm-gnueabihf" "1.3.30"
"@swc/core-linux-arm64-gnu" "1.3.30"
"@swc/core-linux-arm64-musl" "1.3.30"
"@swc/core-linux-x64-gnu" "1.3.30"
"@swc/core-linux-x64-musl" "1.3.30"
"@swc/core-win32-arm64-msvc" "1.3.30"
"@swc/core-win32-ia32-msvc" "1.3.30"
"@swc/core-win32-x64-msvc" "1.3.30"
"@types/cli-progress@^3.11.0":
version "3.11.0"

View File

@ -2,7 +2,7 @@
"name": "@k8slens/extensions",
"productName": "OpenLens extensions",
"description": "OpenLens - Open Source Kubernetes IDE: extensions",
"version": "6.4.0-beta.8",
"version": "6.4.0-beta.10",
"copyright": "© 2022 OpenLens Authors",
"license": "MIT",
"main": "dist/src/extension-api.js",
@ -26,7 +26,7 @@
"prepare:dev": "yarn run build"
},
"dependencies": {
"@k8slens/core": "^6.4.0-beta.8"
"@k8slens/core": "^6.4.0-beta.10"
},
"devDependencies": {
"@types/node": "^16.18.6",

View File

@ -1,6 +1,6 @@
{
"name": "@k8slens/node-fetch",
"version": "6.4.0-beta.8",
"version": "6.4.0-beta.10",
"description": "Node fetch for Lens",
"license": "MIT",
"private": false,
@ -10,6 +10,9 @@
},
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"files": [
"dist"
],
"scripts": {
"clean": "rm -rf dist/",
"build": "webpack --config webpack.ts",

View File

@ -4,7 +4,7 @@
"productName": "OpenLens",
"description": "OpenLens - Open Source IDE for Kubernetes",
"homepage": "https://github.com/lensapp/lens",
"version": "6.4.0-beta.8",
"version": "6.4.0-beta.10",
"repository": {
"type": "git",
"url": "git+https://github.com/lensapp/lens.git"
@ -35,7 +35,7 @@
"dev:renderer": "env NODE_ENV=development ts-node ./webpack/dev-server.ts",
"test:integration": "jest -xyz --runInBand --detectOpenHandles --forceExit --modulePaths=[\"<rootDir>/integration/\"];",
"build:tray-icons": "ts-node build/generate-tray-icons.ts",
"download:binaries": "npm exec -- @k8slens/download-binaries --package $INIT_CWD/package.json --base-dir $INIT_CWD/binaries/client"
"download:binaries": "npm exec -- @k8slens/ensure-binaries --package $INIT_CWD/package.json --base-dir $INIT_CWD/binaries/client"
},
"config": {
"k8sProxyVersion": "0.3.0",
@ -192,8 +192,8 @@
}
},
"dependencies": {
"@k8slens/core": "^6.4.0-beta.8",
"@k8slens/download-binaries": "^6.4.0-beta.8",
"@k8slens/core": "^6.4.0-beta.10",
"@k8slens/ensure-binaries": "^6.4.0-beta.10",
"@ogre-tools/fp": "^12.0.1",
"@ogre-tools/injectable": "^12.0.1",
"@ogre-tools/injectable-extension-for-auto-registration": "^12.0.1",
@ -202,9 +202,9 @@
"mobx": "^6.7.0"
},
"devDependencies": {
"@k8slens/node-fetch": "^6.4.0-beta.8",
"@k8slens/node-fetch": "^6.4.0-beta.10",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
"@swc/core": "^1.3.28",
"@swc/core": "^1.3.30",
"@swc/jest": "^0.2.24",
"@types/byline": "^4.2.33",
"@types/chart.js": "^2.9.36",

View File

@ -87,6 +87,15 @@ rules:
- get
- list
- watch
- apiGroups:
- autoscaling.k8s.io
resources:
- verticalpodautoscalers
- verticalpodautoscalers/status
verbs:
- get
- list
- watch
- apiGroups:
- storage.k8s.io
resources:

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@k8slens/release-tool",
"version": "6.4.0-beta.8",
"version": "6.4.0-beta.10",
"description": "Release tool for lens monorepo",
"main": "dist/index.mjs",
"license": "MIT",
@ -12,7 +12,7 @@
},
"devDependencies": {
"@swc/cli": "^0.1.59",
"@swc/core": "^1.3.28",
"@swc/core": "^1.3.30",
"@types/command-line-args": "^5.2.0",
"@types/fs-extra": "^11.0.1",
"@types/node": "^16.18.11",

View File

@ -40,71 +40,71 @@
slash "3.0.0"
source-map "^0.7.3"
"@swc/core-darwin-arm64@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.28.tgz#3ab15dd6f0ede5b3c7d6ed557a26c0fad34ee5c9"
integrity sha512-f1ph5DDIOX6bvjhlOuWz8ZDiTghhq144Sy9gaRi+DjK3gdnftc4p5AyZHA4Xb03MZ+fd0mj8q6/znco5aBMi1A==
"@swc/core-darwin-arm64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.30.tgz#fb9b20a46455f49597e760e4dfe829196e0fe12e"
integrity sha512-GZ4mZZbH77N8renK34A3Lkhl6x8z+c97SCbl43pn5E0Z0sifohA8WNhrtucKrUdid0svYibwotJzeFNpDtg7gQ==
"@swc/core-darwin-x64@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.28.tgz#e0eaa0eb763bc7def581df93b1a5df1249eb5528"
integrity sha512-5dB5Z4Ry45UTXXAxhwagCYfh57njffkdIJkjid1f+Qt4i7cOznOaIiD4wobGD7xHCATEcs8F23yWkAmvrbacew==
"@swc/core-darwin-x64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.30.tgz#2fd86123d697c024f7fe45995a3ef5a4e5e4eef0"
integrity sha512-ppGrAJmKpT3vFr2vGaxXFL8JqHsb6kSAj0dVYTNYicl3c6XOjnMiNSfu6HRbdmXt0VpFHhC5L/a7Ta89mQ1sJA==
"@swc/core-linux-arm-gnueabihf@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.28.tgz#f7038e60bddebc6b0c0aa444c50157fe4908fb58"
integrity sha512-VmtAQAENJ5SHBXTKxXNlnnM34xGOtJpHYva83zeZM/2epdoz1BJ6Ny3gTBXDftaWgAj2SRwVIjMR3/c71aJysQ==
"@swc/core-linux-arm-gnueabihf@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.30.tgz#a67ffdc80a63b68471bc176206237bd68576be40"
integrity sha512-XQYY/VNRnM0/779ehfMgh2poO3reOANvfzOprF8xmGK20+DxFqbMWjHhJutscQuEjLtdwk/LfgCkwmTaB1hhwg==
"@swc/core-linux-arm64-gnu@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.28.tgz#6e3013176c4cc5dd006c848911e3bccaf1fa77dd"
integrity sha512-KIJ1SHGbusM6W2rxue1f+IN/iuzmspgMY9qP/qW5Z43Mm9mrHdzDmhsMoEH1y2gPUsu/ZZnkXlODJ0M0454JNQ==
"@swc/core-linux-arm64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.30.tgz#7f9b2f860b8abac6636b6ffb46004da4589b513f"
integrity sha512-ME4BjMYSXana0Lfswa3aQW0rTdmR9wa1NGQ3t6MYLdBVm+76Xwe29JKlOfnI1iCCtcbRBoWy4dlhyuxW8DN7cw==
"@swc/core-linux-arm64-musl@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.28.tgz#01896d81f967104fb851534962dd344252d85025"
integrity sha512-Zz2DZj8ncSvVEAsol8gtoXrVLP8e+IYSx6o8txYVR0p0pviJBzeuYGaLe5sbQdQnVVS2M5N90LX28P6/mQb6sQ==
"@swc/core-linux-arm64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.30.tgz#b917db1f71b8382e033b8bcbeccd8a326747c41b"
integrity sha512-h3X9Pn1m5kuFSW8lJyDiMB4ELNZFJ+QxLva5GCxZDArQttkNeY4tMNWFcaG44xUXeywffrgjpXO7Yj2JGzmG4g==
"@swc/core-linux-x64-gnu@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.28.tgz#03d9b0171267ccc5d0efd2a939150f5d1da550ae"
integrity sha512-Za3uowhcP74qSCNqjZLBx3nAmjIFYNbB0nGBKwkLBopbMcpO0BjvnsdzmoWqv2Uq41vaeVk/o9vATQMojfHHQg==
"@swc/core-linux-x64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.30.tgz#fc63a70a34d444b0a9460caeb239c630e8cf905b"
integrity sha512-vfPR8cakx5IZQSpNuXPrpkRprBdVxXsvN5JWN3fpuNVIgFFo3q8njihaItujKvePIHQwov4achfBZlm4JRitWQ==
"@swc/core-linux-x64-musl@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.28.tgz#6badfc87d94b7891c11aa71496498d2ff29535db"
integrity sha512-i3BAkmrf19VXybbjuS9Jnlnx5Ie4vukLMCQRfXCQqIqaiSw3QzubjolYo07sGtzoVI3nBscDt3i8T+oxTPOMkw==
"@swc/core-linux-x64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.30.tgz#07003373a8813c3b82bd8ad2c2ea500a8cd6c9cd"
integrity sha512-jtfv8N+00E2RMTVjwfTfimeqzo0B9FmbbSkzlnLvkmV8xDAPyLmX7v/xL5YiVJRLeSrlJ7DmkCSxLzpJao73dw==
"@swc/core-win32-arm64-msvc@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.28.tgz#2441d2cdbc313618332de014be0c6c3573931b62"
integrity sha512-DdNxKP/P0/OFqX1dtl9Ubrd567QPMSeJvp9iDtMdgCBWN2N6HXvyMj623WIA0y9FIcA7wexz0Hh3gS+G9Jof+Q==
"@swc/core-win32-arm64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.30.tgz#473eb708d2a162dd91bca2327e540ad3be57051d"
integrity sha512-fX3T6JzS5F8JJ/UZQWrZfdml8nLuSzgA0EFKetTNa5AHh1x9ltShmlFOJ3OPpD9BKI/QcQSLxyoAjxt7NtAnaQ==
"@swc/core-win32-ia32-msvc@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.28.tgz#82319fcff87289e3e9439dd76524a7bdfe58f5fa"
integrity sha512-/jZWBIgaNkKTlKiZ7DXmMJzW0n1ychDKS1bYRuNLrtTRthMP5M3LRZXITz0AcvPl0mIA0IXeMQbE4ZMUc7LAFg==
"@swc/core-win32-ia32-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.30.tgz#7ea1b9b9d68d91050d25baf300a119f699ccb5a7"
integrity sha512-m88NjTcVFHFAciWRWTW7NbeQPrzjKKBzSoSPukhjvKSWQNk5v6BBbTAKpymNGQssPn5WLarC2QlQzCwjyh1QLA==
"@swc/core-win32-x64-msvc@1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.28.tgz#a2067da2f3f4f95ef1b05eb86941d0609a66e9c6"
integrity sha512-HKhE0LznEwTP/qi6EVclmJzfNdykzuK6sjYMTjcDqNJOuuRNMu+IJzPzCPuakgljymWGFmddnuuubd9Y+kl3eg==
"@swc/core-win32-x64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.30.tgz#43bd3cd1d48a0b7659a8834e0a3e5a3322cea8ca"
integrity sha512-HsePRjbdD5XsnS8NkN+MmhtUyjF16cU3COd92DjRYKsB1rMDE51itfacBvOeZPHFV6VkrLsakubAZCMc+3d/Ag==
"@swc/core@^1.3.28":
version "1.3.28"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.28.tgz#e0fc1fd15b2e7e01d0f16d55eb60b74e65fb1025"
integrity sha512-yzc61HbAIjHeOYTUW/IgXAywlSviMFymnUiLY7dNUELGHjMVxSp0XnIlPQN4v5UekYbwLEV8+KChaoQRACiQCw==
"@swc/core@^1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.30.tgz#f4b3b55d37f766d6246829528b123bc4c8068866"
integrity sha512-pg6GWw615EwCh4vJ5k7xll1E4WJSPeINrRvF/EPyBvNNhlXR3s6+KZevJTx3PpA5PXjprDR0aqwi0/aigSCAPA==
optionalDependencies:
"@swc/core-darwin-arm64" "1.3.28"
"@swc/core-darwin-x64" "1.3.28"
"@swc/core-linux-arm-gnueabihf" "1.3.28"
"@swc/core-linux-arm64-gnu" "1.3.28"
"@swc/core-linux-arm64-musl" "1.3.28"
"@swc/core-linux-x64-gnu" "1.3.28"
"@swc/core-linux-x64-musl" "1.3.28"
"@swc/core-win32-arm64-msvc" "1.3.28"
"@swc/core-win32-ia32-msvc" "1.3.28"
"@swc/core-win32-x64-msvc" "1.3.28"
"@swc/core-darwin-arm64" "1.3.30"
"@swc/core-darwin-x64" "1.3.30"
"@swc/core-linux-arm-gnueabihf" "1.3.30"
"@swc/core-linux-arm64-gnu" "1.3.30"
"@swc/core-linux-arm64-musl" "1.3.30"
"@swc/core-linux-x64-gnu" "1.3.30"
"@swc/core-linux-x64-musl" "1.3.30"
"@swc/core-win32-arm64-msvc" "1.3.30"
"@swc/core-win32-ia32-msvc" "1.3.30"
"@swc/core-win32-x64-msvc" "1.3.30"
"@types/command-line-args@^5.2.0":
version "5.2.0"

View File

@ -1,6 +1,6 @@
{
"name": "@k8slens/semver",
"version": "6.4.0-beta.8",
"version": "6.4.0-beta.10",
"description": "CLI over semver package for picking parts of a version",
"main": "dist/index.mjs",
"license": "MIT",
@ -15,7 +15,7 @@
},
"devDependencies": {
"@swc/cli": "^0.1.59",
"@swc/core": "^1.3.28",
"@swc/core": "^1.3.30",
"@types/command-line-args": "^5.2.0",
"@types/node": "^16.18.11",
"@types/semver": "^7.3.13"

View File

@ -40,71 +40,71 @@
slash "3.0.0"
source-map "^0.7.3"
"@swc/core-darwin-arm64@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.29.tgz#7bc67b8b5021772a7ebff4c6e9b90eff4797ed56"
integrity sha512-1RQ0MCmWOQmo3qG60vhbNaO/qMZ25lDfjhTayAzHjS1k7WyoUv3M8Em2Fip2VKJz5cN2M7MWiP5aHMotMovuaQ==
"@swc/core-darwin-arm64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.30.tgz#fb9b20a46455f49597e760e4dfe829196e0fe12e"
integrity sha512-GZ4mZZbH77N8renK34A3Lkhl6x8z+c97SCbl43pn5E0Z0sifohA8WNhrtucKrUdid0svYibwotJzeFNpDtg7gQ==
"@swc/core-darwin-x64@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.29.tgz#344629d621f4d7c5c4dffe9310f4c95403dac413"
integrity sha512-UXiVOkt9i/mwarhHiN6o5RAi3Q7riCQTiOO2e98c/qi3SiYqbgd6kil+2gBcpVB0CGEFyyGB9rECwNBkaYe7zw==
"@swc/core-darwin-x64@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.30.tgz#2fd86123d697c024f7fe45995a3ef5a4e5e4eef0"
integrity sha512-ppGrAJmKpT3vFr2vGaxXFL8JqHsb6kSAj0dVYTNYicl3c6XOjnMiNSfu6HRbdmXt0VpFHhC5L/a7Ta89mQ1sJA==
"@swc/core-linux-arm-gnueabihf@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.29.tgz#f0dc4615121b6e292a8fd285e96af7ed2d95e0ff"
integrity sha512-0B7+FoYgEE1Yg6j5EAtEpKVbHby3jnJo6Y4g0dGxecRtXUhu8TKVI4P93sj4PJ+l4XkAyzdhSsQ+ytFRsbOJ6w==
"@swc/core-linux-arm-gnueabihf@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.30.tgz#a67ffdc80a63b68471bc176206237bd68576be40"
integrity sha512-XQYY/VNRnM0/779ehfMgh2poO3reOANvfzOprF8xmGK20+DxFqbMWjHhJutscQuEjLtdwk/LfgCkwmTaB1hhwg==
"@swc/core-linux-arm64-gnu@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.29.tgz#22d6bee12e383cb34fa8d288e687dd74e59c9199"
integrity sha512-XN9axiTuiFOm+UBnDDOQV3b2OekziXHtVPBAPSEssRsNGS4uN7YvCyVAcS8GYdK7GoZ+cmoZBYwD4trir48WXw==
"@swc/core-linux-arm64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.30.tgz#7f9b2f860b8abac6636b6ffb46004da4589b513f"
integrity sha512-ME4BjMYSXana0Lfswa3aQW0rTdmR9wa1NGQ3t6MYLdBVm+76Xwe29JKlOfnI1iCCtcbRBoWy4dlhyuxW8DN7cw==
"@swc/core-linux-arm64-musl@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.29.tgz#794f7c425cb24d752d7527d8c3ddd43cae3e9b26"
integrity sha512-M6eE02Dzl1efRLozitGvgjiNEee0VQInqMX4tvfpzQwqZsKNAD8/NGPeTG4763BLDHc4hnMZbnt5wncDLjFq7A==
"@swc/core-linux-arm64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.30.tgz#b917db1f71b8382e033b8bcbeccd8a326747c41b"
integrity sha512-h3X9Pn1m5kuFSW8lJyDiMB4ELNZFJ+QxLva5GCxZDArQttkNeY4tMNWFcaG44xUXeywffrgjpXO7Yj2JGzmG4g==
"@swc/core-linux-x64-gnu@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.29.tgz#8a0fd16684c9ea57105d8740402206777de938bf"
integrity sha512-t2e9byHRpxKyUsLeODlb3yKJcm8wMirsLIxjr24q5YbnChD3QUMQwA8aA9w2PWc86ihukw7Ksx3RYT7uR706HA==
"@swc/core-linux-x64-gnu@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.30.tgz#fc63a70a34d444b0a9460caeb239c630e8cf905b"
integrity sha512-vfPR8cakx5IZQSpNuXPrpkRprBdVxXsvN5JWN3fpuNVIgFFo3q8njihaItujKvePIHQwov4achfBZlm4JRitWQ==
"@swc/core-linux-x64-musl@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.29.tgz#d7c9d4207c6354749587bf2568cae0a71d1e5c83"
integrity sha512-3jDzDYIyHXrXKOSnTtsN56eINbTPuVQj65D3K8+zo1o52GGwNGyCvQt2RpxNfM8+ptb4j6v7weSU8kVvbUzGTQ==
"@swc/core-linux-x64-musl@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.30.tgz#07003373a8813c3b82bd8ad2c2ea500a8cd6c9cd"
integrity sha512-jtfv8N+00E2RMTVjwfTfimeqzo0B9FmbbSkzlnLvkmV8xDAPyLmX7v/xL5YiVJRLeSrlJ7DmkCSxLzpJao73dw==
"@swc/core-win32-arm64-msvc@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.29.tgz#8499eec31fdf62343ee30e513d4c84aa162ec9f2"
integrity sha512-3PadPieyslG++7SQ42OApfiXtQdzFpnCv/i/UJ6gOL5d0MluNzZ2nIxD8LwXXizVdmcm8bmc0WRhK3JhvhzVJA==
"@swc/core-win32-arm64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.30.tgz#473eb708d2a162dd91bca2327e540ad3be57051d"
integrity sha512-fX3T6JzS5F8JJ/UZQWrZfdml8nLuSzgA0EFKetTNa5AHh1x9ltShmlFOJ3OPpD9BKI/QcQSLxyoAjxt7NtAnaQ==
"@swc/core-win32-ia32-msvc@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.29.tgz#690ddb2dcfa74121ab2d993f99f472d0dc36d7df"
integrity sha512-tUFrHxxYz9Cfz07yGwDXdtRziC3q1ia2SHodzZ3obTpY+HQiBDHs0QO/HkbUBNF+du0vhnsgtWilnsMQDILFDQ==
"@swc/core-win32-ia32-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.30.tgz#7ea1b9b9d68d91050d25baf300a119f699ccb5a7"
integrity sha512-m88NjTcVFHFAciWRWTW7NbeQPrzjKKBzSoSPukhjvKSWQNk5v6BBbTAKpymNGQssPn5WLarC2QlQzCwjyh1QLA==
"@swc/core-win32-x64-msvc@1.3.29":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.29.tgz#3ec1ac4ded9f63cc729cfa5d3a5bd173b9f956f3"
integrity sha512-/Z3kxMXGKlIhtkxBxsCSZl8j/qYfbA4dtW7RKv1RNxbPLbwk8k3Owhgk/Y3JeRavcUKwja1rUX5rhMjLYeN3tw==
"@swc/core-win32-x64-msvc@1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.30.tgz#43bd3cd1d48a0b7659a8834e0a3e5a3322cea8ca"
integrity sha512-HsePRjbdD5XsnS8NkN+MmhtUyjF16cU3COd92DjRYKsB1rMDE51itfacBvOeZPHFV6VkrLsakubAZCMc+3d/Ag==
"@swc/core@^1.3.28":
version "1.3.29"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.29.tgz#14fd38b9ff740f910f317c338ec0adef69e6aec9"
integrity sha512-BYDBEqQ77ASZNQYTP7PlKnMLwbHh3lhtlzD/gQP2zIK9XhqQlcy/zIcLljYDn0EOogLn3IyaUiXgAzDWoAmWMg==
"@swc/core@^1.3.30":
version "1.3.30"
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.30.tgz#f4b3b55d37f766d6246829528b123bc4c8068866"
integrity sha512-pg6GWw615EwCh4vJ5k7xll1E4WJSPeINrRvF/EPyBvNNhlXR3s6+KZevJTx3PpA5PXjprDR0aqwi0/aigSCAPA==
optionalDependencies:
"@swc/core-darwin-arm64" "1.3.29"
"@swc/core-darwin-x64" "1.3.29"
"@swc/core-linux-arm-gnueabihf" "1.3.29"
"@swc/core-linux-arm64-gnu" "1.3.29"
"@swc/core-linux-arm64-musl" "1.3.29"
"@swc/core-linux-x64-gnu" "1.3.29"
"@swc/core-linux-x64-musl" "1.3.29"
"@swc/core-win32-arm64-msvc" "1.3.29"
"@swc/core-win32-ia32-msvc" "1.3.29"
"@swc/core-win32-x64-msvc" "1.3.29"
"@swc/core-darwin-arm64" "1.3.30"
"@swc/core-darwin-x64" "1.3.30"
"@swc/core-linux-arm-gnueabihf" "1.3.30"
"@swc/core-linux-arm64-gnu" "1.3.30"
"@swc/core-linux-arm64-musl" "1.3.30"
"@swc/core-linux-x64-gnu" "1.3.30"
"@swc/core-linux-x64-musl" "1.3.30"
"@swc/core-win32-arm64-msvc" "1.3.30"
"@swc/core-win32-ia32-msvc" "1.3.30"
"@swc/core-win32-x64-msvc" "1.3.30"
"@types/command-line-args@^5.2.0":
version "5.2.0"