未验证 提交 507627e1 编写于 作者: P Peter Pan 提交者: GitHub

feat: add global extrema in scalar (#808)

上级 c7fc5c19
{ {
"download-image": "Download image", "download-image": "Download image",
"ignore-outliers": "Ignore outliers in chart scaling", "ignore-outliers": "Ignore outliers in chart scaling",
"max": "Max", "max": "Max.",
"maximize": "Maximize", "maximize": "Maximize",
"min": "Min", "min": "Min.",
"minimize": "Minimize", "minimize": "Minimize",
"restore": "Selection restore", "restore": "Selection restore",
"show-most-value": "Show global extrema",
"smoothed": "Smoothed", "smoothed": "Smoothed",
"smoothed-data-only": "Smoothed Data Only", "smoothed-data-only": "Smoothed Data Only",
"smoothing": "Smoothing", "smoothing": "Smoothing",
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
"min": "最小值", "min": "最小值",
"minimize": "最小化", "minimize": "最小化",
"restore": "还原图表框选", "restore": "还原图表框选",
"show-most-value": "显示最值",
"smoothed": "Smoothed", "smoothed": "Smoothed",
"smoothed-data-only": "仅显示平滑后数据", "smoothed-data-only": "仅显示平滑后数据",
"smoothing": "平滑度", "smoothing": "平滑度",
......
...@@ -87,6 +87,7 @@ type ScalarChartProps = { ...@@ -87,6 +87,7 @@ type ScalarChartProps = {
sortingMethod: SortingMethod; sortingMethod: SortingMethod;
outlier?: boolean; outlier?: boolean;
smoothedOnly?: boolean; smoothedOnly?: boolean;
showMostValue?: boolean;
running?: boolean; running?: boolean;
}; };
...@@ -99,6 +100,7 @@ const ScalarChart: FunctionComponent<ScalarChartProps> = ({ ...@@ -99,6 +100,7 @@ const ScalarChart: FunctionComponent<ScalarChartProps> = ({
sortingMethod, sortingMethod,
outlier, outlier,
smoothedOnly, smoothedOnly,
showMostValue,
running running
}) => { }) => {
const {t, i18n} = useTranslation(['scalar', 'common']); const {t, i18n} = useTranslation(['scalar', 'common']);
...@@ -132,7 +134,10 @@ const ScalarChart: FunctionComponent<ScalarChartProps> = ({ ...@@ -132,7 +134,10 @@ const ScalarChart: FunctionComponent<ScalarChartProps> = ({
[datasets, smoothing] [datasets, smoothing]
); );
const smoothedDatasetsOrUndefined = useHeavyWork(smoothWasm, null, transform, transformParams); const smoothedDatasetsOrUndefined = useHeavyWork(smoothWasm, null, transform, transformParams);
const smoothedDatasets = useMemo(() => smoothedDatasetsOrUndefined ?? [], [smoothedDatasetsOrUndefined]); const smoothedDatasets = useMemo<NonNullable<typeof smoothedDatasetsOrUndefined>>(
() => smoothedDatasetsOrUndefined ?? [],
[smoothedDatasetsOrUndefined]
);
const axisRangeParams = useMemo( const axisRangeParams = useMemo(
() => ({ () => ({
...@@ -164,11 +169,12 @@ const ScalarChart: FunctionComponent<ScalarChartProps> = ({ ...@@ -164,11 +169,12 @@ const ScalarChart: FunctionComponent<ScalarChartProps> = ({
() => () =>
chartData({ chartData({
data: smoothedDatasets.slice(0, runs.length), data: smoothedDatasets.slice(0, runs.length),
ranges: showMostValue ? datasetRanges ?? [] : [],
runs, runs,
xAxis, xAxis,
smoothedOnly smoothedOnly
}), }),
[smoothedDatasets, runs, xAxis, smoothedOnly] [smoothedDatasets, datasetRanges, runs, xAxis, smoothedOnly, showMostValue]
); );
const maxStepLength = useMemo( const maxStepLength = useMemo(
......
...@@ -59,6 +59,8 @@ const Scalar: FunctionComponent = () => { ...@@ -59,6 +59,8 @@ const Scalar: FunctionComponent = () => {
const [smoothedDataOnly, setSmoothedDataOnly] = useState(false); const [smoothedDataOnly, setSmoothedDataOnly] = useState(false);
const [showMostValue, setShowMostValue] = useState(false);
const aside = useMemo( const aside = useMemo(
() => () =>
runs.length ? ( runs.length ? (
...@@ -70,9 +72,16 @@ const Scalar: FunctionComponent = () => { ...@@ -70,9 +72,16 @@ const Scalar: FunctionComponent = () => {
onToggleRunning={setRunning} onToggleRunning={setRunning}
> >
<AsideSection> <AsideSection>
<Checkbox value={ignoreOutliers} onChange={setIgnoreOutliers}> <Field>
{t('scalar:ignore-outliers')} <Checkbox value={ignoreOutliers} onChange={setIgnoreOutliers}>
</Checkbox> {t('scalar:ignore-outliers')}
</Checkbox>
</Field>
<Field>
<Checkbox value={showMostValue} onChange={setShowMostValue}>
{t('scalar:show-most-value')}
</Checkbox>
</Field>
<TooltipSortingDiv> <TooltipSortingDiv>
<span>{t('scalar:tooltip-sorting')}</span> <span>{t('scalar:tooltip-sorting')}</span>
<Select <Select
...@@ -105,6 +114,7 @@ const Scalar: FunctionComponent = () => { ...@@ -105,6 +114,7 @@ const Scalar: FunctionComponent = () => {
[ [
t, t,
ignoreOutliers, ignoreOutliers,
showMostValue,
smoothedDataOnly, smoothedDataOnly,
onChangeRuns, onChangeRuns,
running, running,
...@@ -127,10 +137,11 @@ const Scalar: FunctionComponent = () => { ...@@ -127,10 +137,11 @@ const Scalar: FunctionComponent = () => {
sortingMethod={tooltipSorting} sortingMethod={tooltipSorting}
outlier={ignoreOutliers} outlier={ignoreOutliers}
smoothedOnly={smoothedDataOnly} smoothedOnly={smoothedDataOnly}
showMostValue={showMostValue}
running={running} running={running}
/> />
), ),
[smoothing, xAxis, tooltipSorting, ignoreOutliers, smoothedDataOnly, running] [smoothing, xAxis, tooltipSorting, ignoreOutliers, showMostValue, smoothedDataOnly, running]
); );
return ( return (
......
import type {Dataset, TooltipData, XAxis} from './types'; import type {Dataset, Range, TooltipData, XAxis} from './types';
import type I18n from 'i18next'; import type I18n from 'i18next';
import type {Run} from '~/types'; import type {Run} from '~/types';
...@@ -19,11 +19,13 @@ export const options = { ...@@ -19,11 +19,13 @@ export const options = {
export const chartData = ({ export const chartData = ({
data, data,
ranges,
runs, runs,
xAxis, xAxis,
smoothedOnly smoothedOnly
}: { }: {
data: Dataset[]; data: Dataset[];
ranges: Range[];
runs: Run[]; runs: Run[];
xAxis: XAxis; xAxis: XAxis;
smoothedOnly?: boolean; smoothedOnly?: boolean;
...@@ -39,7 +41,8 @@ export const chartData = ({ ...@@ -39,7 +41,8 @@ export const chartData = ({
const name = runs[i].label; const name = runs[i].label;
const color = runs[i].colors[0]; const color = runs[i].colors[0];
const colorAlt = runs[i].colors[1]; const colorAlt = runs[i].colors[1];
const result = [ // eslint-disable-next-line @typescript-eslint/no-explicit-any
const result: any[] = [
{ {
name, name,
z: runs.length + i, z: runs.length + i,
...@@ -57,6 +60,11 @@ export const chartData = ({ ...@@ -57,6 +60,11 @@ export const chartData = ({
} }
]; ];
if (!smoothedOnly) { if (!smoothedOnly) {
const range = ranges[i];
// const mins = dataset.filter(item => item[2] === range?.min);
// const maxs = dataset.filter(item => item[2] === range?.max);
const min = dataset.find(item => item[2] === range?.min);
const max = dataset.find(item => item[2] === range?.max);
result.push({ result.push({
name, name,
z: i, z: i,
...@@ -70,6 +78,26 @@ export const chartData = ({ ...@@ -70,6 +78,26 @@ export const chartData = ({
encode: { encode: {
x: [xAxisMap[xAxis]], x: [xAxisMap[xAxis]],
y: [2] y: [2]
},
markPoint: {
symbol: 'circle',
symbolSize: 6,
itemStyle: {
color: '#fff',
borderColor: colorAlt,
borderWidth: 1
},
label: {
show: false
},
data: [
...(min ? [{coord: [min[xAxisMap[xAxis]], min[2]]}] : []),
...(max ? [{coord: [max[xAxisMap[xAxis]], max[2]]}] : [])
]
// data: [
// ...mins.map(item => ({coord: [item[xAxisMap[xAxis]], item[2]]})),
// ...maxs.map(item => ({coord: [item[xAxisMap[xAxis]], item[2]]}))
// ]
} }
}); });
} }
...@@ -88,6 +116,10 @@ export const tooltip = (data: TooltipData[], stepLength: number, i18n: typeof I1 ...@@ -88,6 +116,10 @@ export const tooltip = (data: TooltipData[], stepLength: number, i18n: typeof I1
label: i18n.t('scalar:value'), label: i18n.t('scalar:value'),
width: '4.285714286em' width: '4.285714286em'
}, },
{
label: i18n.t('common:time-mode.step'),
width: `${Math.max(stepLength * 0.571428571, 2.857142857)}em`
},
{ {
label: i18n.t('scalar:min'), label: i18n.t('scalar:min'),
width: '4.285714286em' width: '4.285714286em'
...@@ -96,10 +128,6 @@ export const tooltip = (data: TooltipData[], stepLength: number, i18n: typeof I1 ...@@ -96,10 +128,6 @@ export const tooltip = (data: TooltipData[], stepLength: number, i18n: typeof I1
label: i18n.t('scalar:max'), label: i18n.t('scalar:max'),
width: '4.285714286em' width: '4.285714286em'
}, },
{
label: i18n.t('common:time-mode.step'),
width: `${Math.max(stepLength * 0.571428571, 2.857142857)}em`
},
{ {
label: i18n.t('common:time-mode.wall'), label: i18n.t('common:time-mode.wall'),
width: '10.714285714em' width: '10.714285714em'
...@@ -112,9 +140,9 @@ export const tooltip = (data: TooltipData[], stepLength: number, i18n: typeof I1 ...@@ -112,9 +140,9 @@ export const tooltip = (data: TooltipData[], stepLength: number, i18n: typeof I1
data: data.map(({min, max, item}) => [ data: data.map(({min, max, item}) => [
valueFormatter(item[3] ?? Number.NaN), valueFormatter(item[3] ?? Number.NaN),
valueFormatter(item[2] ?? Number.NaN), valueFormatter(item[2] ?? Number.NaN),
item[1],
valueFormatter(min ?? Number.NaN), valueFormatter(min ?? Number.NaN),
valueFormatter(max ?? Number.NaN), valueFormatter(max ?? Number.NaN),
item[1],
formatTime(item[0], i18n.language), formatTime(item[0], i18n.language),
Math.floor(item[4] * 60 * 60) + 's' Math.floor(item[4] * 60 * 60) + 's'
]) ])
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
invariant "^2.2.4" invariant "^2.2.4"
semver "^5.5.0" semver "^5.5.0"
"@babel/core@7.11.6": "@babel/core@7.11.6", "@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.7.5":
version "7.11.6" version "7.11.6"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651"
integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==
...@@ -62,38 +62,7 @@ ...@@ -62,38 +62,7 @@
semver "^5.4.1" semver "^5.4.1"
source-map "^0.5.0" source-map "^0.5.0"
"@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.7.5": "@babel/generator@^7.11.5", "@babel/generator@^7.11.6", "@babel/generator@^7.9.0":
version "7.11.5"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.5.tgz#6ad96e2f71899ea3f9b651f0a911e85205d1ff6d"
integrity sha512-fsEANVOcZHzrsV6dMVWqpSeXClq3lNbYrfFGme6DE25FQWe7pyeYpXyx9guqUnpy466JLzZ8z4uwSr2iv60V5Q==
dependencies:
"@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.11.5"
"@babel/helper-module-transforms" "^7.11.0"
"@babel/helpers" "^7.10.4"
"@babel/parser" "^7.11.5"
"@babel/template" "^7.10.4"
"@babel/traverse" "^7.11.5"
"@babel/types" "^7.11.5"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
json5 "^2.1.2"
lodash "^4.17.19"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.6.1"
"@babel/generator@^7.11.5", "@babel/generator@^7.9.0":
version "7.11.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.5.tgz#a5582773425a468e4ba269d9a1f701fbca6a7a82"
integrity sha512-9UqHWJ4IwRTy4l0o8gq2ef8ws8UPzvtMkVKjTLAiRmza9p9V6Z+OfuNd9fB1j5Q67F+dVJtPC2sZXI8NM9br4g==
dependencies:
"@babel/types" "^7.11.5"
jsesc "^2.5.1"
source-map "^0.6.1"
"@babel/generator@^7.11.6":
version "7.11.6" version "7.11.6"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620"
integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==
...@@ -2305,12 +2274,12 @@ ...@@ -2305,12 +2274,12 @@
"@octokit/types" "^5.0.0" "@octokit/types" "^5.0.0"
"@octokit/endpoint@^6.0.1": "@octokit/endpoint@^6.0.1":
version "6.0.5" version "6.0.6"
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.5.tgz#43a6adee813c5ffd2f719e20cfd14a1fee7c193a" resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.6.tgz#4f09f2b468976b444742a1d5069f6fa45826d999"
integrity sha512-70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ== integrity sha512-7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ==
dependencies: dependencies:
"@octokit/types" "^5.0.0" "@octokit/types" "^5.0.0"
is-plain-object "^4.0.0" is-plain-object "^5.0.0"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
"@octokit/plugin-enterprise-rest@^6.0.1": "@octokit/plugin-enterprise-rest@^6.0.1":
...@@ -2357,15 +2326,15 @@ ...@@ -2357,15 +2326,15 @@
once "^1.4.0" once "^1.4.0"
"@octokit/request@^5.2.0": "@octokit/request@^5.2.0":
version "5.4.7" version "5.4.8"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.7.tgz#fd703ee092e0463ceba49ff7a3e61cb4cf8a0fde" resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.8.tgz#13ad36e172bb57e78bacf02cd86210d1f7412f04"
integrity sha512-FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A== integrity sha512-mWbxjsARJzAq5xp+ZrQfotc+MHFz3/Am2qATJwflv4PZ1TjhgIJnr60PCVdZT9Z/tl+uPXooaVgeviy1KkDlLQ==
dependencies: dependencies:
"@octokit/endpoint" "^6.0.1" "@octokit/endpoint" "^6.0.1"
"@octokit/request-error" "^2.0.0" "@octokit/request-error" "^2.0.0"
"@octokit/types" "^5.0.0" "@octokit/types" "^5.0.0"
deprecation "^2.0.0" deprecation "^2.0.0"
is-plain-object "^4.0.0" is-plain-object "^5.0.0"
node-fetch "^2.3.0" node-fetch "^2.3.0"
once "^1.4.0" once "^1.4.0"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
...@@ -2813,9 +2782,9 @@ ...@@ -2813,9 +2782,9 @@
"@babel/types" "^7.0.0" "@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
version "7.0.13" version "7.0.14"
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.13.tgz#1874914be974a492e1b4cb00585cabb274e8ba18" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.14.tgz#e99da8c075d4fb098c774ba65dabf7dc9954bd13"
integrity sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ== integrity sha512-8w9szzKs14ZtBVuP6Wn7nMLRJ0D6dfB0VEBEyRgxrZ/Ln49aNMykrghM2FaNn4FJRzNppCSa0Rv9pBRM5Xc3wg==
dependencies: dependencies:
"@babel/types" "^7.3.0" "@babel/types" "^7.3.0"
...@@ -3047,12 +3016,7 @@ ...@@ -3047,12 +3016,7 @@
"@types/node" "*" "@types/node" "*"
form-data "^3.0.0" form-data "^3.0.0"
"@types/node@*", "@types/node@>= 8": "@types/node@*", "@types/node@14.6.4", "@types/node@>= 8":
version "14.6.3"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.3.tgz#cc4f979548ca4d8e7b90bc0180052ab99ee64224"
integrity sha512-pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww==
"@types/node@14.6.4":
version "14.6.4" version "14.6.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a"
integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==
...@@ -3107,9 +3071,9 @@ ...@@ -3107,9 +3071,9 @@
"@types/react" "*" "@types/react" "*"
"@types/react-native@*": "@types/react-native@*":
version "0.63.13" version "0.63.17"
resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.13.tgz#e119c6921c78abdde52a68d0bd7f0effc6191f51" resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.17.tgz#364402e33b2805cadfe703d5a84f2e84ad684000"
integrity sha512-diqOQUlMB4+l5tldIP38fTkjtPn6pnFMMLfewiMtpUYwB1ID7snQ/ePN98a+3BFG87v8H62Rp/Q1xuudvG4MSg== integrity sha512-xSU9JCHKGqC5Mxnqoc5xs4dquo2bW3ttNqz7IWRtHqEKQvbDcXUgZPNNqEKBiq+5ifMcJs5Dex7jgu8ywKoXBA==
dependencies: dependencies:
"@types/react" "*" "@types/react" "*"
...@@ -3536,9 +3500,9 @@ acorn-globals@^6.0.0: ...@@ -3536,9 +3500,9 @@ acorn-globals@^6.0.0:
acorn-walk "^7.1.1" acorn-walk "^7.1.1"
acorn-jsx@^5.2.0: acorn-jsx@^5.2.0:
version "5.2.0" version "5.3.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
acorn-walk@^7.1.1: acorn-walk@^7.1.1:
version "7.2.0" version "7.2.0"
...@@ -4346,14 +4310,14 @@ browserify-zlib@^0.2.0: ...@@ -4346,14 +4310,14 @@ browserify-zlib@^0.2.0:
pako "~1.0.5" pako "~1.0.5"
browserslist@^4.12.0, browserslist@^4.8.5, browserslist@^4.9.1: browserslist@^4.12.0, browserslist@^4.8.5, browserslist@^4.9.1:
version "4.14.0" version "4.14.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce"
integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==
dependencies: dependencies:
caniuse-lite "^1.0.30001111" caniuse-lite "^1.0.30001125"
electron-to-chromium "^1.3.523" electron-to-chromium "^1.3.564"
escalade "^3.0.2" escalade "^3.0.2"
node-releases "^1.1.60" node-releases "^1.1.61"
bser@2.1.1: bser@2.1.1:
version "2.1.1" version "2.1.1"
...@@ -4607,10 +4571,10 @@ camelize@^1.0.0: ...@@ -4607,10 +4571,10 @@ camelize@^1.0.0:
resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111: caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125:
version "1.0.30001123" version "1.0.30001125"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001123.tgz#7b981d81382ab2c8fd062f3e6439215e8c503c22" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001125.tgz#2a1a51ee045a0a2207474b086f628c34725e997b"
integrity sha512-03dJDoa4YC4332jq0rqwiM+Hw6tA5RJtrnZKvOQy7ASoIUv8CinkcmGhYpCvCjedvkBQrrKnkcELxrUSW/XwNQ== integrity sha512-9f+r7BW8Qli917mU3j0fUaTweT3f3vnX/Lcs+1C73V+RADmFme+Ih0Br8vONQi3X0lseOe6ZHfsZLCA8MSjxUA==
capture-exit@^2.0.0: capture-exit@^2.0.0:
version "2.0.0" version "2.0.0"
...@@ -6134,9 +6098,9 @@ dot-prop@^4.2.0: ...@@ -6134,9 +6098,9 @@ dot-prop@^4.2.0:
is-obj "^1.0.0" is-obj "^1.0.0"
dot-prop@^5.1.0, dot-prop@^5.2.0: dot-prop@^5.1.0, dot-prop@^5.2.0:
version "5.2.0" version "5.3.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
dependencies: dependencies:
is-obj "^2.0.0" is-obj "^2.0.0"
...@@ -6198,10 +6162,10 @@ ee-first@1.1.1: ...@@ -6198,10 +6162,10 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.523: electron-to-chromium@^1.3.564:
version "1.3.559" version "1.3.564"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.559.tgz#698e231046e9c7438a42f310373c2d5ba76ea1de" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.564.tgz#e9c319ae437b3eb8bbf3e3bae4bead5a21945961"
integrity sha512-CQChkWNny3Tp8StVV2t/6Yegl7BwgR3Qk4gJ09lffK87IkHdNBy0exo9CBxAA8Mv6ihwWOuM0Pp0gTQc2Y+NTQ== integrity sha512-fNaYN3EtKQWLQsrKXui8mzcryJXuA0LbCLoizeX6oayG2emBaS5MauKjCPAvc29NEY4FpLHIUWiP+Y0Bfrs5dg==
electron-updater@4.3.1: electron-updater@4.3.1:
version "4.3.1" version "4.3.1"
...@@ -6399,9 +6363,9 @@ es6-promisify@^5.0.0: ...@@ -6399,9 +6363,9 @@ es6-promisify@^5.0.0:
es6-promise "^4.0.3" es6-promise "^4.0.3"
esbuild@^0.6.11: esbuild@^0.6.11:
version "0.6.30" version "0.6.33"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.6.30.tgz#8df921c12b1cd4f32aaabdd8130edf6b060f87ba" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.6.33.tgz#13504da1a582b892ae37ea303566d9f419e5a70e"
integrity sha512-ZSZY461UPzTYYC3rqy1QiMtngk2WyXf+58MgC7tC22jkI90FXNgEl0hN3ipfn/UgZYzTW2GBcHiO7t0rSbHT7g== integrity sha512-TGf0q04top/0mVst0IzcbgAYc9W1W+ovbrZAHAQSUB2U+lYMu9Fwd8lkGxlhMdnctjEunGBD0qwahJj6k40izA==
escalade@^3.0.2: escalade@^3.0.2:
version "3.0.2" version "3.0.2"
...@@ -7351,9 +7315,9 @@ git-up@^4.0.0: ...@@ -7351,9 +7315,9 @@ git-up@^4.0.0:
parse-url "^5.0.0" parse-url "^5.0.0"
git-url-parse@^11.1.2: git-url-parse@^11.1.2:
version "11.1.3" version "11.2.0"
resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.2.0.tgz#2955fd51befd6d96ea1389bbe2ef57e8e6042b04"
integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== integrity sha512-KPoHZg8v+plarZvto4ruIzzJLFQoRx+sUs5DQSr07By9IBKguVd+e6jwrFR6/TP6xrCJlNV1tPqLO1aREc7O2g==
dependencies: dependencies:
git-up "^4.0.0" git-up "^4.0.0"
...@@ -7478,9 +7442,9 @@ globby@^9.2.0: ...@@ -7478,9 +7442,9 @@ globby@^9.2.0:
slash "^2.0.0" slash "^2.0.0"
got@^11.1.4: got@^11.1.4:
version "11.6.0" version "11.6.1"
resolved "https://registry.yarnpkg.com/got/-/got-11.6.0.tgz#4978c78f3cbc3a45ee95381f8bb6efd1db1f4638" resolved "https://registry.yarnpkg.com/got/-/got-11.6.1.tgz#a307122fc136c446f676f7b939d89dbc6ed6b909"
integrity sha512-ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA== integrity sha512-6izGvOsrd/4CsIdQMgweFOTCtS4sAwJTuCzIuVoTbCDzt3+wa3eGIHhSIMgEF6gfCDenslGlMUmAdPap5DkirQ==
dependencies: dependencies:
"@sindresorhus/is" "^3.1.1" "@sindresorhus/is" "^3.1.1"
"@szmarczak/http-timer" "^4.0.5" "@szmarczak/http-timer" "^4.0.5"
...@@ -8195,9 +8159,9 @@ is-builtin-module@^3.0.0: ...@@ -8195,9 +8159,9 @@ is-builtin-module@^3.0.0:
builtin-modules "^3.0.0" builtin-modules "^3.0.0"
is-callable@^1.1.4, is-callable@^1.2.0: is-callable@^1.1.4, is-callable@^1.2.0:
version "1.2.0" version "1.2.1"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.1.tgz#4d1e21a4f437509d25ce55f8184350771421c96d"
integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== integrity sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==
is-ci@^2.0.0: is-ci@^2.0.0:
version "2.0.0" version "2.0.0"
...@@ -8378,10 +8342,10 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: ...@@ -8378,10 +8342,10 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies: dependencies:
isobject "^3.0.1" isobject "^3.0.1"
is-plain-object@^4.0.0: is-plain-object@^5.0.0:
version "4.1.1" version "5.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-4.1.1.tgz#1a14d6452cbd50790edc7fdaa0aed5a40a35ebb5" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA== integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
is-potential-custom-element-name@^1.0.0: is-potential-custom-element-name@^1.0.0:
version "1.0.0" version "1.0.0"
...@@ -10083,16 +10047,11 @@ node-fetch-npm@^2.0.2: ...@@ -10083,16 +10047,11 @@ 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.1: node-fetch@2.6.1, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0:
version "2.6.1" version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
node-gyp@^5.0.2: node-gyp@^5.0.2:
version "5.1.1" version "5.1.1"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"
...@@ -10161,10 +10120,10 @@ node-notifier@^8.0.0: ...@@ -10161,10 +10120,10 @@ node-notifier@^8.0.0:
uuid "^8.3.0" uuid "^8.3.0"
which "^2.0.2" which "^2.0.2"
node-releases@^1.1.60: node-releases@^1.1.61:
version "1.1.60" version "1.1.61"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e"
integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==
nodemon@2.0.4: nodemon@2.0.4:
version "2.0.4" version "2.0.4"
...@@ -12259,9 +12218,9 @@ rollup-pluginutils@^2.8.1: ...@@ -12259,9 +12218,9 @@ rollup-pluginutils@^2.8.1:
estree-walker "^0.6.1" estree-walker "^0.6.1"
rollup@^2.23.0: rollup@^2.23.0:
version "2.26.9" version "2.26.11"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.26.9.tgz#4b6ce4e9044dd257d7314d8ed9b4d4d8a7d166c9" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.26.11.tgz#4fc31de9c7b83d50916fc8395f8c3d24730cdaae"
integrity sha512-XIiWYLayLqV+oY4S2Lub/shJq4uk/QQLwWToYCL4LjZbYHbFK3czea4UDVRUJu+zNmKmxq5Zb/OG7c5HSvH2TQ== integrity sha512-xyfxxhsE6hW57xhfL1I+ixH8l2bdoIMaAecdQiWF3N7IgJEMu99JG+daBiSZQjnBpzFxa0/xZm+3pbCdAQehHw==
optionalDependencies: optionalDependencies:
fsevents "~2.1.2" fsevents "~2.1.2"
...@@ -12298,9 +12257,9 @@ rw@1: ...@@ -12298,9 +12257,9 @@ rw@1:
integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
rxjs@^6.4.0, rxjs@^6.6.2: rxjs@^6.4.0, rxjs@^6.6.2:
version "6.6.2" version "6.6.3"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552"
integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==
dependencies: dependencies:
tslib "^1.9.0" tslib "^1.9.0"
...@@ -13682,9 +13641,9 @@ typescript@4.0.2: ...@@ -13682,9 +13641,9 @@ typescript@4.0.2:
integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ== integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==
uglify-js@^3.1.4: uglify-js@^3.1.4:
version "3.10.3" version "3.10.4"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.3.tgz#f0d2f99736c14de46d2d24649ba328be3e71c3bf" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.4.tgz#dd680f5687bc0d7a93b14a3482d16db6eba2bfbb"
integrity sha512-Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g== integrity sha512-kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==
uid-number@0.0.6: uid-number@0.0.6:
version "0.0.6" version "0.0.6"
...@@ -14124,9 +14083,9 @@ whatwg-encoding@^1.0.5: ...@@ -14124,9 +14083,9 @@ whatwg-encoding@^1.0.5:
iconv-lite "0.4.24" iconv-lite "0.4.24"
whatwg-fetch@^3.0.0: whatwg-fetch@^3.0.0:
version "3.4.0" version "3.4.1"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3"
integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ==
whatwg-mimetype@^2.3.0: whatwg-mimetype@^2.3.0:
version "2.3.0" version "2.3.0"
...@@ -14143,9 +14102,9 @@ whatwg-url@^7.0.0: ...@@ -14143,9 +14102,9 @@ whatwg-url@^7.0.0:
webidl-conversions "^4.0.2" webidl-conversions "^4.0.2"
whatwg-url@^8.0.0: whatwg-url@^8.0.0:
version "8.2.1" version "8.2.2"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.2.1.tgz#ed73417230784b281fb2a32c3c501738b46167c3" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.2.2.tgz#85e7f9795108b53d554cec640b2e8aee2a0d4bfd"
integrity sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A== integrity sha512-PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ==
dependencies: dependencies:
lodash.sortby "^4.7.0" lodash.sortby "^4.7.0"
tr46 "^2.0.2" tr46 "^2.0.2"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册