mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Release/v6.0.2 alpha.0 (#6116)
* Fix create release PR to cherry-pick commits Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix create release PR to cherry-pick commits Signed-off-by: Sebastian Malton <sebastian@malton.name> * release v6.0.2-alpha.0 Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix Badges being too small when scrollable and not expandable (#5987) Signed-off-by: Sebastian Malton <sebastian@malton.name> * Remove Tabs hover line width transition (#6020) Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fix distribution detector erroneously depending on previous metadata (#6023) Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name> * Override @astronautlabs/jsonpath's underscore version (#6044) * Override @astronautlabs/jsonpath's underscore version Signed-off-by: Sebastian Malton <sebastian@malton.name> * Remove use of buggy 'yarn check' Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name> * Don't error out if we can't find resources from helm in our cluster, and handle "blank" output from kubectl gracefully. (#6039) * Use official node-fetch 2.x (#6049) * Fix UI for scaling ReplicaSets (#6052) * Use color-scheme: auto on all iframes (#6074) Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Use abort-controller package to fix typing issues (#6077) * Use default export to fix issue with package lying with types (#6081) Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name> * Switch ubuntu CI to ubuntu-20.04 (#6078) Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix <Select/> text overflow below baseline (#6085) * Fix: do not crop <Select/> single value Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fix: do not crop namespace selector placeholder Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Align working dir input height with others Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Linter fix Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Prevent massed remounting of dock tabs when dock height changes (#6104) * Update injectable to make withInjectables have authentic React reconciliation Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Make some dock tabs have primitive props to have them React reconcile properly Currently tab objects that are stored in a storage change reference on every change of dock height, making them less usable as React prop for causing involuntary remounting. Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Fix node conditions column text-align (#6092) Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Make cluster #app component transparent (#6076) until theme ready Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fix badge not expanding on click when appropriate (#6029) * Fix badge not expanding on click when appropriate Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix snapshots Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix snapshots Signed-off-by: Sebastian Malton <sebastian@malton.name> * Update other snapshots Signed-off-by: Sebastian Malton <sebastian@malton.name> * Remove unneccessary code Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name> * Disable fail-fast on the testing CI jobs (#6080) - There are several reasons why these might fail that are irrelavent to the other pipelines. So we should just let them continue Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Co-authored-by: Michael Pearson <mipearson@gmail.com> Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> Co-authored-by: Carlos René Mederos Arias <krlosmederos@gmail.com> Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
1c18272b74
commit
24e8861a1a
3
.github/workflows/test.yml
vendored
3
.github/workflows/test.yml
vendored
@ -11,8 +11,9 @@ jobs:
|
|||||||
name: Test
|
name: Test
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-18.04, macos-11, windows-2019]
|
os: [ubuntu-20.04, macos-11, windows-2019]
|
||||||
node-version: [16.x]
|
node-version: [16.x]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Release from lens
|
- name: Checkout Release from lens
|
||||||
|
|||||||
3
Makefile
3
Makefile
@ -17,8 +17,7 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
node_modules: yarn.lock
|
node_modules: yarn.lock
|
||||||
yarn install --frozen-lockfile --network-timeout=100000
|
yarn install --check-files --frozen-lockfile --network-timeout=100000
|
||||||
yarn check --verify-tree --integrity
|
|
||||||
|
|
||||||
binaries/client: node_modules
|
binaries/client: node_modules
|
||||||
yarn download:binaries
|
yarn download:binaries
|
||||||
|
|||||||
22
package.json
22
package.json
@ -3,7 +3,7 @@
|
|||||||
"productName": "OpenLens",
|
"productName": "OpenLens",
|
||||||
"description": "OpenLens - Open Source IDE for Kubernetes",
|
"description": "OpenLens - Open Source IDE for Kubernetes",
|
||||||
"homepage": "https://github.com/lensapp/lens",
|
"homepage": "https://github.com/lensapp/lens",
|
||||||
"version": "6.0.1",
|
"version": "6.0.2-alpha.0",
|
||||||
"main": "static/build/main.js",
|
"main": "static/build/main.js",
|
||||||
"copyright": "© 2022 OpenLens Authors",
|
"copyright": "© 2022 OpenLens Authors",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -43,7 +43,9 @@
|
|||||||
"version-checkout": "cat package.json | jq '.version' -r | xargs printf \"release/v%s\" | xargs git checkout -b",
|
"version-checkout": "cat package.json | jq '.version' -r | xargs printf \"release/v%s\" | xargs git checkout -b",
|
||||||
"version-commit": "cat package.json | jq '.version' -r | xargs printf \"release v%s\" | git commit --no-edit -s -F -",
|
"version-commit": "cat package.json | jq '.version' -r | xargs printf \"release v%s\" | git commit --no-edit -s -F -",
|
||||||
"version": "yarn run version-checkout && git add package.json && yarn run version-commit",
|
"version": "yarn run version-checkout && git add package.json && yarn run version-commit",
|
||||||
"postversion": "git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version"
|
"postversion": "git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version",
|
||||||
|
"precreate-release-pr": "npx swc ./scripts/create-release-pr.ts -o ./scripts/create-release-pr.mjs",
|
||||||
|
"create-release-pr": "node ./scripts/create-release-pr.mjs"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"k8sProxyVersion": "0.2.1",
|
"k8sProxyVersion": "0.2.1",
|
||||||
@ -203,17 +205,20 @@
|
|||||||
"role": "Viewer"
|
"role": "Viewer"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"resolutions": {
|
||||||
|
"@astronautlabs/jsonpath/underscore": "^1.12.1"
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astronautlabs/jsonpath": "^1.1.0",
|
"@astronautlabs/jsonpath": "^1.1.0",
|
||||||
"@hapi/call": "^9.0.0",
|
"@hapi/call": "^9.0.0",
|
||||||
"@hapi/subtext": "^7.0.4",
|
"@hapi/subtext": "^7.0.4",
|
||||||
"@kubernetes/client-node": "^0.17.0",
|
"@kubernetes/client-node": "^0.17.0",
|
||||||
"@material-ui/styles": "^4.11.5",
|
"@material-ui/styles": "^4.11.5",
|
||||||
"@ogre-tools/fp": "9.0.1",
|
"@ogre-tools/fp": "9.0.3",
|
||||||
"@ogre-tools/injectable": "9.0.1",
|
"@ogre-tools/injectable": "9.0.3",
|
||||||
"@ogre-tools/injectable-extension-for-auto-registration": "9.0.1",
|
"@ogre-tools/injectable-extension-for-auto-registration": "9.0.3",
|
||||||
"@ogre-tools/injectable-extension-for-mobx": "9.0.1",
|
"@ogre-tools/injectable-extension-for-mobx": "9.0.3",
|
||||||
"@ogre-tools/injectable-react": "9.0.1",
|
"@ogre-tools/injectable-react": "9.0.3",
|
||||||
"@sentry/electron": "^3.0.7",
|
"@sentry/electron": "^3.0.7",
|
||||||
"@sentry/integrations": "^6.19.3",
|
"@sentry/integrations": "^6.19.3",
|
||||||
"@side/jest-runtime": "^1.0.1",
|
"@side/jest-runtime": "^1.0.1",
|
||||||
@ -253,7 +258,7 @@
|
|||||||
"moment-timezone": "^0.5.34",
|
"moment-timezone": "^0.5.34",
|
||||||
"monaco-editor": "^0.29.1",
|
"monaco-editor": "^0.29.1",
|
||||||
"monaco-editor-webpack-plugin": "^5.0.0",
|
"monaco-editor-webpack-plugin": "^5.0.0",
|
||||||
"node-fetch": "lensapp/node-fetch#2.x",
|
"node-fetch": "^2.6.7",
|
||||||
"node-pty": "0.10.1",
|
"node-pty": "0.10.1",
|
||||||
"npm": "^6.14.17",
|
"npm": "^6.14.17",
|
||||||
"p-limit": "^3.1.0",
|
"p-limit": "^3.1.0",
|
||||||
@ -291,6 +296,7 @@
|
|||||||
"@material-ui/lab": "^4.0.0-alpha.60",
|
"@material-ui/lab": "^4.0.0-alpha.60",
|
||||||
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
|
||||||
"@sentry/types": "^6.19.7",
|
"@sentry/types": "^6.19.7",
|
||||||
|
"@swc/cli": "^0.1.57",
|
||||||
"@swc/core": "^1.2.223",
|
"@swc/core": "^1.2.223",
|
||||||
"@swc/jest": "^0.2.22",
|
"@swc/jest": "^0.2.22",
|
||||||
"@testing-library/dom": "^7.31.2",
|
"@testing-library/dom": "^7.31.2",
|
||||||
|
|||||||
2
scripts/.gitignore
vendored
Normal file
2
scripts/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*.mjs
|
||||||
|
*.map
|
||||||
9
scripts/.swcrc
Normal file
9
scripts/.swcrc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json.schemastore.org/swcrc",
|
||||||
|
"jsc": {
|
||||||
|
"parser": {
|
||||||
|
"syntax": "typescript"
|
||||||
|
},
|
||||||
|
"target": "es2022"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,16 +1,14 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
/**
|
/**
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import child_process from "child_process";
|
||||||
// This script creates a release PR
|
|
||||||
import { execSync, exec, spawn } from "child_process";
|
|
||||||
import commandLineArgs from "command-line-args";
|
import commandLineArgs from "command-line-args";
|
||||||
import fse from "fs-extra";
|
import fse from "fs-extra";
|
||||||
import { basename } from "path";
|
import { basename } from "path";
|
||||||
|
import { createInterface } from "readline";
|
||||||
import semver from "semver";
|
import semver from "semver";
|
||||||
import { promisify } from "util";
|
import { inspect, promisify } from "util";
|
||||||
|
|
||||||
const {
|
const {
|
||||||
SemVer,
|
SemVer,
|
||||||
@ -18,8 +16,8 @@ const {
|
|||||||
rcompare: semverRcompare,
|
rcompare: semverRcompare,
|
||||||
lte: semverLte,
|
lte: semverLte,
|
||||||
} = semver;
|
} = semver;
|
||||||
const { readJsonSync } = fse;
|
const exec = promisify(child_process.exec);
|
||||||
const execP = promisify(exec);
|
const execFile = promisify(child_process.execFile);
|
||||||
|
|
||||||
const options = commandLineArgs([
|
const options = commandLineArgs([
|
||||||
{
|
{
|
||||||
@ -82,17 +80,17 @@ if (basename(process.cwd()) === "scripts") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const currentVersion = new SemVer(readJsonSync("./package.json").version);
|
const currentVersion = new SemVer((await fse.readJson("./package.json")).version);
|
||||||
|
|
||||||
console.log(`current version: ${currentVersion.format()}`);
|
console.log(`current version: ${currentVersion.format()}`);
|
||||||
console.log("fetching tags...");
|
console.log("fetching tags...");
|
||||||
execSync("git fetch --tags --force");
|
await exec("git fetch --tags --force");
|
||||||
|
|
||||||
const actualTags = execSync("git tag --list", { encoding: "utf-8" }).split(/\r?\n/).map(line => line.trim());
|
const actualTags = (await exec("git tag --list", { encoding: "utf-8" })).stdout.split(/\r?\n/).map(line => line.trim());
|
||||||
const [previousReleasedVersion] = actualTags
|
const [previousReleasedVersion] = actualTags
|
||||||
.map(semverValid)
|
.map((value) => semverValid(value))
|
||||||
.filter(Boolean)
|
.filter((v): v is string => typeof v === "string")
|
||||||
.sort(semverRcompare)
|
.sort((l, r) => semverRcompare(l, r))
|
||||||
.filter(version => semverLte(version, currentVersion));
|
.filter(version => semverLte(version, currentVersion));
|
||||||
|
|
||||||
const npmVersionArgs = [
|
const npmVersionArgs = [
|
||||||
@ -107,9 +105,9 @@ if (options.preid) {
|
|||||||
|
|
||||||
npmVersionArgs.push("--git-tag-version false");
|
npmVersionArgs.push("--git-tag-version false");
|
||||||
|
|
||||||
execSync(npmVersionArgs.join(" "), { stdio: "ignore" });
|
await exec(npmVersionArgs.join(" "));
|
||||||
|
|
||||||
const newVersion = new SemVer(readJsonSync("./package.json").version);
|
const newVersion = new SemVer((await fse.readJson("./package.json")).version);
|
||||||
const newVersionMilestone = `${newVersion.major}.${newVersion.minor}.${newVersion.patch}`;
|
const newVersionMilestone = `${newVersion.major}.${newVersion.minor}.${newVersion.patch}`;
|
||||||
|
|
||||||
console.log(`new version: ${newVersion.format()}`);
|
console.log(`new version: ${newVersion.format()}`);
|
||||||
@ -121,22 +119,63 @@ const getMergedPrsArgs = [
|
|||||||
"--limit=500", // Should be big enough, if not we need to release more often ;)
|
"--limit=500", // Should be big enough, if not we need to release more often ;)
|
||||||
"--state=merged",
|
"--state=merged",
|
||||||
"--base=master",
|
"--base=master",
|
||||||
"--json mergeCommit,title,author,labels,number,milestone",
|
"--json mergeCommit,title,author,labels,number,milestone,mergedAt",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
interface GithubPrData {
|
||||||
|
author: {
|
||||||
|
login: string;
|
||||||
|
};
|
||||||
|
labels: {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
description: string;
|
||||||
|
color: string;
|
||||||
|
}[];
|
||||||
|
mergeCommit: {
|
||||||
|
oid: string;
|
||||||
|
};
|
||||||
|
mergedAt: string;
|
||||||
|
milestone: {
|
||||||
|
number: number;
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
dueOn: null | string;
|
||||||
|
};
|
||||||
|
number: number;
|
||||||
|
title: string;
|
||||||
|
}
|
||||||
|
|
||||||
console.log("retreiving last 500 PRs to create release PR body...");
|
console.log("retreiving last 500 PRs to create release PR body...");
|
||||||
const mergedPrs = JSON.parse(execSync(getMergedPrsArgs.join(" "), { encoding: "utf-8" }));
|
const mergedPrs = JSON.parse((await exec(getMergedPrsArgs.join(" "), { encoding: "utf-8" })).stdout) as GithubPrData[];
|
||||||
const milestoneRelevantPrs = mergedPrs.filter(pr => pr.milestone?.title === newVersionMilestone);
|
const milestoneRelevantPrs = mergedPrs.filter(pr => pr.milestone?.title === newVersionMilestone);
|
||||||
const relaventPrsQuery = await Promise.all(
|
const relaventPrsQuery = await Promise.all(
|
||||||
milestoneRelevantPrs.map(async pr => ({
|
milestoneRelevantPrs.map(async pr => ({
|
||||||
pr,
|
pr,
|
||||||
stdout: (await execP(`git tag v${previousReleasedVersion} --no-contains ${pr.mergeCommit.oid}`)).stdout,
|
stdout: (await exec(`git tag v${previousReleasedVersion} --no-contains ${pr.mergeCommit.oid}`)).stdout,
|
||||||
})),
|
})),
|
||||||
);
|
);
|
||||||
const relaventPrs = relaventPrsQuery
|
const relaventPrs = relaventPrsQuery
|
||||||
.filter(query => query.stdout)
|
.filter(query => query.stdout)
|
||||||
.map(query => query.pr)
|
.map(query => query.pr)
|
||||||
.filter(pr => pr.labels.every(label => label.name !== "skip-changelog"));
|
.filter(pr => pr.labels.every(label => label.name !== "skip-changelog"))
|
||||||
|
.map(pr => ({ ...pr, mergedAt: new Date(pr.mergedAt) }))
|
||||||
|
.sort((left, right) => {
|
||||||
|
const leftAge = left.mergedAt.valueOf();
|
||||||
|
const rightAge = right.mergedAt.valueOf();
|
||||||
|
|
||||||
|
if (leftAge === rightAge) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (leftAge > rightAge) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(inspect(relaventPrs, false, null, true));
|
||||||
|
|
||||||
const enhancementPrLabelName = "enhancement";
|
const enhancementPrLabelName = "enhancement";
|
||||||
const bugfixPrLabelName = "bug";
|
const bugfixPrLabelName = "bug";
|
||||||
@ -199,19 +238,34 @@ const createPrArgs = [
|
|||||||
"--body-file", "-",
|
"--body-file", "-",
|
||||||
];
|
];
|
||||||
|
|
||||||
const createPrProcess = spawn("gh", createPrArgs, { stdio: "pipe" });
|
const rl = createInterface(process.stdin);
|
||||||
let result = "";
|
|
||||||
|
|
||||||
createPrProcess.stdout.on("data", (chunk) => result += chunk);
|
if (prBase !== "master") {
|
||||||
|
console.log("Cherry-picking commits to current branch");
|
||||||
|
|
||||||
createPrProcess.stdin.write(prBody);
|
for (const pr of relaventPrs) {
|
||||||
createPrProcess.stdin.end();
|
try {
|
||||||
|
const promise = exec(`git cherry-pick ${pr.mergeCommit.oid}`);
|
||||||
|
|
||||||
await new Promise((resolve) => {
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||||
createPrProcess.on("close", () => {
|
promise.child.stdout!.pipe(process.stdout);
|
||||||
createPrProcess.stdout.removeAllListeners();
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||||
resolve();
|
promise.child.stderr!.pipe(process.stderr);
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(result);
|
await promise;
|
||||||
|
} catch {
|
||||||
|
console.error(`Failed to cherry-pick ${pr.mergeCommit.oid}, please resolve conflicts and then press enter here:`);
|
||||||
|
await new Promise<void>(resolve => rl.on("line", () => resolve()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const createPrProcess = execFile("gh", createPrArgs);
|
||||||
|
|
||||||
|
createPrProcess.child.stdout?.pipe(process.stdout);
|
||||||
|
createPrProcess.child.stderr?.pipe(process.stderr);
|
||||||
|
|
||||||
|
createPrProcess.child.stdin?.write(prBody);
|
||||||
|
createPrProcess.child.stdin?.end();
|
||||||
|
|
||||||
|
await createPrProcess;
|
||||||
@ -6,7 +6,6 @@
|
|||||||
import { forRemoteCluster, KubeApi } from "../kube-api";
|
import { forRemoteCluster, KubeApi } from "../kube-api";
|
||||||
import { KubeJsonApi } from "../kube-json-api";
|
import { KubeJsonApi } from "../kube-json-api";
|
||||||
import { KubeObject } from "../kube-object";
|
import { KubeObject } from "../kube-object";
|
||||||
import AbortController from "abort-controller";
|
|
||||||
import { delay } from "../../utils/delay";
|
import { delay } from "../../utils/delay";
|
||||||
import { PassThrough } from "stream";
|
import { PassThrough } from "stream";
|
||||||
import { ApiManager } from "../api-manager";
|
import { ApiManager } from "../api-manager";
|
||||||
@ -15,6 +14,7 @@ import { DeploymentApi, Ingress, IngressApi, Pod, PodApi } from "../endpoints";
|
|||||||
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
|
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
|
||||||
import apiManagerInjectable from "../api-manager/manager.injectable";
|
import apiManagerInjectable from "../api-manager/manager.injectable";
|
||||||
import autoRegistrationInjectable from "../api-manager/auto-registration.injectable";
|
import autoRegistrationInjectable from "../api-manager/auto-registration.injectable";
|
||||||
|
import AbortController from "abort-controller";
|
||||||
|
|
||||||
jest.mock("../api-manager");
|
jest.mock("../api-manager");
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,6 @@ import { KubeJsonApi } from "./kube-json-api";
|
|||||||
import type { Disposer } from "../utils";
|
import type { Disposer } from "../utils";
|
||||||
import { isDefined, noop, WrappedAbortController } from "../utils";
|
import { isDefined, noop, WrappedAbortController } from "../utils";
|
||||||
import type { RequestInit } from "node-fetch";
|
import type { RequestInit } from "node-fetch";
|
||||||
import type AbortController from "abort-controller";
|
|
||||||
import type { AgentOptions } from "https";
|
import type { AgentOptions } from "https";
|
||||||
import { Agent } from "https";
|
import { Agent } from "https";
|
||||||
import type { Patch } from "rfc6902";
|
import type { Patch } from "rfc6902";
|
||||||
@ -28,6 +27,7 @@ import type { PartialDeep } from "type-fest";
|
|||||||
import logger from "../logger";
|
import logger from "../logger";
|
||||||
import { Environments, getEnvironmentSpecificLegacyGlobalDiForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
import { Environments, getEnvironmentSpecificLegacyGlobalDiForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
||||||
import autoRegistrationEmitterInjectable from "./api-manager/auto-registration-emitter.injectable";
|
import autoRegistrationEmitterInjectable from "./api-manager/auto-registration-emitter.injectable";
|
||||||
|
import type AbortController from "abort-controller";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The options used for creating a `KubeApi`
|
* The options used for creating a `KubeApi`
|
||||||
|
|||||||
@ -15,12 +15,12 @@ import { ItemStore } from "../item.store";
|
|||||||
import type { KubeApiQueryParams, KubeApi, KubeApiWatchCallback } from "./kube-api";
|
import type { KubeApiQueryParams, KubeApi, KubeApiWatchCallback } from "./kube-api";
|
||||||
import { parseKubeApi } from "./kube-api-parse";
|
import { parseKubeApi } from "./kube-api-parse";
|
||||||
import type { RequestInit } from "node-fetch";
|
import type { RequestInit } from "node-fetch";
|
||||||
import AbortController from "abort-controller";
|
|
||||||
import type { Patch } from "rfc6902";
|
import type { Patch } from "rfc6902";
|
||||||
import logger from "../logger";
|
import logger from "../logger";
|
||||||
import assert from "assert";
|
import assert from "assert";
|
||||||
import type { PartialDeep } from "type-fest";
|
import type { PartialDeep } from "type-fest";
|
||||||
import { entries } from "../utils/objects";
|
import { entries } from "../utils/objects";
|
||||||
|
import AbortController from "abort-controller";
|
||||||
|
|
||||||
export type OnLoadFailure = (error: unknown) => void;
|
export type OnLoadFailure = (error: unknown) => void;
|
||||||
|
|
||||||
@ -477,7 +477,8 @@ export abstract class KubeObjectStore<
|
|||||||
callback,
|
callback,
|
||||||
});
|
});
|
||||||
|
|
||||||
const { signal } = abortController;
|
// TODO: upgrade node-fetch once we are starting to use ES modules
|
||||||
|
const signal = abortController.signal;
|
||||||
|
|
||||||
const callback: KubeApiWatchCallback<D> = (data, error) => {
|
const callback: KubeApiWatchCallback<D> = (data, error) => {
|
||||||
if (!this.isLoaded || error?.type === "aborted") return;
|
if (!this.isLoaded || error?.type === "aborted") return;
|
||||||
|
|||||||
@ -2,8 +2,13 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import AbortController from "abort-controller";
|
import AbortController from "abort-controller";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is like an `AbortController` but will also abort if the parent aborts,
|
||||||
|
* but won't make the parent abort if this aborts (single direction)
|
||||||
|
*/
|
||||||
export class WrappedAbortController extends AbortController {
|
export class WrappedAbortController extends AbortController {
|
||||||
constructor(parent?: AbortController) {
|
constructor(parent?: AbortController) {
|
||||||
super();
|
super();
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import type { AbortController } from "abort-controller";
|
import type AbortController from "abort-controller";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a promise that will be resolved after at least `timeout` ms have
|
* Return a promise that will be resolved after at least `timeout` ms have
|
||||||
|
|||||||
@ -96,8 +96,6 @@ export class DistributionDetector extends BaseClusterDetector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async getKubernetesVersion() {
|
public async getKubernetesVersion() {
|
||||||
if (this.cluster.version) return this.cluster.version;
|
|
||||||
|
|
||||||
const response = await this.k8sRequest("/version");
|
const response = await this.k8sRequest("/version");
|
||||||
|
|
||||||
return response.gitVersion;
|
return response.gitVersion;
|
||||||
|
|||||||
@ -194,6 +194,11 @@ async function getResources(name: string, namespace: string, kubeconfigPath: str
|
|||||||
"--kubeconfig", kubeconfigPath,
|
"--kubeconfig", kubeconfigPath,
|
||||||
"-f", "-",
|
"-f", "-",
|
||||||
"--output", "json",
|
"--output", "json",
|
||||||
|
// Temporary workaround for https://github.com/lensapp/lens/issues/6031
|
||||||
|
// and other potential issues where resources can't be found. Showing
|
||||||
|
// no resources is better than the app hard-locking, and at least
|
||||||
|
// the helm metadata is shown.
|
||||||
|
"--ignore-not-found",
|
||||||
];
|
];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -208,9 +213,13 @@ async function getResources(name: string, namespace: string, kubeconfigPath: str
|
|||||||
.on("exit", (code, signal) => {
|
.on("exit", (code, signal) => {
|
||||||
if (typeof code === "number") {
|
if (typeof code === "number") {
|
||||||
if (code === 0) {
|
if (code === 0) {
|
||||||
|
if (stdout === "") {
|
||||||
|
resolve([]);
|
||||||
|
} else {
|
||||||
const output = json.parse(stdout) as { items: JsonObject[] };
|
const output = json.parse(stdout) as { items: JsonObject[] };
|
||||||
|
|
||||||
resolve(output.items);
|
resolve(output.items);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
reject(stderr);
|
reject(stderr);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,7 @@
|
|||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
margin-right: -8px;
|
margin-right: -8px;
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
|
line-height: 1.1;
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
|
|||||||
@ -49,7 +49,6 @@
|
|||||||
|
|
||||||
&.conditions {
|
&.conditions {
|
||||||
flex: 1.7;
|
flex: 1.7;
|
||||||
text-align: right;
|
|
||||||
|
|
||||||
.condition {
|
.condition {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|||||||
@ -104,7 +104,7 @@ class NonInjectedReplicaSetScaleDialog extends Component<ReplicaSetScaleDialogPr
|
|||||||
<Wizard
|
<Wizard
|
||||||
header={(
|
header={(
|
||||||
<h5>
|
<h5>
|
||||||
Scale Replica Set
|
{"Scale Replica Set "}
|
||||||
<span>{replicaSet.getName()}</span>
|
<span>{replicaSet.getName()}</span>
|
||||||
</h5>
|
</h5>
|
||||||
)}
|
)}
|
||||||
@ -131,16 +131,16 @@ class NonInjectedReplicaSetScaleDialog extends Component<ReplicaSetScaleDialogPr
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="plus-minus-container flex gaps">
|
<div className="plus-minus-container flex gaps">
|
||||||
<Icon
|
|
||||||
material="add_circle_outline"
|
|
||||||
onClick={this.desiredReplicasUp}
|
|
||||||
data-testid="desired-replicas-up"
|
|
||||||
/>
|
|
||||||
<Icon
|
<Icon
|
||||||
material="remove_circle_outline"
|
material="remove_circle_outline"
|
||||||
onClick={this.desiredReplicasDown}
|
onClick={this.desiredReplicasDown}
|
||||||
data-testid="desired-replicas-down"
|
data-testid="desired-replicas-down"
|
||||||
/>
|
/>
|
||||||
|
<Icon
|
||||||
|
material="add_circle_outline"
|
||||||
|
onClick={this.desiredReplicasUp}
|
||||||
|
data-testid="desired-replicas-up"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{warning && (
|
{warning && (
|
||||||
|
|||||||
@ -72,7 +72,6 @@ html, body {
|
|||||||
|
|
||||||
body {
|
body {
|
||||||
color: var(--textColorPrimary);
|
color: var(--textColorPrimary);
|
||||||
background-color: var(--mainBackground);
|
|
||||||
font-size: var(--font-size);
|
font-size: var(--font-size);
|
||||||
font-family: var(--font-main);
|
font-family: var(--font-main);
|
||||||
}
|
}
|
||||||
@ -89,6 +88,11 @@ body {
|
|||||||
#app {
|
#app {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
|
background-color: var(--mainBackground);
|
||||||
|
|
||||||
|
&:empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
> * {
|
> * {
|
||||||
height: inherit;
|
height: inherit;
|
||||||
@ -180,6 +184,10 @@ a {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iframe {
|
||||||
|
color-scheme: auto; // Remove default white background on iframes
|
||||||
|
}
|
||||||
|
|
||||||
// colors
|
// colors
|
||||||
.success {
|
.success {
|
||||||
color: var(--colorSuccess);
|
color: var(--colorSuccess);
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.badge:not(.isExpanded) {
|
.badge:not(.scrollable):not(.isExpanded) {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import styles from "./badge.module.scss";
|
import styles from "./badge.module.scss";
|
||||||
|
|
||||||
import React, { createRef, useState } from "react";
|
import React, { useEffect, useRef, useState } from "react";
|
||||||
import { action, observable } from "mobx";
|
import { action, observable } from "mobx";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { cssNames } from "../../utils/cssNames";
|
import { cssNames } from "../../utils/cssNames";
|
||||||
@ -40,12 +40,15 @@ export const Badge = withTooltip(observer(({
|
|||||||
children,
|
children,
|
||||||
...elemProps
|
...elemProps
|
||||||
}: BadgeProps) => {
|
}: BadgeProps) => {
|
||||||
const elem = createRef<HTMLDivElement>();
|
const elem = useRef<HTMLDivElement>(null);
|
||||||
const [isExpanded, setIsExpanded] = useState(false);
|
const [isExpanded, setIsExpanded] = useState(false);
|
||||||
|
const [isExpandable, setIsExpandable] = useState(false);
|
||||||
|
|
||||||
const isExpandable = expandable && elem.current
|
useEffect(() => {
|
||||||
? elem.current.clientWidth < elem.current.scrollWidth
|
const { clientWidth = 0, scrollWidth = 0 } = elem.current ?? {};
|
||||||
: false;
|
|
||||||
|
setIsExpandable(expandable && (clientWidth < scrollWidth));
|
||||||
|
}, [expandable, elem.current]);
|
||||||
|
|
||||||
const onMouseUp = action(() => {
|
const onMouseUp = action(() => {
|
||||||
if (!isExpandable || badgeMeta.hasTextSelected) {
|
if (!isExpandable || badgeMeta.hasTextSelected) {
|
||||||
|
|||||||
@ -166,6 +166,8 @@ export const ClusterLocalTerminalSetting = observer(({ cluster }: ClusterLocalTe
|
|||||||
material="close"
|
material="close"
|
||||||
title="Clear"
|
title="Clear"
|
||||||
onClick={() => setAndCommitDirectory("")}
|
onClick={() => setAndCommitDirectory("")}
|
||||||
|
smallest
|
||||||
|
style={{ marginRight: "var(--margin)" }}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -173,6 +175,7 @@ export const ClusterLocalTerminalSetting = observer(({ cluster }: ClusterLocalTe
|
|||||||
material="folder"
|
material="folder"
|
||||||
title="Pick from filesystem"
|
title="Pick from filesystem"
|
||||||
onClick={openFilePicker}
|
onClick={openFilePicker}
|
||||||
|
smallest
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -11,7 +11,6 @@ import type { IComputedValue } from "mobx";
|
|||||||
import { makeObservable, observable } from "mobx";
|
import { makeObservable, observable } from "mobx";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import type { CreateResourceTabStore } from "./store";
|
import type { CreateResourceTabStore } from "./store";
|
||||||
import type { DockTab } from "../dock/store";
|
|
||||||
import { EditorPanel } from "../editor-panel";
|
import { EditorPanel } from "../editor-panel";
|
||||||
import { InfoPanel } from "../info-panel";
|
import { InfoPanel } from "../info-panel";
|
||||||
import * as resourceApplierApi from "../../../../common/k8s-api/endpoints/resource-applier.api";
|
import * as resourceApplierApi from "../../../../common/k8s-api/endpoints/resource-applier.api";
|
||||||
@ -31,7 +30,7 @@ import getDetailsUrlInjectable from "../../kube-detail-params/get-details-url.in
|
|||||||
import navigateInjectable from "../../../navigation/navigate.injectable";
|
import navigateInjectable from "../../../navigation/navigate.injectable";
|
||||||
|
|
||||||
export interface CreateResourceProps {
|
export interface CreateResourceProps {
|
||||||
tab: DockTab;
|
tabId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
@ -52,7 +51,7 @@ class NonInjectedCreateResource extends React.Component<CreateResourceProps & De
|
|||||||
}
|
}
|
||||||
|
|
||||||
get tabId() {
|
get tabId() {
|
||||||
return this.props.tab.id;
|
return this.props.tabId;
|
||||||
}
|
}
|
||||||
|
|
||||||
get data() {
|
get data() {
|
||||||
|
|||||||
@ -104,11 +104,11 @@ class NonInjectedDock extends React.Component<DockProps & Dependencies> {
|
|||||||
renderTab(tab: DockTab) {
|
renderTab(tab: DockTab) {
|
||||||
switch (tab.kind) {
|
switch (tab.kind) {
|
||||||
case TabKind.CREATE_RESOURCE:
|
case TabKind.CREATE_RESOURCE:
|
||||||
return <CreateResource tab={tab} />;
|
return <CreateResource tabId={tab.id} />;
|
||||||
case TabKind.EDIT_RESOURCE:
|
case TabKind.EDIT_RESOURCE:
|
||||||
return <EditResource tab={tab} />;
|
return <EditResource tabId={tab.id} />;
|
||||||
case TabKind.INSTALL_CHART:
|
case TabKind.INSTALL_CHART:
|
||||||
return <InstallChart tab={tab} />;
|
return <InstallChart tabId={tab.id} />;
|
||||||
case TabKind.UPGRADE_CHART:
|
case TabKind.UPGRADE_CHART:
|
||||||
return <UpgradeChart tab={tab} />;
|
return <UpgradeChart tab={tab} />;
|
||||||
case TabKind.POD_LOGS:
|
case TabKind.POD_LOGS:
|
||||||
|
|||||||
@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import type { DockTab } from "../dock/store";
|
|
||||||
import { Spinner } from "../../spinner";
|
import { Spinner } from "../../spinner";
|
||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||||
import type { EditResourceModel } from "./edit-resource-model/edit-resource-model.injectable";
|
import type { EditResourceModel } from "./edit-resource-model/edit-resource-model.injectable";
|
||||||
@ -16,7 +15,7 @@ import { Badge } from "../../badge";
|
|||||||
import { Notice } from "../../+extensions/notice";
|
import { Notice } from "../../+extensions/notice";
|
||||||
|
|
||||||
export interface EditResourceProps {
|
export interface EditResourceProps {
|
||||||
tab: DockTab;
|
tabId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
@ -24,7 +23,7 @@ interface Dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const NonInjectedEditResource = observer(
|
const NonInjectedEditResource = observer(
|
||||||
({ model, tab: { id: tabId }}: EditResourceProps & Dependencies) => {
|
({ model, tabId }: EditResourceProps & Dependencies) => {
|
||||||
return (
|
return (
|
||||||
<div className="EditResource flex column">
|
<div className="EditResource flex column">
|
||||||
{model.shouldShowErrorAboutNoResource && (
|
{model.shouldShowErrorAboutNoResource && (
|
||||||
@ -78,7 +77,7 @@ export const EditResource = withInjectables<Dependencies, EditResourceProps>(
|
|||||||
),
|
),
|
||||||
|
|
||||||
getProps: async (di, props) => ({
|
getProps: async (di, props) => ({
|
||||||
model: await di.inject(editResourceModelInjectable, props.tab.id),
|
model: await di.inject(editResourceModelInjectable, props.tabId),
|
||||||
...props,
|
...props,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import "./install-chart.scss";
|
|||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import type { DockTab } from "../dock/store";
|
|
||||||
import { InfoPanel } from "../info-panel";
|
import { InfoPanel } from "../info-panel";
|
||||||
import { Badge } from "../../badge";
|
import { Badge } from "../../badge";
|
||||||
import { NamespaceSelect } from "../../+namespaces/namespace-select";
|
import { NamespaceSelect } from "../../+namespaces/namespace-select";
|
||||||
@ -23,8 +22,8 @@ import type { InstallChartModel } from "./install-chart-model.injectable";
|
|||||||
import installChartModelInjectable from "./install-chart-model.injectable";
|
import installChartModelInjectable from "./install-chart-model.injectable";
|
||||||
import { Spinner } from "../../spinner";
|
import { Spinner } from "../../spinner";
|
||||||
|
|
||||||
export interface InstallCharProps {
|
export interface InstallChartProps {
|
||||||
tab: DockTab;
|
tabId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
@ -32,7 +31,7 @@ interface Dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const NonInjectedInstallChart = observer(
|
const NonInjectedInstallChart = observer(
|
||||||
({ model: model, tab: { id: tabId }}: InstallCharProps & Dependencies) => {
|
({ model: model, tabId }: InstallChartProps & Dependencies) => {
|
||||||
const installed = model.installed.get();
|
const installed = model.installed.get();
|
||||||
|
|
||||||
if (installed) {
|
if (installed) {
|
||||||
@ -144,7 +143,7 @@ const NonInjectedInstallChart = observer(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
export const InstallChart = withInjectables<Dependencies, InstallCharProps>(
|
export const InstallChart = withInjectables<Dependencies, InstallChartProps>(
|
||||||
NonInjectedInstallChart,
|
NonInjectedInstallChart,
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -156,7 +155,7 @@ export const InstallChart = withInjectables<Dependencies, InstallCharProps>(
|
|||||||
),
|
),
|
||||||
|
|
||||||
getProps: async (di, props) => ({
|
getProps: async (di, props) => ({
|
||||||
model: await di.inject(installChartModelInjectable, props.tab.id),
|
model: await di.inject(installChartModelInjectable, props.tabId),
|
||||||
...props,
|
...props,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
|||||||
@ -49,6 +49,7 @@ html {
|
|||||||
|
|
||||||
&__single-value {
|
&__single-value {
|
||||||
color: var(--textColorSecondary);
|
color: var(--textColorSecondary);
|
||||||
|
overflow: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__indicator {
|
&__indicator {
|
||||||
|
|||||||
@ -54,11 +54,10 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 0;
|
height: 3px;
|
||||||
height: $unit * 0.5;
|
transition: opacity 150ms;
|
||||||
transition: width 150ms;
|
|
||||||
background: currentColor;
|
background: currentColor;
|
||||||
color: var(--halfGray)
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
@ -76,6 +75,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
right: auto;
|
right: auto;
|
||||||
color: var(--line-color-active);
|
color: var(--line-color-active);
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,11 +5,11 @@
|
|||||||
import { comparer, reaction } from "mobx";
|
import { comparer, reaction } from "mobx";
|
||||||
import type { Disposer } from "../../common/utils";
|
import type { Disposer } from "../../common/utils";
|
||||||
import { disposer, getOrInsert, noop, WrappedAbortController } from "../../common/utils";
|
import { disposer, getOrInsert, noop, WrappedAbortController } from "../../common/utils";
|
||||||
import AbortController from "abort-controller";
|
|
||||||
import { once } from "lodash";
|
import { once } from "lodash";
|
||||||
import type { ClusterFrameContext } from "../cluster-frame-context/cluster-frame-context";
|
import type { ClusterFrameContext } from "../cluster-frame-context/cluster-frame-context";
|
||||||
import logger from "../../common/logger";
|
import logger from "../../common/logger";
|
||||||
import type { KubeObjectStoreLoadAllParams, KubeObjectStoreSubscribeParams } from "../../common/k8s-api/kube-object.store";
|
import type { KubeObjectStoreLoadAllParams, KubeObjectStoreSubscribeParams } from "../../common/k8s-api/kube-object.store";
|
||||||
|
import AbortController from "abort-controller";
|
||||||
|
|
||||||
// Kubernetes watch-api client
|
// Kubernetes watch-api client
|
||||||
// API: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API/Using_readable_streams
|
// API: https://developer.mozilla.org/en-US/docs/Web/API/Streams_API/Using_readable_streams
|
||||||
|
|||||||
238
yarn.lock
238
yarn.lock
@ -481,7 +481,7 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
|
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
|
||||||
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
|
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
|
||||||
|
|
||||||
"@electron/get@^1.13.0":
|
"@electron/get@^1.14.1":
|
||||||
version "1.14.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40"
|
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40"
|
||||||
integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==
|
integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==
|
||||||
@ -1225,46 +1225,46 @@
|
|||||||
mkdirp "^1.0.4"
|
mkdirp "^1.0.4"
|
||||||
rimraf "^3.0.2"
|
rimraf "^3.0.2"
|
||||||
|
|
||||||
"@ogre-tools/fp@9.0.1", "@ogre-tools/fp@^9.0.1":
|
"@ogre-tools/fp@9.0.3", "@ogre-tools/fp@^9.0.3":
|
||||||
version "9.0.1"
|
version "9.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/fp/-/fp-9.0.1.tgz#22c23bd209f6f56bf66a5ff4514930334a3a4782"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/fp/-/fp-9.0.3.tgz#f8c9a3316b688c4782309e050c86aa04bebfc293"
|
||||||
integrity sha512-7kORUcvR9DZz5/2qDSSKExGeisXzfmOafP+Z6l8C+WQXEmEQm7CmFMyBEyMkei0eNFzNghlKYgRFpsvBdU3KAg==
|
integrity sha512-j5TQAxiz6ncEfYFBcqnWXeLZY89Qd+dZ9UlfonBdw/C9okxjNeFL+2bmt+b/Vxscz1cOLGZ1F6nmlhQdTtHzPw==
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable-extension-for-auto-registration@9.0.1":
|
"@ogre-tools/injectable-extension-for-auto-registration@9.0.3":
|
||||||
version "9.0.1"
|
version "9.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-auto-registration/-/injectable-extension-for-auto-registration-9.0.1.tgz#e00dff5bd833068faa58d8fa514b218515c55775"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-auto-registration/-/injectable-extension-for-auto-registration-9.0.3.tgz#a26d2a39e24ec3a0800fe21141c0f4f0e7d5504d"
|
||||||
integrity sha512-reyhW2wWPrNnGXo88QKWUsLyhjF195i0/iXfdAoR8/4lRxWmzka58bc8r6jFvTBBJ6eXaGidhUa5DqZe+Oia2Q==
|
integrity sha512-0zjt4w1ACBX9a3FyhTD+/AAqk/xov2bw+Cnbte7NMOVWAbHDfQpmbdiKJlMnFcMUd8vdwOEMm1Z4ogT1VkUeqg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.1"
|
"@ogre-tools/fp" "^9.0.3"
|
||||||
"@ogre-tools/injectable" "^9.0.1"
|
"@ogre-tools/injectable" "^9.0.3"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable-extension-for-mobx@9.0.1":
|
"@ogre-tools/injectable-extension-for-mobx@9.0.3":
|
||||||
version "9.0.1"
|
version "9.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-mobx/-/injectable-extension-for-mobx-9.0.1.tgz#3d9e6e119b7db5a4e4309e89ba6b301635c8da90"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-mobx/-/injectable-extension-for-mobx-9.0.3.tgz#24a14b940f51cae8b07645a2376d804b826c659e"
|
||||||
integrity sha512-wNHIG73NTGfmRb0b2nNhJD9ek4RcyBp/189KfrXhTt6/5KwMEuOeJjAbh8xwbhpYJnWFcMzWKLTqePozc+Ntww==
|
integrity sha512-DgCbAIqMPKgeNETY/8nxz6llAk8fAihGcbs/fkKINe4N9zFgOBKsuk/w67Sx0rTE7l35L6HQenbo7nJhIqbCWA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.1"
|
"@ogre-tools/fp" "^9.0.3"
|
||||||
"@ogre-tools/injectable" "^9.0.1"
|
"@ogre-tools/injectable" "^9.0.3"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable-react@9.0.1":
|
"@ogre-tools/injectable-react@9.0.3":
|
||||||
version "9.0.1"
|
version "9.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-react/-/injectable-react-9.0.1.tgz#d72a155b914873f1a5e35ee167aa14dd7c0e7454"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-react/-/injectable-react-9.0.3.tgz#bc125ef906b171c8894f711f8b61f38d49e81dd0"
|
||||||
integrity sha512-GjkhhONy4hamw5Mx79ZxhL3Pbgnfnf1mrkixDkqlXFzhdPBHDtCYIZu9Y6NjSRLgEwXTrAPYv9lDqREnRbUwLA==
|
integrity sha512-6O9vr19Mcy0uUekZhRyjsM5nw8pgFXhbNvZ8JOnBQg6Lp1CqdasIFhJ0Hdxb8w8P9Zs+pd8pfevRVotq0ouV2Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.1"
|
"@ogre-tools/fp" "^9.0.3"
|
||||||
"@ogre-tools/injectable" "^9.0.1"
|
"@ogre-tools/injectable" "^9.0.3"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable@9.0.1", "@ogre-tools/injectable@^9.0.1":
|
"@ogre-tools/injectable@9.0.3", "@ogre-tools/injectable@^9.0.3":
|
||||||
version "9.0.1"
|
version "9.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable/-/injectable-9.0.1.tgz#611a2dd8468bfe3610f005178837d76071a44a70"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable/-/injectable-9.0.3.tgz#6d9e01a5be7e7c96e7bcbc727f928faad5e11884"
|
||||||
integrity sha512-orcERUOeUEP2oBAcr9rKYbik+r/xJEIb5uedPMMqPzPJnNwZ9JA/1rDEJcx1/I9aHgjUQpeFANjYI4eYDcwEYQ==
|
integrity sha512-KCmqcMEl/1Jjwg6XzNve+JVaW/OtiJUOKBucTJx2ZKBlAQaKz1/VUP7IB4UoQ4RWVa0+mUKLTxBTQFBQfp05RA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.1"
|
"@ogre-tools/fp" "^9.0.3"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@pmmmwh/react-refresh-webpack-plugin@^0.5.7":
|
"@pmmmwh/react-refresh-webpack-plugin@^0.5.7":
|
||||||
@ -1435,101 +1435,111 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@sinonjs/commons" "^1.7.0"
|
"@sinonjs/commons" "^1.7.0"
|
||||||
|
|
||||||
"@swc/core-android-arm-eabi@1.2.223":
|
"@swc/cli@^0.1.57":
|
||||||
version "1.2.223"
|
version "0.1.57"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.223.tgz#5d5ae572c90eb2e19f46c1ef56aab2e3fa7101fe"
|
resolved "https://registry.yarnpkg.com/@swc/cli/-/cli-0.1.57.tgz#a9c424de5a217ec20a4b7c2c0e5c343980537e83"
|
||||||
integrity sha512-Hy/ya4oy80Ay70H9vhA8W0/FU9aQ/oQjvZ/on+wcNMATAiU9tk47i73LtPM01GruNiYJOwFcf2XWjlTpq5a0BQ==
|
integrity sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==
|
||||||
|
dependencies:
|
||||||
|
commander "^7.1.0"
|
||||||
|
fast-glob "^3.2.5"
|
||||||
|
slash "3.0.0"
|
||||||
|
source-map "^0.7.3"
|
||||||
|
|
||||||
|
"@swc/core-android-arm-eabi@1.2.244":
|
||||||
|
version "1.2.244"
|
||||||
|
resolved "https://registry.yarnpkg.com/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.244.tgz#f45c5560a471b867f780ed9bd0799620ff8afd04"
|
||||||
|
integrity sha512-bQN6SY78bFIm6lz46ss4+ZDU9owevVjF95Cm+3KB/13ZOPF+m5Pdm8WQLoBYTLgJ0r4/XukEe9XXjba/6Kf8kw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/wasm" "1.2.122"
|
"@swc/wasm" "1.2.122"
|
||||||
|
|
||||||
"@swc/core-android-arm64@1.2.223":
|
"@swc/core-android-arm64@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-android-arm64/-/core-android-arm64-1.2.223.tgz#13c1751f9af36525adbb420098a4c74765afa7c4"
|
resolved "https://registry.yarnpkg.com/@swc/core-android-arm64/-/core-android-arm64-1.2.244.tgz#92d6cc1829d621fa1aa88d84d30a85112a82d148"
|
||||||
integrity sha512-qujrIXDBMWcPcdtTG/r+RNVBU5rg2Sk9Vg+U4FybX3c34rIyX2QYu5sxwM/HIGfd6wCbt5lyFZOvgSY000MTNw==
|
integrity sha512-CJeL/EeOIzrH+77otNT6wfGF8uadOHo4rEaBN/xvmtnpdADjYJ8Wt85X4nRK0G929bMke/QdJm5ilPNJdmgCTg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/wasm" "1.2.130"
|
"@swc/wasm" "1.2.130"
|
||||||
|
|
||||||
"@swc/core-darwin-arm64@1.2.223":
|
"@swc/core-darwin-arm64@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.223.tgz#44ee2d1fbf9350c6aeda1983a384514272a9b2b7"
|
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.244.tgz#7e068d14c357771f7ca23d7e1941e8bd577d2b5f"
|
||||||
integrity sha512-CX32sRhAnFj3fJI6V4vdu5IUV5frEZNZM6hIPUs1UuVpxyuto9IZwd2y7/ACItB5RipA3VDL/c7jrFdSmfrgzg==
|
integrity sha512-ZhRK8L/lpPCerUxtrW48cRJtpsUG5xVTUXu3N0TrYuxRzzapHgK+61g1JdtcwdNvEV7l00X4vfCBRYO0S2nsmw==
|
||||||
|
|
||||||
"@swc/core-darwin-x64@1.2.223":
|
"@swc/core-darwin-x64@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.2.223.tgz#a157820e158d22c9b443821d15258bc58978e154"
|
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.2.244.tgz#bdf3c8150a3e18c392f3d30749a24f71bbd381cd"
|
||||||
integrity sha512-5FVQgWtqMmpOtky0JLTIF4a1WiAkuDOe5mwgzpi8nZ7nCxNo/DNThBbnIDlNhrR4M/1M6wzPshn1wNivvD7MQw==
|
integrity sha512-4mY8Gkq2ZMUpXYCLceGp7w0Jnxp75N1gQswNFhMBU4k90ElDuBtPoUSnB1v8MwlQtK7WA25MdvwFnBaEJnfxOg==
|
||||||
|
|
||||||
"@swc/core-freebsd-x64@1.2.223":
|
"@swc/core-freebsd-x64@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.223.tgz#ec9b300860f378aeb183084d89ba65009910d9f9"
|
resolved "https://registry.yarnpkg.com/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.244.tgz#0941dd18745cc19ed35bc8b5f4c06f62fe91240d"
|
||||||
integrity sha512-5oumS+YZyOMMKc5D3Bvf/541SF8n4b8LQ5x4WFA2CdAzD/jCgphE0IoAZ0u3bHz9S6Tl6Emu11V+/ALHE1oUew==
|
integrity sha512-k/NEZfkgtZ4S96woYArZ89jwJ/L1zyxihTgFFu7SxDt+WRE1EPmY42Gt4y874zi1JiSEFSRHiiueDUfRPu7C0Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/wasm" "1.2.130"
|
"@swc/wasm" "1.2.130"
|
||||||
|
|
||||||
"@swc/core-linux-arm-gnueabihf@1.2.223":
|
"@swc/core-linux-arm-gnueabihf@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.223.tgz#3403de3c9402e1eeca68b1c134ea574739c7c49c"
|
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.244.tgz#e60536c2c7e858940138366d9438d33c80a119e3"
|
||||||
integrity sha512-osYjVijq101xZjwPUKR6AUib1LZU9laaM3aEOyElAi8cHolsZEp8D9ynr7cSWFUZJuzpTlY7iuJeY3FszdWrJA==
|
integrity sha512-tE9b/oZWhMXwoXHkgHFckMrLrlczvG7HgQAdtDuA6g30Xd/3XmdVzC4NbXR+1HoaGVDh7cf0EFE3aKdfPvPQwA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/wasm" "1.2.130"
|
"@swc/wasm" "1.2.130"
|
||||||
|
|
||||||
"@swc/core-linux-arm64-gnu@1.2.223":
|
"@swc/core-linux-arm64-gnu@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.223.tgz#d0a2d5dd01c5744950e57ec59aa4696bbabf02e4"
|
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.244.tgz#daa61051c971c30dd3bb5414be98ca7392b08c06"
|
||||||
integrity sha512-JZdPZIZzkJ6R+XB0lCnL0eD9VK/JfpZgKBqR3Gur9Fxs8Ea9p1HhZHSEAJ2T2YwV629dYjXwKqraOkLQrEMzCg==
|
integrity sha512-zrpVKUeQxZnzorOp3aXhjK1X2/6xuVZcdyxAUDzItP6G4nLbgPBEQLUi6aUjOjquFiihokXoKWaMPQjF/LqH+g==
|
||||||
|
|
||||||
"@swc/core-linux-arm64-musl@1.2.223":
|
"@swc/core-linux-arm64-musl@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.223.tgz#667bd6583f93909736600acdd9d5cc4c6141d577"
|
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.244.tgz#177ea7e8ba74309c2a08e165f147e63b7420a5d8"
|
||||||
integrity sha512-9BVDH5Cq+VlAuJrshCgxWgziLEGzShZ2OVZ7SEA/+md1y69x2VdMR9lMSfD/EXqb6AJAaFODRe20Irtppeqr2Q==
|
integrity sha512-gI6bntk+HDe2witOsQgBDyDDpRmF5dfxbygvVsEdCI+Ko9yj5S9aCsc8WhhbtdcEG1Fo3v/sM/F/9pGatCAwzQ==
|
||||||
|
|
||||||
"@swc/core-linux-x64-gnu@1.2.223":
|
"@swc/core-linux-x64-gnu@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.223.tgz#c29788110fe1aa7fb86332178dcd1606368fd2c2"
|
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.244.tgz#c4f00359567fdb25ab5616bf000168f4fcf30534"
|
||||||
integrity sha512-Z+KAxSpUDNEPfjOKX/tZk67StvzIyAhTc5FPWoVhx5CBlkGQaDBRl1TNmb1wdne/WF9xVkx6wz22pvNevX5fig==
|
integrity sha512-hwJ5HrDj7asmVGjzaT6SFdhPVxVUIYm9LCuE3yu89+6C5aR9YrCXvpgIjGcHJvEO2PLAtff72FsX7sbXbzzYGQ==
|
||||||
|
|
||||||
"@swc/core-linux-x64-musl@1.2.223":
|
"@swc/core-linux-x64-musl@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.223.tgz#24b7001530d4e09d7bae58c704ac79a6593bb9c1"
|
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.244.tgz#f4d07fbd6c73f54dfa351caf8263a81245882a1f"
|
||||||
integrity sha512-3EkAOA0KQdm7Rw/0L5odtDKAtmzhgF7FKTL+zZb+s0ju5oMwFGN+XIIwUQdPSf11Ej3ezjHjHTFTlv0xqutfuA==
|
integrity sha512-P8d4AIVN63xaS3t5WhOo0Ejy/X7XaDxXe9sJpEbGQP7CGofhURvgXwe8Q6uhPeWC9AwEPu35ArFQ0ZUmOCY0rg==
|
||||||
|
|
||||||
"@swc/core-win32-arm64-msvc@1.2.223":
|
"@swc/core-win32-arm64-msvc@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.223.tgz#8902c20d3d7ed2c9741ff0e227581d26ce8e0497"
|
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.244.tgz#38167a47c1cd8c73d0621a14d46b7982d1d314ff"
|
||||||
integrity sha512-n8LWkej30hvfvazrJgwS6kwBZXMFCevLiRsZmP8O4hpC9b1wfAa+KLm4nHOR+J8jwF7LEjiERdU6tbIWZz0Tnw==
|
integrity sha512-PZUhgooqPDo+NUo+tIxWI1jKnYVV2ACs8eUkSE++Qf7E4/9Igy79XHbG4/G5ERlCudhdcw4XkYiRN8GJQg6P5w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/wasm" "1.2.130"
|
"@swc/wasm" "1.2.130"
|
||||||
|
|
||||||
"@swc/core-win32-ia32-msvc@1.2.223":
|
"@swc/core-win32-ia32-msvc@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.223.tgz#591405f9fa07915e9d0b94a4174a5745621fe580"
|
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.244.tgz#7d6cb0ab95358dc56bd92ca85ac06687a732fa51"
|
||||||
integrity sha512-kEDGFFUC6xPqCom03QtR+76Ptwtf8RABI4FqRdvrvbasw9zj0xkuLSDCvqL72zdOZCWRciiFijQVHfndLByMAQ==
|
integrity sha512-w7v8fND4E8wOHoVVNJIDjOh8EQiedI9HCsCTEDM/z/dVPsk/rxi6iHYnZG6gv+X/d0aCLeZQOkW9khfyy128cg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/wasm" "1.2.130"
|
"@swc/wasm" "1.2.130"
|
||||||
|
|
||||||
"@swc/core-win32-x64-msvc@1.2.223":
|
"@swc/core-win32-x64-msvc@1.2.244":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.223.tgz#7a4549cedb7c0e7a3d4861c2b5230224194e0f04"
|
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.244.tgz#fed9dd48b3ac1269c7dc62e23fa875ec3f2356b4"
|
||||||
integrity sha512-nzL8rwzMFA9cBK2s+QBMPcNnoGSPMfgY9ypRw/nTp0hQDgdLOXHy9moGFJg8dbdQD39kC5s8yQ0BmyKvePILgg==
|
integrity sha512-/A9ssLtqXEQrdHnJ9SvZSBF7zQM/0ydz8B3p5BT9kUbAhmNqbfE4/Wy3d2zd7nrF16n6tRm4giCzcIdzd/7mvw==
|
||||||
|
|
||||||
"@swc/core@^1.2.223":
|
"@swc/core@^1.2.223":
|
||||||
version "1.2.223"
|
version "1.2.244"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.223.tgz#e44a3f6971a1f5c22d1037cf60510ef32c93d2a5"
|
resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.244.tgz#d8ba46113c35f2e33dad6663ba8ce178542e24a3"
|
||||||
integrity sha512-LcKX1frJ1iJDSYlY9Bg0vm0rYsXloITh6PdEYM5amT73J9mC1c2YpWLnWQiH2QpcyblyMhX1pk1eZ2JZjaynrQ==
|
integrity sha512-/UguNMvKgVeR8wGFb53h+Y9hFSiEpeUhC4Cr1neN15wvWZD3lfvN4qAdqNifZiiPKXrCwYy8NTKlHVtHMYzpXw==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@swc/core-android-arm-eabi" "1.2.223"
|
"@swc/core-android-arm-eabi" "1.2.244"
|
||||||
"@swc/core-android-arm64" "1.2.223"
|
"@swc/core-android-arm64" "1.2.244"
|
||||||
"@swc/core-darwin-arm64" "1.2.223"
|
"@swc/core-darwin-arm64" "1.2.244"
|
||||||
"@swc/core-darwin-x64" "1.2.223"
|
"@swc/core-darwin-x64" "1.2.244"
|
||||||
"@swc/core-freebsd-x64" "1.2.223"
|
"@swc/core-freebsd-x64" "1.2.244"
|
||||||
"@swc/core-linux-arm-gnueabihf" "1.2.223"
|
"@swc/core-linux-arm-gnueabihf" "1.2.244"
|
||||||
"@swc/core-linux-arm64-gnu" "1.2.223"
|
"@swc/core-linux-arm64-gnu" "1.2.244"
|
||||||
"@swc/core-linux-arm64-musl" "1.2.223"
|
"@swc/core-linux-arm64-musl" "1.2.244"
|
||||||
"@swc/core-linux-x64-gnu" "1.2.223"
|
"@swc/core-linux-x64-gnu" "1.2.244"
|
||||||
"@swc/core-linux-x64-musl" "1.2.223"
|
"@swc/core-linux-x64-musl" "1.2.244"
|
||||||
"@swc/core-win32-arm64-msvc" "1.2.223"
|
"@swc/core-win32-arm64-msvc" "1.2.244"
|
||||||
"@swc/core-win32-ia32-msvc" "1.2.223"
|
"@swc/core-win32-ia32-msvc" "1.2.244"
|
||||||
"@swc/core-win32-x64-msvc" "1.2.223"
|
"@swc/core-win32-x64-msvc" "1.2.244"
|
||||||
|
|
||||||
"@swc/jest@^0.2.22":
|
"@swc/jest@^0.2.22":
|
||||||
version "0.2.22"
|
version "0.2.22"
|
||||||
@ -2108,10 +2118,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
|
||||||
integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==
|
integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==
|
||||||
|
|
||||||
"@types/node@^14.6.2":
|
"@types/node@^16.11.26":
|
||||||
version "14.18.18"
|
version "16.11.56"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.56.tgz#dcbb617669481e158e0f1c6204d1c768cd675901"
|
||||||
integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==
|
integrity sha512-aFcUkv7EddxxOa/9f74DINReQ/celqH8DiB3fRYgVDM2Xm5QJL8sl80QKuAnGvwAsMn+H3IFA6WCrQh1CY7m1A==
|
||||||
|
|
||||||
"@types/node@^16.11.47":
|
"@types/node@^16.11.47":
|
||||||
version "16.11.47"
|
version "16.11.47"
|
||||||
@ -4182,7 +4192,7 @@ commander@^5.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
|
||||||
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
|
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
|
||||||
|
|
||||||
commander@^7.0.0:
|
commander@^7.0.0, commander@^7.1.0:
|
||||||
version "7.2.0"
|
version "7.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
||||||
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
||||||
@ -5947,7 +5957,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
|||||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||||
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
||||||
|
|
||||||
fast-glob@^3.2.11, fast-glob@^3.2.9:
|
fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.9:
|
||||||
version "3.2.11"
|
version "3.2.11"
|
||||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
|
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
|
||||||
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
|
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
|
||||||
@ -9416,19 +9426,13 @@ node-fetch-npm@^2.0.2:
|
|||||||
json-parse-better-errors "^1.0.0"
|
json-parse-better-errors "^1.0.0"
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
|
|
||||||
node-fetch@2.6.7:
|
node-fetch@2.6.7, node-fetch@^2.6.7:
|
||||||
version "2.6.7"
|
version "2.6.7"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
whatwg-url "^5.0.0"
|
whatwg-url "^5.0.0"
|
||||||
|
|
||||||
node-fetch@lensapp/node-fetch#2.x:
|
|
||||||
version "2.6.6"
|
|
||||||
resolved "https://codeload.github.com/lensapp/node-fetch/tar.gz/c869d40ba7dd3bce392c34e36118c225b6ada8fb"
|
|
||||||
dependencies:
|
|
||||||
whatwg-url "^5.0.0"
|
|
||||||
|
|
||||||
node-forge@^0.10.0:
|
node-forge@^0.10.0:
|
||||||
version "0.10.0"
|
version "0.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
|
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
|
||||||
@ -11819,7 +11823,7 @@ sisteransi@^1.0.5:
|
|||||||
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
|
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
|
||||||
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
|
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
|
||||||
|
|
||||||
slash@^3.0.0:
|
slash@3.0.0, slash@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||||
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
||||||
@ -12678,7 +12682,7 @@ tr46@^3.0.0:
|
|||||||
tr46@~0.0.3:
|
tr46@~0.0.3:
|
||||||
version "0.0.3"
|
version "0.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||||
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
|
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
|
||||||
|
|
||||||
tree-kill@^1.2.2:
|
tree-kill@^1.2.2:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
@ -12930,10 +12934,10 @@ undefsafe@^2.0.5:
|
|||||||
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
|
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
|
||||||
integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
|
integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
|
||||||
|
|
||||||
underscore@1.7.0:
|
underscore@1.7.0, underscore@^1.12.1:
|
||||||
version "1.7.0"
|
version "1.13.4"
|
||||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
|
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.4.tgz#7886b46bbdf07f768e0052f1828e1dcab40c0dee"
|
||||||
integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=
|
integrity sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ==
|
||||||
|
|
||||||
underscore@^1.9.1:
|
underscore@^1.9.1:
|
||||||
version "1.13.3"
|
version "1.13.3"
|
||||||
@ -13253,7 +13257,7 @@ wcwidth@^1.0.0:
|
|||||||
webidl-conversions@^3.0.0:
|
webidl-conversions@^3.0.0:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||||
integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
|
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
|
||||||
|
|
||||||
webidl-conversions@^5.0.0:
|
webidl-conversions@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
@ -13447,7 +13451,7 @@ whatwg-url@^11.0.0:
|
|||||||
whatwg-url@^5.0.0:
|
whatwg-url@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
||||||
integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
|
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
|
||||||
dependencies:
|
dependencies:
|
||||||
tr46 "~0.0.3"
|
tr46 "~0.0.3"
|
||||||
webidl-conversions "^3.0.0"
|
webidl-conversions "^3.0.0"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user