fix: remove layout for RouterView build theme-yun

This commit is contained in:
YunYouJun 2024-01-15 02:05:28 +08:00
parent e880e26bab
commit 96643da7b8
27 changed files with 251 additions and 299 deletions

View File

@ -23,7 +23,6 @@
"@iconify-json/simple-icons": "^1.1.87",
"nodemon": "^3.0.2",
"vite": "^5.0.11",
"vitepress": "1.0.0-rc.36",
"vue": "^3.4.13"
"vitepress": "1.0.0-rc.36"
}
}

View File

@ -11,10 +11,12 @@ top: 10
## Migrate from Hexo to Valaxy {lang="en"}
::: zh-CN
- [从 Hexo 迁移至 Valaxy](/migration/hexo)
:::
::: en
- [Migrate from Hexo to Valaxy](/migration/hexo)
:::
@ -23,6 +25,7 @@ top: 10
## Migrate from any other blog framework {lang="en"}
::: zh-CN
- 将你的文章Markdown 文件)复制至 Valaxy `pages/posts` 目录下。
- 将你的自定义页面(非文章的 Markdown/HTML 文件)复制至 Valaxy `pages` 目录下。
- 将你的静态资源(图片等)复制至 Valaxy `public` 目录下。
@ -30,6 +33,7 @@ top: 10
:::
::: en
- Copy your posts (Markdown files) to the Valaxy `pages/posts` directory.
- Copy your custom pages (non-article Markdown/HTML files) to the Valaxy `pages` directory.
- Copy your static resources (images, etc.) to the Valaxy `public` directory.
@ -59,6 +63,8 @@ Default to `<-- More -->`, there are spaces before and after `more`.
::: zh-CN
Valaxy 的 Markdown 解析基于 [`markdown-it`](https://github.com/markdown-it/markdown-it) 实现。
#### 没有换行
`markdown-it` 的策略在 Markdown 中换行后渲染的内容并没有换行:
```md
@ -71,6 +77,8 @@ Valaxy 的 Markdown 解析基于 [`markdown-it`](https://github.com/markdown-it/
---
#### 换行了
如果需要正常换行,需在末尾添加两个空格:
```md

View File

@ -31,4 +31,5 @@ onMounted(() => {
<Transition name="fade">
<YunLoading v-if="app.showLoading" />
</Transition>
<YunBackToTop />
</template>

View File

@ -19,7 +19,6 @@ defineProps<{
border
bg="hover:(blue-500 opacity-10)"
>
<!-- <div m="r-1" i-ri-price-tag-3-line /> -->
<span>{{ tag }}</span>
</RouterLink>
</div>

View File

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { ref } from 'vue'
import { useAppStore } from 'valaxy'
import { ref, watch } from 'vue'
import { useAppStore, useLayout } from 'valaxy'
defineProps<{
showHamburger?: boolean
@ -8,6 +8,13 @@ defineProps<{
const app = useAppStore()
const showOverview = ref(false)
const isHome = useLayout('home')
watch(isHome, () => {
app.isSidebarOpen = !isHome.value
}, {
immediate: true,
})
</script>
<template>

View File

@ -1,42 +0,0 @@
<script lang="ts" setup>
import { asAny } from 'valaxy'
</script>
<template>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<RouterView v-slot="{ Component }">
<component :is="asAny(Component)">
<template #main-header>
<slot name="main-header" />
</template>
<template #main-header-after>
<slot name="main-header-after" />
</template>
<template #main>
<slot name="main" />
</template>
<template #main-content>
<slot name="main-content" />
</template>
<template #main-content-after>
<slot name="main-content-after" />
</template>
<template #main-nav-before>
<slot name="main-nav-before" />
</template>
<template #main-nav-after>
<slot name="main-nav-after" />
</template>
<template #aside-custom>
<slot name="aside-custom" />
</template>
</component>
</RouterView>
<YunBackToTop />
</template>

View File

@ -20,16 +20,23 @@ const albums = computed(() => frontmatter.value.albums || [])
</script>
<template>
<Layout>
<template #main-header>
<YunPageHeader :title="title || t('title.album')" :icon="frontmatter.icon || 'i-ri-gallery-line'" :color="frontmatter.color" />
</template>
<template #main-content>
<div text="center" class="yun-text-light" p="2">
{{ t('counter.albums', albums.length) }}
</div>
<YunAlbumList :albums="albums" />
<RouterView />
</template>
</Layout>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<RouterView v-slot="{ Component }">
<component :is="Component">
<template #main-header>
<YunPageHeader :title="title || t('title.album')" :icon="frontmatter.icon || 'i-ri-gallery-line'" :color="frontmatter.color" />
</template>
<template #main-content>
<div text="center" class="yun-text-light" p="2">
{{ t('counter.albums', albums.length) }}
</div>
<YunAlbumList :albums="albums" />
<RouterView />
</template>
</component>
</RouterView>
</template>

View File

@ -18,13 +18,20 @@ useSchemaOrg([
</script>
<template>
<Layout>
<template #main-header>
<YunPageHeader :title="title || t('menu.archives')" :icon="frontmatter.icon || 'i-ri-archive-line'" :color="frontmatter.color" />
</template>
<template #main-content>
<RouterView />
<YunPostCollapse :posts="site.postList" />
</template>
</Layout>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<RouterView v-slot="{ Component }">
<component :is="Component">
<template #main-header>
<YunPageHeader :title="title || t('menu.archives')" :icon="frontmatter.icon || 'i-ri-archive-line'" :color="frontmatter.color" />
</template>
<template #main-content>
<RouterView />
<YunPostCollapse :posts="site.postList" />
</template>
</component>
</RouterView>
</template>

View File

@ -39,30 +39,37 @@ useSchemaOrg([
</script>
<template>
<Layout>
<template #main-header>
<YunPageHeader
:title="title || t('menu.categories')"
:icon="frontmatter.icon || 'i-ri-folder-2-line'"
:color="frontmatter.color"
/>
</template>
<template #main-content>
<div text="center" class="yun-text-light" p="2">
{{ t('counter.categories', categories.children.length) }}
</div>
<YunCategories :categories="categories.children" />
<RouterView />
</template>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<template #main-nav-before>
<YunCard v-if="curCategory" class="post-collapse-container" m="t-4" w="full">
<RouterView v-slot="{ Component }">
<component :is="Component">
<template #main-header>
<YunPageHeader
:title="curCategory === 'Uncategorized' ? t('category.uncategorized') : curCategory.split('/').join(' / ')"
icon="i-ri-folder-open-line"
:title="title || t('menu.categories')"
:icon="frontmatter.icon || 'i-ri-folder-2-line'"
:color="frontmatter.color"
/>
<YunPostCollapse w="full" m="b-4" p="x-20 lt-sm:x-5" :posts="posts" />
</YunCard>
</template>
</Layout>
</template>
<template #main-content>
<div text="center" class="yun-text-light" p="2">
{{ t('counter.categories', categories.children.length) }}
</div>
<YunCategories :categories="categories.children" />
<RouterView />
</template>
<template #main-nav-before>
<YunCard v-if="curCategory" class="post-collapse-container" m="t-4" w="full">
<YunPageHeader
:title="curCategory === 'Uncategorized' ? t('category.uncategorized') : curCategory.split('/').join(' / ')"
icon="i-ri-folder-open-line"
/>
<YunPostCollapse w="full" m="b-4" p="x-20 lt-sm:x-5" :posts="posts" />
</YunCard>
</template>
</component>
</RouterView>
</template>

View File

@ -1,7 +1,8 @@
<template>
<Layout>
<template #content>
<RouterView />
</template>
</Layout>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<RouterView />
</template>

View File

@ -29,26 +29,33 @@ const YunGallery = runtimeConfig.value.addons['valaxy-addon-lightgallery']
</script>
<template>
<Layout>
<template #main-header>
<YunPageHeader
:title="title || t('title.gallery')"
:icon="frontmatter.icon || 'i-ri-gallery-line'"
:color="frontmatter.color"
/>
</template>
<template #main-content>
<div text="center" class="yun-text-light" p="2">
{{ t('counter.photos', photos.length) }}
</div>
<div class="page-action" text="center">
<a class="yun-icon-btn" :title="t('accessibility.back')" @click="() => router.back()">
<div i-ri-arrow-go-back-line />
</a>
</div>
<ValaxyGalleryDecrypt v-if="frontmatter.encryptedPhotos" :encrypted-photos="frontmatter.encryptedPhotos" />
<YunGallery v-else :photos="photos" />
<RouterView />
</template>
</Layout>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<RouterView v-slot="{ Component }">
<component :is="Component">
<template #main-header>
<YunPageHeader
:title="title || t('title.gallery')"
:icon="frontmatter.icon || 'i-ri-gallery-line'"
:color="frontmatter.color"
/>
</template>
<template #main-content>
<div text="center" class="yun-text-light" p="2">
{{ t('counter.photos', photos.length) }}
</div>
<div class="page-action" text="center">
<a class="yun-icon-btn" :title="t('accessibility.back')" @click="() => router.back()">
<div i-ri-arrow-go-back-line />
</a>
</div>
<ValaxyGalleryDecrypt v-if="frontmatter.encryptedPhotos" :encrypted-photos="frontmatter.encryptedPhotos" />
<YunGallery v-else :photos="photos" />
<RouterView />
</template>
</component>
</RouterView>
</template>

View File

@ -41,20 +41,27 @@ useSchemaOrg(
</script>
<template>
<Layout>
<template #main-header-after>
<YunPostMeta :frontmatter="frontmatter" />
<YunWalineMeta />
<YunPostCategoriesAndTags :frontmatter="frontmatter" />
</template>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<template #main-content-after>
<YunSponsor v-if="showSponsor" m="t-6" />
<ValaxyCopyright v-if="frontmatter.copyright || siteConfig.license.enabled" :url="url" m="y-4" />
</template>
<RouterView v-slot="{ Component }">
<component :is="Component">
<template #main-header-after>
<YunPostMeta :frontmatter="frontmatter" />
<YunWalineMeta />
<YunPostCategoriesAndTags :frontmatter="frontmatter" />
</template>
<template #aside-custom>
<slot name="aside-custom" />
</template>
</Layout>
<template #main-content-after>
<YunSponsor v-if="showSponsor" m="t-6" />
<ValaxyCopyright v-if="frontmatter.copyright || siteConfig.license.enabled" :url="url" m="y-4" />
</template>
<template #aside-custom>
<slot name="aside-custom" />
</template>
</component>
</RouterView>
</template>

View File

@ -58,38 +58,45 @@ const title = usePostTitle(frontmatter)
</script>
<template>
<Layout>
<template #main-header>
<YunPageHeader
:title="title || t('menu.tags')"
:icon="frontmatter.icon || 'i-ri-tag-line'"
:color="frontmatter.color"
/>
</template>
<template #main-content>
<div class="yun-text-light" text="center" p="2">
{{ t('counter.tags', Array.from(tags).length) }}
</div>
<YunSidebar v-if="$slots['sidebar-child']">
<slot name="sidebar-child" />
</YunSidebar>
<YunSidebar v-else />
<div class="justify-center items-end" flex="~ wrap" gap="1">
<YunLayoutPostTag
v-for="[key, tag] in Array.from(tags).sort()"
:key="key"
:title="key"
:count="tag.count"
:style="getTagStyle(tag.count)"
@click="displayTag(key.toString())"
<RouterView v-slot="{ Component }">
<component :is="Component">
<template #main-header>
<YunPageHeader
:title="title || t('menu.tags')"
:icon="frontmatter.icon || 'i-ri-tag-line'"
:color="frontmatter.color"
/>
</div>
</template>
<template #main-content>
<div class="yun-text-light" text="center" p="2">
{{ t('counter.tags', Array.from(tags).length) }}
</div>
<RouterView />
</template>
<div class="justify-center items-end" flex="~ wrap" gap="1">
<YunLayoutPostTag
v-for="[key, tag] in Array.from(tags).sort()"
:key="key"
:title="key"
:count="tag.count"
:style="getTagStyle(tag.count)"
@click="displayTag(key.toString())"
/>
</div>
<template #main-nav-before>
<YunCard v-if="curTag" ref="collapse" m="t-4" w="full">
<YunPageHeader :title="curTag" icon="i-ri-hashtag" />
<YunPostCollapse w="full" m="b-4" p="x-20 lt-sm:x-5" :posts="posts" />
</YunCard>
</template>
</Layout>
<RouterView />
</template>
<template #main-nav-before>
<YunCard v-if="curTag" ref="collapse" m="t-4" w="full">
<YunPageHeader :title="curTag" icon="i-ri-hashtag" />
<YunPostCollapse w="full" m="b-4" p="x-20 lt-sm:x-5" :posts="posts" />
</YunCard>
</template>
</component>
</RouterView>
</template>

View File

@ -1,39 +0,0 @@
<script lang="ts" setup>
// (Component as any) will crush page rendering
import { asAny } from 'valaxy'
</script>
<template>
<RouterView v-slot="{ Component }">
<Component :is="asAny(Component)">
<template #main-header>
<slot name="main-header" />
</template>
<template #main-header-after>
<slot name="main-header-after" />
</template>
<template #main>
<slot name="main" />
</template>
<template #main-content>
<slot name="main-content" />
</template>
<template #main-content-after>
<slot name="main-content-after" />
</template>
<template #main-nav-before>
<slot name="main-nav-before" />
</template>
<template #main-nav-after>
<slot name="main-nav-after" />
</template>
<template #aside-custom>
<slot name="aside-custom" />
</template>
<template #footer>
<slot name="footer" />
</template>
</Component>
</RouterView>
</template>

View File

@ -7,6 +7,7 @@
</head>
<body>
<div id="app"></div>
<script type="module" src="./main.ts"></script>
<!-- body -->
</body>
</html>

View File

@ -1,3 +1,3 @@
<template>
<Layout />
<RouterView />
</template>

View File

@ -1,3 +1,3 @@
<template>
<Layout />
<RouterView />
</template>

View File

@ -29,6 +29,13 @@ export function registerComponents(ctx: ViteSSGContext) {
ctx.app.component('AppLink', AppLink)
}
// fix chinese path
routes.forEach((i) => {
i.children?.forEach((j) => {
j.path = encodeURI(j.path)
})
})
// not filter hide for ssg
const routesWithLayout = setupLayouts(import.meta.env.DEV
? routes

View File

@ -18,7 +18,8 @@ import { install as installValaxy } from '../modules/valaxy'
import { install as installPinia } from '../modules/pinia'
import { install as installNprogress } from '../modules/nprogress'
import { install as installSchema } from '../modules/schemaOrg'
import { install as installDevtools } from '../modules/devtools'
// import { install as installDevtools } from '../modules/devtools'
export default function setupMain(ctx: ViteSSGContext, config: ComputedRef<ValaxyConfig<DefaultTheme.Config>>) {
// @ts-expect-error inject in runtime
@ -26,7 +27,7 @@ export default function setupMain(ctx: ViteSSGContext, config: ComputedRef<Valax
const injection_arg = ctx
installValaxy(ctx, config)
installDevtools(ctx)
// installDevtools(ctx)
installSchema(ctx)

View File

@ -70,6 +70,7 @@ export async function postProcessForSSG(options: ResolvedValaxyOptions) {
// fix incomplete index.html (with extra /html>) generated by vite-ssg
const htmlTag = '</html>'
if (!indexFile.endsWith(htmlTag)) {
consola.warn('fix incomplete index.html...')
const htmlTagStart = indexFile.lastIndexOf(htmlTag)
await fs.writeFile(indexPath, indexFile.slice(0, htmlTagStart + htmlTag.length), 'utf-8')
}

View File

@ -4,6 +4,7 @@ import type { ConfigEnv, InlineConfig } from 'vite'
import { uniq } from '@antfu/utils'
import { loadConfigFromFile, mergeConfig } from 'vite'
import type { ResolvedValaxyOptions } from './options'
import { toAtFS } from './utils'
/**
* merge vite.config.ts (user & theme)
@ -36,7 +37,7 @@ export async function mergeViteConfigs({ userRoot, themeRoot }: ResolvedValaxyOp
* generate index.html from user/theme/client
* @internal
*/
export async function getIndexHtml({ themeRoot, userRoot, config }: ResolvedValaxyOptions, rawHtml: string): Promise<string> {
export async function getIndexHtml({ clientRoot, themeRoot, userRoot, config }: ResolvedValaxyOptions, rawHtml: string): Promise<string> {
// get from template
// use client index.html directly, than change it in transformIndexHtml
@ -83,6 +84,7 @@ export async function getIndexHtml({ themeRoot, userRoot, config }: ResolvedVala
}
main = main
.replace('__ENTRY__', toAtFS(join(clientRoot, 'main.ts')))
.replace('<!-- head -->', head)
.replace('<!-- body -->', body)

View File

@ -125,19 +125,10 @@ export function createConfigPlugin(options: ResolvedValaxyOptions): Plugin {
async transformIndexHtml(html) {
// console.log(toAtFS(options.clientRoot))
// todo: adapt user/theme index.html by transformIndexHtml
html = await getIndexHtml(options, html)
return {
html: await getIndexHtml(options, html),
tags: [
{
tag: 'script',
attrs: {
type: 'module',
src: `${toAtFS(options.clientRoot)}/main.ts`,
},
injectTo: 'head-prepend',
},
],
html,
tags: [],
}
},
}

View File

@ -7,7 +7,6 @@ import Vue from '@vitejs/plugin-vue'
import Layouts from 'vite-plugin-vue-layouts'
import Components from 'unplugin-vue-components/vite'
import VueI18n from '@intlify/unplugin-vue-i18n/vite'
import VueDevTools from 'vite-plugin-vue-devtools'
import UnheadVite from '@unhead/addons/vite'
@ -27,7 +26,7 @@ export const mdIt = new MarkdownIt({ html: true })
export async function ViteValaxyPlugins(
options: ResolvedValaxyOptions,
serverOptions: ValaxyServerOptions = {},
): Promise<(PluginOption | PluginOption[])[] | undefined> {
): Promise<(PluginOption | PluginOption[])[]> {
const { roots, config: valaxyConfig } = options
// setup mdIt
@ -111,7 +110,6 @@ export async function ViteValaxyPlugins(
// latter override former
dirs: roots
.map(root => `${root}/components`)
.concat(roots.map(root => `${root}/layouts`))
.concat(['src/components', 'components']),
dts: `${options.userRoot}/components.d.ts`,
@ -133,7 +131,5 @@ export async function ViteValaxyPlugins(
splitVendorChunkPlugin(),
createFixPlugins(options),
valaxyConfig.devtools && VueDevTools(),
]
}

View File

@ -108,7 +108,7 @@ export function createRouterPlugin(options: ResolvedValaxyOptions) {
mdFm.updated = new Date(mdFm.updated!)
// set route meta
route.meta = Object.assign(route.meta, {
route.addToMeta({
frontmatter: Object.assign(defaultFrontmatter, mdFm),
excerpt: excerpt ? getExcerptByType(excerpt, mdFm.excerpt_type) : '',
})

View File

@ -2,6 +2,7 @@ import process from 'node:process'
import type { InlineConfig } from 'vite'
import { createServer as createViteServer, mergeConfig as mergeViteConfig } from 'vite'
import VueDevTools from 'vite-plugin-vue-devtools'
import type { ResolvedValaxyOptions, ValaxyServerOptions } from './options'
import { ViteValaxyPlugins } from './plugins/preset'
@ -17,7 +18,12 @@ export async function createServer(
const mergedViteConfig = mergeViteConfig(
viteConfig,
{
plugins,
plugins: [
...plugins,
// only enable when dev
options.mode === 'dev' && options.config.devtools && VueDevTools(),
],
},
)
const server = await createViteServer(mergedViteConfig)

View File

@ -142,7 +142,6 @@
"@types/pascalcase": "^1.0.3",
"@types/qrcode": "^1.5.5",
"@types/yargs": "^17.0.32",
"@vue/devtools-api": "^7.0.10",
"debug": "^4.3.4",
"diacritics": "^1.3.0",
"https-localhost": "^4.7.1",

View File

@ -196,9 +196,6 @@ importers:
vitepress:
specifier: 1.0.0-rc.36
version: 1.0.0-rc.36(@types/node@20.11.0)(postcss@8.4.32)(search-insights@2.13.0)(typescript@5.3.3)
vue:
specifier: ^3.4.13
version: 3.4.13(typescript@5.3.3)
packages/create-valaxy:
dependencies:
@ -455,12 +452,9 @@ importers:
'@types/yargs':
specifier: ^17.0.32
version: 17.0.32
'@vue/devtools-api':
specifier: ^7.0.10
version: 7.0.10
debug:
specifier: ^4.3.4
version: 4.3.4(supports-color@5.5.0)
version: 4.3.4(supports-color@8.1.1)
diacritics:
specifier: ^1.3.0
version: 1.3.0
@ -829,7 +823,7 @@ packages:
'@babel/traverse': 7.23.6
'@babel/types': 7.23.6
convert-source-map: 2.0.0
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@ -923,7 +917,7 @@ packages:
'@babel/core': 7.23.6
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-plugin-utils': 7.22.5
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
lodash.debounce: 4.0.8
resolve: 1.22.8
transitivePeerDependencies:
@ -2017,7 +2011,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.6
'@babel/types': 7.23.6
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@ -2034,7 +2028,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.6
'@babel/types': 7.23.6
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@ -2590,7 +2584,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.0
@ -2616,7 +2610,7 @@ packages:
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 2.0.1
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@ -2675,7 +2669,7 @@ packages:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.7.7
'@iconify/types': 2.0.0
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
kolorist: 1.8.0
local-pkg: 0.4.3
transitivePeerDependencies:
@ -2760,7 +2754,7 @@ packages:
'@intlify/shared': 9.8.0
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
'@vue/compiler-sfc': 3.3.12
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
fast-glob: 3.3.2
js-yaml: 4.1.0
json5: 2.2.3
@ -3560,7 +3554,7 @@ packages:
'@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.56.0
graphemer: 1.4.0
ignore: 5.3.0
@ -3586,7 +3580,7 @@ packages:
'@typescript-eslint/types': 6.18.1
'@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.56.0
typescript: 5.3.3
transitivePeerDependencies:
@ -3621,7 +3615,7 @@ packages:
dependencies:
'@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3)
'@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.56.0
ts-api-utils: 1.0.3(typescript@5.3.3)
typescript: 5.3.3
@ -3650,7 +3644,7 @@ packages:
dependencies:
'@typescript-eslint/types': 6.16.0
'@typescript-eslint/visitor-keys': 6.16.0
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
@ -3672,7 +3666,7 @@ packages:
dependencies:
'@typescript-eslint/types': 6.18.1
'@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
@ -4145,16 +4139,6 @@ packages:
estree-walker: 2.0.2
source-map-js: 1.0.2
/@vue/compiler-core@3.4.3:
resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==}
dependencies:
'@babel/parser': 7.23.6
'@vue/shared': 3.4.3
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.0.2
dev: true
/@vue/compiler-dom@3.3.12:
resolution: {integrity: sha512-RdJU9oEYaoPKUdGXCy0l+i4clesdDeLmbvRlszoc9iagsnBnMmQtYfCPVQ5BHB6o7K4SCucDdJM2Dh3oXB0D6g==}
dependencies:
@ -4168,13 +4152,6 @@ packages:
'@vue/compiler-core': 3.4.13
'@vue/shared': 3.4.13
/@vue/compiler-dom@3.4.3:
resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==}
dependencies:
'@vue/compiler-core': 3.4.3
'@vue/shared': 3.4.3
dev: true
/@vue/compiler-sfc@3.3.12:
resolution: {integrity: sha512-yy5b9e7b79dsGbMmglCe/YnhCQgBkHO7Uf6JfjWPSf2/5XH+MKn18LhzhHyxbHdJgnA4lZCqtXzLaJz8Pd8lMw==}
dependencies:
@ -4219,12 +4196,6 @@ packages:
/@vue/devtools-api@6.5.1:
resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
/@vue/devtools-api@7.0.10:
resolution: {integrity: sha512-ahyPg7WfNChvFBBoXuksPWYetbfKQq+9s+1HFFtAW3ZT/KrHw+12K30OARscUVd5waOd8wSf8COdLUZMdV/3rw==}
dependencies:
'@vue/devtools-kit': 7.0.10
dev: true
/@vue/devtools-core@7.0.10(rollup@3.29.4)(vite@5.0.11):
resolution: {integrity: sha512-HBKK2Lh6byAxSDg9yCaUPpDJJxLRrwdbQYPUvd5pDZspHGDwj9XLPPzesGwTCQzN5gCxFDaTx1p76mTy+kYCJg==}
dependencies:
@ -4255,14 +4226,17 @@ packages:
mitt: 3.0.1
perfect-debounce: 1.0.0
speakingurl: 14.0.1
dev: false
/@vue/devtools-schema@7.0.10:
resolution: {integrity: sha512-0HSXzvxsW3M1MZVpUzoHD/jr+LGB4rtfpcBA5slalbUMy0bohDZ1xKUcGMNDcn/lE8HdzHDwrnByW8DgqG/EpA==}
dev: false
/@vue/devtools-shared@7.0.10:
resolution: {integrity: sha512-aZhyQLtmX5IQIHvCLk9fYaRY2PLDfIT1k4JjOM4/NGB45eZ0ebjyDhqZgkxmXEkVFLxKg4HtwYKLesxKmF/j5g==}
dependencies:
rfdc: 1.3.0
dev: false
/@vue/language-core@1.8.27(typescript@5.3.3):
resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==}
@ -4274,8 +4248,8 @@ packages:
dependencies:
'@volar/language-core': 1.11.1
'@volar/source-map': 1.11.1
'@vue/compiler-dom': 3.4.3
'@vue/shared': 3.4.3
'@vue/compiler-dom': 3.4.13
'@vue/shared': 3.4.13
computeds: 0.0.1
minimatch: 9.0.3
muggle-string: 0.3.1
@ -4328,10 +4302,6 @@ packages:
/@vue/shared@3.4.13:
resolution: {integrity: sha512-56crFKLPpzk85WXX1L1c0QzPOuoapWlPVys8eMG8kkRmqdMjWUqK8KpFdE2d7BQA4CEbXwyyHPq6MpFr8H9rcg==}
/@vue/shared@3.4.3:
resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==}
dev: true
/@vueuse/core@10.7.1(vue@3.4.13):
resolution: {integrity: sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==}
dependencies:
@ -4536,7 +4506,7 @@ packages:
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
engines: {node: '>= 14'}
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
dev: false
@ -5688,6 +5658,7 @@ packages:
dependencies:
ms: 2.1.2
supports-color: 5.5.0
dev: true
/debug@4.3.4(supports-color@8.1.1):
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
@ -5700,7 +5671,6 @@ packages:
dependencies:
ms: 2.1.2
supports-color: 8.1.1
dev: true
/decamelize@1.2.0:
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
@ -6190,7 +6160,7 @@ packages:
peerDependencies:
eslint: ^7.2.0 || ^8
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
doctrine: 3.0.0
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
@ -6215,7 +6185,7 @@ packages:
'@es-joy/jsdoccomment': 0.41.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
escape-string-regexp: 4.0.0
eslint: 8.56.0
esquery: 1.5.0
@ -6312,7 +6282,7 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.56.0
eslint-compat-utils: 0.1.2(eslint@8.56.0)
lodash: 4.17.21
@ -6409,7 +6379,7 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.56.0
eslint-compat-utils: 0.1.2(eslint@8.56.0)
lodash: 4.17.21
@ -6462,7 +6432,7 @@ packages:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
@ -7343,7 +7313,7 @@ packages:
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
dev: false
@ -7376,7 +7346,7 @@ packages:
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
dev: false
@ -8077,7 +8047,7 @@ packages:
dependencies:
chalk: 5.3.0
commander: 11.1.0
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
execa: 8.0.1
lilconfig: 3.0.0
listr2: 8.0.0
@ -8413,7 +8383,7 @@ packages:
/micromark@2.11.4:
resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
parse-entities: 2.0.0
transitivePeerDependencies:
- supports-color
@ -8490,6 +8460,7 @@ packages:
/mitt@3.0.1:
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
dev: false
/mkdist@1.4.0(typescript@5.3.3):
resolution: {integrity: sha512-LzzdzWDx6cWWPd8saIoO+kT5jnbijfeDaE6jZfmCYEi3YL2aJSyF23/tCFee/mDuh/ek1UQeSYdLeSa6oesdiw==}
@ -8962,6 +8933,7 @@ packages:
/perfect-debounce@1.0.0:
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
dev: false
/performance-now@2.1.0:
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
@ -10182,7 +10154,7 @@ packages:
/spdy-transport@3.0.0:
resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
detect-node: 2.1.0
hpack.js: 2.1.6
obuf: 1.1.2
@ -10196,7 +10168,7 @@ packages:
resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
engines: {node: '>=6.0.0'}
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
handle-thing: 2.0.1
http-deceiver: 1.2.7
select-hose: 2.0.0
@ -10208,6 +10180,7 @@ packages:
/speakingurl@14.0.1:
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
engines: {node: '>=0.10.0'}
dev: false
/split@0.3.3:
resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==}
@ -10515,7 +10488,7 @@ packages:
cosmiconfig: 9.0.0(typescript@5.3.3)
css-functions-list: 3.2.1
css-tree: 2.3.1
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
fast-glob: 3.3.2
fastest-levenshtein: 1.0.16
file-entry-cache: 8.0.0
@ -10580,7 +10553,6 @@ packages:
engines: {node: '>=10'}
dependencies:
has-flag: 4.0.0
dev: true
/supports-hyperlinks@3.0.0:
resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==}
@ -10805,7 +10777,7 @@ packages:
bundle-require: 4.0.2(esbuild@0.19.9)
cac: 6.7.14
chokidar: 3.5.3
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
esbuild: 0.19.9
execa: 5.1.1
globby: 11.1.0
@ -11145,7 +11117,7 @@ packages:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
chokidar: 3.5.3
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
fast-glob: 3.3.2
local-pkg: 0.4.3
magic-string: 0.30.5
@ -11312,7 +11284,7 @@ packages:
hasBin: true
dependencies:
cac: 6.7.14
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
pathe: 1.1.1
picocolors: 1.0.0
vite: 5.0.11(@types/node@20.11.0)(sass@1.69.7)
@ -11339,7 +11311,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0(rollup@2.79.1)
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
error-stack-parser-es: 0.1.1
fs-extra: 11.2.0
open: 9.1.0
@ -11363,7 +11335,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0(rollup@3.29.4)
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
error-stack-parser-es: 0.1.1
fs-extra: 11.2.0
open: 9.1.0
@ -11383,7 +11355,7 @@ packages:
workbox-build: ^7.0.0
workbox-window: ^7.0.0
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
fast-glob: 3.3.2
pretty-bytes: 6.1.1
vite: 5.0.11(@types/node@20.11.0)(sass@1.69.7)
@ -11440,7 +11412,7 @@ packages:
vue: ^3.2.4
vue-router: ^4.0.11
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
fast-glob: 3.3.2
vite: 5.0.11(@types/node@20.11.0)(sass@1.69.7)
vue: 3.4.13(typescript@5.3.3)
@ -11614,7 +11586,7 @@ packages:
acorn-walk: 8.3.1
cac: 6.7.14
chai: 4.3.10
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
execa: 8.0.1
local-pkg: 0.5.0
magic-string: 0.30.5
@ -11663,7 +11635,7 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4(supports-color@5.5.0)
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.56.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3