mirror of
https://github.com/amir20/dozzle.git
synced 2026-08-07 17:11:56 +00:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 895345693c | |||
| a0d60357b8 | |||
| f2e29dadf1 | |||
| 05d6e47d28 | |||
| 882c5a1186 | |||
| 496a894d86 | |||
| e7911dbce6 | |||
| 1484318279 | |||
| 8dce75509c | |||
| 689c399ace | |||
| da62adadc5 | |||
| 3a30c27c9a | |||
| 4edac1174c | |||
| aeffdcb27f | |||
| 3cb3b395a9 | |||
| 4829a5e8c4 | |||
| c2c7041cf7 | |||
| 487a4ad0d4 | |||
| e00af4321f |
Vendored
+3
-2
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"i18n-ally.localesPaths": ["locales"],
|
||||
"i18n-ally.keystyle": "nested",
|
||||
"cSpell.words": ["healthcheck"],
|
||||
"editor.formatOnSave": true
|
||||
"cSpell.words": ["healthcheck", "orderedmap"],
|
||||
"editor.formatOnSave": true,
|
||||
"i18n-ally.extract.autoDetect": true
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
# Build assets
|
||||
FROM --platform=$BUILDPLATFORM node:21.7.3-alpine as node
|
||||
FROM --platform=$BUILDPLATFORM node:22.2-alpine as node
|
||||
|
||||
RUN corepack enable
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ function createFuzzySearchModal() {
|
||||
containers: [
|
||||
new Container("123", new Date(), "image", "test", "command", "host", {}, "status", "running", []),
|
||||
new Container("345", new Date(), "image", "foo bar", "command", "host", {}, "status", "running", []),
|
||||
new Container("567", new Date(), "image", "baz", "command", "host", {}, "status", "exited", []),
|
||||
new Container("567", new Date(), "image", "baz", "command", "host", {}, "status", "running", []),
|
||||
],
|
||||
},
|
||||
},
|
||||
@@ -56,7 +56,8 @@ describe("<FuzzySearchModal />", () => {
|
||||
beforeEach(() => {
|
||||
vi.mocked(useRouter().push).mockReset();
|
||||
});
|
||||
test("shows all", async () => {
|
||||
|
||||
test("shows running all", async () => {
|
||||
const wrapper = createFuzzySearchModal();
|
||||
expect(wrapper.findAll("li").length).toBe(3);
|
||||
});
|
||||
|
||||
@@ -24,14 +24,23 @@
|
||||
:class="index === selectedIndex ? 'focus' : ''"
|
||||
>
|
||||
<div :class="{ 'text-primary': result.item.state === 'running' }">
|
||||
<octicon:container-24 />
|
||||
<template v-if="result.item.type === 'container'">
|
||||
<octicon:container-24 />
|
||||
</template>
|
||||
<template v-else-if="result.item.type === 'service'">
|
||||
<ph:stack-simple />
|
||||
</template>
|
||||
<template v-else-if="result.item.type === 'stack'">
|
||||
<ph:stack />
|
||||
</template>
|
||||
</div>
|
||||
<div class="truncate">
|
||||
<template v-if="config.hosts.length > 1">
|
||||
<template v-if="config.hosts.length > 1 && result.item.host">
|
||||
<span class="font-light">{{ result.item.host }}</span> /
|
||||
</template>
|
||||
<span data-name v-html="matchedName(result)"></span>
|
||||
</div>
|
||||
|
||||
<DistanceTime :date="result.item.created" class="text-xs font-light" />
|
||||
<a
|
||||
@click.stop.prevent="addColumn(result.item)"
|
||||
@@ -48,8 +57,9 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ContainerState } from "@/types/Container";
|
||||
import { useFuse } from "@vueuse/integrations/useFuse";
|
||||
import { type FuseResultMatch } from "fuse.js";
|
||||
import { type FuseResult } from "fuse.js";
|
||||
|
||||
const { maxResults = 5 } = defineProps<{
|
||||
maxResults?: number;
|
||||
@@ -64,24 +74,60 @@ const selectedIndex = ref(0);
|
||||
const router = useRouter();
|
||||
const containerStore = useContainerStore();
|
||||
const pinnedStore = usePinnedLogsStore();
|
||||
const { containers } = storeToRefs(containerStore);
|
||||
const { visibleContainers } = storeToRefs(containerStore);
|
||||
|
||||
const swarmStore = useSwarmStore();
|
||||
const { stacks, services } = storeToRefs(swarmStore);
|
||||
|
||||
type Item = {
|
||||
id: string;
|
||||
created: Date;
|
||||
name: string;
|
||||
state?: ContainerState;
|
||||
host?: string;
|
||||
type: "container" | "service" | "stack";
|
||||
};
|
||||
|
||||
const list = computed(() => {
|
||||
return containers.value.map(({ id, created, name, state, labels, hostLabel: host }) => {
|
||||
return {
|
||||
id,
|
||||
created,
|
||||
name,
|
||||
state,
|
||||
host,
|
||||
labels: Object.entries(labels).map(([_, value]) => value),
|
||||
};
|
||||
});
|
||||
const items: Item[] = [];
|
||||
|
||||
for (const container of visibleContainers.value) {
|
||||
items.push({
|
||||
id: container.id,
|
||||
created: container.created,
|
||||
name: container.name,
|
||||
state: container.state,
|
||||
host: container.hostLabel,
|
||||
type: "container",
|
||||
});
|
||||
}
|
||||
|
||||
for (const service of services.value) {
|
||||
items.push({
|
||||
id: service.name,
|
||||
created: service.updatedAt,
|
||||
name: service.name,
|
||||
state: "running",
|
||||
type: "service",
|
||||
});
|
||||
}
|
||||
|
||||
for (const stack of stacks.value) {
|
||||
items.push({
|
||||
id: stack.name,
|
||||
created: stack.updatedAt,
|
||||
name: stack.name,
|
||||
state: "running",
|
||||
type: "stack",
|
||||
});
|
||||
}
|
||||
|
||||
return items;
|
||||
});
|
||||
|
||||
const { results } = useFuse(query, list, {
|
||||
fuseOptions: {
|
||||
keys: ["name", "host", "labels"],
|
||||
keys: ["name", "host"],
|
||||
includeScore: true,
|
||||
useExtendedSearch: true,
|
||||
threshold: 0.3,
|
||||
@@ -93,17 +139,17 @@ const { results } = useFuse(query, list, {
|
||||
|
||||
const data = computed(() => {
|
||||
return [...results.value]
|
||||
.sort((a, b) => {
|
||||
.sort((a: FuseResult<Item>, b: FuseResult<Item>) => {
|
||||
if (a.score === b.score) {
|
||||
if (a.item.state === b.item.state) {
|
||||
return b.item.created - a.item.created;
|
||||
return b.item.created.getTime() - a.item.created.getTime();
|
||||
} else if (a.item.state === "running" && b.item.state !== "running") {
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
return a.score - b.score;
|
||||
return (a.score ?? 0) - (b.score ?? 0);
|
||||
}
|
||||
})
|
||||
.slice(0, maxResults);
|
||||
@@ -115,10 +161,16 @@ watch(query, (data) => {
|
||||
}
|
||||
});
|
||||
|
||||
onMounted(() => input.value?.focus());
|
||||
useFocus(input, { initialValue: true });
|
||||
|
||||
function selected({ id }: { id: string }) {
|
||||
router.push({ name: "container-id", params: { id } });
|
||||
function selected(item: Item) {
|
||||
if (item.type === "container") {
|
||||
router.push({ name: "container-id", params: { id: item.id } });
|
||||
} else if (item.type === "service") {
|
||||
router.push({ name: "service-name", params: { name: item.id } });
|
||||
} else if (item.type === "stack") {
|
||||
router.push({ name: "stack-name", params: { name: item.id } });
|
||||
}
|
||||
close();
|
||||
}
|
||||
function addColumn(container: { id: string }) {
|
||||
@@ -126,13 +178,14 @@ function addColumn(container: { id: string }) {
|
||||
close();
|
||||
}
|
||||
|
||||
function matchedName({ item, matches = [] }: { item: { name: string }; matches?: FuseResultMatch[] }) {
|
||||
function matchedName({ item, matches = [] }: FuseResult<Item>) {
|
||||
const matched = matches.find((match) => match.key === "name");
|
||||
if (matched) {
|
||||
const { indices } = matched;
|
||||
const result = [];
|
||||
let lastIndex = 0;
|
||||
for (const [start, end] of indices) {
|
||||
if (lastIndex > start) continue;
|
||||
result.push(item.name.slice(lastIndex, start));
|
||||
result.push(`<mark>${item.name.slice(start, end + 1)}</mark>`);
|
||||
lastIndex = end + 1;
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<div class="breadcrumbs">
|
||||
<ul>
|
||||
<li><a @click.prevent="setHost(null)" class="link-primary">Hosts</a></li>
|
||||
<li>
|
||||
<a @click.prevent="setHost(null)" class="link-primary">{{ $t("label.hosts") }}</a>
|
||||
</li>
|
||||
<li v-if="sessionHost && hosts[sessionHost]" class="cursor-default">
|
||||
{{ hosts[sessionHost].name }}
|
||||
</li>
|
||||
@@ -37,7 +39,7 @@
|
||||
}"
|
||||
class="btn btn-square btn-outline btn-primary btn-xs"
|
||||
active-class="btn-active"
|
||||
title="Merge all containers into one view"
|
||||
:title="$t('tooltip.merge-containers')"
|
||||
>
|
||||
<ph:arrows-merge />
|
||||
</router-link>
|
||||
@@ -88,6 +90,7 @@ import Pin from "~icons/ph/map-pin-simple";
|
||||
import Stack from "~icons/ph/stack";
|
||||
// @ts-ignore
|
||||
import Containers from "~icons/octicon/container-24";
|
||||
import { RouteLocationNormalizedLoaded } from "vue-router";
|
||||
|
||||
const containerStore = useContainerStore();
|
||||
const { visibleContainers } = storeToRefs(containerStore);
|
||||
@@ -164,6 +167,21 @@ const menuItems = computed(() => {
|
||||
|
||||
return items;
|
||||
});
|
||||
|
||||
const route = useRoute();
|
||||
|
||||
const updateHostForContainerRoute = (to: RouteLocationNormalizedLoaded) => {
|
||||
if (to.name === "container-id") {
|
||||
const container = containerStore.findContainerById(to.params.id as string);
|
||||
if (container) {
|
||||
setHost(container.host);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
updateHostForContainerRoute(route);
|
||||
|
||||
onBeforeRouteUpdate((to) => updateHostForContainerRoute(to));
|
||||
</script>
|
||||
<style scoped lang="postcss">
|
||||
.menu {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<LogStd :std="logEntry.std" />
|
||||
</div>
|
||||
<div v-if="showTimestamp">
|
||||
<LogDate :date="logEntry.date" />
|
||||
<LogDate :date="logEntry.date" class="select-none" />
|
||||
</div>
|
||||
<div class="flex">
|
||||
<LogLevel :level="logEntry.level" />
|
||||
|
||||
@@ -13,13 +13,15 @@
|
||||
{{ $t("alert.similar-container-found.message", { containerId: nextContainer.id }) }}
|
||||
</div>
|
||||
<div>
|
||||
<TimedButton v-if="automaticRedirect" class="btn-primary btn-sm" @finished="redirectNow()">Cancel</TimedButton>
|
||||
<TimedButton v-if="automaticRedirect" class="btn-primary btn-sm" @finished="redirectNow()">{{
|
||||
$t("button.cancel")
|
||||
}}</TimedButton>
|
||||
<router-link
|
||||
:to="{ name: 'container-id', params: { id: nextContainer.id } }"
|
||||
class="btn btn-primary btn-sm"
|
||||
v-else
|
||||
>
|
||||
Redirect
|
||||
{{ $t("button.redirect") }}
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -8,14 +8,12 @@ import { LogStreamSource } from "@/composable/eventStreams";
|
||||
|
||||
const loadingMore = defineEmit<[value: boolean]>();
|
||||
|
||||
const props = defineProps<{
|
||||
const { entity, streamSource } = $defineProps<{
|
||||
streamSource: (t: Ref<T>) => LogStreamSource;
|
||||
entity: T;
|
||||
}>();
|
||||
|
||||
const { entity, streamSource } = toRefs(props);
|
||||
|
||||
const { messages, loadOlderLogs } = streamSource.value(entity);
|
||||
const { messages, loadOlderLogs } = streamSource($$(entity));
|
||||
|
||||
const beforeLoading = () => loadingMore(true);
|
||||
const afterLoading = () => loadingMore(false);
|
||||
@@ -24,5 +22,9 @@ defineExpose({
|
||||
clear: () => (messages.value = []),
|
||||
});
|
||||
|
||||
const fetchMore = () => loadOlderLogs({ beforeLoading, afterLoading });
|
||||
const fetchMore = async () => {
|
||||
beforeLoading();
|
||||
await loadOlderLogs();
|
||||
afterLoading();
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -43,7 +43,8 @@ defineProps<{
|
||||
}
|
||||
|
||||
[data-level="error"],
|
||||
[data-level="fatal"] {
|
||||
[data-level="fatal"],
|
||||
[data-level="severe"] {
|
||||
@apply bg-red;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="relative flex w-full items-start gap-x-2">
|
||||
<LogStd :std="logEntry.std" v-if="showStd" />
|
||||
<ContainerName class="flex-none" :id="logEntry.containerID" v-if="showContainerName" />
|
||||
<LogDate :date="logEntry.date" v-if="showTimestamp" />
|
||||
<LogDate :date="logEntry.date" v-if="showTimestamp" class="select-none" />
|
||||
<LogLevel class="flex" :level="logEntry.level" :position="logEntry.position" />
|
||||
<div
|
||||
class="whitespace-pre-wrap [word-break:break-word] group-[.disable-wrap]:whitespace-nowrap"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#default="{ messages }"
|
||||
@loading-more="loadingMore($event)"
|
||||
:stream-source="streamSource"
|
||||
:entity="props.entity"
|
||||
:entity="entity"
|
||||
>
|
||||
<LogViewer :messages="messages" :visible-keys="visibleKeys" :show-container-name="showContainerName" />
|
||||
</EventSource>
|
||||
@@ -14,7 +14,7 @@
|
||||
import LogEventSource from "@/components/ContainerViewer/LogEventSource.vue";
|
||||
import { LogStreamSource } from "@/composable/eventStreams";
|
||||
|
||||
const props = defineProps<{
|
||||
const { streamSource, visibleKeys, showContainerName, entity } = defineProps<{
|
||||
streamSource: (t: Ref<T>) => LogStreamSource;
|
||||
visibleKeys: string[][];
|
||||
showContainerName: boolean;
|
||||
|
||||
@@ -6,7 +6,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render dates
|
||||
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2" visible-keys="">
|
||||
<!--v-if-->
|
||||
<!--v-if-->
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em]" size="small">
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em] select-none" size="small">
|
||||
<div class="inline-flex gap-2 whitespace-nowrap text-blue"><time datetime="2019-06-12T10:55:42.459Z" class="mobile-hidden">06/12/2019</time><time datetime="2019-06-12T10:55:42.459Z">10:55:42 AM</time></div>
|
||||
</div>
|
||||
<div data-v-e625cddd="" class="mt-1.5 size-2.5 flex-none rounded-lg flex"></div>
|
||||
@@ -26,7 +26,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render dates
|
||||
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2" visible-keys="">
|
||||
<!--v-if-->
|
||||
<!--v-if-->
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em]" size="small">
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em] select-none" size="small">
|
||||
<div class="inline-flex gap-2 whitespace-nowrap text-blue"><time datetime="2019-06-12T10:55:42.459Z" class="mobile-hidden">06/12/2019</time><time datetime="2019-06-12T10:55:42.459Z">10:55:42</time></div>
|
||||
</div>
|
||||
<div data-v-e625cddd="" class="mt-1.5 size-2.5 flex-none rounded-lg flex"></div>
|
||||
@@ -46,7 +46,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render messag
|
||||
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2" visible-keys="">
|
||||
<!--v-if-->
|
||||
<!--v-if-->
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em]" size="small">
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em] select-none" size="small">
|
||||
<div class="inline-flex gap-2 whitespace-nowrap text-blue"><time datetime="2019-06-12T10:55:42.459Z" class="mobile-hidden">06/12/2019</time><time datetime="2019-06-12T10:55:42.459Z">10:55:42 AM</time></div>
|
||||
</div>
|
||||
<div data-v-e625cddd="" class="mt-1.5 size-2.5 flex-none rounded-lg flex"></div>
|
||||
@@ -66,7 +66,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render messag
|
||||
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2" visible-keys="">
|
||||
<!--v-if-->
|
||||
<!--v-if-->
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em]" size="small">
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em] select-none" size="small">
|
||||
<div class="inline-flex gap-2 whitespace-nowrap text-blue"><time datetime="2019-06-12T10:55:42.459Z" class="mobile-hidden">06/12/2019</time><time datetime="2019-06-12T10:55:42.459Z">10:55:42 AM</time></div>
|
||||
</div>
|
||||
<div data-v-e625cddd="" class="mt-1.5 size-2.5 flex-none rounded-lg flex"></div>
|
||||
@@ -88,7 +88,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render messag
|
||||
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2" visible-keys="">
|
||||
<!--v-if-->
|
||||
<!--v-if-->
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em]" size="small">
|
||||
<div data-v-961504e7="" class="inline-flex items-center justify-center rounded bg-base-lighter px-2 py-[0.2em] select-none" size="small">
|
||||
<div class="inline-flex gap-2 whitespace-nowrap text-blue"><time datetime="2019-06-12T10:55:42.459Z" class="mobile-hidden">06/12/2019</time><time datetime="2019-06-12T10:55:42.459Z">10:55:42 AM</time></div>
|
||||
</div>
|
||||
<div data-v-e625cddd="" class="mt-1.5 size-2.5 flex-none rounded-lg flex"></div>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { onBeforeRouteLeave } from "vue-router";
|
||||
const containerStore = useContainerStore();
|
||||
const { ready } = storeToRefs(containerStore);
|
||||
|
||||
@@ -27,5 +28,13 @@ const swarmStore = useSwarmStore();
|
||||
const { services, customGroups } = storeToRefs(swarmStore);
|
||||
|
||||
const showSwarm = useSessionStorage<boolean>("DOZZLE_SWARM_MODE", false);
|
||||
|
||||
onBeforeRouteLeave((to) => {
|
||||
if (to.meta.swarmMode) {
|
||||
showSwarm.value = true;
|
||||
} else {
|
||||
showSwarm.value = false;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="postcss"></style>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
:to="{ name: 'stack-name', params: { name } }"
|
||||
class="btn btn-square btn-outline btn-primary btn-xs"
|
||||
active-class="btn-active"
|
||||
title="Merge all services into one view"
|
||||
:title="$t('tooltip.merge-services')"
|
||||
>
|
||||
<ph:arrows-merge />
|
||||
</router-link>
|
||||
|
||||
@@ -180,28 +180,37 @@ function useLogStream(url: Ref<string>, loadMoreUrl?: Ref<string>) {
|
||||
|
||||
watch(url, () => connect(), { immediate: true });
|
||||
|
||||
async function loadOlderLogs({ beforeLoading, afterLoading } = { beforeLoading: () => {}, afterLoading: () => {} }) {
|
||||
async function loadOlderLogs() {
|
||||
if (!loadMoreUrl) return;
|
||||
beforeLoading();
|
||||
|
||||
const to = messages[0].date;
|
||||
const last = messages[messages.length - 1].date;
|
||||
const last = messages[Math.min(messages.length - 1, 300)].date;
|
||||
const delta = to.getTime() - last.getTime();
|
||||
const from = new Date(to.getTime() + delta);
|
||||
|
||||
const logs = await (
|
||||
await fetch(
|
||||
`${loadMoreUrl.value}&${new URLSearchParams({ from: from.toISOString(), to: to.toISOString() }).toString()}`,
|
||||
)
|
||||
).text();
|
||||
if (logs) {
|
||||
const newMessages = logs
|
||||
.trim()
|
||||
.split("\n")
|
||||
.map((line) => parseMessage(line));
|
||||
messages.unshift(...newMessages);
|
||||
const abortController = new AbortController();
|
||||
const signal = abortController.signal;
|
||||
|
||||
try {
|
||||
const stopWatcher = watchOnce(url, () => abortController.abort("stream changed"));
|
||||
const logs = await (
|
||||
await fetch(
|
||||
`${loadMoreUrl.value}&${new URLSearchParams({ from: from.toISOString(), to: to.toISOString() }).toString()}`,
|
||||
{ signal },
|
||||
)
|
||||
).text();
|
||||
stopWatcher();
|
||||
|
||||
if (logs && signal.aborted === false) {
|
||||
const newMessages = logs
|
||||
.trim()
|
||||
.split("\n")
|
||||
.map((line) => parseMessage(line));
|
||||
messages.unshift(...newMessages);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Error loading older logs", e);
|
||||
}
|
||||
afterLoading();
|
||||
}
|
||||
|
||||
// TODO this is a hack to connect the event source when the container is started
|
||||
|
||||
@@ -10,6 +10,10 @@ export class Stack {
|
||||
service.stack = this;
|
||||
}
|
||||
}
|
||||
|
||||
get updatedAt() {
|
||||
return this.containers.map((c) => c.created).reduce((acc, date) => (date > acc ? date : acc), new Date(0));
|
||||
}
|
||||
}
|
||||
|
||||
export class Service {
|
||||
@@ -19,4 +23,8 @@ export class Service {
|
||||
) {}
|
||||
|
||||
stack?: Stack;
|
||||
|
||||
get updatedAt() {
|
||||
return this.containers.map((c) => c.created).reduce((acc, date) => (date > acc ? date : acc), new Date(0));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,3 +20,7 @@ watchEffect(() => {
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<route lang="yaml">
|
||||
meta:
|
||||
swarmMode: true
|
||||
</route>
|
||||
|
||||
@@ -26,3 +26,7 @@ watchEffect(() => {
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<route lang="yaml">
|
||||
meta:
|
||||
swarmMode: true
|
||||
</route>
|
||||
|
||||
@@ -26,3 +26,7 @@ watchEffect(() => {
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<route lang="yaml">
|
||||
meta:
|
||||
swarmMode: true
|
||||
</route>
|
||||
|
||||
@@ -152,11 +152,14 @@ export const useContainerStore = defineStore("container", () => {
|
||||
),
|
||||
);
|
||||
|
||||
const findContainerById = (id: string) => allContainersById.value[id];
|
||||
|
||||
return {
|
||||
containers,
|
||||
allContainersById,
|
||||
visibleContainers,
|
||||
currentContainer,
|
||||
findContainerById,
|
||||
containerNames,
|
||||
ready,
|
||||
};
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<script setup></script>
|
||||
|
||||
<template>
|
||||
<div border="~ solid rounded light-100 dark:dark-50" bg="[#eee] dark:[#222]">
|
||||
<div flex gap="2" p-2>
|
||||
<div circle-red />
|
||||
<div circle-yellow />
|
||||
<div circle-green />
|
||||
</div>
|
||||
<div class="content">
|
||||
<slot />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -27,18 +27,18 @@ onUnmounted(() => {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<browser-window drop-shadow-md>
|
||||
<video muted loop autoplay playsinline poster="../media/poster.png" v-if="isDark">
|
||||
<source src="../media/dozzle-dark.webm" type="video/webm" />
|
||||
<div
|
||||
class="border-rounded-md border-light-100 dark:border-dark-50 overflow-hidden border border-solid bg-[#eee] drop-shadow-md dark:bg-[#222]"
|
||||
>
|
||||
<video muted loop autoplay playsinline poster="../media/poster-dark.png" v-if="isDark">
|
||||
<source src="../media/dozzle-dark.mp4" type="video/mp4" />
|
||||
<img src="../media/poster.png" alt="" />
|
||||
<img src="../media/poster-dark.png" alt="" />
|
||||
</video>
|
||||
<video muted loop autoplay playsinline poster="../media/poster.png" v-else>
|
||||
<source src="../media/dozzle-light.webm" type="video/webm" />
|
||||
<video muted loop autoplay playsinline poster="../media/poster-light.png" v-else>
|
||||
<source src="../media/dozzle-light.mp4" type="video/mp4" />
|
||||
<img src="../media/poster.png" alt="" />
|
||||
<img src="../media/poster-light.png" alt="" />
|
||||
</video>
|
||||
</browser-window>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 479 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 459 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 440 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 742 KiB |
+4
-4
@@ -3,10 +3,10 @@
|
||||
"type": "module",
|
||||
"name": "docs",
|
||||
"devDependencies": {
|
||||
"@unocss/preset-typography": "^0.60.3",
|
||||
"@unocss/reset": "^0.60.3",
|
||||
"@unocss/transformer-directives": "^0.60.3",
|
||||
"@unocss/preset-typography": "^0.60.4",
|
||||
"@unocss/reset": "^0.60.4",
|
||||
"@unocss/transformer-directives": "^0.60.4",
|
||||
"dozzle": "workspace:*",
|
||||
"unocss": "^0.60.3"
|
||||
"unocss": "^0.60.4"
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+329
-332
@@ -9,20 +9,20 @@ importers:
|
||||
.:
|
||||
devDependencies:
|
||||
'@unocss/preset-typography':
|
||||
specifier: ^0.60.3
|
||||
version: 0.60.3
|
||||
specifier: ^0.60.4
|
||||
version: 0.60.4
|
||||
'@unocss/reset':
|
||||
specifier: ^0.60.3
|
||||
version: 0.60.3
|
||||
specifier: ^0.60.4
|
||||
version: 0.60.4
|
||||
'@unocss/transformer-directives':
|
||||
specifier: ^0.60.3
|
||||
version: 0.60.3
|
||||
specifier: ^0.60.4
|
||||
version: 0.60.4
|
||||
dozzle:
|
||||
specifier: workspace:*
|
||||
version: link:..
|
||||
unocss:
|
||||
specifier: ^0.60.3
|
||||
version: 0.60.3(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11)
|
||||
specifier: ^0.60.4
|
||||
version: 0.60.4(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11)
|
||||
|
||||
packages:
|
||||
|
||||
@@ -36,153 +36,153 @@ packages:
|
||||
'@antfu/utils@0.7.8':
|
||||
resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==}
|
||||
|
||||
'@babel/code-frame@7.24.2':
|
||||
resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==}
|
||||
'@babel/code-frame@7.24.6':
|
||||
resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/compat-data@7.24.4':
|
||||
resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==}
|
||||
'@babel/compat-data@7.24.6':
|
||||
resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/core@7.24.5':
|
||||
resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==}
|
||||
'@babel/core@7.24.6':
|
||||
resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/generator@7.24.5':
|
||||
resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==}
|
||||
'@babel/generator@7.24.6':
|
||||
resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-annotate-as-pure@7.22.5':
|
||||
resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
|
||||
'@babel/helper-annotate-as-pure@7.24.6':
|
||||
resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-compilation-targets@7.23.6':
|
||||
resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
|
||||
'@babel/helper-compilation-targets@7.24.6':
|
||||
resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-create-class-features-plugin@7.24.5':
|
||||
resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==}
|
||||
'@babel/helper-create-class-features-plugin@7.24.6':
|
||||
resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0
|
||||
|
||||
'@babel/helper-environment-visitor@7.22.20':
|
||||
resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
|
||||
'@babel/helper-environment-visitor@7.24.6':
|
||||
resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-function-name@7.23.0':
|
||||
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
|
||||
'@babel/helper-function-name@7.24.6':
|
||||
resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-hoist-variables@7.22.5':
|
||||
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
|
||||
'@babel/helper-hoist-variables@7.24.6':
|
||||
resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-member-expression-to-functions@7.24.5':
|
||||
resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==}
|
||||
'@babel/helper-member-expression-to-functions@7.24.6':
|
||||
resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-module-imports@7.24.3':
|
||||
resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==}
|
||||
'@babel/helper-module-imports@7.24.6':
|
||||
resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-module-transforms@7.24.5':
|
||||
resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==}
|
||||
'@babel/helper-module-transforms@7.24.6':
|
||||
resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0
|
||||
|
||||
'@babel/helper-optimise-call-expression@7.22.5':
|
||||
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
|
||||
'@babel/helper-optimise-call-expression@7.24.6':
|
||||
resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-plugin-utils@7.24.5':
|
||||
resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==}
|
||||
'@babel/helper-plugin-utils@7.24.6':
|
||||
resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-replace-supers@7.24.1':
|
||||
resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
|
||||
'@babel/helper-replace-supers@7.24.6':
|
||||
resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0
|
||||
|
||||
'@babel/helper-simple-access@7.24.5':
|
||||
resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==}
|
||||
'@babel/helper-simple-access@7.24.6':
|
||||
resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-skip-transparent-expression-wrappers@7.22.5':
|
||||
resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
|
||||
'@babel/helper-skip-transparent-expression-wrappers@7.24.6':
|
||||
resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-split-export-declaration@7.24.5':
|
||||
resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==}
|
||||
'@babel/helper-split-export-declaration@7.24.6':
|
||||
resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-string-parser@7.24.1':
|
||||
resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==}
|
||||
'@babel/helper-string-parser@7.24.6':
|
||||
resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-validator-identifier@7.24.5':
|
||||
resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==}
|
||||
'@babel/helper-validator-identifier@7.24.6':
|
||||
resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-validator-option@7.23.5':
|
||||
resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
|
||||
'@babel/helper-validator-option@7.24.6':
|
||||
resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helpers@7.24.5':
|
||||
resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==}
|
||||
'@babel/helpers@7.24.6':
|
||||
resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/highlight@7.24.5':
|
||||
resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==}
|
||||
'@babel/highlight@7.24.6':
|
||||
resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/parser@7.24.5':
|
||||
resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==}
|
||||
'@babel/parser@7.24.6':
|
||||
resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@babel/plugin-syntax-jsx@7.24.1':
|
||||
resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
|
||||
'@babel/plugin-syntax-jsx@7.24.6':
|
||||
resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
|
||||
'@babel/plugin-syntax-typescript@7.24.1':
|
||||
resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
|
||||
'@babel/plugin-syntax-typescript@7.24.6':
|
||||
resolution: {integrity: sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
|
||||
'@babel/plugin-transform-modules-commonjs@7.24.1':
|
||||
resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
|
||||
'@babel/plugin-transform-modules-commonjs@7.24.6':
|
||||
resolution: {integrity: sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
|
||||
'@babel/plugin-transform-typescript@7.24.5':
|
||||
resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==}
|
||||
'@babel/plugin-transform-typescript@7.24.6':
|
||||
resolution: {integrity: sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
|
||||
'@babel/preset-typescript@7.24.1':
|
||||
resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
|
||||
'@babel/preset-typescript@7.24.6':
|
||||
resolution: {integrity: sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
|
||||
'@babel/template@7.24.0':
|
||||
resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
|
||||
'@babel/template@7.24.6':
|
||||
resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/traverse@7.24.5':
|
||||
resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==}
|
||||
'@babel/traverse@7.24.6':
|
||||
resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/types@7.24.5':
|
||||
resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==}
|
||||
'@babel/types@7.24.6':
|
||||
resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@esbuild/aix-ppc64@0.20.2':
|
||||
@@ -326,8 +326,8 @@ packages:
|
||||
'@iconify/types@2.0.0':
|
||||
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
|
||||
|
||||
'@iconify/utils@2.1.23':
|
||||
resolution: {integrity: sha512-YGNbHKM5tyDvdWZ92y2mIkrfvm5Fvhe6WJSkWu7vvOFhMtYDP0casZpoRz0XEHZCrYsR4stdGT3cZ52yp5qZdQ==}
|
||||
'@iconify/utils@2.1.24':
|
||||
resolution: {integrity: sha512-H8r2KpL5uKyrkb3z9/3HD/22JcxqW3BJyjEWZhX2T7DehnYVZthEap1cNsEl/UtCDC3TlpNmwiPX8wg3y8E4dg==}
|
||||
|
||||
'@jridgewell/gen-mapping@0.3.5':
|
||||
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
|
||||
@@ -454,89 +454,89 @@ packages:
|
||||
'@types/estree@1.0.5':
|
||||
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
||||
|
||||
'@unocss/astro@0.60.3':
|
||||
resolution: {integrity: sha512-duFuyVhqYqQ15JZqx41UNgIxndqYRbOwDkJ7Y+R5N+u59a27vImz8B9eOFkHaZCFBWyH5jywkT8LVK1sfddFaw==}
|
||||
'@unocss/astro@0.60.4':
|
||||
resolution: {integrity: sha512-mfWiEVCUP00gxrMewwPfnTuw+ur5b6uIBRH2tIGkvfI21rLyZw8TIF08w7USz9C/47rvzsixBtCqq7v0g3Tw9w==}
|
||||
peerDependencies:
|
||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
|
||||
peerDependenciesMeta:
|
||||
vite:
|
||||
optional: true
|
||||
|
||||
'@unocss/cli@0.60.3':
|
||||
resolution: {integrity: sha512-bN829zn6k4hrvDTLnUcI2uAJnSevHwlkOCaYxN/C+v11uGxIewk5Xum6Vm5kZ8JTpCR1jEu/i7wIBNde3XKN5g==}
|
||||
'@unocss/cli@0.60.4':
|
||||
resolution: {integrity: sha512-RFt3BOgtp5ZI+cS6grKKo1DqvUJ/e8iRPwn843u6qSw18guIc4CEVTe5jcDAGuLcL4va9hg2wd4NReUEnMCZ/g==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
'@unocss/config@0.60.3':
|
||||
resolution: {integrity: sha512-3RGD7h3bS4qZA/Khcqhn1EgLgyPc85FSz5rubdywHRdHlpY9sdmuGEJahvqSLMN4MmdYQDmqEIEAJjENrdgZeQ==}
|
||||
'@unocss/config@0.60.4':
|
||||
resolution: {integrity: sha512-ri9P2+YztD5JdPYSLiNjcLf6NgoBbwJDVutP/tQnfYYrE72DQ+j+4vepyxEBa1YaH/X4qsmLJCj+2tI/ufIiog==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@unocss/core@0.60.3':
|
||||
resolution: {integrity: sha512-4bBX1pavDl2DSCozEII7bxYGT0IkyO7kKlUuCtooTePWyLjf2F7essdzHkJ00EpNR64kkebR9V0lqBMBo07VPw==}
|
||||
'@unocss/core@0.60.4':
|
||||
resolution: {integrity: sha512-6tz8KTzC30oB0YikwRQoIpJ6Y6Dg+ZiK3NfCIsH+UX11bh2J2M53as2EL/5VQCqtiUn3YP0ZEzR2d1AWX78RCA==}
|
||||
|
||||
'@unocss/extractor-arbitrary-variants@0.60.3':
|
||||
resolution: {integrity: sha512-PnwNwkeAHmbJbrf5XN0xQG1KT1VQEye8neYn5yz1MHnT8Cj2nqjrqoCRGLCLhpOUg3/MNj+bpiA7hGnFbXWaCQ==}
|
||||
'@unocss/extractor-arbitrary-variants@0.60.4':
|
||||
resolution: {integrity: sha512-USuFGs5CLft9q7IGNdAEp1oliuUns+W7OO0Tx5qtx/oBh6pU/L93lcNNsuuGNrMU8BCmF3atx1/PEmGymgJ7VA==}
|
||||
|
||||
'@unocss/inspector@0.60.3':
|
||||
resolution: {integrity: sha512-2cXAPA1yddB79mmpMXxPpSpizn4TskAsB7aSocbprOTYIU2Ff53gfkkijnLixrBvbG8xw91d9oPuI5Hm9GCyMQ==}
|
||||
'@unocss/inspector@0.60.4':
|
||||
resolution: {integrity: sha512-PcnrEQ2H7osZho4Nh0+84O4IXzlkF7pvTUe/7FTJYF1HQGWHB/PfOSoyKn7/sF5sED8hMK9RlSJ9YGUH9ioY+g==}
|
||||
|
||||
'@unocss/postcss@0.60.3':
|
||||
resolution: {integrity: sha512-7jRsKgMz4wr3Rvnr/RpK/7g6o8bMrqjTb01imgHeaw7cmQsa9sH1HPCp+4lvHh2/QKKLwwRAC+fdnNmsf8JKjA==}
|
||||
'@unocss/postcss@0.60.4':
|
||||
resolution: {integrity: sha512-mHha4BoOpCWRRL5EFJqsj+BiYxOBPXUZDFbSWmA8oAMBwcA/yqtnaRF2tqI9CK+CDfhmtbYF64KdTLh9pf6BvQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
postcss: ^8.4.21
|
||||
|
||||
'@unocss/preset-attributify@0.60.3':
|
||||
resolution: {integrity: sha512-G/Lx9xq/tVKvjp/CcACyLU+p3mcrpgkMvy+Z3NSHfBAZAmbieBMFhwROxt5R8Bny66q3fYDtxxx+likpokpOAQ==}
|
||||
'@unocss/preset-attributify@0.60.4':
|
||||
resolution: {integrity: sha512-J2GWUC0bcmZSXlBGLYUXwWQos/dNzKbq2CKweWVBAmAH9XyfM0mA5CTNBRv05PN1g6C/0z5st7ntUjV6KHJuTg==}
|
||||
|
||||
'@unocss/preset-icons@0.60.3':
|
||||
resolution: {integrity: sha512-L3Ecr36xC+Y8v5WMQcNsGoOzu0HpgNLh5RlC2abs8OyBDGn1k3UqdEFdrhRt3bXpln9b8JkstHO7ZwYPgr2/Cg==}
|
||||
'@unocss/preset-icons@0.60.4':
|
||||
resolution: {integrity: sha512-UN/dj+nhI3+S06YxCZQPLw3GZy780iaE71dysyhDMdh+Qq2KFVs3d94mr1427fjz/3Y8ZyXkgqyhCFr7UT0bMQ==}
|
||||
|
||||
'@unocss/preset-mini@0.60.3':
|
||||
resolution: {integrity: sha512-7en8KBX3lN1Y6eCprbzA1QVfyXZD03B+oAxFXH8QPv5jRIL8Lm8sbXqE+VTsSME/OVp4DnS6LdGtDAm9mvIOSw==}
|
||||
'@unocss/preset-mini@0.60.4':
|
||||
resolution: {integrity: sha512-ZiHbP69vkyz0xmhqzC4B4PegwV+LPlZOBT7cRhsh0P8oPOQKYOyDRy4rAl+sJBJeIrggn1r1LgN+Z0Xvd8Ytcw==}
|
||||
|
||||
'@unocss/preset-tagify@0.60.3':
|
||||
resolution: {integrity: sha512-pzD6bgtGuIk7M1n/JQiR6EpwnVvafSTHoM70Jhf+T8MSuatDb+KFJCn3VELV2v38aikcUY5cTf95jqHQdzOAhQ==}
|
||||
'@unocss/preset-tagify@0.60.4':
|
||||
resolution: {integrity: sha512-GxL/W3qkdWWDqXi43qyLbp/BpEj7gMw99KqkO7bmbVi3BVlFggreTFwmQu89pB6iatxGjxnAsc+TsQZqxKftZA==}
|
||||
|
||||
'@unocss/preset-typography@0.60.3':
|
||||
resolution: {integrity: sha512-cOXOnxkgH0ZiYg/oHBbabzXi1q6oTZWgQ4fqrVxGI2CD4oiWYaPU/wzKsx930D6uBSIlBVDX/cov2j0dPWjgJg==}
|
||||
'@unocss/preset-typography@0.60.4':
|
||||
resolution: {integrity: sha512-6j8ySZYEAwMBy9a3Lw3EEfRlcAClti4zvaV0kBtkP4BDZCwlgX2eE1pmw2mTUy+E1yVlXm3NnRzKfDudQUzraA==}
|
||||
|
||||
'@unocss/preset-uno@0.60.3':
|
||||
resolution: {integrity: sha512-PJSR78uaIRTsD9RFSQLwsrGAsjQoW5nWenU4n4GyZeskDsyQVgOcaKtvh+0aYjYdWBa1UvxeUL8Y+m29K4HnAA==}
|
||||
'@unocss/preset-uno@0.60.4':
|
||||
resolution: {integrity: sha512-AN8ZTtiKSaZNGKZZIqt/JAhMzSY2hHLwhGEOFDrXgjWFr85UlwZzODMDoT58PrU04VlbhN8+0N4lHfLmZCKpiQ==}
|
||||
|
||||
'@unocss/preset-web-fonts@0.60.3':
|
||||
resolution: {integrity: sha512-uYHvnqgLDawG3o9oBbasPWbSZ93kzk2JQBcH6xmHh7xqYtRdHqVbUjVU1zIqSjXm19SxFriSrNTl4ct2+/pJIg==}
|
||||
'@unocss/preset-web-fonts@0.60.4':
|
||||
resolution: {integrity: sha512-COfxOQcREFgpsm6nw234pxrr1EV1zWUVYXBZjlH+vk7x8EhaS5BPAXqN6SneIVTTDvEE9U4opAaoEYz5A3XWaQ==}
|
||||
|
||||
'@unocss/preset-wind@0.60.3':
|
||||
resolution: {integrity: sha512-q7yDJ/SyEkPmPBJvIeHd9Bt50LAu65q7WwKxJYfJkjfJvJUMj6DO8FgPnpeiwBeJh9897m2Ap6zoQ3JqBjPLHQ==}
|
||||
'@unocss/preset-wind@0.60.4':
|
||||
resolution: {integrity: sha512-dT/U+RkbL21lDTOP7/mlFZxlBbUAefUzQZINC0BX7vTKvO57G4HxRq62u9xvMGFv38lQ+qXXzKhABVsEPDNpUA==}
|
||||
|
||||
'@unocss/reset@0.60.3':
|
||||
resolution: {integrity: sha512-EuC8gkh8L8WvPOcjS/KqprEJXIKcpBPm+ou5G9D6WgDmJ+TgQrri5oR+QUmOmEnueQkVL7bnkFkIKeg71SJLFA==}
|
||||
'@unocss/reset@0.60.4':
|
||||
resolution: {integrity: sha512-MEngG4byIHnfb0osvxqU2gBdBkXPPE4z+G9HeEt3JUadWAp2gggm8ojC1/1PoJF5M31loxGEVVrB0FLSKACw3g==}
|
||||
|
||||
'@unocss/rule-utils@0.60.3':
|
||||
resolution: {integrity: sha512-I47/DcKQ2z12W80+Ffth0K6LzNvqcQPYRWk7KwVemVoEiGYamMV8/s+SbB26Fk9KUFjh+Ns/pGAo4iJZo0ueUQ==}
|
||||
'@unocss/rule-utils@0.60.4':
|
||||
resolution: {integrity: sha512-7qUN33NM4T/IwWavm9VIOCZ2+4hLBc0YUGxcMNTDZSFQRQLkWe3N5dOlgwKXtMyMKatZfbIRUKVDUgvEefoCTA==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@unocss/scope@0.60.3':
|
||||
resolution: {integrity: sha512-uDUcBkFe8nRwNiU4YQyrOCjY7/+qFJI/Qr0eouMPOSEsQ6uIXQEWjykqUBJg2fvm0S2vbfBGO9tO/wCDIk5O3w==}
|
||||
'@unocss/scope@0.60.4':
|
||||
resolution: {integrity: sha512-AOu/qvi4agy0XfGF3QEBbuxVHkVZHpmU0NMBYuxa0B869YZENT87sTM6DVwtvr75CZvACWxv/hcL3lR68uKBjw==}
|
||||
|
||||
'@unocss/transformer-attributify-jsx-babel@0.60.3':
|
||||
resolution: {integrity: sha512-6WcEFPSaxscGR22dRUcNqY0ippC3/Q/LBVFVSCJh++hoIPVCZbxF505cPq/bOdF2bpNzj9yXW0OJt03nB505Hg==}
|
||||
'@unocss/transformer-attributify-jsx-babel@0.60.4':
|
||||
resolution: {integrity: sha512-BL4g2gyLpbseu+fOhkAHKNxYcHcn7brQAjXj5k5Yyy6wpwm43lzHYPZtRPrbLVLniqqAN21FzEbtJXCPIHKlHA==}
|
||||
|
||||
'@unocss/transformer-attributify-jsx@0.60.3':
|
||||
resolution: {integrity: sha512-zcPu4tUm/1EnqcFpf6+XzUzfb2BzJBcfNMkFzl/5BSTMECEDgdj4QGBWxnTuSlSZs4digRABGtuAHUO7k1qfgA==}
|
||||
'@unocss/transformer-attributify-jsx@0.60.4':
|
||||
resolution: {integrity: sha512-tQwD1T8Juz5F4JHYxTgekCv5olEegAPRZwAgx75pP+X2+PkV670pdXv8zbK0t5q6bvyF53vEVBrgQ9q1xSH9yQ==}
|
||||
|
||||
'@unocss/transformer-compile-class@0.60.3':
|
||||
resolution: {integrity: sha512-j6wiYgtNqMlrctaZUuN4S+vANW0DMb9wW3KbJ2XvB7lXftfY1bbZ3IKenAyFp0ZLdKs69B6irJbCbIS5OAKKXQ==}
|
||||
'@unocss/transformer-compile-class@0.60.4':
|
||||
resolution: {integrity: sha512-zIqKQ7javiCb9Q3fbMvx1QVln8OqvAzWwgCVHsPINzDrDi73KXa3eeCU6GNlsd46tzy0Y9ryRIvW73YS+9Oj1w==}
|
||||
|
||||
'@unocss/transformer-directives@0.60.3':
|
||||
resolution: {integrity: sha512-JuFpxyB1yvS2YoiguO5+8Ou6k9yyojZCnnDYXXZqMGLp1KdLiDcAPZQyShoD5HLzPGHtAbQELUz9TcX3VMLEoQ==}
|
||||
'@unocss/transformer-directives@0.60.4':
|
||||
resolution: {integrity: sha512-u3fQI8RszMhUevhJICtQ/bNpAfbh8MEXQf7YNnzUvLvbXGkkoieyU5mj0ray6fbToqxfxVceQtXYcFYIuf4aNg==}
|
||||
|
||||
'@unocss/transformer-variant-group@0.60.3':
|
||||
resolution: {integrity: sha512-jQg0+W49jA7Z+4mRQbZWZKV6aXJXQfAHRC3oo4C9vEyTXL2jb952K12XVcJhXnbLYpnUKwytR+vbshXMIHWZwA==}
|
||||
'@unocss/transformer-variant-group@0.60.4':
|
||||
resolution: {integrity: sha512-R4d16G7s3fDXj9prUNFnJi8cZvH8/XZsqiKDzCBjXNKrbf9zp7YnWD2VaMFjUISgW5kSQjQNSWK84soVNWq3UQ==}
|
||||
|
||||
'@unocss/vite@0.60.3':
|
||||
resolution: {integrity: sha512-I3EOR3g245IGDp3DS17AQAMwNQrh6L6kIlXG3+wt5IZ1zu1ahZmKA8/xxh6oo2TNdu4rI6nQbcLIRn+8eSyfQw==}
|
||||
'@unocss/vite@0.60.4':
|
||||
resolution: {integrity: sha512-af9hhtW11geF56cotKUE16Fr+FirTdV/Al/usjKJ6P5hnCEQnqSHXQDFXL5Y6vXwcvLDmOhHYNrVR8duKgC8Mw==}
|
||||
peerDependencies:
|
||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
|
||||
|
||||
@@ -912,11 +912,11 @@ packages:
|
||||
unconfig@0.3.13:
|
||||
resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==}
|
||||
|
||||
unocss@0.60.3:
|
||||
resolution: {integrity: sha512-pUBbpgGRKCa6oB/LrGEFBWP2/2E1ZOY8XO7aVJKo2x10rqLS8tGykn1VoBUgbGJsv/8W8tskTVz+RFbCyKP+kA==}
|
||||
unocss@0.60.4:
|
||||
resolution: {integrity: sha512-KtYVzm1sV1J7hpXFvILPZiJVTni+XzC2vJzKYFTEe80fEGsrL+572YjS3QjZB52TMSppLYJk6WIVTb4mE4RmvQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@unocss/webpack': 0.60.3
|
||||
'@unocss/webpack': 0.60.4
|
||||
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
|
||||
peerDependenciesMeta:
|
||||
'@unocss/webpack':
|
||||
@@ -984,25 +984,25 @@ snapshots:
|
||||
|
||||
'@antfu/utils@0.7.8': {}
|
||||
|
||||
'@babel/code-frame@7.24.2':
|
||||
'@babel/code-frame@7.24.6':
|
||||
dependencies:
|
||||
'@babel/highlight': 7.24.5
|
||||
'@babel/highlight': 7.24.6
|
||||
picocolors: 1.0.0
|
||||
|
||||
'@babel/compat-data@7.24.4': {}
|
||||
'@babel/compat-data@7.24.6': {}
|
||||
|
||||
'@babel/core@7.24.5':
|
||||
'@babel/core@7.24.6':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@babel/code-frame': 7.24.2
|
||||
'@babel/generator': 7.24.5
|
||||
'@babel/helper-compilation-targets': 7.23.6
|
||||
'@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
|
||||
'@babel/helpers': 7.24.5
|
||||
'@babel/parser': 7.24.5
|
||||
'@babel/template': 7.24.0
|
||||
'@babel/traverse': 7.24.5
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/code-frame': 7.24.6
|
||||
'@babel/generator': 7.24.6
|
||||
'@babel/helper-compilation-targets': 7.24.6
|
||||
'@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6)
|
||||
'@babel/helpers': 7.24.6
|
||||
'@babel/parser': 7.24.6
|
||||
'@babel/template': 7.24.6
|
||||
'@babel/traverse': 7.24.6
|
||||
'@babel/types': 7.24.6
|
||||
convert-source-map: 2.0.0
|
||||
debug: 4.3.4
|
||||
gensync: 1.0.0-beta.2
|
||||
@@ -1011,175 +1011,172 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@babel/generator@7.24.5':
|
||||
'@babel/generator@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
'@jridgewell/gen-mapping': 0.3.5
|
||||
'@jridgewell/trace-mapping': 0.3.25
|
||||
jsesc: 2.5.2
|
||||
|
||||
'@babel/helper-annotate-as-pure@7.22.5':
|
||||
'@babel/helper-annotate-as-pure@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-compilation-targets@7.23.6':
|
||||
'@babel/helper-compilation-targets@7.24.6':
|
||||
dependencies:
|
||||
'@babel/compat-data': 7.24.4
|
||||
'@babel/helper-validator-option': 7.23.5
|
||||
'@babel/compat-data': 7.24.6
|
||||
'@babel/helper-validator-option': 7.24.6
|
||||
browserslist: 4.23.0
|
||||
lru-cache: 5.1.1
|
||||
semver: 6.3.1
|
||||
|
||||
'@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5)':
|
||||
'@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-annotate-as-pure': 7.22.5
|
||||
'@babel/helper-environment-visitor': 7.22.20
|
||||
'@babel/helper-function-name': 7.23.0
|
||||
'@babel/helper-member-expression-to-functions': 7.24.5
|
||||
'@babel/helper-optimise-call-expression': 7.22.5
|
||||
'@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5)
|
||||
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
|
||||
'@babel/helper-split-export-declaration': 7.24.5
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-annotate-as-pure': 7.24.6
|
||||
'@babel/helper-environment-visitor': 7.24.6
|
||||
'@babel/helper-function-name': 7.24.6
|
||||
'@babel/helper-member-expression-to-functions': 7.24.6
|
||||
'@babel/helper-optimise-call-expression': 7.24.6
|
||||
'@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.6)
|
||||
'@babel/helper-skip-transparent-expression-wrappers': 7.24.6
|
||||
'@babel/helper-split-export-declaration': 7.24.6
|
||||
semver: 6.3.1
|
||||
|
||||
'@babel/helper-environment-visitor@7.22.20': {}
|
||||
'@babel/helper-environment-visitor@7.24.6': {}
|
||||
|
||||
'@babel/helper-function-name@7.23.0':
|
||||
'@babel/helper-function-name@7.24.6':
|
||||
dependencies:
|
||||
'@babel/template': 7.24.0
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/template': 7.24.6
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-hoist-variables@7.22.5':
|
||||
'@babel/helper-hoist-variables@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-member-expression-to-functions@7.24.5':
|
||||
'@babel/helper-member-expression-to-functions@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-module-imports@7.24.3':
|
||||
'@babel/helper-module-imports@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)':
|
||||
'@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-environment-visitor': 7.22.20
|
||||
'@babel/helper-module-imports': 7.24.3
|
||||
'@babel/helper-simple-access': 7.24.5
|
||||
'@babel/helper-split-export-declaration': 7.24.5
|
||||
'@babel/helper-validator-identifier': 7.24.5
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-environment-visitor': 7.24.6
|
||||
'@babel/helper-module-imports': 7.24.6
|
||||
'@babel/helper-simple-access': 7.24.6
|
||||
'@babel/helper-split-export-declaration': 7.24.6
|
||||
'@babel/helper-validator-identifier': 7.24.6
|
||||
|
||||
'@babel/helper-optimise-call-expression@7.22.5':
|
||||
'@babel/helper-optimise-call-expression@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-plugin-utils@7.24.5': {}
|
||||
'@babel/helper-plugin-utils@7.24.6': {}
|
||||
|
||||
'@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5)':
|
||||
'@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-environment-visitor': 7.22.20
|
||||
'@babel/helper-member-expression-to-functions': 7.24.5
|
||||
'@babel/helper-optimise-call-expression': 7.22.5
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-environment-visitor': 7.24.6
|
||||
'@babel/helper-member-expression-to-functions': 7.24.6
|
||||
'@babel/helper-optimise-call-expression': 7.24.6
|
||||
|
||||
'@babel/helper-simple-access@7.24.5':
|
||||
'@babel/helper-simple-access@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-skip-transparent-expression-wrappers@7.22.5':
|
||||
'@babel/helper-skip-transparent-expression-wrappers@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-split-export-declaration@7.24.5':
|
||||
'@babel/helper-split-export-declaration@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/helper-string-parser@7.24.1': {}
|
||||
'@babel/helper-string-parser@7.24.6': {}
|
||||
|
||||
'@babel/helper-validator-identifier@7.24.5': {}
|
||||
'@babel/helper-validator-identifier@7.24.6': {}
|
||||
|
||||
'@babel/helper-validator-option@7.23.5': {}
|
||||
'@babel/helper-validator-option@7.24.6': {}
|
||||
|
||||
'@babel/helpers@7.24.5':
|
||||
'@babel/helpers@7.24.6':
|
||||
dependencies:
|
||||
'@babel/template': 7.24.0
|
||||
'@babel/traverse': 7.24.5
|
||||
'@babel/types': 7.24.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
'@babel/template': 7.24.6
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/highlight@7.24.5':
|
||||
'@babel/highlight@7.24.6':
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.24.5
|
||||
'@babel/helper-validator-identifier': 7.24.6
|
||||
chalk: 2.4.2
|
||||
js-tokens: 4.0.0
|
||||
picocolors: 1.0.0
|
||||
|
||||
'@babel/parser@7.24.5':
|
||||
'@babel/parser@7.24.6':
|
||||
dependencies:
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5)':
|
||||
'@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-plugin-utils': 7.24.5
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-plugin-utils': 7.24.6
|
||||
|
||||
'@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5)':
|
||||
'@babel/plugin-syntax-typescript@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-plugin-utils': 7.24.5
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-plugin-utils': 7.24.6
|
||||
|
||||
'@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5)':
|
||||
'@babel/plugin-transform-modules-commonjs@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5)
|
||||
'@babel/helper-plugin-utils': 7.24.5
|
||||
'@babel/helper-simple-access': 7.24.5
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6)
|
||||
'@babel/helper-plugin-utils': 7.24.6
|
||||
'@babel/helper-simple-access': 7.24.6
|
||||
|
||||
'@babel/plugin-transform-typescript@7.24.5(@babel/core@7.24.5)':
|
||||
'@babel/plugin-transform-typescript@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-annotate-as-pure': 7.22.5
|
||||
'@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5)
|
||||
'@babel/helper-plugin-utils': 7.24.5
|
||||
'@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5)
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-annotate-as-pure': 7.24.6
|
||||
'@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6)
|
||||
'@babel/helper-plugin-utils': 7.24.6
|
||||
'@babel/plugin-syntax-typescript': 7.24.6(@babel/core@7.24.6)
|
||||
|
||||
'@babel/preset-typescript@7.24.1(@babel/core@7.24.5)':
|
||||
'@babel/preset-typescript@7.24.6(@babel/core@7.24.6)':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/helper-plugin-utils': 7.24.5
|
||||
'@babel/helper-validator-option': 7.23.5
|
||||
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5)
|
||||
'@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5)
|
||||
'@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.5)
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/helper-plugin-utils': 7.24.6
|
||||
'@babel/helper-validator-option': 7.24.6
|
||||
'@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6)
|
||||
'@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6)
|
||||
'@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6)
|
||||
|
||||
'@babel/template@7.24.0':
|
||||
'@babel/template@7.24.6':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.24.2
|
||||
'@babel/parser': 7.24.5
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/code-frame': 7.24.6
|
||||
'@babel/parser': 7.24.6
|
||||
'@babel/types': 7.24.6
|
||||
|
||||
'@babel/traverse@7.24.5':
|
||||
'@babel/traverse@7.24.6':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.24.2
|
||||
'@babel/generator': 7.24.5
|
||||
'@babel/helper-environment-visitor': 7.22.20
|
||||
'@babel/helper-function-name': 7.23.0
|
||||
'@babel/helper-hoist-variables': 7.22.5
|
||||
'@babel/helper-split-export-declaration': 7.24.5
|
||||
'@babel/parser': 7.24.5
|
||||
'@babel/types': 7.24.5
|
||||
'@babel/code-frame': 7.24.6
|
||||
'@babel/generator': 7.24.6
|
||||
'@babel/helper-environment-visitor': 7.24.6
|
||||
'@babel/helper-function-name': 7.24.6
|
||||
'@babel/helper-hoist-variables': 7.24.6
|
||||
'@babel/helper-split-export-declaration': 7.24.6
|
||||
'@babel/parser': 7.24.6
|
||||
'@babel/types': 7.24.6
|
||||
debug: 4.3.4
|
||||
globals: 11.12.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@babel/types@7.24.5':
|
||||
'@babel/types@7.24.6':
|
||||
dependencies:
|
||||
'@babel/helper-string-parser': 7.24.1
|
||||
'@babel/helper-validator-identifier': 7.24.5
|
||||
'@babel/helper-string-parser': 7.24.6
|
||||
'@babel/helper-validator-identifier': 7.24.6
|
||||
to-fast-properties: 2.0.0
|
||||
|
||||
'@esbuild/aix-ppc64@0.20.2':
|
||||
@@ -1253,7 +1250,7 @@ snapshots:
|
||||
|
||||
'@iconify/types@2.0.0': {}
|
||||
|
||||
'@iconify/utils@2.1.23':
|
||||
'@iconify/utils@2.1.24':
|
||||
dependencies:
|
||||
'@antfu/install-pkg': 0.1.1
|
||||
'@antfu/utils': 0.7.8
|
||||
@@ -1354,23 +1351,23 @@ snapshots:
|
||||
|
||||
'@types/estree@1.0.5': {}
|
||||
|
||||
'@unocss/astro@0.60.3(rollup@4.17.2)(vite@5.2.11)':
|
||||
'@unocss/astro@0.60.4(rollup@4.17.2)(vite@5.2.11)':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/reset': 0.60.3
|
||||
'@unocss/vite': 0.60.3(rollup@4.17.2)(vite@5.2.11)
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/reset': 0.60.4
|
||||
'@unocss/vite': 0.60.4(rollup@4.17.2)(vite@5.2.11)
|
||||
optionalDependencies:
|
||||
vite: 5.2.11
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
'@unocss/cli@0.60.3(rollup@4.17.2)':
|
||||
'@unocss/cli@0.60.4(rollup@4.17.2)':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.17.2)
|
||||
'@unocss/config': 0.60.3
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/preset-uno': 0.60.3
|
||||
'@unocss/config': 0.60.4
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/preset-uno': 0.60.4
|
||||
cac: 6.7.14
|
||||
chokidar: 3.6.0
|
||||
colorette: 2.0.20
|
||||
@@ -1382,124 +1379,124 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
'@unocss/config@0.60.3':
|
||||
'@unocss/config@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
unconfig: 0.3.13
|
||||
|
||||
'@unocss/core@0.60.3': {}
|
||||
'@unocss/core@0.60.4': {}
|
||||
|
||||
'@unocss/extractor-arbitrary-variants@0.60.3':
|
||||
'@unocss/extractor-arbitrary-variants@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
|
||||
'@unocss/inspector@0.60.3':
|
||||
'@unocss/inspector@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/rule-utils': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/rule-utils': 0.60.4
|
||||
gzip-size: 6.0.0
|
||||
sirv: 2.0.4
|
||||
|
||||
'@unocss/postcss@0.60.3(postcss@8.4.38)':
|
||||
'@unocss/postcss@0.60.4(postcss@8.4.38)':
|
||||
dependencies:
|
||||
'@unocss/config': 0.60.3
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/rule-utils': 0.60.3
|
||||
'@unocss/config': 0.60.4
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/rule-utils': 0.60.4
|
||||
css-tree: 2.3.1
|
||||
fast-glob: 3.3.2
|
||||
magic-string: 0.30.10
|
||||
postcss: 8.4.38
|
||||
|
||||
'@unocss/preset-attributify@0.60.3':
|
||||
'@unocss/preset-attributify@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
|
||||
'@unocss/preset-icons@0.60.3':
|
||||
'@unocss/preset-icons@0.60.4':
|
||||
dependencies:
|
||||
'@iconify/utils': 2.1.23
|
||||
'@unocss/core': 0.60.3
|
||||
'@iconify/utils': 2.1.24
|
||||
'@unocss/core': 0.60.4
|
||||
ofetch: 1.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@unocss/preset-mini@0.60.3':
|
||||
'@unocss/preset-mini@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/extractor-arbitrary-variants': 0.60.3
|
||||
'@unocss/rule-utils': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/extractor-arbitrary-variants': 0.60.4
|
||||
'@unocss/rule-utils': 0.60.4
|
||||
|
||||
'@unocss/preset-tagify@0.60.3':
|
||||
'@unocss/preset-tagify@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
|
||||
'@unocss/preset-typography@0.60.3':
|
||||
'@unocss/preset-typography@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/preset-mini': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/preset-mini': 0.60.4
|
||||
|
||||
'@unocss/preset-uno@0.60.3':
|
||||
'@unocss/preset-uno@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/preset-mini': 0.60.3
|
||||
'@unocss/preset-wind': 0.60.3
|
||||
'@unocss/rule-utils': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/preset-mini': 0.60.4
|
||||
'@unocss/preset-wind': 0.60.4
|
||||
'@unocss/rule-utils': 0.60.4
|
||||
|
||||
'@unocss/preset-web-fonts@0.60.3':
|
||||
'@unocss/preset-web-fonts@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
ofetch: 1.3.4
|
||||
|
||||
'@unocss/preset-wind@0.60.3':
|
||||
'@unocss/preset-wind@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/preset-mini': 0.60.3
|
||||
'@unocss/rule-utils': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/preset-mini': 0.60.4
|
||||
'@unocss/rule-utils': 0.60.4
|
||||
|
||||
'@unocss/reset@0.60.3': {}
|
||||
'@unocss/reset@0.60.4': {}
|
||||
|
||||
'@unocss/rule-utils@0.60.3':
|
||||
'@unocss/rule-utils@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
magic-string: 0.30.10
|
||||
|
||||
'@unocss/scope@0.60.3': {}
|
||||
'@unocss/scope@0.60.4': {}
|
||||
|
||||
'@unocss/transformer-attributify-jsx-babel@0.60.3':
|
||||
'@unocss/transformer-attributify-jsx-babel@0.60.4':
|
||||
dependencies:
|
||||
'@babel/core': 7.24.5
|
||||
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5)
|
||||
'@babel/preset-typescript': 7.24.1(@babel/core@7.24.5)
|
||||
'@unocss/core': 0.60.3
|
||||
'@babel/core': 7.24.6
|
||||
'@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6)
|
||||
'@babel/preset-typescript': 7.24.6(@babel/core@7.24.6)
|
||||
'@unocss/core': 0.60.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@unocss/transformer-attributify-jsx@0.60.3':
|
||||
'@unocss/transformer-attributify-jsx@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
|
||||
'@unocss/transformer-compile-class@0.60.3':
|
||||
'@unocss/transformer-compile-class@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
|
||||
'@unocss/transformer-directives@0.60.3':
|
||||
'@unocss/transformer-directives@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/rule-utils': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/rule-utils': 0.60.4
|
||||
css-tree: 2.3.1
|
||||
|
||||
'@unocss/transformer-variant-group@0.60.3':
|
||||
'@unocss/transformer-variant-group@0.60.4':
|
||||
dependencies:
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/core': 0.60.4
|
||||
|
||||
'@unocss/vite@0.60.3(rollup@4.17.2)(vite@5.2.11)':
|
||||
'@unocss/vite@0.60.4(rollup@4.17.2)(vite@5.2.11)':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@rollup/pluginutils': 5.1.0(rollup@4.17.2)
|
||||
'@unocss/config': 0.60.3
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/inspector': 0.60.3
|
||||
'@unocss/scope': 0.60.3
|
||||
'@unocss/transformer-directives': 0.60.3
|
||||
'@unocss/config': 0.60.4
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/inspector': 0.60.4
|
||||
'@unocss/scope': 0.60.4
|
||||
'@unocss/transformer-directives': 0.60.4
|
||||
chokidar: 3.6.0
|
||||
fast-glob: 3.3.2
|
||||
magic-string: 0.30.10
|
||||
@@ -1871,28 +1868,28 @@ snapshots:
|
||||
defu: 6.1.4
|
||||
jiti: 1.21.0
|
||||
|
||||
unocss@0.60.3(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11):
|
||||
unocss@0.60.4(postcss@8.4.38)(rollup@4.17.2)(vite@5.2.11):
|
||||
dependencies:
|
||||
'@unocss/astro': 0.60.3(rollup@4.17.2)(vite@5.2.11)
|
||||
'@unocss/cli': 0.60.3(rollup@4.17.2)
|
||||
'@unocss/core': 0.60.3
|
||||
'@unocss/extractor-arbitrary-variants': 0.60.3
|
||||
'@unocss/postcss': 0.60.3(postcss@8.4.38)
|
||||
'@unocss/preset-attributify': 0.60.3
|
||||
'@unocss/preset-icons': 0.60.3
|
||||
'@unocss/preset-mini': 0.60.3
|
||||
'@unocss/preset-tagify': 0.60.3
|
||||
'@unocss/preset-typography': 0.60.3
|
||||
'@unocss/preset-uno': 0.60.3
|
||||
'@unocss/preset-web-fonts': 0.60.3
|
||||
'@unocss/preset-wind': 0.60.3
|
||||
'@unocss/reset': 0.60.3
|
||||
'@unocss/transformer-attributify-jsx': 0.60.3
|
||||
'@unocss/transformer-attributify-jsx-babel': 0.60.3
|
||||
'@unocss/transformer-compile-class': 0.60.3
|
||||
'@unocss/transformer-directives': 0.60.3
|
||||
'@unocss/transformer-variant-group': 0.60.3
|
||||
'@unocss/vite': 0.60.3(rollup@4.17.2)(vite@5.2.11)
|
||||
'@unocss/astro': 0.60.4(rollup@4.17.2)(vite@5.2.11)
|
||||
'@unocss/cli': 0.60.4(rollup@4.17.2)
|
||||
'@unocss/core': 0.60.4
|
||||
'@unocss/extractor-arbitrary-variants': 0.60.4
|
||||
'@unocss/postcss': 0.60.4(postcss@8.4.38)
|
||||
'@unocss/preset-attributify': 0.60.4
|
||||
'@unocss/preset-icons': 0.60.4
|
||||
'@unocss/preset-mini': 0.60.4
|
||||
'@unocss/preset-tagify': 0.60.4
|
||||
'@unocss/preset-typography': 0.60.4
|
||||
'@unocss/preset-uno': 0.60.4
|
||||
'@unocss/preset-web-fonts': 0.60.4
|
||||
'@unocss/preset-wind': 0.60.4
|
||||
'@unocss/reset': 0.60.4
|
||||
'@unocss/transformer-attributify-jsx': 0.60.4
|
||||
'@unocss/transformer-attributify-jsx-babel': 0.60.4
|
||||
'@unocss/transformer-compile-class': 0.60.4
|
||||
'@unocss/transformer-directives': 0.60.4
|
||||
'@unocss/transformer-variant-group': 0.60.4
|
||||
'@unocss/vite': 0.60.4(rollup@4.17.2)(vite@5.2.11)
|
||||
optionalDependencies:
|
||||
vite: 5.2.11
|
||||
transitivePeerDependencies:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { defineConfig, presetAttributify, presetIcons, presetUno, presetWebFonts } from "unocss";
|
||||
import { defineConfig, presetIcons, presetUno, presetWebFonts } from "unocss";
|
||||
|
||||
import { presetTypography } from "@unocss/preset-typography";
|
||||
import transformerDirectives from "@unocss/transformer-directives";
|
||||
@@ -8,7 +8,6 @@ export default defineConfig({
|
||||
transformers: [transformerDirectives()],
|
||||
presets: [
|
||||
presetUno(),
|
||||
presetAttributify(),
|
||||
presetTypography(),
|
||||
presetIcons({
|
||||
scale: 1.2,
|
||||
|
||||
@@ -28,7 +28,6 @@ require (
|
||||
github.com/PuerkitoBio/goquery v1.9.2
|
||||
github.com/go-chi/chi/v5 v5.0.12
|
||||
github.com/go-chi/jwtauth/v5 v5.3.1
|
||||
github.com/go-logfmt/logfmt v0.6.0
|
||||
github.com/goccy/go-json v0.10.3
|
||||
github.com/puzpuzpuz/xsync/v3 v3.1.0
|
||||
github.com/wk8/go-ordered-map/v2 v2.1.8
|
||||
|
||||
@@ -42,8 +42,6 @@ github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s=
|
||||
github.com/go-chi/chi/v5 v5.0.12/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
|
||||
github.com/go-chi/jwtauth/v5 v5.3.1 h1:1ePWrjVctvp1tyBq5b/2ER8Th/+RbYc7x4qNsc5rh5A=
|
||||
github.com/go-chi/jwtauth/v5 v5.3.1/go.mod h1:6Fl2RRmWXs3tJYE1IQGX81FsPoGqDwq9c15j52R5q80=
|
||||
github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4=
|
||||
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
|
||||
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
"fmt"
|
||||
"hash/fnv"
|
||||
"io"
|
||||
"regexp"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@@ -17,7 +16,6 @@ import (
|
||||
|
||||
orderedmap "github.com/wk8/go-ordered-map/v2"
|
||||
|
||||
"github.com/go-logfmt/logfmt"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@@ -160,9 +158,6 @@ func readEvent(reader *bufio.Reader, tty bool) (string, StdType, error) {
|
||||
}
|
||||
}
|
||||
|
||||
var validLogFmtMessage = regexp.MustCompile(`([a-zA-Z0-9_.-]+)=(?:(?:"(.*)")|(?:(?:([^\s]+)[\s])))`)
|
||||
var validLogFmtKey = regexp.MustCompile(`^[a-zA-Z0-9_.-]+$`)
|
||||
|
||||
func createEvent(message string, streamType StdType) *LogEvent {
|
||||
h := fnv.New32a()
|
||||
h.Write([]byte(message))
|
||||
@@ -185,27 +180,8 @@ func createEvent(message string, streamType StdType) *LogEvent {
|
||||
} else {
|
||||
logEvent.Message = data
|
||||
}
|
||||
} else if validLogFmtMessage.MatchString(message) {
|
||||
buffer := bufPool.Get().(*bytes.Buffer)
|
||||
buffer.Reset()
|
||||
defer bufPool.Put(buffer)
|
||||
buffer.WriteString(message)
|
||||
decoder := logfmt.NewDecoder(buffer)
|
||||
data := make(map[string]string)
|
||||
decoder.ScanRecord()
|
||||
allValid := true
|
||||
for decoder.ScanKeyval() {
|
||||
key := decoder.Key()
|
||||
value := decoder.Value()
|
||||
if !validLogFmtKey.Match(key) {
|
||||
allValid = false
|
||||
break
|
||||
}
|
||||
data[string(key)] = string(value)
|
||||
}
|
||||
if allValid && len(data) > 1 {
|
||||
logEvent.Message = data
|
||||
}
|
||||
} else if data, err := ParseLogFmt(message); err == nil {
|
||||
logEvent.Message = data
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,7 +127,17 @@ func Test_createEvent(t *testing.T) {
|
||||
Message: "123",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "invalid logfmt message",
|
||||
args: args{
|
||||
message: "2020-05-13T18:55:37.772853839Z sample text with=equal sign",
|
||||
},
|
||||
want: &LogEvent{
|
||||
Message: "sample text with=equal sign",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := createEvent(tt.args.message, STDOUT); !reflect.DeepEqual(got.Message, tt.want.Message) {
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
var keyValueRegex = regexp.MustCompile(`level=(\w+)`)
|
||||
var logLevels = []string{"error", "warn", "warning", "info", "debug", "trace", "fatal"}
|
||||
var logLevels = []string{"error", "warn", "warning", "info", "debug", "trace", "fatal", "severe"}
|
||||
var plainLevels = map[string]*regexp.Regexp{}
|
||||
var bracketLevels = map[string]*regexp.Regexp{}
|
||||
|
||||
@@ -52,6 +52,11 @@ func guessLogLevel(logEvent *LogEvent) string {
|
||||
}
|
||||
}
|
||||
|
||||
case *orderedmap.OrderedMap[string, string]:
|
||||
if level, ok := value.Get("level"); ok {
|
||||
return strings.ToLower(level)
|
||||
}
|
||||
|
||||
case map[string]interface{}:
|
||||
if level, ok := value["level"].(string); ok {
|
||||
return strings.ToLower(level)
|
||||
|
||||
@@ -7,10 +7,6 @@ import (
|
||||
)
|
||||
|
||||
func TestGuessLogLevel(t *testing.T) {
|
||||
ordereddata := orderedmap.New[string, any]()
|
||||
ordereddata.Set("key", "value")
|
||||
ordereddata.Set("level", "info")
|
||||
|
||||
tests := []struct {
|
||||
input any
|
||||
expected string
|
||||
@@ -35,7 +31,18 @@ func TestGuessLogLevel(t *testing.T) {
|
||||
{map[string]interface{}{"level": "INFO"}, "info"},
|
||||
{map[string]string{"level": "info"}, "info"},
|
||||
{map[string]string{"level": "INFO"}, "info"},
|
||||
{ordereddata, "info"},
|
||||
{orderedmap.New[string, string](
|
||||
orderedmap.WithInitialData(
|
||||
orderedmap.Pair[string, string]{Key: "key", Value: "value"},
|
||||
orderedmap.Pair[string, string]{Key: "level", Value: "info"},
|
||||
),
|
||||
), "info"},
|
||||
{orderedmap.New[string, any](
|
||||
orderedmap.WithInitialData(
|
||||
orderedmap.Pair[string, any]{Key: "key", Value: "value"},
|
||||
orderedmap.Pair[string, any]{Key: "level", Value: "info"},
|
||||
),
|
||||
), "info"},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
package docker
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
orderedmap "github.com/wk8/go-ordered-map/v2"
|
||||
)
|
||||
|
||||
// ParseLogFmt parses a log entry in logfmt format and returns a map of key-value pairs.
|
||||
func ParseLogFmt(log string) (*orderedmap.OrderedMap[string, string], error) {
|
||||
result := orderedmap.New[string, string]()
|
||||
var key, value string
|
||||
inQuotes, escaping, isKey := false, false, true
|
||||
start := 0
|
||||
|
||||
for i := 0; i < len(log); i++ {
|
||||
char := log[i]
|
||||
|
||||
if isKey {
|
||||
if char == '=' {
|
||||
if i == start {
|
||||
return nil, errors.New("invalid format: key is empty")
|
||||
}
|
||||
key = log[start:i]
|
||||
isKey = false
|
||||
start = i + 1
|
||||
} else if char == ' ' {
|
||||
if i > start {
|
||||
return nil, errors.New("invalid format: unexpected space in key")
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if inQuotes {
|
||||
if escaping {
|
||||
escaping = false
|
||||
} else if char == '\\' {
|
||||
escaping = true
|
||||
} else if char == '"' {
|
||||
value = log[start:i]
|
||||
result.Set(key, value)
|
||||
inQuotes = false
|
||||
isKey = true
|
||||
start = i + 2
|
||||
}
|
||||
} else {
|
||||
if char == '"' {
|
||||
inQuotes = true
|
||||
start = i + 1
|
||||
} else if char == ' ' {
|
||||
if i == start {
|
||||
return nil, errors.New("invalid format: value is empty")
|
||||
}
|
||||
value = log[start:i]
|
||||
result.Set(key, value)
|
||||
isKey = true
|
||||
start = i + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Handle the last key-value pair if there is no trailing space
|
||||
if !isKey && start < len(log) {
|
||||
if inQuotes {
|
||||
return nil, errors.New("invalid format: unclosed quotes")
|
||||
}
|
||||
value = log[start:]
|
||||
result.Set(key, value)
|
||||
} else if isKey && start < len(log) {
|
||||
return nil, errors.New("invalid format: unexpected key without value")
|
||||
}
|
||||
|
||||
if !isKey {
|
||||
if inQuotes {
|
||||
return nil, errors.New("invalid format: unclosed quotes")
|
||||
}
|
||||
if start >= len(log) {
|
||||
return nil, errors.New("invalid format: value is empty")
|
||||
}
|
||||
value = log[start:]
|
||||
result.Set(key, value)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package docker
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
orderedmap "github.com/wk8/go-ordered-map/v2"
|
||||
)
|
||||
|
||||
func TestParseLog(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
log string
|
||||
want *orderedmap.OrderedMap[string, string]
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "Valid logfmt log",
|
||||
log: `time="2024-06-02T14:30:42Z" level=debug msg="container e23e04da2cb9 started"`,
|
||||
want: orderedmap.New[string, string](
|
||||
orderedmap.WithInitialData(
|
||||
orderedmap.Pair[string, string]{Key: "time", Value: "2024-06-02T14:30:42Z"},
|
||||
orderedmap.Pair[string, string]{Key: "level", Value: "debug"},
|
||||
orderedmap.Pair[string, string]{Key: "msg", Value: "container e23e04da2cb9 started"},
|
||||
),
|
||||
),
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "Random test with equal sign",
|
||||
log: "foo bar=baz",
|
||||
want: nil,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "Invalid log with key without value",
|
||||
log: "key1=value1 key2=",
|
||||
want: nil,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "Valid log",
|
||||
log: "key1=value1 key2=value2",
|
||||
want: orderedmap.New[string, string](
|
||||
orderedmap.WithInitialData(
|
||||
orderedmap.Pair[string, string]{Key: "key1", Value: "value1"},
|
||||
orderedmap.Pair[string, string]{Key: "key2", Value: "value2"},
|
||||
),
|
||||
),
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "Invalid log with unclosed quotes",
|
||||
log: "key1=\"value1 key2=value2",
|
||||
want: nil,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "Plain text log",
|
||||
log: "foo bar baz",
|
||||
want: nil,
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := ParseLogFmt(tt.log)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("ParseLogFmt() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
}
|
||||
if !reflect.DeepEqual(got, tt.want) {
|
||||
jsonGot, _ := json.MarshalIndent(got, "", " ")
|
||||
jsonWant, _ := json.MarshalIndent(tt.want, "", " ")
|
||||
t.Errorf("ParseLogFmt() = %v, want %v", string(jsonGot), string(jsonWant))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ label:
|
||||
running-containers: Running Containers
|
||||
all-containers: All Containers
|
||||
host: Host
|
||||
hosts: Hosts
|
||||
password: Password
|
||||
username: Username
|
||||
container-name: Container Name
|
||||
@@ -29,6 +30,8 @@ label:
|
||||
tooltip:
|
||||
search: Search containers (⌘ + k, ⌃k)
|
||||
pin-column: Pin as column
|
||||
merge-services: Merge all services into one view
|
||||
merge-containers: Merge all containers into one view
|
||||
error:
|
||||
page-not-found: This page does not exist
|
||||
invalid-auth: Username or password are not valid
|
||||
@@ -63,6 +66,8 @@ button:
|
||||
logout: Logout
|
||||
login: Login
|
||||
settings: Settings
|
||||
cancel: Cancel
|
||||
redirect: Redirect
|
||||
placeholder:
|
||||
search-containers: Search containers (⌘ + k, ⌃k)
|
||||
search: Search
|
||||
|
||||
+7
-7
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "dozzle",
|
||||
"version": "7.0.2",
|
||||
"version": "7.0.4",
|
||||
"description": "Realtime log viewer for docker containers.",
|
||||
"homepage": "https://github.com/amir20/dozzle#readme",
|
||||
"bugs": {
|
||||
"url": "https://github.com/amir20/dozzle/issues"
|
||||
},
|
||||
"packageManager": "pnpm@9.1.3",
|
||||
"packageManager": "pnpm@9.1.4",
|
||||
"type": "module",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -73,7 +73,7 @@
|
||||
"vue-router": "^4.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/material-symbols": "^1.1.80",
|
||||
"@iconify-json/material-symbols": "^1.1.81",
|
||||
"@pinia/testing": "^0.1.3",
|
||||
"@playwright/test": "^1.44.1",
|
||||
"@types/d3-array": "^3.2.1",
|
||||
@@ -83,8 +83,8 @@
|
||||
"@types/d3-shape": "^3.1.6",
|
||||
"@types/d3-transition": "^3.0.8",
|
||||
"@types/lodash.debounce": "^4.0.9",
|
||||
"@types/node": "^20.12.12",
|
||||
"@vitejs/plugin-vue": "5.0.4",
|
||||
"@types/node": "^20.14.0",
|
||||
"@vitejs/plugin-vue": "5.0.5",
|
||||
"@vue/compiler-sfc": "^3.4.27",
|
||||
"@vue/test-utils": "^2.4.6",
|
||||
"bumpp": "^9.4.1",
|
||||
@@ -93,8 +93,8 @@
|
||||
"eventsourcemock": "^2.0.0",
|
||||
"jsdom": "^24.1.0",
|
||||
"lint-staged": "^15.2.5",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-tailwindcss": "^0.5.14",
|
||||
"prettier": "^3.3.0",
|
||||
"prettier-plugin-tailwindcss": "^0.6.1",
|
||||
"simple-git-hooks": "^2.11.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^5.4.5",
|
||||
|
||||
Generated
+69
-69
@@ -34,10 +34,10 @@ importers:
|
||||
version: 4.0.0(rollup@4.17.2)(vue-i18n@9.13.1(vue@3.4.27(typescript@5.4.5)))
|
||||
'@tailwindcss/container-queries':
|
||||
specifier: ^0.1.1
|
||||
version: 0.1.1(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)))
|
||||
version: 0.1.1(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5)))
|
||||
'@tailwindcss/typography':
|
||||
specifier: ^0.5.13
|
||||
version: 0.5.13(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)))
|
||||
version: 0.5.13(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5)))
|
||||
'@vueuse/components':
|
||||
specifier: ^10.10.0
|
||||
version: 10.10.0(vue@3.4.27(typescript@5.4.5))
|
||||
@@ -103,7 +103,7 @@ importers:
|
||||
version: 7.1.0
|
||||
tailwindcss:
|
||||
specifier: ^3.4.3
|
||||
version: 3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5))
|
||||
version: 3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5))
|
||||
unplugin-auto-import:
|
||||
specifier: ^0.17.6
|
||||
version: 0.17.6(@vueuse/core@10.10.0(vue@3.4.27(typescript@5.4.5)))(rollup@4.17.2)
|
||||
@@ -115,19 +115,19 @@ importers:
|
||||
version: 0.27.0(@babel/parser@7.24.5)(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
unplugin-vue-macros:
|
||||
specifier: ^2.9.3
|
||||
version: 2.9.3(@vueuse/core@10.10.0(vue@3.4.27(typescript@5.4.5)))(esbuild@0.21.2)(rollup@4.17.2)(typescript@5.4.5)(vite@5.2.12(@types/node@20.12.12))(vue@3.4.27(typescript@5.4.5))
|
||||
version: 2.9.3(@vueuse/core@10.10.0(vue@3.4.27(typescript@5.4.5)))(esbuild@0.21.2)(rollup@4.17.2)(typescript@5.4.5)(vite@5.2.12(@types/node@20.14.0))(vue@3.4.27(typescript@5.4.5))
|
||||
vite:
|
||||
specifier: 5.2.12
|
||||
version: 5.2.12(@types/node@20.12.12)
|
||||
version: 5.2.12(@types/node@20.14.0)
|
||||
vite-plugin-compression2:
|
||||
specifier: ^1.1.1
|
||||
version: 1.1.1(rollup@4.17.2)
|
||||
vite-plugin-pages:
|
||||
specifier: ^0.32.2
|
||||
version: 0.32.2(@vue/compiler-sfc@3.4.27)(vite@5.2.12(@types/node@20.12.12))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))
|
||||
version: 0.32.2(@vue/compiler-sfc@3.4.27)(vite@5.2.12(@types/node@20.14.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))
|
||||
vite-plugin-vue-layouts:
|
||||
specifier: ^0.11.0
|
||||
version: 0.11.0(vite@5.2.12(@types/node@20.12.12))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))
|
||||
version: 0.11.0(vite@5.2.12(@types/node@20.14.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))
|
||||
vue:
|
||||
specifier: ^3.4.27
|
||||
version: 3.4.27(typescript@5.4.5)
|
||||
@@ -139,8 +139,8 @@ importers:
|
||||
version: 4.3.2(vue@3.4.27(typescript@5.4.5))
|
||||
devDependencies:
|
||||
'@iconify-json/material-symbols':
|
||||
specifier: ^1.1.80
|
||||
version: 1.1.80
|
||||
specifier: ^1.1.81
|
||||
version: 1.1.81
|
||||
'@pinia/testing':
|
||||
specifier: ^0.1.3
|
||||
version: 0.1.3(pinia@2.1.7(typescript@5.4.5)(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))
|
||||
@@ -169,11 +169,11 @@ importers:
|
||||
specifier: ^4.0.9
|
||||
version: 4.0.9
|
||||
'@types/node':
|
||||
specifier: ^20.12.12
|
||||
version: 20.12.12
|
||||
specifier: ^20.14.0
|
||||
version: 20.14.0
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: 5.0.4
|
||||
version: 5.0.4(vite@5.2.12(@types/node@20.12.12))(vue@3.4.27(typescript@5.4.5))
|
||||
specifier: 5.0.5
|
||||
version: 5.0.5(vite@5.2.12(@types/node@20.14.0))(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue/compiler-sfc':
|
||||
specifier: ^3.4.27
|
||||
version: 3.4.27
|
||||
@@ -199,26 +199,26 @@ importers:
|
||||
specifier: ^15.2.5
|
||||
version: 15.2.5
|
||||
prettier:
|
||||
specifier: ^3.2.5
|
||||
version: 3.2.5
|
||||
specifier: ^3.3.0
|
||||
version: 3.3.0
|
||||
prettier-plugin-tailwindcss:
|
||||
specifier: ^0.5.14
|
||||
version: 0.5.14(prettier@3.2.5)
|
||||
specifier: ^0.6.1
|
||||
version: 0.6.1(prettier@3.3.0)
|
||||
simple-git-hooks:
|
||||
specifier: ^2.11.1
|
||||
version: 2.11.1
|
||||
ts-node:
|
||||
specifier: ^10.9.2
|
||||
version: 10.9.2(@types/node@20.12.12)(typescript@5.4.5)
|
||||
version: 10.9.2(@types/node@20.14.0)(typescript@5.4.5)
|
||||
typescript:
|
||||
specifier: ^5.4.5
|
||||
version: 5.4.5
|
||||
vitepress:
|
||||
specifier: 1.2.2
|
||||
version: 1.2.2(@algolia/client-search@4.23.3)(@types/node@20.12.12)(fuse.js@7.0.0)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5)
|
||||
version: 1.2.2(@algolia/client-search@4.23.3)(@types/node@20.14.0)(fuse.js@7.0.0)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5)
|
||||
vitest:
|
||||
specifier: ^1.6.0
|
||||
version: 1.6.0(@types/node@20.12.12)(jsdom@24.1.0)
|
||||
version: 1.6.0(@types/node@20.14.0)(jsdom@24.1.0)
|
||||
vue-component-type-helpers:
|
||||
specifier: ^2.0.19
|
||||
version: 2.0.19
|
||||
@@ -676,8 +676,8 @@ packages:
|
||||
'@iconify-json/ic@1.1.17':
|
||||
resolution: {integrity: sha512-EvAjZzVESmN36zlyefylePUNaU2BQ3eRKVZ6KQSQ2bG01ppoZaiFZRri74VTyvp5Mlv2yn68ux1fgCoT+etGmA==}
|
||||
|
||||
'@iconify-json/material-symbols@1.1.80':
|
||||
resolution: {integrity: sha512-JrDMmWeHxFFMp3BBSsjvDvSiYzJ0qdYmHAQYWY/L5fxVZcIoeoQvtQR0wM1iJN4UDIsnHwbpJQ/sqZ/cvph6sw==}
|
||||
'@iconify-json/material-symbols@1.1.81':
|
||||
resolution: {integrity: sha512-DJhgiZQ935K2pG/ZhChLOA0tcQFZn8jCc1SVhiPY1cdjPslyamD569zaBm4Op5cAf6ouK8m6W85YVV8hXBLMgg==}
|
||||
|
||||
'@iconify-json/mdi-light@1.1.10':
|
||||
resolution: {integrity: sha512-zs1/O6JV/IK0sTMgrc8EgeVvm9QzY4WgsIWc2c4IMgj3k9q79TXNDI6E6oDLVN3xU4B5THiM3Us3L7+dMUZqtg==}
|
||||
@@ -988,14 +988,14 @@ packages:
|
||||
'@types/ms@0.7.34':
|
||||
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
|
||||
|
||||
'@types/node@20.12.12':
|
||||
resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
|
||||
'@types/node@20.14.0':
|
||||
resolution: {integrity: sha512-5cHBxFGJx6L4s56Bubp4fglrEpmyJypsqI6RgzMfBHWUJQGWAAi8cWcgetEbZXHYXo9C2Fa4EEds/uSyS4cxmA==}
|
||||
|
||||
'@types/web-bluetooth@0.0.20':
|
||||
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
||||
|
||||
'@vitejs/plugin-vue@5.0.4':
|
||||
resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
|
||||
'@vitejs/plugin-vue@5.0.5':
|
||||
resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
vite: ^5.0.0
|
||||
@@ -2590,8 +2590,8 @@ packages:
|
||||
preact@10.20.2:
|
||||
resolution: {integrity: sha512-S1d1ernz3KQ+Y2awUxKakpfOg2CEmJmwOP+6igPx6dgr6pgDvenqYviyokWso2rhHvGtTlWWnJDa7RaPbQerTg==}
|
||||
|
||||
prettier-plugin-tailwindcss@0.5.14:
|
||||
resolution: {integrity: sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==}
|
||||
prettier-plugin-tailwindcss@0.6.1:
|
||||
resolution: {integrity: sha512-AnbeYZu0WGj+QgKciUgdMnRxrqcxltleZPgdwfA5104BHM3siBLONN/HLW1yS2HvzSNkzpQ/JAj+LN0jcJO+0w==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
peerDependencies:
|
||||
'@ianvs/prettier-plugin-sort-imports': '*'
|
||||
@@ -2642,8 +2642,8 @@ packages:
|
||||
prettier-plugin-svelte:
|
||||
optional: true
|
||||
|
||||
prettier@3.2.5:
|
||||
resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
|
||||
prettier@3.3.0:
|
||||
resolution: {integrity: sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
@@ -3738,7 +3738,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
|
||||
'@iconify-json/material-symbols@1.1.80':
|
||||
'@iconify-json/material-symbols@1.1.81':
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
|
||||
@@ -3966,17 +3966,17 @@ snapshots:
|
||||
|
||||
'@sinclair/typebox@0.27.8': {}
|
||||
|
||||
'@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)))':
|
||||
'@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5)))':
|
||||
dependencies:
|
||||
tailwindcss: 3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5))
|
||||
tailwindcss: 3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5))
|
||||
|
||||
'@tailwindcss/typography@0.5.13(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)))':
|
||||
'@tailwindcss/typography@0.5.13(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5)))':
|
||||
dependencies:
|
||||
lodash.castarray: 4.4.0
|
||||
lodash.isplainobject: 4.0.6
|
||||
lodash.merge: 4.6.2
|
||||
postcss-selector-parser: 6.0.10
|
||||
tailwindcss: 3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5))
|
||||
tailwindcss: 3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5))
|
||||
|
||||
'@tsconfig/node10@1.0.11': {}
|
||||
|
||||
@@ -4033,15 +4033,15 @@ snapshots:
|
||||
|
||||
'@types/ms@0.7.34': {}
|
||||
|
||||
'@types/node@20.12.12':
|
||||
'@types/node@20.14.0':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
'@types/web-bluetooth@0.0.20': {}
|
||||
|
||||
'@vitejs/plugin-vue@5.0.4(vite@5.2.12(@types/node@20.12.12))(vue@3.4.27(typescript@5.4.5))':
|
||||
'@vitejs/plugin-vue@5.0.5(vite@5.2.12(@types/node@20.14.0))(vue@3.4.27(typescript@5.4.5))':
|
||||
dependencies:
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
vue: 3.4.27(typescript@5.4.5)
|
||||
|
||||
'@vitest/expect@1.6.0':
|
||||
@@ -4195,12 +4195,12 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
'@vue-macros/devtools@0.2.0(typescript@5.4.5)(vite@5.2.12(@types/node@20.12.12))':
|
||||
'@vue-macros/devtools@0.2.0(typescript@5.4.5)(vite@5.2.12(@types/node@20.14.0))':
|
||||
dependencies:
|
||||
sirv: 2.0.4
|
||||
vue: 3.4.27(typescript@5.4.5)
|
||||
optionalDependencies:
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
||||
@@ -5780,13 +5780,13 @@ snapshots:
|
||||
camelcase-css: 2.0.1
|
||||
postcss: 8.4.38
|
||||
|
||||
postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)):
|
||||
postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5)):
|
||||
dependencies:
|
||||
lilconfig: 3.1.1
|
||||
yaml: 2.4.2
|
||||
optionalDependencies:
|
||||
postcss: 8.4.38
|
||||
ts-node: 10.9.2(@types/node@20.12.12)(typescript@5.4.5)
|
||||
ts-node: 10.9.2(@types/node@20.14.0)(typescript@5.4.5)
|
||||
|
||||
postcss-nested@6.0.1(postcss@8.4.38):
|
||||
dependencies:
|
||||
@@ -5813,11 +5813,11 @@ snapshots:
|
||||
|
||||
preact@10.20.2: {}
|
||||
|
||||
prettier-plugin-tailwindcss@0.5.14(prettier@3.2.5):
|
||||
prettier-plugin-tailwindcss@0.6.1(prettier@3.3.0):
|
||||
dependencies:
|
||||
prettier: 3.2.5
|
||||
prettier: 3.3.0
|
||||
|
||||
prettier@3.2.5: {}
|
||||
prettier@3.3.0: {}
|
||||
|
||||
pretty-format@29.7.0:
|
||||
dependencies:
|
||||
@@ -6118,7 +6118,7 @@ snapshots:
|
||||
|
||||
tabbable@6.2.0: {}
|
||||
|
||||
tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)):
|
||||
tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5)):
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
arg: 5.0.2
|
||||
@@ -6137,7 +6137,7 @@ snapshots:
|
||||
postcss: 8.4.38
|
||||
postcss-import: 15.1.0(postcss@8.4.38)
|
||||
postcss-js: 4.0.1(postcss@8.4.38)
|
||||
postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5))
|
||||
postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5))
|
||||
postcss-nested: 6.0.1(postcss@8.4.38)
|
||||
postcss-selector-parser: 6.0.16
|
||||
resolve: 1.22.8
|
||||
@@ -6208,14 +6208,14 @@ snapshots:
|
||||
|
||||
ts-interface-checker@0.1.13: {}
|
||||
|
||||
ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5):
|
||||
ts-node@10.9.2(@types/node@20.14.0)(typescript@5.4.5):
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
'@tsconfig/node10': 1.0.11
|
||||
'@tsconfig/node12': 1.0.11
|
||||
'@tsconfig/node14': 1.0.3
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/node': 20.12.12
|
||||
'@types/node': 20.14.0
|
||||
acorn: 8.11.3
|
||||
acorn-walk: 8.3.2
|
||||
arg: 4.1.3
|
||||
@@ -6271,14 +6271,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
unplugin-combine@1.0.0(esbuild@0.21.2)(rollup@4.17.2)(vite@5.2.12(@types/node@20.12.12)):
|
||||
unplugin-combine@1.0.0(esbuild@0.21.2)(rollup@4.17.2)(vite@5.2.12(@types/node@20.14.0)):
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.8
|
||||
unplugin: 1.10.1
|
||||
optionalDependencies:
|
||||
esbuild: 0.21.2
|
||||
rollup: 4.17.2
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
|
||||
unplugin-icons@0.19.0(@vue/compiler-sfc@3.4.27)(vue-template-compiler@2.7.16):
|
||||
dependencies:
|
||||
@@ -6323,7 +6323,7 @@ snapshots:
|
||||
- rollup
|
||||
- vue
|
||||
|
||||
unplugin-vue-macros@2.9.3(@vueuse/core@10.10.0(vue@3.4.27(typescript@5.4.5)))(esbuild@0.21.2)(rollup@4.17.2)(typescript@5.4.5)(vite@5.2.12(@types/node@20.12.12))(vue@3.4.27(typescript@5.4.5)):
|
||||
unplugin-vue-macros@2.9.3(@vueuse/core@10.10.0(vue@3.4.27(typescript@5.4.5)))(esbuild@0.21.2)(rollup@4.17.2)(typescript@5.4.5)(vite@5.2.12(@types/node@20.14.0))(vue@3.4.27(typescript@5.4.5)):
|
||||
dependencies:
|
||||
'@vue-macros/better-define': 1.7.7(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue-macros/boolean-prop': 0.3.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
@@ -6336,7 +6336,7 @@ snapshots:
|
||||
'@vue-macros/define-props-refs': 1.2.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue-macros/define-render': 1.5.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue-macros/define-slots': 1.1.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue-macros/devtools': 0.2.0(typescript@5.4.5)(vite@5.2.12(@types/node@20.12.12))
|
||||
'@vue-macros/devtools': 0.2.0(typescript@5.4.5)(vite@5.2.12(@types/node@20.14.0))
|
||||
'@vue-macros/export-expose': 0.1.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue-macros/export-props': 0.4.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue-macros/export-render': 0.2.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
@@ -6351,7 +6351,7 @@ snapshots:
|
||||
'@vue-macros/short-emits': 1.5.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue-macros/short-vmodel': 1.4.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
unplugin: 1.10.1
|
||||
unplugin-combine: 1.0.0(esbuild@0.21.2)(rollup@4.17.2)(vite@5.2.12(@types/node@20.12.12))
|
||||
unplugin-combine: 1.0.0(esbuild@0.21.2)(rollup@4.17.2)(vite@5.2.12(@types/node@20.14.0))
|
||||
unplugin-vue-define-options: 1.4.5(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5))
|
||||
vue: 3.4.27(typescript@5.4.5)
|
||||
transitivePeerDependencies:
|
||||
@@ -6390,13 +6390,13 @@ snapshots:
|
||||
'@types/istanbul-lib-coverage': 2.0.6
|
||||
convert-source-map: 2.0.0
|
||||
|
||||
vite-node@1.6.0(@types/node@20.12.12):
|
||||
vite-node@1.6.0(@types/node@20.14.0):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.3.4
|
||||
pathe: 1.1.2
|
||||
picocolors: 1.0.0
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@@ -6415,7 +6415,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
vite-plugin-pages@0.32.2(@vue/compiler-sfc@3.4.27)(vite@5.2.12(@types/node@20.12.12))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5))):
|
||||
vite-plugin-pages@0.32.2(@vue/compiler-sfc@3.4.27)(vite@5.2.12(@types/node@20.14.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5))):
|
||||
dependencies:
|
||||
'@types/debug': 4.1.12
|
||||
debug: 4.3.4
|
||||
@@ -6425,7 +6425,7 @@ snapshots:
|
||||
json5: 2.2.3
|
||||
local-pkg: 0.5.0
|
||||
picocolors: 1.0.1
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
yaml: 2.4.2
|
||||
optionalDependencies:
|
||||
'@vue/compiler-sfc': 3.4.27
|
||||
@@ -6433,33 +6433,33 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vite-plugin-vue-layouts@0.11.0(vite@5.2.12(@types/node@20.12.12))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)):
|
||||
vite-plugin-vue-layouts@0.11.0(vite@5.2.12(@types/node@20.14.0))(vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)):
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
fast-glob: 3.3.2
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
vue: 3.4.27(typescript@5.4.5)
|
||||
vue-router: 4.3.2(vue@3.4.27(typescript@5.4.5))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vite@5.2.12(@types/node@20.12.12):
|
||||
vite@5.2.12(@types/node@20.14.0):
|
||||
dependencies:
|
||||
esbuild: 0.20.2
|
||||
postcss: 8.4.38
|
||||
rollup: 4.17.2
|
||||
optionalDependencies:
|
||||
'@types/node': 20.12.12
|
||||
'@types/node': 20.14.0
|
||||
fsevents: 2.3.3
|
||||
|
||||
vitepress@1.2.2(@algolia/client-search@4.23.3)(@types/node@20.12.12)(fuse.js@7.0.0)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5):
|
||||
vitepress@1.2.2(@algolia/client-search@4.23.3)(@types/node@20.14.0)(fuse.js@7.0.0)(postcss@8.4.38)(search-insights@2.13.0)(typescript@5.4.5):
|
||||
dependencies:
|
||||
'@docsearch/css': 3.6.0
|
||||
'@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0)
|
||||
'@shikijs/core': 1.6.0
|
||||
'@shikijs/transformers': 1.6.0
|
||||
'@types/markdown-it': 14.1.1
|
||||
'@vitejs/plugin-vue': 5.0.4(vite@5.2.12(@types/node@20.12.12))(vue@3.4.27(typescript@5.4.5))
|
||||
'@vitejs/plugin-vue': 5.0.5(vite@5.2.12(@types/node@20.14.0))(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue/devtools-api': 7.2.1(vue@3.4.27(typescript@5.4.5))
|
||||
'@vue/shared': 3.4.27
|
||||
'@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5))
|
||||
@@ -6468,7 +6468,7 @@ snapshots:
|
||||
mark.js: 8.11.1
|
||||
minisearch: 6.3.0
|
||||
shiki: 1.6.0
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
vue: 3.4.27(typescript@5.4.5)
|
||||
optionalDependencies:
|
||||
postcss: 8.4.38
|
||||
@@ -6499,7 +6499,7 @@ snapshots:
|
||||
- typescript
|
||||
- universal-cookie
|
||||
|
||||
vitest@1.6.0(@types/node@20.12.12)(jsdom@24.1.0):
|
||||
vitest@1.6.0(@types/node@20.14.0)(jsdom@24.1.0):
|
||||
dependencies:
|
||||
'@vitest/expect': 1.6.0
|
||||
'@vitest/runner': 1.6.0
|
||||
@@ -6518,11 +6518,11 @@ snapshots:
|
||||
strip-literal: 2.1.0
|
||||
tinybench: 2.6.0
|
||||
tinypool: 0.8.3
|
||||
vite: 5.2.12(@types/node@20.12.12)
|
||||
vite-node: 1.6.0(@types/node@20.12.12)
|
||||
vite: 5.2.12(@types/node@20.14.0)
|
||||
vite-node: 1.6.0(@types/node@20.14.0)
|
||||
why-is-node-running: 2.2.2
|
||||
optionalDependencies:
|
||||
'@types/node': 20.12.12
|
||||
'@types/node': 20.14.0
|
||||
jsdom: 24.1.0
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
|
||||
Reference in New Issue
Block a user