1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-24 06:28:42 +01:00

stat cleanup (#1910)

* Updates modules

* Cleans up stats
This commit is contained in:
Amir Raminfar
2022-10-14 13:00:57 -07:00
committed by GitHub
parent e2ad2e0193
commit 5b15a0b29d
6 changed files with 125 additions and 110 deletions

View File

@@ -13,6 +13,7 @@ declare module '@vue/runtime-core' {
ComplexLogItem: typeof import('./components/LogViewer/ComplexLogItem.vue')['default']
ContainerStat: typeof import('./components/LogViewer/ContainerStat.vue')['default']
ContainerTitle: typeof import('./components/LogViewer/ContainerTitle.vue')['default']
CpuSparkline: typeof import('./components/StatSparkline.vue')['default']
DockerEventLogItem: typeof import('./components/LogViewer/DockerEventLogItem.vue')['default']
DropdownMenu: typeof import('./components/DropdownMenu.vue')['default']
FieldList: typeof import('./components/LogViewer/FieldList.vue')['default']

View File

@@ -3,23 +3,27 @@
<div class="column is-narrow has-text-weight-bold">
{{ container.state }}
</div>
<div class="column is-narrow has-text-centered">
<div>
<div class="column is-narrow has-text-centered is-relative">
<div class="has-border">
<stat-sparkline :data="memoryData"></stat-sparkline>
</div>
<span class="has-text-weight-light has-spacer">mem</span>
<span class="has-text-weight-bold">
{{ formatBytes(container.stat.memoryUsage) }}
</span>
</div>
<div class="column is-narrow"></div>
<div class="column is-narrow has-text-centered">
<div>
<div class="has-background-body-color is-top-left">
<span class="has-text-weight-light has-spacer">mem</span>
<span class="has-text-weight-bold">
{{ formatBytes(container.stat.memoryUsage) }}
</span>
</div>
</div>
<div class="column is-narrow has-text-centered is-relative">
<div class="has-border">
<stat-sparkline :data="cpuData"></stat-sparkline>
</div>
<span class="has-text-weight-light has-spacer">load</span>
<span class="has-text-weight-bold"> {{ container.stat.cpu }}% </span>
<div class="has-background-body-color is-top-left">
<span class="has-text-weight-light has-spacer">load</span>
<span class="has-text-weight-bold"> {{ container.stat.cpu }}% </span>
</div>
</div>
</div>
</template>
@@ -53,4 +57,23 @@ const memoryData = computedWithControl(
content: " ";
}
}
.has-border {
border: 1px solid var(--primary-color);
border-radius: 3px;
padding: 1px 1px 0 1px;
display: flex;
overflow: hidden;
padding-top: 0.25em;
}
.has-background-body-color {
background-color: var(--body-background-color);
}
.is-top-left {
position: absolute;
top: 0;
left: 0.75em;
}
</style>

View File

@@ -1,54 +1,35 @@
<template>
<svg width="150" height="20"></svg>
<svg :width="width" :height="height">
<path :d="path" class="area" />
</svg>
</template>
<script lang="ts" setup>
import { select, type ValueFn } from "d3-selection";
import { extent } from "d3-array";
import { scaleLinear } from "d3-scale";
import { area, curveStep } from "d3-shape";
const d3 = { select, extent, scaleLinear, area, curveStep };
const d3 = { extent, scaleLinear, area, curveStep };
const { data, width = 150, height = 30 } = defineProps<{ data: Point[]; width?: number; height?: number }>();
const x = d3.scaleLinear().range([0, width]);
const y = d3.scaleLinear().range([height, 0]);
const root = useCurrentElement();
const shape = d3
.area<Point>()
.curve(d3.curveStep)
.x((d) => x(d.x))
.y0(height)
.y1((d) => y(d.y));
const { data } = defineProps<{ data: { x: number; y: number }[] }>();
onMounted(() => {
const svg = d3.select(root.value);
const width = +svg.attr("width");
const height = +svg.attr("height");
const margin = { top: 0, right: 0, bottom: 0, left: 0 };
const innerWidth = width - margin.left - margin.right;
const innerHeight = height - margin.top - margin.bottom;
const x = d3.scaleLinear().range([0, innerWidth]);
const y = d3.scaleLinear().range([innerHeight, 0]);
const g = svg.append("g").attr("transform", `translate(${margin.left}, ${margin.top})`);
const path = g.append("path").attr("class", "area");
const area = d3
.area()
.curve(d3.curveStep)
.x((d: any) => x(d.x))
.y0(y(0))
.y1((d: any) => y(d.y)) as ValueFn<SVGGElement, any, string>;
watchEffect(() => {
x.domain(d3.extent(data, (d) => d.x) as [number, number]);
y.domain(d3.extent(data, (d) => d.y) as [number, number]);
path.datum(data).attr("d", area);
});
const path = computed(() => {
x.domain(d3.extent(data, (d) => d.x) as [number, number]);
y.domain(d3.extent(data, (d) => d.y) as [number, number]);
return shape(data) ?? "";
});
</script>
<style scoped>
:deep(.area) {
fill: var(--primary-color);
stroke: var(--primary-color);
stroke-width: 1;
}
</style>

1
assets/types/Point.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
type Point = { x: number; y: number };

View File

@@ -60,7 +60,7 @@
"@types/d3-shape": "^3.1.0",
"@types/d3-transition": "^3.0.2",
"@types/lodash.debounce": "^4.0.7",
"@types/node": "^18.8.4",
"@types/node": "^18.8.5",
"@types/semver": "^7.3.12",
"@vitejs/plugin-vue": "3.1.2",
"@vue/compiler-sfc": "^3.2.40",
@@ -80,11 +80,11 @@
"unplugin-auto-import": "^0.11.2",
"unplugin-icons": "^0.14.11",
"unplugin-vue-components": "^0.22.8",
"vite": "3.1.7",
"vite": "3.1.8",
"vite-plugin-pages": "^0.26.0",
"vite-plugin-vue-layouts": "^0.7.0",
"vitest": "^0.24.1",
"vue-tsc": "^1.0.3"
"vue-tsc": "^1.0.7"
},
"lint-staged": {
"*.{js,vue,css}": [

127
pnpm-lock.yaml generated
View File

@@ -17,7 +17,7 @@ specifiers:
'@types/d3-shape': ^3.1.0
'@types/d3-transition': ^3.0.2
'@types/lodash.debounce': ^4.0.7
'@types/node': ^18.8.4
'@types/node': ^18.8.5
'@types/semver': ^7.3.12
'@vitejs/plugin-vue': 3.1.2
'@vue/compiler-sfc': ^3.2.40
@@ -54,14 +54,14 @@ specifiers:
unplugin-auto-import: ^0.11.2
unplugin-icons: ^0.14.11
unplugin-vue-components: ^0.22.8
vite: 3.1.7
vite: 3.1.8
vite-plugin-pages: ^0.26.0
vite-plugin-vue-layouts: ^0.7.0
vitest: ^0.24.1
vue: ^3.2.40
vue-i18n: ^9.2.2
vue-router: ^4.1.5
vue-tsc: ^1.0.3
vue-tsc: ^1.0.7
dependencies:
'@iconify-json/carbon': 1.1.8
@@ -93,7 +93,7 @@ dependencies:
vue-router: 4.1.5_vue@3.2.40
devDependencies:
'@intlify/vite-plugin-vue-i18n': 6.0.3_vite@3.1.7+vue-i18n@9.2.2
'@intlify/vite-plugin-vue-i18n': 6.0.3_vite@3.1.8+vue-i18n@9.2.2
'@pinia/testing': 0.0.14_pinia@2.0.23+vue@3.2.40
'@types/d3-array': 3.0.3
'@types/d3-ease': 3.0.0
@@ -102,9 +102,9 @@ devDependencies:
'@types/d3-shape': 3.1.0
'@types/d3-transition': 3.0.2
'@types/lodash.debounce': 4.0.7
'@types/node': 18.8.4
'@types/node': 18.8.5
'@types/semver': 7.3.12
'@vitejs/plugin-vue': 3.1.2_vite@3.1.7+vue@3.2.40
'@vitejs/plugin-vue': 3.1.2_vite@3.1.8+vue@3.2.40
'@vue/compiler-sfc': 3.2.40
'@vue/test-utils': 2.1.0_vue@3.2.40
c8: 7.12.0
@@ -117,16 +117,16 @@ devDependencies:
prettier: 2.7.1
release-it: 15.5.0
sass: 1.55.0
ts-node: 10.9.1_xkk4lltwku4cysulzbqoieownu
ts-node: 10.9.1_ptpocrdt7oaz4ni5mlvucph5pa
typescript: 4.8.4
unplugin-auto-import: 0.11.2_vb2jqpr6hhfyvqmjqgk4cfapu4
unplugin-auto-import: 0.11.2_xprgaq42dappzfhggpxgvdf43y
unplugin-icons: 0.14.11_@vue+compiler-sfc@3.2.40
unplugin-vue-components: 0.22.8_vue@3.2.40
vite: 3.1.7_sass@1.55.0
vite-plugin-pages: 0.26.0_ljcqrq5egzfzffbiweyi3hy2ua
vite-plugin-vue-layouts: 0.7.0_d7owwgkmo6iqlcv7qgzubrtxem
vite: 3.1.8_sass@1.55.0
vite-plugin-pages: 0.26.0_3wx2cuqoomdy5nuogdesbbnqtu
vite-plugin-vue-layouts: 0.7.0_ilgc2hbueo5jnriamewoy7jlua
vitest: 0.24.1_jsdom@20.0.1+sass@1.55.0
vue-tsc: 1.0.3_typescript@4.8.4
vue-tsc: 1.0.7_typescript@4.8.4
packages:
@@ -322,7 +322,7 @@ packages:
engines: {node: '>= 14'}
dev: true
/@intlify/vite-plugin-vue-i18n/6.0.3_vite@3.1.7+vue-i18n@9.2.2:
/@intlify/vite-plugin-vue-i18n/6.0.3_vite@3.1.8+vue-i18n@9.2.2:
resolution: {integrity: sha512-6SgNzPAOCR90wvt368lKzi7f/5ZEWJn22UCGvhFsP3XvKqlF3cVzojahgQ6o+LTdCkExeM6wPgd+haFf28E9VQ==}
engines: {node: '>= 14.6'}
peerDependencies:
@@ -343,7 +343,7 @@ packages:
debug: 4.3.4
fast-glob: 3.2.12
source-map: 0.6.1
vite: 3.1.7_sass@1.55.0
vite: 3.1.8_sass@1.55.0
vue-i18n: 9.2.2_vue@3.2.40
transitivePeerDependencies:
- supports-color
@@ -684,8 +684,8 @@ packages:
resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
dev: true
/@types/node/18.8.4:
resolution: {integrity: sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==}
/@types/node/18.8.5:
resolution: {integrity: sha512-Bq7G3AErwe5A/Zki5fdD3O6+0zDChhg671NfPjtIcbtzDNZTv4NPKMRFr7gtYPG7y+B8uTiNK4Ngd9T0FTar6Q==}
dev: true
/@types/parse-json/4.0.0:
@@ -699,55 +699,55 @@ packages:
/@types/web-bluetooth/0.0.15:
resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==}
/@vitejs/plugin-vue/3.1.2_vite@3.1.7+vue@3.2.40:
/@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.40:
resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^3.0.0
vue: ^3.2.25
dependencies:
vite: 3.1.7_sass@1.55.0
vite: 3.1.8_sass@1.55.0
vue: 3.2.40
dev: true
/@volar/language-core/1.0.3:
resolution: {integrity: sha512-eJ3iubJ1EvPTsp+rKoSUQ3EBGsEzblOQG6OVI9EzXIuwNayIqCnNSv9r0rvnYznX7i5F8gpo0Js9nKoAvwfhpQ==}
/@volar/language-core/1.0.7:
resolution: {integrity: sha512-T3iJ7Ej5Ywrsn1nEfvOQ98LdFZu3TtoXD8UELHto/u5QyQk4U2GfPl+0ZjuS39ZPocU9l/5CMhrxHsgv/hFWVA==}
dependencies:
'@volar/source-map': 1.0.3
'@volar/source-map': 1.0.7
'@vue/reactivity': 3.2.40
muggle-string: 0.1.0
dev: true
/@volar/source-map/1.0.3:
resolution: {integrity: sha512-iEbjU95e8iZ3fV9NHU/wDWRSwSE5aNGpkG9mgIXPkfCmbEH+nEHGkycvapT551BDtIcyU386XzqL4DQbOyPzew==}
/@volar/source-map/1.0.7:
resolution: {integrity: sha512-58xtTXbriaBoGHl5epE5kYI0Pk81yGmM3Mb/5TEUEzA16dGovXiwtEGce2xCgo0ps42OInFvFuaRv3SvM0k6mg==}
dependencies:
muggle-string: 0.1.0
dev: true
/@volar/typescript/1.0.3:
resolution: {integrity: sha512-OevIxAbdgfVxwWYI6ht5tmt8GqBBVQWPWn/51MNlqu5fVltFGRkOBmv3hwuvLn5N05pj2GpbkaaLZSjpj4iT9w==}
/@volar/typescript/1.0.7:
resolution: {integrity: sha512-VH3dMxTqkdUqjmdVwIytBjppH5iy18qK9peb3E9CNbvzf/+b3TpdX0zoyglaKmC5IeHG68KHXK2yps734yZ4nQ==}
dependencies:
'@volar/language-core': 1.0.3
'@volar/language-core': 1.0.7
dev: true
/@volar/vue-language-core/1.0.3:
resolution: {integrity: sha512-XryQVvtFB5/rOkEZin5jZgUy0E84p+Ky70z+4B7Bvw/9HjS3TLKAIkm9W0duV7coG9RFVRqeiVnPyaaqSA0waA==}
/@volar/vue-language-core/1.0.7:
resolution: {integrity: sha512-5InGpRLu5FGeUkVNr1LvQfvThdSsyzIwvsYqYSGLj6VNmS7rzLacoKjZlTwz68/976aU3zjdgx94PoNl5n/SqA==}
dependencies:
'@volar/language-core': 1.0.3
'@volar/source-map': 1.0.3
'@volar/language-core': 1.0.7
'@volar/source-map': 1.0.7
'@vue/compiler-dom': 3.2.40
'@vue/compiler-sfc': 3.2.40
'@vue/reactivity': 3.2.40
'@vue/shared': 3.2.40
minimatch: 5.1.0
vue-template-compiler: 2.7.10
vue-template-compiler: 2.7.12
dev: true
/@volar/vue-typescript/1.0.3:
resolution: {integrity: sha512-zugZ5vni+l5w5z8Q5iEWysU/HkX38krW4+QTKwgQstaRVUQS0UHlX4Ug9vOfPGWEextIx0Z/7JsUvPATTNbfbg==}
/@volar/vue-typescript/1.0.7:
resolution: {integrity: sha512-SZlUJfMh/9NOIfpYtSVcIAbJVEzEiH2qWBIYHPooMXC02qey56Tg6J2eMhIoKWIuZH0VRRbX8IgFHevSQzzGOw==}
dependencies:
'@volar/typescript': 1.0.3
'@volar/vue-language-core': 1.0.3
'@volar/typescript': 1.0.7
'@volar/vue-language-core': 1.0.7
dev: true
/@vue/compiler-core/3.2.40:
@@ -3920,6 +3920,15 @@ packages:
picocolors: 1.0.0
source-map-js: 1.0.2
/postcss/8.4.18:
resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.4
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
/prelude-ls/1.1.2:
resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
engines: {node: '>= 0.8.0'}
@@ -4656,7 +4665,7 @@ packages:
punycode: 2.1.1
dev: true
/ts-node/10.9.1_xkk4lltwku4cysulzbqoieownu:
/ts-node/10.9.1_ptpocrdt7oaz4ni5mlvucph5pa:
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@@ -4675,7 +4684,7 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.3
'@types/node': 18.8.4
'@types/node': 18.8.5
acorn: 8.7.1
acorn-walk: 8.2.0
arg: 4.1.3
@@ -4742,7 +4751,7 @@ packages:
which-boxed-primitive: 1.0.2
dev: true
/unimport/0.6.7_vite@3.1.7:
/unimport/0.6.7_vite@3.1.8:
resolution: {integrity: sha512-EMoVqDjswHkU+nD098QYHXH7Mkw7KwGDQAyeRF2lgairJnuO+wpkhIcmCqrD1OPJmsjkTbJ2tW6Ap8St0PuWZA==}
dependencies:
'@rollup/pluginutils': 4.2.1
@@ -4754,7 +4763,7 @@ packages:
pathe: 0.3.5
scule: 0.3.2
strip-literal: 0.4.2
unplugin: 0.9.3_vite@3.1.7
unplugin: 0.9.3_vite@3.1.8
transitivePeerDependencies:
- esbuild
- rollup
@@ -4788,7 +4797,7 @@ packages:
engines: {node: '>= 0.8'}
dev: true
/unplugin-auto-import/0.11.2_vb2jqpr6hhfyvqmjqgk4cfapu4:
/unplugin-auto-import/0.11.2_xprgaq42dappzfhggpxgvdf43y:
resolution: {integrity: sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==}
engines: {node: '>=14'}
peerDependencies:
@@ -4802,8 +4811,8 @@ packages:
'@vueuse/core': 9.3.0_vue@3.2.40
local-pkg: 0.4.2
magic-string: 0.26.2
unimport: 0.6.7_vite@3.1.7
unplugin: 0.9.3_vite@3.1.7
unimport: 0.6.7_vite@3.1.8
unplugin: 0.9.3_vite@3.1.8
transitivePeerDependencies:
- esbuild
- rollup
@@ -4865,7 +4874,7 @@ packages:
- supports-color
dev: true
/unplugin/0.9.3_vite@3.1.7:
/unplugin/0.9.3_vite@3.1.8:
resolution: {integrity: sha512-GWXxizZG+tobNs8fuGTCeilerkkfZTZax2iivuE4pxLaF9wTnPJHOq8tbLKDb5ohVb+2BXNjrU9xx59yWTUnuw==}
peerDependencies:
esbuild: '>=0.13'
@@ -4884,7 +4893,7 @@ packages:
dependencies:
acorn: 8.8.0
chokidar: 3.5.3
vite: 3.1.7_sass@1.55.0
vite: 3.1.8_sass@1.55.0
webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.4
dev: true
@@ -4954,7 +4963,7 @@ packages:
spdx-expression-parse: 3.0.1
dev: true
/vite-plugin-pages/0.26.0_ljcqrq5egzfzffbiweyi3hy2ua:
/vite-plugin-pages/0.26.0_3wx2cuqoomdy5nuogdesbbnqtu:
resolution: {integrity: sha512-yJZvwHEt7puYIf19S89IvkDsWPjWleSied4H8hmdW6i8buCA93z1UAU1ipW1d8fNKrC4FzXsUHHbPm6+kl1p9w==}
peerDependencies:
'@vue/compiler-sfc': ^2.7.0 || ^3.0.0
@@ -4972,13 +4981,13 @@ packages:
json5: 2.2.1
local-pkg: 0.4.2
picocolors: 1.0.0
vite: 3.1.7_sass@1.55.0
vite: 3.1.8_sass@1.55.0
yaml: 2.1.1
transitivePeerDependencies:
- supports-color
dev: true
/vite-plugin-vue-layouts/0.7.0_d7owwgkmo6iqlcv7qgzubrtxem:
/vite-plugin-vue-layouts/0.7.0_ilgc2hbueo5jnriamewoy7jlua:
resolution: {integrity: sha512-k5XDmRNFo4M/GmUjhbRXj2WmJiFcGoVI8l/uZ72RHyRDQr4wE/6Zq/KFq0lqXomWQxTSzakQRUswzNwtvZLE8A==}
peerDependencies:
vite: ^2.5.0 || ^3.0.0-0
@@ -4988,15 +4997,15 @@ packages:
'@vue/compiler-sfc': 3.2.40
debug: 4.3.4
fast-glob: 3.2.11
vite: 3.1.7_sass@1.55.0
vite: 3.1.8_sass@1.55.0
vue: 3.2.40
vue-router: 4.1.5_vue@3.2.40
transitivePeerDependencies:
- supports-color
dev: true
/vite/3.1.7_sass@1.55.0:
resolution: {integrity: sha512-5vCAmU4S8lyVdFCInu9M54f/g8qbOMakVw5xJ4pjoaDy5wgy9sLLZkGdSLN52dlsBqh0tBqxjaqqa8LgPqwRAA==}
/vite/3.1.8_sass@1.55.0:
resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@@ -5015,7 +5024,7 @@ packages:
optional: true
dependencies:
esbuild: 0.15.10
postcss: 8.4.17
postcss: 8.4.18
resolve: 1.22.1
rollup: 2.78.1
sass: 1.55.0
@@ -5047,7 +5056,7 @@ packages:
dependencies:
'@types/chai': 4.3.3
'@types/chai-subset': 1.3.3
'@types/node': 18.8.4
'@types/node': 18.8.5
chai: 4.3.6
debug: 4.3.4
jsdom: 20.0.1
@@ -5056,7 +5065,7 @@ packages:
tinybench: 2.3.0
tinypool: 0.3.0
tinyspy: 1.0.2
vite: 3.1.7_sass@1.55.0
vite: 3.1.8_sass@1.55.0
transitivePeerDependencies:
- less
- sass
@@ -5123,21 +5132,21 @@ packages:
'@vue/devtools-api': 6.2.1
vue: 3.2.40
/vue-template-compiler/2.7.10:
resolution: {integrity: sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ==}
/vue-template-compiler/2.7.12:
resolution: {integrity: sha512-6rhJAuo2vRzJMs8X/pd9yqtsJmnPEnv4E0cb9KCu0sfGhoDt8roCCa/6qbrvpc1b38zYgdmY/xrk4qfNWZIjwA==}
dependencies:
de-indent: 1.0.2
he: 1.2.0
dev: true
/vue-tsc/1.0.3_typescript@4.8.4:
resolution: {integrity: sha512-Si6PANEATxaGhJ51bUnRbT+5MIYwvjdPBwuCKSky+YD5oWDhE4uMqfpOPnP2oSMB52trtU0faIRVcP4YSF3LJA==}
/vue-tsc/1.0.7_typescript@4.8.4:
resolution: {integrity: sha512-PaeWgISdXsPnV3a1NKfiAZb0iyvgLroxKzjPj1itoR5ZH0UOeVZBbDxpH7VPxAt6tCxiAoAIIisDs1QQrsSu3w==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
'@volar/vue-language-core': 1.0.3
'@volar/vue-typescript': 1.0.3
'@volar/vue-language-core': 1.0.7
'@volar/vue-typescript': 1.0.7
typescript: 4.8.4
dev: true