From 6d89a08cb76674f4d92f54218f8af5624bcf4c47 Mon Sep 17 00:00:00 2001 From: arianrhodsandlot Date: Sat, 30 Dec 2023 18:32:31 +0800 Subject: [PATCH 001/104] fix: print errors when importing an invalid dynamic route (#3201) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- src/node/config.ts | 3 +- src/node/plugin.ts | 6 +++- src/node/plugins/dynamicRoutesPlugin.ts | 38 ++++++++++++++++--------- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/node/config.ts b/src/node/config.ts index ee0e2e94..d4a76de6 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -104,7 +104,8 @@ export async function resolveConfig( const { pages, dynamicRoutes, rewrites } = await resolvePages( srcDir, - userConfig + userConfig, + logger ) const config: SiteConfig = { diff --git a/src/node/plugin.ts b/src/node/plugin.ts index c079dad6..0c3daddc 100644 --- a/src/node/plugin.ts +++ b/src/node/plugin.ts @@ -268,7 +268,11 @@ export async function createVitePressPlugin( if (file.endsWith('.md')) { Object.assign( siteConfig, - await resolvePages(siteConfig.srcDir, siteConfig.userConfig) + await resolvePages( + siteConfig.srcDir, + siteConfig.userConfig, + siteConfig.logger + ) ) } diff --git a/src/node/plugins/dynamicRoutesPlugin.ts b/src/node/plugins/dynamicRoutesPlugin.ts index e42e8c13..cf9576ae 100644 --- a/src/node/plugins/dynamicRoutesPlugin.ts +++ b/src/node/plugins/dynamicRoutesPlugin.ts @@ -1,6 +1,7 @@ import { loadConfigFromFile, normalizePath, + type Logger, type Plugin, type ViteDevServer } from 'vite' @@ -13,7 +14,11 @@ import { resolveRewrites } from './rewritesPlugin' export const dynamicRouteRE = /\[(\w+?)\]/g -export async function resolvePages(srcDir: string, userConfig: UserConfig) { +export async function resolvePages( + srcDir: string, + userConfig: UserConfig, + logger: Logger +) { // Important: fast-glob doesn't guarantee order of the returned files. // We must sort the pages so the input list to rollup is stable across // builds - otherwise different input order could result in different exports @@ -39,7 +44,11 @@ export async function resolvePages(srcDir: string, userConfig: UserConfig) { ;(dynamicRouteRE.test(file) ? dynamicRouteFiles : pages).push(file) }) - const dynamicRoutes = await resolveDynamicRoutes(srcDir, dynamicRouteFiles) + const dynamicRoutes = await resolveDynamicRoutes( + srcDir, + dynamicRouteFiles, + logger + ) pages.push(...dynamicRoutes.routes.map((r) => r.path)) const rewrites = resolveRewrites(pages, userConfig.rewrites) @@ -141,7 +150,7 @@ export const dynamicRoutesPlugin = async ( if (!/\.md$/.test(ctx.file)) { Object.assign( config, - await resolvePages(config.srcDir, config.userConfig) + await resolvePages(config.srcDir, config.userConfig, config.logger) ) } for (const id of mods) { @@ -154,7 +163,8 @@ export const dynamicRoutesPlugin = async ( export async function resolveDynamicRoutes( srcDir: string, - routes: string[] + routes: string[], + logger: Logger ): Promise { const pendingResolveRoutes: Promise[] = [] const routeFileToModulesMap: Record> = {} @@ -170,7 +180,7 @@ export async function resolveDynamicRoutes( const pathsFile = paths.find((p) => fs.existsSync(p)) if (pathsFile == null) { - console.warn( + logger.warn( c.yellow( `Missing paths file for dynamic route ${route}: ` + `a corresponding ${paths[0]} (or .ts/.mjs/.mts) file is needed.` @@ -183,15 +193,15 @@ export async function resolveDynamicRoutes( let mod = routeModuleCache.get(pathsFile) if (!mod) { try { - mod = (await loadConfigFromFile({} as any, pathsFile)) as RouteModule + mod = (await loadConfigFromFile( + {} as any, + pathsFile, + undefined, + 'silent' + )) as RouteModule routeModuleCache.set(pathsFile, mod) - } catch (e) { - console.warn( - c.yellow( - `Invalid paths file export in ${pathsFile}. ` + - `Expects default export of an object with a "paths" property.` - ) - ) + } catch (e: any) { + logger.warn(`${c.yellow(`Failed to load ${pathsFile}:`)}\n${e.stack}`) continue } } @@ -210,7 +220,7 @@ export async function resolveDynamicRoutes( const loader = mod!.config.paths if (!loader) { - console.warn( + logger.warn( c.yellow( `Invalid paths file export in ${pathsFile}. ` + `Missing "paths" property from default export.` From bb64ecba3db9ba8ffa34d17700fdd1d8c28767ab Mon Sep 17 00:00:00 2001 From: oliv37 Date: Sat, 30 Dec 2023 11:41:37 +0100 Subject: [PATCH 002/104] docs: dynamic site config (#3266) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- docs/reference/site-config.md | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/docs/reference/site-config.md b/docs/reference/site-config.md index b5e124d2..1cf9d726 100644 --- a/docs/reference/site-config.md +++ b/docs/reference/site-config.md @@ -24,6 +24,62 @@ export default { } ``` +:::details Dynamic (Async) Config + +If you need to dynamically generate the config, you can also default export a function. For example: + +```ts +import { defineConfig } from 'vitepress' + +export default async () => defineConfig({ + const posts = await (await fetch('https://my-cms.com/blog-posts')).json() + + return { + // app level config options + lang: 'en-US', + title: 'VitePress', + description: 'Vite & Vue powered static site generator.', + + // theme level config options + themeConfig: { + sidebar: [ + ...posts.map((post) => ({ + text: post.name, + link: `/posts/${post.name}` + })) + ] + } + } +}) +``` + +You can also use top-level `await`. For example: + +```ts +import { defineConfig } from 'vitepress' + +const posts = await (await fetch('https://my-cms.com/blog-posts')).json() + +export default defineConfig({ + // app level config options + lang: 'en-US', + title: 'VitePress', + description: 'Vite & Vue powered static site generator.', + + // theme level config options + themeConfig: { + sidebar: [ + ...posts.map((post) => ({ + text: post.name, + link: `/posts/${post.name}` + })) + ] + } +}) +``` + +::: + ### Config Intellisense Using the `defineConfig` helper will provide TypeScript-powered intellisense for config options. Assuming your IDE supports it, this should work in both JavaScript and TypeScript. From 50c9758d3fa1b60aad5399a0db890644ac44a522 Mon Sep 17 00:00:00 2001 From: Cesar Gomez <65884507+mrcego@users.noreply.github.com> Date: Sat, 30 Dec 2023 07:48:07 -0500 Subject: [PATCH 003/104] fix(theme/i18n): support customizing dark mode switch titles (#3311) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- docs/reference/default-theme-config.md | 14 ++++++++++++++ .../components/VPSwitchAppearance.vue | 6 ++++-- types/default-theme.d.ts | 10 ++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/docs/reference/default-theme-config.md b/docs/reference/default-theme-config.md index 8402dc08..fb6d30b5 100644 --- a/docs/reference/default-theme-config.md +++ b/docs/reference/default-theme-config.md @@ -406,6 +406,20 @@ export interface DocFooter { Can be used to customize the dark mode switch label. This label is only displayed in the mobile view. +## lightModeSwitchTitle + +- Type: `string` +- Default: `Switch to light theme` + +Can be used to customize the light mode switch title that appears on hovering. + +## darkModeSwitchTitle + +- Type: `string` +- Default: `Switch to dark theme` + +Can be used to customize the dark mode switch title that appears on hovering. + ## sidebarMenuLabel - Type: `string` diff --git a/src/client/theme-default/components/VPSwitchAppearance.vue b/src/client/theme-default/components/VPSwitchAppearance.vue index 16828e7e..f63d1ce4 100644 --- a/src/client/theme-default/components/VPSwitchAppearance.vue +++ b/src/client/theme-default/components/VPSwitchAppearance.vue @@ -5,14 +5,16 @@ import VPSwitch from './VPSwitch.vue' import VPIconMoon from './icons/VPIconMoon.vue' import VPIconSun from './icons/VPIconSun.vue' -const { isDark } = useData() +const { isDark, theme } = useData() const toggleAppearance = inject('toggle-appearance', () => { isDark.value = !isDark.value }) const switchTitle = computed(() => { - return isDark.value ? 'Switch to light theme' : 'Switch to dark theme' + return isDark.value + ? theme.value.lightModeSwitchTitle || 'Switch to light theme' + : theme.value.darkModeSwitchTitle || 'Switch to dark theme' }) diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts index c89551b0..157faa00 100644 --- a/types/default-theme.d.ts +++ b/types/default-theme.d.ts @@ -96,6 +96,16 @@ export namespace DefaultTheme { */ darkModeSwitchLabel?: string + /** + * @default 'Switch to light theme' + */ + lightModeSwitchTitle?: string + + /** + * @default 'Switch to dark theme' + */ + darkModeSwitchTitle?: string + /** * @default 'Menu' */ From 203446d69193483a46e1082bba5fbad0e35966fb Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Sat, 30 Dec 2023 21:02:22 +0800 Subject: [PATCH 004/104] feat: support dir in frontmatter (#3353) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- src/client/app/data.ts | 2 +- src/client/theme-default/styles/base.css | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/client/app/data.ts b/src/client/app/data.ts index 77cc80d3..ccca8123 100644 --- a/src/client/app/data.ts +++ b/src/client/app/data.ts @@ -89,7 +89,7 @@ export function initData(route: Route): VitePressData { frontmatter: computed(() => route.data.frontmatter), params: computed(() => route.data.params), lang: computed(() => site.value.lang), - dir: computed(() => site.value.dir), + dir: computed(() => route.data.frontmatter.dir || site.value.dir || 'ltr'), localeIndex: computed(() => site.value.localeIndex || 'root'), title: computed(() => { return createTitle(site.value, route.data) diff --git a/src/client/theme-default/styles/base.css b/src/client/theme-default/styles/base.css index 5fb3a3cc..af2ed98a 100644 --- a/src/client/theme-default/styles/base.css +++ b/src/client/theme-default/styles/base.css @@ -39,7 +39,6 @@ body { font-weight: 400; color: var(--vp-c-text-1); background-color: var(--vp-c-bg); - direction: ltr; font-synthesis: style; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; From 55be3f14d79eb578c9aa2e3bc7a90205c910005d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=83=BD=E5=AE=81?= Date: Sat, 30 Dec 2023 21:26:47 +0800 Subject: [PATCH 005/104] feat: support custom image lazy loading (#3346) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- __tests__/e2e/.vitepress/config.ts | 5 +++++ __tests__/e2e/markdown-extensions/index.md | 4 ++++ .../markdown-extensions.test.ts | 9 ++++++++- docs/guide/markdown.md | 15 +++++++++++++++ src/node/markdown/markdown.ts | 5 +++-- src/node/markdown/plugins/image.ts | 13 ++++++++++++- 6 files changed, 47 insertions(+), 4 deletions(-) diff --git a/__tests__/e2e/.vitepress/config.ts b/__tests__/e2e/.vitepress/config.ts index 84fc64f2..e4e503a6 100644 --- a/__tests__/e2e/.vitepress/config.ts +++ b/__tests__/e2e/.vitepress/config.ts @@ -86,6 +86,11 @@ const sidebar: DefaultTheme.Config['sidebar'] = { export default defineConfig({ title: 'Example', description: 'An example app using VitePress.', + markdown: { + image: { + lazyLoading: true + } + }, themeConfig: { sidebar, search: { diff --git a/__tests__/e2e/markdown-extensions/index.md b/__tests__/e2e/markdown-extensions/index.md index 36d6c028..47246c18 100644 --- a/__tests__/e2e/markdown-extensions/index.md +++ b/__tests__/e2e/markdown-extensions/index.md @@ -196,3 +196,7 @@ export default config ## Markdown File Inclusion with Range without End + +## Image Lazy Loading + +![vitepress logo](/vitepress.png) \ No newline at end of file diff --git a/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts b/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts index 42a89891..23b8b1a0 100644 --- a/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts +++ b/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts @@ -65,7 +65,7 @@ describe('Table of Contents', () => { test('render toc', async () => { const items = page.locator('#table-of-contents + nav ul li') const count = await items.count() - expect(count).toBe(35) + expect(count).toBe(36) }) }) @@ -280,3 +280,10 @@ describe('Markdown File Inclusion', () => { expect(await p.textContent()).not.toContain('title') }) }) + +describe('Image Lazy Loading', () => { + test('render loading="lazy" in the tag', async () => { + const img = page.locator('#image-lazy-loading + p img') + expect(await img.getAttribute('loading')).toBe('lazy') + }) +}) diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md index 8cd9d4ed..ef3cc0e8 100644 --- a/docs/guide/markdown.md +++ b/docs/guide/markdown.md @@ -847,6 +847,21 @@ $$ x = {-b \pm \sqrt{b^2-4ac} \over 2a} $$ | $\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} = \vec{\mathbf{0}}$ | curl of $\vec{\mathbf{E}}$ is proportional to the rate of change of $\vec{\mathbf{B}}$ | | $\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} = \frac{4\pi}{c}\vec{\mathbf{j}} \nabla \cdot \vec{\mathbf{E}} = 4 \pi \rho$ | _wha?_ | +## Image Lazy Loading + +You can enable lazy loading for each image added via markdown by setting `lazyLoading` to `true` in your config file: + +```js +export default { + markdown: { + image: { + // image lazy loading is disabled by default + lazyLoading: true + } + } +} +``` + ## Advanced Configuration VitePress uses [markdown-it](https://github.com/markdown-it/markdown-it) as the Markdown renderer. A lot of the extensions above are implemented via custom plugins. You can further customize the `markdown-it` instance using the `markdown` option in `.vitepress/config.js`: diff --git a/src/node/markdown/markdown.ts b/src/node/markdown/markdown.ts index f93fd837..e64a1bde 100644 --- a/src/node/markdown/markdown.ts +++ b/src/node/markdown/markdown.ts @@ -23,7 +23,7 @@ import type { Logger } from 'vite' import { containerPlugin, type ContainerOptions } from './plugins/containers' import { highlight } from './plugins/highlight' import { highlightLinePlugin } from './plugins/highlightLines' -import { imagePlugin } from './plugins/image' +import { imagePlugin, type Options as ImageOptions } from './plugins/image' import { lineNumberPlugin } from './plugins/lineNumbers' import { linkPlugin } from './plugins/link' import { preWrapperPlugin } from './plugins/preWrapper' @@ -166,6 +166,7 @@ export interface MarkdownOptions extends MarkdownIt.Options { * @see https://vitepress.dev/guide/markdown#math-equations */ math?: boolean | any + image?: ImageOptions } export type MarkdownRenderer = MarkdownIt @@ -198,7 +199,7 @@ export const createMarkdownRenderer = async ( .use(preWrapperPlugin, { hasSingleTheme }) .use(snippetPlugin, srcDir) .use(containerPlugin, { hasSingleTheme }, options.container) - .use(imagePlugin) + .use(imagePlugin, options.image) .use( linkPlugin, { target: '_blank', rel: 'noreferrer', ...options.externalLinks }, diff --git a/src/node/markdown/plugins/image.ts b/src/node/markdown/plugins/image.ts index 06d1a360..d6f7eb5f 100644 --- a/src/node/markdown/plugins/image.ts +++ b/src/node/markdown/plugins/image.ts @@ -3,7 +3,15 @@ import type MarkdownIt from 'markdown-it' import { EXTERNAL_URL_RE } from '../../shared' -export const imagePlugin = (md: MarkdownIt) => { +export interface Options { + /** + * Support native lazy loading for the `` tag. + * @default false + */ + lazyLoading?: boolean +} + +export const imagePlugin = (md: MarkdownIt, { lazyLoading }: Options = {}) => { const imageRule = md.renderer.rules.image! md.renderer.rules.image = (tokens, idx, options, env, self) => { const token = tokens[idx] @@ -12,6 +20,9 @@ export const imagePlugin = (md: MarkdownIt) => { if (!/^\.?\//.test(url)) url = './' + url token.attrSet('src', decodeURIComponent(url)) } + if (lazyLoading) { + token.attrSet('loading', 'lazy') + } return imageRule(tokens, idx, options, env, self) } } From 621254300d99441afd6f8121ef6d45e2649247de Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Sat, 30 Dec 2023 20:45:43 +0530 Subject: [PATCH 006/104] chore: bump deps (#3390) --- package.json | 28 +- pnpm-lock.yaml | 592 ++++++++++++------------- src/node/markdown/markdown.ts | 20 +- src/node/markdown/plugins/highlight.ts | 25 +- 4 files changed, 319 insertions(+), 346 deletions(-) diff --git a/package.json b/package.json index bfc8ec25..a812adf1 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0-rc.33", "description": "Vite & Vue powered static site generator", "type": "module", - "packageManager": "pnpm@8.12.1", + "packageManager": "pnpm@8.13.1", "main": "dist/node/index.js", "types": "types/index.d.ts", "exports": { @@ -93,18 +93,19 @@ "@docsearch/css": "^3.5.2", "@docsearch/js": "^3.5.2", "@types/markdown-it": "^13.0.7", - "@vitejs/plugin-vue": "^5.0.0", + "@vitejs/plugin-vue": "^5.0.2", "@vue/devtools-api": "^6.5.1", - "@vueuse/core": "^10.7.0", - "@vueuse/integrations": "^10.7.0", + "@vueuse/core": "^10.7.1", + "@vueuse/integrations": "^10.7.1", "focus-trap": "^7.5.4", "mark.js": "8.11.1", "minisearch": "^6.3.0", "mrmime": "^2.0.0", - "shikiji": "^0.9.12", - "shikiji-transformers": "^0.9.12", + "shikiji": "^0.9.15", + "shikiji-core": "^0.9.15", + "shikiji-transformers": "^0.9.15", "vite": "^5.0.10", - "vue": "^3.4.0-rc.2" + "vue": "^3.4.3" }, "peerDependencies": { "markdown-it-mathjax3": "^4.3.2", @@ -144,16 +145,16 @@ "@types/markdown-it-emoji": "^2.0.4", "@types/micromatch": "^4.0.6", "@types/minimist": "^1.2.5", - "@types/node": "^20.10.5", + "@types/node": "^20.10.6", "@types/postcss-prefix-selector": "^1.16.3", "@types/prompts": "^2.4.9", - "@vue/shared": "^3.3.13", + "@vue/shared": "^3.4.3", "chokidar": "^3.5.3", "compression": "^1.7.4", "conventional-changelog-cli": "^4.1.0", "cross-spawn": "^7.0.3", "debug": "^4.3.4", - "esbuild": "^0.19.10", + "esbuild": "^0.19.11", "escape-html": "^1.0.3", "execa": "^8.0.1", "fast-glob": "^3.3.2", @@ -174,7 +175,7 @@ "nanoid": "^5.0.4", "npm-run-all": "^4.1.5", "ora": "^8.0.1", - "p-map": "^7.0.0", + "p-map": "^7.0.1", "path-to-regexp": "^6.2.1", "picocolors": "^1.0.0", "pkg-dir": "^8.0.0", @@ -185,18 +186,17 @@ "prompts": "^2.4.2", "punycode": "^2.3.1", "rimraf": "^5.0.5", - "rollup": "^4.9.1", + "rollup": "^4.9.2", "rollup-plugin-dts": "^6.1.0", "rollup-plugin-esbuild": "^6.1.0", "semver": "^7.5.4", - "shikiji-core": "^0.9.12", "simple-git-hooks": "^2.9.0", "sirv": "^2.0.4", "sitemap": "^7.1.1", "supports-color": "^9.4.0", "typescript": "^5.3.3", "vitest": "^1.1.0", - "vue-tsc": "^1.8.26", + "vue-tsc": "^1.8.27", "wait-on": "^7.2.0" }, "simple-git-hooks": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba4c0aaf..13c8f4d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,17 +21,17 @@ importers: specifier: ^13.0.7 version: 13.0.7 '@vitejs/plugin-vue': - specifier: ^5.0.0 - version: 5.0.0(vite@5.0.10)(vue@3.4.0-rc.2) + specifier: ^5.0.2 + version: 5.0.2(vite@5.0.10)(vue@3.4.3) '@vue/devtools-api': specifier: ^6.5.1 version: 6.5.1 '@vueuse/core': - specifier: ^10.7.0 - version: 10.7.0(vue@3.4.0-rc.2) + specifier: ^10.7.1 + version: 10.7.1(vue@3.4.3) '@vueuse/integrations': - specifier: ^10.7.0 - version: 10.7.0(focus-trap@7.5.4)(vue@3.4.0-rc.2) + specifier: ^10.7.1 + version: 10.7.1(focus-trap@7.5.4)(vue@3.4.3) focus-trap: specifier: ^7.5.4 version: 7.5.4 @@ -45,17 +45,20 @@ importers: specifier: ^2.0.0 version: 2.0.0 shikiji: - specifier: ^0.9.12 - version: 0.9.12 + specifier: ^0.9.15 + version: 0.9.15 + shikiji-core: + specifier: ^0.9.15 + version: 0.9.15 shikiji-transformers: - specifier: ^0.9.12 - version: 0.9.12 + specifier: ^0.9.15 + version: 0.9.15 vite: specifier: ^5.0.10 - version: 5.0.10(@types/node@20.10.5) + version: 5.0.10(@types/node@20.10.6) vue: - specifier: ^3.4.0-rc.2 - version: 3.4.0-rc.2(typescript@5.3.3) + specifier: ^3.4.3 + version: 3.4.3(typescript@5.3.3) devDependencies: '@clack/prompts': specifier: ^0.7.0 @@ -83,19 +86,19 @@ importers: version: 2.0.0 '@rollup/plugin-alias': specifier: ^5.1.0 - version: 5.1.0(rollup@4.9.1) + version: 5.1.0(rollup@4.9.2) '@rollup/plugin-commonjs': specifier: ^25.0.7 - version: 25.0.7(rollup@4.9.1) + version: 25.0.7(rollup@4.9.2) '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@4.9.1) + version: 6.1.0(rollup@4.9.2) '@rollup/plugin-node-resolve': specifier: ^15.2.3 - version: 15.2.3(rollup@4.9.1) + version: 15.2.3(rollup@4.9.2) '@rollup/plugin-replace': specifier: ^5.0.5 - version: 5.0.5(rollup@4.9.1) + version: 5.0.5(rollup@4.9.2) '@types/compression': specifier: ^1.7.5 version: 1.7.5 @@ -133,8 +136,8 @@ importers: specifier: ^1.2.5 version: 1.2.5 '@types/node': - specifier: ^20.10.5 - version: 20.10.5 + specifier: ^20.10.6 + version: 20.10.6 '@types/postcss-prefix-selector': specifier: ^1.16.3 version: 1.16.3 @@ -142,8 +145,8 @@ importers: specifier: ^2.4.9 version: 2.4.9 '@vue/shared': - specifier: ^3.3.13 - version: 3.3.13 + specifier: ^3.4.3 + version: 3.4.3 chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -160,8 +163,8 @@ importers: specifier: ^4.3.4 version: 4.3.4(supports-color@9.4.0) esbuild: - specifier: ^0.19.10 - version: 0.19.10 + specifier: ^0.19.11 + version: 0.19.11 escape-html: specifier: ^1.0.3 version: 1.0.3 @@ -223,8 +226,8 @@ importers: specifier: ^8.0.1 version: 8.0.1 p-map: - specifier: ^7.0.0 - version: 7.0.0 + specifier: ^7.0.1 + version: 7.0.1 path-to-regexp: specifier: ^6.2.1 version: 6.2.1 @@ -256,20 +259,17 @@ importers: specifier: ^5.0.5 version: 5.0.5 rollup: - specifier: ^4.9.1 - version: 4.9.1 + specifier: ^4.9.2 + version: 4.9.2 rollup-plugin-dts: specifier: ^6.1.0 - version: 6.1.0(rollup@4.9.1)(typescript@5.3.3) + version: 6.1.0(rollup@4.9.2)(typescript@5.3.3) rollup-plugin-esbuild: specifier: ^6.1.0 - version: 6.1.0(esbuild@0.19.10)(rollup@4.9.1)(supports-color@9.4.0) + version: 6.1.0(esbuild@0.19.11)(rollup@4.9.2)(supports-color@9.4.0) semver: specifier: ^7.5.4 version: 7.5.4 - shikiji-core: - specifier: ^0.9.12 - version: 0.9.12 simple-git-hooks: specifier: ^2.9.0 version: 2.9.0 @@ -287,10 +287,10 @@ importers: version: 5.3.3 vitest: specifier: ^1.1.0 - version: 1.1.0(@types/node@20.10.5)(supports-color@9.4.0) + version: 1.1.0(@types/node@20.10.6)(supports-color@9.4.0) vue-tsc: - specifier: ^1.8.26 - version: 1.8.26(typescript@5.3.3) + specifier: ^1.8.27 + version: 1.8.27(typescript@5.3.3) wait-on: specifier: ^7.2.0 version: 7.2.0(debug@4.3.4) @@ -558,184 +558,184 @@ packages: - '@algolia/client-search' dev: false - /@esbuild/aix-ppc64@0.19.10: - resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] requiresBuild: true optional: true - /@esbuild/android-arm64@0.19.10: - resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@esbuild/android-arm@0.19.10: - resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true - /@esbuild/android-x64@0.19.10: - resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.19.10: - resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64@0.19.10: - resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.19.10: - resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.19.10: - resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm64@0.19.10: - resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm@0.19.10: - resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ia32@0.19.10: - resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-loong64@0.19.10: - resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.19.10: - resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.19.10: - resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.19.10: - resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-s390x@0.19.10: - resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.19.10: - resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.19.10: - resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.19.10: - resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.19.10: - resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64@0.19.10: - resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-ia32@0.19.10: - resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.19.10: - resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -874,7 +874,7 @@ packages: resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} dev: true - /@rollup/plugin-alias@5.1.0(rollup@4.9.1): + /@rollup/plugin-alias@5.1.0(rollup@4.9.2): resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -883,11 +883,11 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.1 + rollup: 4.9.2 slash: 4.0.0 dev: true - /@rollup/plugin-commonjs@25.0.7(rollup@4.9.1): + /@rollup/plugin-commonjs@25.0.7(rollup@4.9.2): resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -896,16 +896,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.2) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.30.5 - rollup: 4.9.1 + rollup: 4.9.2 dev: true - /@rollup/plugin-json@6.1.0(rollup@4.9.1): + /@rollup/plugin-json@6.1.0(rollup@4.9.2): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -914,11 +914,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.1) - rollup: 4.9.1 + '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + rollup: 4.9.2 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.1): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.2): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -927,16 +927,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.1 + rollup: 4.9.2 dev: true - /@rollup/plugin-replace@5.0.5(rollup@4.9.1): + /@rollup/plugin-replace@5.0.5(rollup@4.9.2): resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -945,12 +945,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.2) magic-string: 0.30.5 - rollup: 4.9.1 + rollup: 4.9.2 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.1): + /@rollup/pluginutils@5.1.0(rollup@4.9.2): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -962,95 +962,95 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.1 + rollup: 4.9.2 dev: true - /@rollup/rollup-android-arm-eabi@4.9.1: - resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} + /@rollup/rollup-android-arm-eabi@4.9.2: + resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.9.1: - resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} + /@rollup/rollup-android-arm64@4.9.2: + resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.9.1: - resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} + /@rollup/rollup-darwin-arm64@4.9.2: + resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.9.1: - resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} + /@rollup/rollup-darwin-x64@4.9.2: + resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.1: - resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.2: + resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.1: - resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} + /@rollup/rollup-linux-arm64-gnu@4.9.2: + resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.1: - resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} + /@rollup/rollup-linux-arm64-musl@4.9.2: + resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.1: - resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.2: + resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.1: - resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} + /@rollup/rollup-linux-x64-gnu@4.9.2: + resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.1: - resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} + /@rollup/rollup-linux-x64-musl@4.9.2: + resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.1: - resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} + /@rollup/rollup-win32-arm64-msvc@4.9.2: + resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.1: - resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} + /@rollup/rollup-win32-ia32-msvc@4.9.2: + resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.1: - resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} + /@rollup/rollup-win32-x64-msvc@4.9.2: + resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} cpu: [x64] os: [win32] requiresBuild: true @@ -1078,7 +1078,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/braces@3.0.4: @@ -1094,13 +1094,13 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/cross-spawn@6.0.6: resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/debug@4.1.12: @@ -1120,7 +1120,7 @@ packages: /@types/express-serve-static-core@4.17.41: resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -1139,7 +1139,7 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/http-errors@2.0.4: @@ -1155,7 +1155,7 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/linkify-it@3.0.5: @@ -1230,8 +1230,8 @@ packages: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true - /@types/node@20.10.5: - resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + /@types/node@20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} dependencies: undici-types: 5.26.5 @@ -1248,7 +1248,7 @@ packages: /@types/prompts@2.4.9: resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 kleur: 3.0.3 dev: true @@ -1267,14 +1267,14 @@ packages: /@types/sax@1.2.7: resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/serve-static@1.15.5: @@ -1282,7 +1282,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/sizzle@2.3.8: @@ -1293,15 +1293,15 @@ packages: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: false - /@vitejs/plugin-vue@5.0.0(vite@5.0.10)(vue@3.4.0-rc.2): - resolution: {integrity: sha512-7x5e8X4J1Wi4NxudGjJBd2OFerAi/0nzF80ojCzvfj347WVr0YSn82C8BSsgwSHzlk9Kw5xnZfj0/7RLnNwP5w==} + /@vitejs/plugin-vue@5.0.2(vite@5.0.10)(vue@3.4.3): + resolution: {integrity: sha512-kEjJHrLb5ePBvjD0SPZwJlw1QTRcjjCA9sB5VyfonoXVBxTS7TMnqL6EkLt1Eu61RDeiuZ/WN9Hf6PxXhPI2uA==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.0.10(@types/node@20.10.5) - vue: 3.4.0-rc.2(typescript@5.3.3) + vite: 5.0.10(@types/node@20.10.6) + vue: 3.4.3(typescript@5.3.3) dev: false /@vitest/expect@1.1.0: @@ -1361,66 +1361,48 @@ packages: path-browserify: 1.0.1 dev: true - /@vue/compiler-core@3.3.13: - resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==} - dependencies: - '@babel/parser': 7.23.6 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - source-map-js: 1.0.2 - dev: true - - /@vue/compiler-core@3.4.0-rc.2: - resolution: {integrity: sha512-UMcGc7JUJyOA/HR3PoGewcFSJK8oQ3OQc7yLsCa4K9HvvL8A7/GVcuVIgP0HpSoEI1vPi2XzyFzt+Z87B+0trw==} + /@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.0-rc.2 + '@vue/shared': 3.4.3 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 - dev: false - /@vue/compiler-dom@3.3.13: - resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==} + /@vue/compiler-dom@3.4.3: + resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==} dependencies: - '@vue/compiler-core': 3.3.13 - '@vue/shared': 3.3.13 - dev: true - - /@vue/compiler-dom@3.4.0-rc.2: - resolution: {integrity: sha512-9a2YlLtxbP9cIJBNesiebhYorTlApT3zCwQGbeLdwbvqZKAUTWaNlnGdoZoFi1FFlfMvGF2f+GNjGXgDtKj9jQ==} - dependencies: - '@vue/compiler-core': 3.4.0-rc.2 - '@vue/shared': 3.4.0-rc.2 - dev: false + '@vue/compiler-core': 3.4.3 + '@vue/shared': 3.4.3 - /@vue/compiler-sfc@3.4.0-rc.2: - resolution: {integrity: sha512-ZKUWH4jMxyGCVpVW/7r4lmnLoMOcjFHlX+RGGarozeaH8wIap/IN1v1WM6h2BnY+yhTV5gykg7EhhSRLyX9rpA==} + /@vue/compiler-sfc@3.4.3: + resolution: {integrity: sha512-NuJqb5is9I4uzv316VRUDYgIlPZCG8D+ARt5P4t5UDShIHKL25J3TGZAUryY/Aiy0DsY7srJnZL5ryB6DD63Zw==} dependencies: '@babel/parser': 7.23.6 - '@vue/compiler-core': 3.4.0-rc.2 - '@vue/compiler-dom': 3.4.0-rc.2 - '@vue/compiler-ssr': 3.4.0-rc.2 - '@vue/shared': 3.4.0-rc.2 + '@vue/compiler-core': 3.4.3 + '@vue/compiler-dom': 3.4.3 + '@vue/compiler-ssr': 3.4.3 + '@vue/shared': 3.4.3 estree-walker: 2.0.2 magic-string: 0.30.5 postcss: 8.4.32 source-map-js: 1.0.2 dev: false - /@vue/compiler-ssr@3.4.0-rc.2: - resolution: {integrity: sha512-+XvAn6TKYJ+Y2xsvjMhE0auC31/i1TVPrkdoXKLMXYAK0VvS6EPhtVN2ii9A2oP1CLsFa/VQErTzXtmnsAwuPA==} + /@vue/compiler-ssr@3.4.3: + resolution: {integrity: sha512-wnYQtMBkeFSxgSSQbYGQeXPhQacQiog2c6AlvMldQH6DB+gSXK/0F6DVXAJfEiuBSgBhUc8dwrrG5JQcqwalsA==} dependencies: - '@vue/compiler-dom': 3.4.0-rc.2 - '@vue/shared': 3.4.0-rc.2 + '@vue/compiler-dom': 3.4.3 + '@vue/shared': 3.4.3 dev: false /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: false - /@vue/language-core@1.8.26(typescript@5.3.3): - resolution: {integrity: sha512-9cmza/Y2YTiOnKZ0Mi9zsNn7Irw+aKirP+5LLWVSNaL3fjKJjW1cD3HGBckasY2RuVh4YycvdA9/Q6EBpVd/7Q==} + /@vue/language-core@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1429,8 +1411,8 @@ packages: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.3.13 - '@vue/shared': 3.3.13 + '@vue/compiler-dom': 3.4.3 + '@vue/shared': 3.4.3 computeds: 0.0.1 minimatch: 9.0.3 muggle-string: 0.3.1 @@ -1439,59 +1421,54 @@ packages: vue-template-compiler: 2.7.16 dev: true - /@vue/reactivity@3.4.0-rc.2: - resolution: {integrity: sha512-Ls8agGUZGz+T30KfP0euW12lbRQfgm/gjKTp6oyArEXS6SD3XnQ718K6fmtVjL3DlfM0UI1+QpL49WcDdN35qg==} + /@vue/reactivity@3.4.3: + resolution: {integrity: sha512-q5f9HLDU+5aBKizXHAx0w4whkIANs1Muiq9R5YXm0HtorSlflqv9u/ohaMxuuhHWCji4xqpQ1eL04WvmAmGnFg==} dependencies: - '@vue/shared': 3.4.0-rc.2 + '@vue/shared': 3.4.3 dev: false - /@vue/runtime-core@3.4.0-rc.2: - resolution: {integrity: sha512-dE0sP7PiBLrKxGk/F+bdDrTUCg04o32KrZo02mnSUWnlBPjg9ymHB7t65/U4Cru4yG81Wpy9U4beIDzeK1YMWw==} + /@vue/runtime-core@3.4.3: + resolution: {integrity: sha512-C1r6QhB1qY7D591RCSFhMULyzL9CuyrGc+3PpB0h7dU4Qqw6GNyo4BNFjHZVvsWncrUlKX3DIKg0Y7rNNr06NQ==} dependencies: - '@vue/reactivity': 3.4.0-rc.2 - '@vue/shared': 3.4.0-rc.2 + '@vue/reactivity': 3.4.3 + '@vue/shared': 3.4.3 dev: false - /@vue/runtime-dom@3.4.0-rc.2: - resolution: {integrity: sha512-gsyLBJeMWh5wg1MqnlDy5/0uDMrnJGxuLxEL+rAEc/OlTFX5woSHwjoypE/E7oBwO4z/nETRSzY/ph+Zqh/h9Q==} + /@vue/runtime-dom@3.4.3: + resolution: {integrity: sha512-wrsprg7An5Ec+EhPngWdPuzkp0BEUxAKaQtN9dPU/iZctPyD9aaXmVtehPJerdQxQale6gEnhpnfywNw3zOv2A==} dependencies: - '@vue/runtime-core': 3.4.0-rc.2 - '@vue/shared': 3.4.0-rc.2 + '@vue/runtime-core': 3.4.3 + '@vue/shared': 3.4.3 csstype: 3.1.3 dev: false - /@vue/server-renderer@3.4.0-rc.2(vue@3.4.0-rc.2): - resolution: {integrity: sha512-5+9/+8K3bPAIev1S49T1gw+IhelWUl1p6Ypj+yb4GHCpsRlB7FATNF7bGnQ10wAlrVgjfuG+0m4GOzqOPhrncQ==} + /@vue/server-renderer@3.4.3(vue@3.4.3): + resolution: {integrity: sha512-BUxt8oVGMKKsqSkM1uU3d3Houyfy4WAc2SpSQRebNd+XJGATVkW/rO129jkyL+kpB/2VRKzE63zwf5RtJ3XuZw==} peerDependencies: - vue: 3.4.0-rc.2 + vue: 3.4.3 dependencies: - '@vue/compiler-ssr': 3.4.0-rc.2 - '@vue/shared': 3.4.0-rc.2 - vue: 3.4.0-rc.2(typescript@5.3.3) + '@vue/compiler-ssr': 3.4.3 + '@vue/shared': 3.4.3 + vue: 3.4.3(typescript@5.3.3) dev: false - /@vue/shared@3.3.13: - resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} - dev: true - - /@vue/shared@3.4.0-rc.2: - resolution: {integrity: sha512-ZynnK2vWLBcCEdMsyHUWIzbqhRjnTSv/eolFO+okzf5LLQqlasi/7qeo4mYzGhyPvGb0XltxCZmzTtTcJtlxkw==} - dev: false + /@vue/shared@3.4.3: + resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} - /@vueuse/core@10.7.0(vue@3.4.0-rc.2): - resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==} + /@vueuse/core@10.7.1(vue@3.4.3): + resolution: {integrity: sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==} dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.7.0 - '@vueuse/shared': 10.7.0(vue@3.4.0-rc.2) - vue-demi: 0.14.6(vue@3.4.0-rc.2) + '@vueuse/metadata': 10.7.1 + '@vueuse/shared': 10.7.1(vue@3.4.3) + vue-demi: 0.14.6(vue@3.4.3) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/integrations@10.7.0(focus-trap@7.5.4)(vue@3.4.0-rc.2): - resolution: {integrity: sha512-rxiMYgS+91n93qXpHZF9NbHhppWY6IJyVTDxt4acyChL0zZVx7P8FAAfpF1qVK8e4wfjerhpEiMJ0IZ1GWUZ2A==} + /@vueuse/integrations@10.7.1(focus-trap@7.5.4)(vue@3.4.3): + resolution: {integrity: sha512-cKo5LEeKVHdBRBtMTOrDPdR0YNtrmN9IBfdcnY2P3m5LHVrsD0xiHUtAH1WKjHQRIErZG6rJUa6GA4tWZt89Og==} peerDependencies: async-validator: '*' axios: '*' @@ -1531,23 +1508,23 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.7.0(vue@3.4.0-rc.2) - '@vueuse/shared': 10.7.0(vue@3.4.0-rc.2) + '@vueuse/core': 10.7.1(vue@3.4.3) + '@vueuse/shared': 10.7.1(vue@3.4.3) focus-trap: 7.5.4 - vue-demi: 0.14.6(vue@3.4.0-rc.2) + vue-demi: 0.14.6(vue@3.4.3) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@vueuse/metadata@10.7.0: - resolution: {integrity: sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA==} + /@vueuse/metadata@10.7.1: + resolution: {integrity: sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==} dev: false - /@vueuse/shared@10.7.0(vue@3.4.0-rc.2): - resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==} + /@vueuse/shared@10.7.1(vue@3.4.3): + resolution: {integrity: sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==} dependencies: - vue-demi: 0.14.6(vue@3.4.0-rc.2) + vue-demi: 0.14.6(vue@3.4.3) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -1574,8 +1551,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1708,8 +1685,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /axios@1.6.2(debug@4.3.4): - resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} + /axios@1.6.3(debug@4.3.4): + resolution: {integrity: sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==} dependencies: follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 @@ -2333,35 +2310,35 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild@0.19.10: - resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.19.10 - '@esbuild/android-arm': 0.19.10 - '@esbuild/android-arm64': 0.19.10 - '@esbuild/android-x64': 0.19.10 - '@esbuild/darwin-arm64': 0.19.10 - '@esbuild/darwin-x64': 0.19.10 - '@esbuild/freebsd-arm64': 0.19.10 - '@esbuild/freebsd-x64': 0.19.10 - '@esbuild/linux-arm': 0.19.10 - '@esbuild/linux-arm64': 0.19.10 - '@esbuild/linux-ia32': 0.19.10 - '@esbuild/linux-loong64': 0.19.10 - '@esbuild/linux-mips64el': 0.19.10 - '@esbuild/linux-ppc64': 0.19.10 - '@esbuild/linux-riscv64': 0.19.10 - '@esbuild/linux-s390x': 0.19.10 - '@esbuild/linux-x64': 0.19.10 - '@esbuild/netbsd-x64': 0.19.10 - '@esbuild/openbsd-x64': 0.19.10 - '@esbuild/sunos-x64': 0.19.10 - '@esbuild/win32-arm64': 0.19.10 - '@esbuild/win32-ia32': 0.19.10 - '@esbuild/win32-x64': 0.19.10 + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 /escape-goat@3.0.0: resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==} @@ -3352,7 +3329,7 @@ packages: /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 pathe: 1.1.1 pkg-types: 1.0.3 ufo: 1.3.2 @@ -3543,8 +3520,8 @@ packages: p-limit: 4.0.0 dev: true - /p-map@7.0.0: - resolution: {integrity: sha512-EZl03dLKv3RypkrjlevZoNwQMSy4bAblWcR18zhonktnN4fUs3asFQKSe0awn982omGxamvbejqQKQYDJYHCEg==} + /p-map@7.0.1: + resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==} engines: {node: '>=18'} dev: true @@ -3767,7 +3744,7 @@ packages: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 - type-fest: 4.8.3 + type-fest: 4.9.0 dev: true /read-pkg@3.0.0: @@ -3786,7 +3763,7 @@ packages: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 7.1.1 - type-fest: 4.8.3 + type-fest: 4.9.0 dev: true /readdirp@3.6.0: @@ -3848,7 +3825,7 @@ packages: glob: 10.3.10 dev: true - /rollup-plugin-dts@6.1.0(rollup@4.9.1)(typescript@5.3.3): + /rollup-plugin-dts@6.1.0(rollup@4.9.2)(typescript@5.3.3): resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} engines: {node: '>=16'} peerDependencies: @@ -3856,47 +3833,47 @@ packages: typescript: ^4.5 || ^5.0 dependencies: magic-string: 0.30.5 - rollup: 4.9.1 + rollup: 4.9.2 typescript: 5.3.3 optionalDependencies: '@babel/code-frame': 7.23.5 dev: true - /rollup-plugin-esbuild@6.1.0(esbuild@0.19.10)(rollup@4.9.1)(supports-color@9.4.0): + /rollup-plugin-esbuild@6.1.0(esbuild@0.19.11)(rollup@4.9.2)(supports-color@9.4.0): resolution: {integrity: sha512-HPpXU65V8bSpW8eSYPahtUJaJHmbxJGybuf/M8B3bz/6i11YaYHlNNJIQ38gSEV0FyohQOgVxJ2YMEEZtEmwvA==} engines: {node: '>=14.18.0'} peerDependencies: esbuild: '>=0.18.0' rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.2) debug: 4.3.4(supports-color@9.4.0) es-module-lexer: 1.4.1 - esbuild: 0.19.10 + esbuild: 0.19.11 get-tsconfig: 4.7.2 - rollup: 4.9.1 + rollup: 4.9.2 transitivePeerDependencies: - supports-color dev: true - /rollup@4.9.1: - resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} + /rollup@4.9.2: + resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.1 - '@rollup/rollup-android-arm64': 4.9.1 - '@rollup/rollup-darwin-arm64': 4.9.1 - '@rollup/rollup-darwin-x64': 4.9.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 - '@rollup/rollup-linux-arm64-gnu': 4.9.1 - '@rollup/rollup-linux-arm64-musl': 4.9.1 - '@rollup/rollup-linux-riscv64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-gnu': 4.9.1 - '@rollup/rollup-linux-x64-musl': 4.9.1 - '@rollup/rollup-win32-arm64-msvc': 4.9.1 - '@rollup/rollup-win32-ia32-msvc': 4.9.1 - '@rollup/rollup-win32-x64-msvc': 4.9.1 + '@rollup/rollup-android-arm-eabi': 4.9.2 + '@rollup/rollup-android-arm64': 4.9.2 + '@rollup/rollup-darwin-arm64': 4.9.2 + '@rollup/rollup-darwin-x64': 4.9.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 + '@rollup/rollup-linux-arm64-gnu': 4.9.2 + '@rollup/rollup-linux-arm64-musl': 4.9.2 + '@rollup/rollup-linux-riscv64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-gnu': 4.9.2 + '@rollup/rollup-linux-x64-musl': 4.9.2 + '@rollup/rollup-win32-arm64-msvc': 4.9.2 + '@rollup/rollup-win32-ia32-msvc': 4.9.2 + '@rollup/rollup-win32-x64-msvc': 4.9.2 fsevents: 2.3.3 /run-parallel@1.2.0: @@ -4005,19 +3982,20 @@ packages: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true - /shikiji-core@0.9.12: - resolution: {integrity: sha512-AYsAtsbZuq0FPT3mdskNMa+yxD5VwXrFC2sH7R2ELmncVGNYvSzR6Zlfq8iEzINq7/kKL5prtt81UFzFWTTbxQ==} + /shikiji-core@0.9.15: + resolution: {integrity: sha512-7hqIcUKS15OMs/61Qp2GvO1fSajBB36bDqi8vexIg5kp80V6v6SGtBrlq+nLlo7erMG2d1kvIuTIq1bwKI6fEg==} + dev: false - /shikiji-transformers@0.9.12: - resolution: {integrity: sha512-ge+47j4MLTbKAnTnhTTolD9DKGW2Fhp80MV7Tb2E+p4HsJixu4slq2SDV/eFR34iH/egtyi/cjGMD8vJbNLBUA==} + /shikiji-transformers@0.9.15: + resolution: {integrity: sha512-k0sQ6tX26/cdb8QV9CCwwr7QjRp6/AVP9C0oNIXNld3of+xCrpf74kD74piybG6vMfzBoHGsz/s60RVBJOUaYQ==} dependencies: - shikiji: 0.9.12 + shikiji: 0.9.15 dev: false - /shikiji@0.9.12: - resolution: {integrity: sha512-jYbulSGcPKYKu2uFZOSg4lgrF7s9s8/ITFzRvczE6633wypMjnnTcRnG/mCFe6v1Dbov7bRCMsXVINBUD2FV9w==} + /shikiji@0.9.15: + resolution: {integrity: sha512-+inN4cN+nY7b0uCPOiqFHAk+cn2DEdM3AIQgPhAV7QKqhww/o7OGS5xvLh3SNnjke9C/HispALqGOQGYHVq7KQ==} dependencies: - shikiji-core: 0.9.12 + shikiji-core: 0.9.15 dev: false /side-channel@1.0.4: @@ -4256,7 +4234,7 @@ packages: /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 dev: true /supports-color@5.5.0: @@ -4356,8 +4334,8 @@ packages: engines: {node: '>=14.16'} dev: true - /type-fest@4.8.3: - resolution: {integrity: sha512-//BaTm14Q/gHBn09xlnKNqfI8t6bmdzx2DXYfPBNofN0WUybCEUDcbCWcTa0oF09lzLjZgPphXAsvRiMK0V6Bw==} + /type-fest@4.9.0: + resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} engines: {node: '>=16'} dev: true @@ -4454,7 +4432,7 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-node@1.1.0(@types/node@20.10.5)(supports-color@9.4.0): + /vite-node@1.1.0(@types/node@20.10.6)(supports-color@9.4.0): resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -4463,7 +4441,7 @@ packages: debug: 4.3.4(supports-color@9.4.0) pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.10(@types/node@20.10.5) + vite: 5.0.10(@types/node@20.10.6) transitivePeerDependencies: - '@types/node' - less @@ -4475,7 +4453,7 @@ packages: - terser dev: true - /vite@5.0.10(@types/node@20.10.5): + /vite@5.0.10(@types/node@20.10.6): resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -4503,14 +4481,14 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.5 - esbuild: 0.19.10 + '@types/node': 20.10.6 + esbuild: 0.19.11 postcss: 8.4.32 - rollup: 4.9.1 + rollup: 4.9.2 optionalDependencies: fsevents: 2.3.3 - /vitest@1.1.0(@types/node@20.10.5)(supports-color@9.4.0): + /vitest@1.1.0(@types/node@20.10.6)(supports-color@9.4.0): resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -4535,7 +4513,7 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 '@vitest/expect': 1.1.0 '@vitest/runner': 1.1.0 '@vitest/snapshot': 1.1.0 @@ -4554,8 +4532,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.8.1 - vite: 5.0.10(@types/node@20.10.5) - vite-node: 1.1.0(@types/node@20.10.5)(supports-color@9.4.0) + vite: 5.0.10(@types/node@20.10.6) + vite-node: 1.1.0(@types/node@20.10.6)(supports-color@9.4.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -4567,7 +4545,7 @@ packages: - terser dev: true - /vue-demi@0.14.6(vue@3.4.0-rc.2): + /vue-demi@0.14.6(vue@3.4.3): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true @@ -4579,7 +4557,7 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.0-rc.2(typescript@5.3.3) + vue: 3.4.3(typescript@5.3.3) dev: false /vue-template-compiler@2.7.16: @@ -4589,31 +4567,31 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.26(typescript@5.3.3): - resolution: {integrity: sha512-jMEJ4aqU/l1hdgmeExH5h1TFoN+hbho0A2ZAhHy53/947DGm7Qj/bpB85VpECOCwV00h7JYNVnvoD2ceOorB4Q==} + /vue-tsc@1.8.27(typescript@5.3.3): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} hasBin: true peerDependencies: typescript: '*' dependencies: '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.26(typescript@5.3.3) + '@vue/language-core': 1.8.27(typescript@5.3.3) semver: 7.5.4 typescript: 5.3.3 dev: true - /vue@3.4.0-rc.2(typescript@5.3.3): - resolution: {integrity: sha512-/HP5U5Da5+0oUc4mEzn8nxRpIvIHbfozIH0GFX0Dywmm35TrlD5B5/m4QRkuigbuR9ydtzB3D7wReGUiUoJADg==} + /vue@3.4.3(typescript@5.3.3): + resolution: {integrity: sha512-GjN+culMAGv/mUbkIv8zMKItno8npcj5gWlXkSxf1SPTQf8eJ4A+YfHIvQFyL1IfuJcMl3soA7SmN1fRxbf/wA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.4.0-rc.2 - '@vue/compiler-sfc': 3.4.0-rc.2 - '@vue/runtime-dom': 3.4.0-rc.2 - '@vue/server-renderer': 3.4.0-rc.2(vue@3.4.0-rc.2) - '@vue/shared': 3.4.0-rc.2 + '@vue/compiler-dom': 3.4.3 + '@vue/compiler-sfc': 3.4.3 + '@vue/runtime-dom': 3.4.3 + '@vue/server-renderer': 3.4.3(vue@3.4.3) + '@vue/shared': 3.4.3 typescript: 5.3.3 dev: false @@ -4622,7 +4600,7 @@ packages: engines: {node: '>=12.0.0'} hasBin: true dependencies: - axios: 1.6.2(debug@4.3.4) + axios: 1.6.3(debug@4.3.4) joi: 17.11.0 lodash: 4.17.21 minimist: 1.2.8 diff --git a/src/node/markdown/markdown.ts b/src/node/markdown/markdown.ts index e64a1bde..f1ccb14d 100644 --- a/src/node/markdown/markdown.ts +++ b/src/node/markdown/markdown.ts @@ -19,6 +19,13 @@ import anchorPlugin from 'markdown-it-anchor' import attrsPlugin from 'markdown-it-attrs' // @ts-ignore import { full as emojiPlugin } from 'markdown-it-emoji' +import type { + BuiltinTheme, + Highlighter, + LanguageInput, + ShikijiTransformer, + ThemeRegistrationAny +} from 'shikiji' import type { Logger } from 'vite' import { containerPlugin, type ContainerOptions } from './plugins/containers' import { highlight } from './plugins/highlight' @@ -28,22 +35,15 @@ import { lineNumberPlugin } from './plugins/lineNumbers' import { linkPlugin } from './plugins/link' import { preWrapperPlugin } from './plugins/preWrapper' import { snippetPlugin } from './plugins/snippet' -import type { - ThemeRegistration, - BuiltinTheme, - LanguageInput, - ShikijiTransformer, - Highlighter -} from 'shikiji' export type { Header } from '../shared' export type ThemeOptions = - | ThemeRegistration + | ThemeRegistrationAny | BuiltinTheme | { - light: ThemeRegistration | BuiltinTheme - dark: ThemeRegistration | BuiltinTheme + light: ThemeRegistrationAny | BuiltinTheme + dark: ThemeRegistrationAny | BuiltinTheme } export interface MarkdownOptions extends MarkdownIt.Options { diff --git a/src/node/markdown/plugins/highlight.ts b/src/node/markdown/plugins/highlight.ts index 84d999e6..f95a78b0 100644 --- a/src/node/markdown/plugins/highlight.ts +++ b/src/node/markdown/plugins/highlight.ts @@ -2,14 +2,12 @@ import { customAlphabet } from 'nanoid' import c from 'picocolors' import type { ShikijiTransformer } from 'shikiji' import { + addClassToHast, bundledLanguages, getHighlighter, - addClassToHast, isPlaintext as isPlainLang, isSpecialLang } from 'shikiji' -import type { Logger } from 'vite' -import type { MarkdownOptions, ThemeOptions } from '../markdown' import { transformerCompactLineOptions, transformerNotationDiff, @@ -18,6 +16,8 @@ import { transformerNotationHighlight, type TransformerCompactLineOption } from 'shikiji-transformers' +import type { Logger } from 'vite' +import type { MarkdownOptions, ThemeOptions } from '../markdown' const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz', 10) @@ -65,9 +65,9 @@ export async function highlight( const highlighter = await getHighlighter({ themes: - typeof theme === 'string' || 'name' in theme - ? [theme] - : [theme.light, theme.dark], + typeof theme === 'object' && 'light' in theme && 'dark' in theme + ? [theme.light, theme.dark] + : [theme], langs: [...Object.keys(bundledLanguages), ...(options.languages || [])], langAlias: options.languageAlias }) @@ -169,15 +169,10 @@ export async function highlight( }, ...userTransformers ], - meta: { - __raw: attrs - }, - ...(typeof theme === 'string' || 'name' in theme - ? { theme } - : { - themes: theme, - defaultColor: false - }) + meta: { __raw: attrs }, + ...(typeof theme === 'object' && 'light' in theme && 'dark' in theme + ? { themes: theme, defaultColor: false } + : { theme }) }) return fillEmptyHighlightedLine(restoreMustache(highlighted)) From d10bf42c2632f1aacb905bc01b36274e9004cbd9 Mon Sep 17 00:00:00 2001 From: Kia King Ishii Date: Sun, 31 Dec 2023 02:33:13 +0900 Subject: [PATCH 007/104] feat(theme): new design for local nav and global header (#3359) Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> --- src/client/theme-default/components/VPDoc.vue | 18 +-- .../components/VPDocAsideOutline.vue | 5 +- .../components/VPDocOutlineDropdown.vue | 85 ------------ .../components/VPDocOutlineItem.vue | 8 +- .../theme-default/components/VPLocalNav.vue | 88 ++++++++---- .../components/VPLocalNavOutlineDropdown.vue | 53 ++++++-- .../theme-default/components/VPNavBar.vue | 127 +++++++++++------- .../theme-default/components/VPSidebar.vue | 1 - .../theme-default/composables/local-nav.ts | 24 ++++ .../theme-default/composables/outline.ts | 2 +- src/client/theme-default/styles/vars.css | 6 + src/client/theme-default/without-fonts.ts | 1 + src/node/config.ts | 2 +- theme.d.ts | 1 + types/default-theme.d.ts | 19 +++ 15 files changed, 244 insertions(+), 196 deletions(-) delete mode 100644 src/client/theme-default/components/VPDocOutlineDropdown.vue create mode 100644 src/client/theme-default/composables/local-nav.ts diff --git a/src/client/theme-default/components/VPDoc.vue b/src/client/theme-default/components/VPDoc.vue index ab0b9121..af54aa70 100644 --- a/src/client/theme-default/components/VPDoc.vue +++ b/src/client/theme-default/components/VPDoc.vue @@ -5,7 +5,6 @@ import { useData } from '../composables/data' import { useSidebar } from '../composables/sidebar' import VPDocAside from './VPDocAside.vue' import VPDocFooter from './VPDocFooter.vue' -import VPDocOutlineDropdown from './VPDocOutlineDropdown.vue' const { theme } = useData() @@ -43,7 +42,6 @@ const pageName = computed(() =>
-
width: 100%; } -.VPDoc .VPDocOutlineDropdown { - display: none; -} - -@media (min-width: 960px) and (max-width: 1279px) { - .VPDoc .VPDocOutlineDropdown { - display: block; - } -} - @media (min-width: 768px) { .VPDoc { padding: 48px 32px 128px; @@ -88,7 +76,7 @@ const pageName = computed(() => @media (min-width: 960px) { .VPDoc { - padding: 32px 32px 0; + padding: 48px 32px 0; } .VPDoc:not(.has-sidebar) .container { @@ -147,7 +135,7 @@ const pageName = computed(() => .aside-container { position: fixed; top: 0; - padding-top: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px); + padding-top: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px); width: 224px; height: 100vh; overflow-x: hidden; @@ -171,7 +159,7 @@ const pageName = computed(() => .aside-content { display: flex; flex-direction: column; - min-height: calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px)); + min-height: calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px)); padding-bottom: 32px; } diff --git a/src/client/theme-default/components/VPDocAsideOutline.vue b/src/client/theme-default/components/VPDocAsideOutline.vue index f7b6dade..7c22fda1 100644 --- a/src/client/theme-default/components/VPDocAsideOutline.vue +++ b/src/client/theme-default/components/VPDocAsideOutline.vue @@ -80,9 +80,8 @@ useActiveAnchor(container, marker) } .outline-title { - letter-spacing: 0.4px; - line-height: 28px; - font-size: 13px; + line-height: 32px; + font-size: 14px; font-weight: 600; } diff --git a/src/client/theme-default/components/VPDocOutlineDropdown.vue b/src/client/theme-default/components/VPDocOutlineDropdown.vue deleted file mode 100644 index e6009402..00000000 --- a/src/client/theme-default/components/VPDocOutlineDropdown.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/src/client/theme-default/components/VPDocOutlineItem.vue b/src/client/theme-default/components/VPDocOutlineItem.vue index 4ba55b99..89ea9710 100644 --- a/src/client/theme-default/components/VPDocOutlineItem.vue +++ b/src/client/theme-default/components/VPDocOutlineItem.vue @@ -14,7 +14,7 @@ function onClick({ target: el }: Event) {