From 08a2d6107f91573ee84a701b682fac4d0e3c58f4 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Fri, 8 Nov 2024 12:17:25 +0800 Subject: [PATCH] feat(theme): add `changelog` and improve `contributors`, close #319 (#329) --- docs/.vuepress/notes/zh/theme-guide.ts | 2 + docs/.vuepress/plume.config.ts | 2 - .../public/images/contributors-block.png | Bin 0 -> 35828 bytes .../public/images/contributors-inline.png | Bin 0 -> 59449 bytes docs/.vuepress/theme.ts | 5 + docs/demos.md | 2 + docs/notes/theme/config/frontmatter/basic.md | 10 + docs/notes/theme/config/主题配置.md | 153 +++--- docs/notes/theme/guide/功能/文章变更历史.md | 114 +++++ docs/notes/theme/guide/功能/文章贡献者.md | 261 ++++++++++ docs/notes/tools/caniuse.md | 2 - docs/notes/tools/home-hero-tint-plate.md | 2 - plugins/plugin-md-power/package.json | 2 +- plugins/plugin-search/package.json | 2 +- plugins/plugin-shikiji/package.json | 2 +- pnpm-lock.yaml | 450 +++++++++--------- theme/package.json | 26 +- theme/src/client/components/VPDoc.vue | 13 +- .../src/client/components/VPDocChangelog.vue | 178 +++++++ .../client/components/VPDocContributor.vue | 66 +++ theme/src/client/components/VPDocFooter.vue | 30 +- theme/src/client/composables/contributors.ts | 30 +- theme/src/client/composables/edit-link.ts | 10 +- .../src/client/composables/latest-updated.ts | 14 +- theme/src/client/styles/content.css | 5 + theme/src/client/styles/icons.css | 8 + theme/src/node/config/resolveLocaleOptions.ts | 6 +- theme/src/node/config/resolveThemeData.ts | 8 +- theme/src/node/locales/en.ts | 8 +- theme/src/node/locales/zh.ts | 7 +- theme/src/node/pages/extendsPage.ts | 4 + theme/src/node/plugins/getPlugins.ts | 40 +- theme/src/node/theme.ts | 2 +- theme/src/shared/frontmatter/page.ts | 7 +- theme/src/shared/options/index.ts | 47 +- theme/src/shared/options/locale.ts | 59 +-- 36 files changed, 1178 insertions(+), 399 deletions(-) create mode 100644 docs/.vuepress/public/images/contributors-block.png create mode 100644 docs/.vuepress/public/images/contributors-inline.png create mode 100644 docs/notes/theme/guide/功能/文章变更历史.md create mode 100644 docs/notes/theme/guide/功能/文章贡献者.md create mode 100644 theme/src/client/components/VPDocChangelog.vue create mode 100644 theme/src/client/components/VPDocContributor.vue diff --git a/docs/.vuepress/notes/zh/theme-guide.ts b/docs/.vuepress/notes/zh/theme-guide.ts index 1fea91c2..7e2494b9 100644 --- a/docs/.vuepress/notes/zh/theme-guide.ts +++ b/docs/.vuepress/notes/zh/theme-guide.ts @@ -111,6 +111,8 @@ export const themeGuide = defineNoteConfig({ '评论', '公告板', '加密', + '文章贡献者', + '文章变更历史', '文章水印', '友情链接页', 'seo', diff --git a/docs/.vuepress/plume.config.ts b/docs/.vuepress/plume.config.ts index 067a6dca..8544c7b3 100644 --- a/docs/.vuepress/plume.config.ts +++ b/docs/.vuepress/plume.config.ts @@ -5,8 +5,6 @@ import { enNotes, zhNotes } from './notes/index.js' export default defineThemeConfig({ logo: '/plume.png', - docsRepo: 'https://github.com/pengzhanbo/vuepress-theme-plume', - docsDir: 'docs', profile: { avatar: '/plume.png', diff --git a/docs/.vuepress/public/images/contributors-block.png b/docs/.vuepress/public/images/contributors-block.png new file mode 100644 index 0000000000000000000000000000000000000000..deb13d12b1ac18956458b955fc6e4c20d8b49625 GIT binary patch literal 35828 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�WQRlvYU?fHI18yViZs^q;KoSZeM`A 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 @@ -717,12 +786,6 @@ interface SidebarItem { 移动设备下的导航栏中大纲标题的文本 -### editLink - -- 类型: `boolean` -- 默认值: `true` -- 详情: 是否启用 编辑链接 - ### editLinkText - 类型: `string` @@ -737,55 +800,11 @@ interface SidebarItem { 示例: `':repo/edit/:branch/:path'` -### docsRepo +### latestUpdatedText - 类型: `string` -- 默认值: `''` -- 详情: 文档仓库配置, 用于生成 `Edit this page` 链接。 - -### docsBranch - -- 类型: `string` -- 默认值: `''` -- 详情: 文档仓库分支配置,用于生成 `Edit this page` 链接。 - -### docsDir - -- 类型: `string` -- 默认值: `''` -- 详情: 文档仓库目录配置,用于生成 `Edit this page` 链接。 - -### lastUpdated - -- 类型: `false | LastUpdatedOptions` -- 默认值: `{ text: 'Last Updated', formatOptions: { dateStyle: 'short', timeStyle: 'short' } }` -- 详情: 最后更新时间 - -```ts -interface LastUpdatedOptions { - /** - * 设置 最后更新时间 的文本 - * - * @default 'Last updated' - */ - text?: string - - /** - * 设置最后更新时间格式的选项。 - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options - * - * @default - * { dateStyle: 'short', timeStyle: 'short' } - */ - formatOptions?: Intl.DateTimeFormatOptions & { forceLocale?: boolean } -} -``` - -### contributors - -- 类型: `boolean` -- 默认值: `true` -- 详情: 是否显示贡献者 +- 默认值: `'Latest Updated'` +- 详情: 最近更新时间 的文本 ### contributorsText @@ -793,6 +812,24 @@ interface LastUpdatedOptions { - 默认值: `'Contributors'` - 详情: 贡献者的文本 +### changelogText + +- 类型: `string` +- 默认值: `'Changelog'` +- 详情: 变更记录的文本 + +### changelogOnText + +- 类型: `string` +- 默认值: `'On'` +- 详情: 单次变更记录的时间文本 + +### changelogButtonText + +- 类型: `string` +- 默认值: `'View All Changelog'` +- 详情: 变更记录的按钮文本 + ### prevPage - 类型: `boolean` diff --git a/docs/notes/theme/guide/功能/文章变更历史.md b/docs/notes/theme/guide/功能/文章变更历史.md new file mode 100644 index 00000000..ecc352ac --- /dev/null +++ b/docs/notes/theme/guide/功能/文章变更历史.md @@ -0,0 +1,114 @@ +--- +title: 文章变更历史 +icon: radix-icons:activity-log +createTime: 2024/11/07 18:16:25 +permalink: /guide/features/changelog/ +--- + +## 概述 + +主题支持为文章添加 文章变更历史,以便更好的了解您的文章修改历史。 + +文章变更历史 通过 git 提交记录获取。 + +该功能由 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 提供支持。 + +## 使用 + +主题已内置 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 插件,你无需重新安装即可使用。 + +在主题配置文件中启用该功能: + +::: code-tabs +@tab .vuepress/config.ts + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + // 默认 不启用,仅当 plugins.git 为 true 时生效 + // 此配置在 plume.config.ts 中无效 + changelog: true, + + plugins: { + // 如果您在此处直接声明为 true,则表示开发环境和生产环境都启用该功能 + git: process.env.NODE_ENV === 'production' + } + }) +}) +``` + +::: + +::: warning 出于性能考虑,主题默认不会在 开发环境中启用该功能,仅在 生产环境中启用。 +::: + +## 配置 + +```ts +interface ChangelogOptions { + /** + * 最大变更记录条数, 默认获取所有记录 + */ + maxCount?: number + /** + * git 仓库的访问地址,例如:https://github.com/vuepress/ecosystem + */ + repoUrl?: string + /** + * 提交记录访问地址模式 + * + * - `:repo` - git 仓库的访问地址 + * - `:hash` - 提交记录的 hash + * + * @default ':repo/commit/:hash' + */ + commitUrlPattern?: string + /** + * issue 访问地址模式 + * + * - `:repo` - git 仓库的访问地址 + * - `:issue` - issue 的 id + * + * @default ':repo/issues/:issue' + */ + issueUrlPattern?: string + /** + * tag 访问地址模式, + * 默认值:':repo/releases/tag/:tag' + * + * - `:repo` - git 仓库的访问地址 + * - `:tag` - tag 的名称 + * + * @default ':repo/releases/tag/:tag' + */ + tagUrlPattern?: string +} +``` + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + changelog: { + maxCount: 10, + repoUrl: 'https://github.com/vuepress/vuepress', + commitUrlPattern: ':repo/commit/:hash', + issueUrlPattern: ':repo/issues/:issue', + tagUrlPattern: ':repo/releases/tag/:tag' + }, + + }) +}) +``` + +::: warning 注意 +请确保 `changelog.repoUrl` 配置正确, 默认值为 [docsRepo](../../config/主题配置.md#docsrepo)。 + +主题默认适配了 `github/gitlab/gitee/bitbucket` git 托管服务的相关访问地址模式。 +如果您使用的是内建的托管服务或者其他,请自行配置 `commitUrlPattern`、`issueUrlPattern`、`tagUrlPattern`。 +::: diff --git a/docs/notes/theme/guide/功能/文章贡献者.md b/docs/notes/theme/guide/功能/文章贡献者.md new file mode 100644 index 00000000..bfeeb228 --- /dev/null +++ b/docs/notes/theme/guide/功能/文章贡献者.md @@ -0,0 +1,261 @@ +--- +title: 文章贡献者 +icon: simple-icons:contributorcovenant +createTime: 2024/11/07 16:26:54 +permalink: /guide/features/contributors/ +--- + +## 概述 + +主题支持为文章添加贡献者信息,以便更好的了解您的文章贡献者。 + +文章贡献者通过 git 提交记录获取。 + +该功能由 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 提供支持。 + +## 使用 + +主题已内置 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 插件,你无需重新安装即可使用。 + +在主题配置文件中启用该功能: + +::: code-tabs +@tab .vuepress/config.ts + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + // 默认启用,仅当 plugins.git 为 true 时生效 + // 此配置在 plume.config.ts 中无效 + contributors: true, + + plugins: { + // 如果您在此处直接声明为 true,则表示开发环境和生产环境都启用该功能 + git: process.env.NODE_ENV === 'production' + } + }) +}) +``` + +::: + +::: warning 出于性能考虑,主题默认不会在 开发环境中启用该功能,仅在 生产环境中启用。 +::: + +## 配置 + +### mode + +- 类型:`'inline' | 'block'` +- 默认值:`'inline'` +- 描述: + + - `inline`:在文章页底部,与 最后更新时间,并列显示贡献者信息,该模式下仅显示 贡献者名称。 + + ![contributors inline](/images/contributors-inline.png) + + - `block`:在文章内容末尾插入贡献者信息,该模式下包含 贡献者名称、贡献者链接、贡献者头像。 + (如当前页面内容结尾所示) + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + contributors: { + mode: 'block', + }, + }) +}) +``` + +### info + +- 类型:`ContributorInfo[]` + + ```ts + interface ContributorInfo { + /** + * 贡献者在 Git 托管服务中的用户名 + */ + username: string + /** + * 贡献者显示在页面上的名字, 默认为 `username` + */ + name?: string + /** + * 贡献者别名, 由于贡献者可能在本地 git 配置中保存的 用户名与 托管服务 用户名不一致, + * 这时候可以通过别名映射到真实的用户名 + */ + alias?: string[] | string + /** + * 贡献者头像地址 + * 如果 git 托管服务为 `github`,则可以忽略不填,由插件自动填充 + */ + avatar?: string + /** + * 贡献者访问地址 + * 如果 git 托管服务为 `github`,则可以忽略不填,由插件自动填充 + */ + url?: string + } + ``` + +- 描述: + + 贡献者信息列表。 + + 用户在本地 git 服务中配置的 用户名和邮箱 可能与 git 托管服务(如 github、gitlab、gitee)的用户信息不一致。 + 可以在此预先配置贡献者信息。 + + (对于非 github 的其他 git 托管服务,诸如 gitlab、gitee,由于不能通过用户名直接获取头像和用户地址,请在此 + 补充完善用户信息。) + +::: code-tabs + +@tab Github + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + contributors: { + mode: 'block', + info: [ + { + username: 'pengzhanbo', // github username + alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名 + } + ] + }, + }) +}) +``` + +@tab Gitlab + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + contributors: { + mode: 'block', + info: [ + { + username: 'pengzhanbo', // gitlab username + alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名 + url: 'https://gitlab.com/pengzhanbo', + avatar: 'https://gitlab.com/uploads/-/system/user/avatar/1/avatar.png', + } + ] + }, + }) +}) +``` + +@tab Gitee + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + contributors: { + mode: 'block', + info: [ + { + username: 'pengzhanbo', // gitee username + alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名 + url: 'https://gitee.com/pengzhanbo', + avatar: 'https://foruda.gitee.com/avatar/1234455/avatar.png', + } + ] + }, + }) +}) +``` + +@tab Bitbucket + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + contributors: { + mode: 'block', + info: [ + { + username: 'pengzhanbo', // bitbucket username + alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名 + url: 'https://bitbucket.org/pengzhanbo', + avatar: 'https://bitbucket.org/pengzhanbo/avatar/1234455/avatar.png', + } + ] + }, + }) +}) +``` + +@tab 其它 + +```ts +import { defineUserConfig } from 'vuepress' +import { plumeTheme } from 'vuepress-theme-plume' + +export default defineUserConfig({ + theme: plumeTheme({ + contributors: { + mode: 'block', + info: [ + { + username: 'pengzhanbo', // username + alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名 + url: 'https://your-git.com/pengzhanbo', + avatar: 'https://your-git.com/avatar.png', + } + ] + }, + }) +}) +``` + +::: + +### transform(contributors) + +- 类型:`(contributors: GitContributor[]) => GitContributor[]` + + ```ts + interface GitContributor { + name: string + email: string + commits: number // 贡献者提交次数 + } + ``` + +- 描述: + + 贡献者转换函数。该函数需要返回新的 贡献者列表。 + +## frontmatter + +### contributors + +- 类型:`boolean | string[]` + +- 描述: + + 是否显示贡献者信息。 + + 如果您的文章来源于第三方, git 提交不能完整列出所有的作者,您可以在此处补充贡献者。 diff --git a/docs/notes/tools/caniuse.md b/docs/notes/tools/caniuse.md index fe3ebcc0..08b57886 100644 --- a/docs/notes/tools/caniuse.md +++ b/docs/notes/tools/caniuse.md @@ -6,8 +6,6 @@ createTime: 2024/04/16 12:41:26 permalink: /tools/caniuse/ readingTime: false editLink: false -contributors: false -lastUpdated: false --- ::: info 提示 diff --git a/docs/notes/tools/home-hero-tint-plate.md b/docs/notes/tools/home-hero-tint-plate.md index 3c56fbf4..3c97fd1e 100644 --- a/docs/notes/tools/home-hero-tint-plate.md +++ b/docs/notes/tools/home-hero-tint-plate.md @@ -6,8 +6,6 @@ createTime: 2024/04/15 20:17:42 permalink: /tools/home-hero-tint-plate/ readingTime: false editLink: false -contributors: false -lastUpdated: false --- 为了更直观更方便的配置首页 Hero 区域 的 背景色板,主题提供了 色板配置工具, diff --git a/plugins/plugin-md-power/package.json b/plugins/plugin-md-power/package.json index 527c660c..c14d544c 100644 --- a/plugins/plugin-md-power/package.json +++ b/plugins/plugin-md-power/package.json @@ -53,7 +53,7 @@ "@mdit/plugin-sup": "^0.13.1", "@mdit/plugin-tab": "^0.13.2", "@mdit/plugin-tasklist": "^0.13.1", - "@vuepress/helper": "2.0.0-rc.57", + "@vuepress/helper": "2.0.0-rc.60", "@vueuse/core": "^11.2.0", "image-size": "^1.1.1", "local-pkg": "^0.5.0", diff --git a/plugins/plugin-search/package.json b/plugins/plugin-search/package.json index a04b3397..7a4014c1 100644 --- a/plugins/plugin-search/package.json +++ b/plugins/plugin-search/package.json @@ -40,7 +40,7 @@ "vuepress": "2.0.0-rc.18" }, "dependencies": { - "@vuepress/helper": "2.0.0-rc.57", + "@vuepress/helper": "2.0.0-rc.60", "@vueuse/core": "^11.2.0", "@vueuse/integrations": "^11.2.0", "chokidar": "3.6.0", diff --git a/plugins/plugin-shikiji/package.json b/plugins/plugin-shikiji/package.json index 08b3df18..8eb92ba5 100644 --- a/plugins/plugin-shikiji/package.json +++ b/plugins/plugin-shikiji/package.json @@ -39,7 +39,7 @@ "@shikijs/transformers": "^1.22.2", "@shikijs/twoslash": "^1.22.2", "@types/hast": "^3.0.4", - "@vuepress/helper": "2.0.0-rc.57", + "@vuepress/helper": "2.0.0-rc.60", "@vueuse/core": "^11.2.0", "fast-glob": "^3.3.2", "floating-vue": "^5.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 058ac42e..16ba32c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -202,8 +202,8 @@ importers: specifier: ^0.13.1 version: 0.13.1(markdown-it@14.1.0) '@vuepress/helper': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vueuse/core': specifier: ^11.2.0 version: 11.2.0(vue@3.5.12(typescript@5.6.3)) @@ -245,8 +245,8 @@ importers: plugins/plugin-search: dependencies: '@vuepress/helper': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vueuse/core': specifier: ^11.2.0 version: 11.2.0(vue@3.5.12(typescript@5.6.3)) @@ -287,8 +287,8 @@ importers: specifier: ^3.0.4 version: 3.0.4 '@vuepress/helper': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vueuse/core': specifier: ^11.2.0 version: 11.2.0(vue@3.5.12(typescript@5.6.3)) @@ -347,47 +347,47 @@ importers: specifier: workspace:* version: link:../plugins/plugin-shikiji '@vuepress/helper': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-cache': specifier: 2.0.0-rc.54 version: 2.0.0-rc.54(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-comment': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-docsearch': - specifier: 2.0.0-rc.56 - version: 2.0.0-rc.56(@algolia/client-search@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(@algolia/client-search@5.12.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-git': - specifier: 2.0.0-rc.56 - version: 2.0.0-rc.56(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-markdown-hint': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-markdown-image': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-markdown-math': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-nprogress': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-photo-swipe': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-reading-time': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-seo': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-sitemap': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vuepress/plugin-watermark': - specifier: 2.0.0-rc.57 - version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + specifier: 2.0.0-rc.60 + version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vueuse/core': specifier: ^11.2.0 version: 11.2.0(vue@3.5.12(typescript@5.6.3)) @@ -461,70 +461,77 @@ importers: packages: - '@algolia/autocomplete-core@1.9.3': - resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + '@algolia/autocomplete-core@1.17.6': + resolution: {integrity: sha512-lkDoW4I7h2kKlIgf3pUt1LqvxyYKkVyiypoGLlUnhPSnCpmeOwudM6rNq6YYsCmdQtnDQoW5lUNNuj6ASg3qeg==} - '@algolia/autocomplete-plugin-algolia-insights@1.9.3': - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + '@algolia/autocomplete-plugin-algolia-insights@1.17.6': + resolution: {integrity: sha512-17NnaacuFzSWVuZu4NKzVeaFIe9Abpw8w+/gjc7xhZFtqj+GadufzodIdchwiB2eM2cDdiR3icW7gbNTB3K2YA==} peerDependencies: search-insights: '>= 1 < 3' - '@algolia/autocomplete-preset-algolia@1.9.3': - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + '@algolia/autocomplete-preset-algolia@1.17.6': + resolution: {integrity: sha512-Cvg5JENdSCMuClwhJ1ON1/jSuojaYMiUW2KePm18IkdCzPJj/NXojaOxw58RFtQFpJgfVW8h2E8mEoDtLlMdeA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/autocomplete-shared@1.9.3': - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + '@algolia/autocomplete-shared@1.17.6': + resolution: {integrity: sha512-aq/3V9E00Tw2GC/PqgyPGXtqJUlVc17v4cn1EUhSc+O/4zd04Uwb3UmPm8KDaYQQOrkt1lwvCj2vG2wRE5IKhw==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/cache-browser-local-storage@4.24.0': - resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==} + '@algolia/client-abtesting@5.12.0': + resolution: {integrity: sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==} + engines: {node: '>= 14.0.0'} - '@algolia/cache-common@4.24.0': - resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} + '@algolia/client-analytics@5.12.0': + resolution: {integrity: sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==} + engines: {node: '>= 14.0.0'} - '@algolia/cache-in-memory@4.24.0': - resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==} + '@algolia/client-common@5.12.0': + resolution: {integrity: sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==} + engines: {node: '>= 14.0.0'} - '@algolia/client-account@4.24.0': - resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==} + '@algolia/client-insights@5.12.0': + resolution: {integrity: sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==} + engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@4.24.0': - resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==} + '@algolia/client-personalization@5.12.0': + resolution: {integrity: sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==} + engines: {node: '>= 14.0.0'} - '@algolia/client-common@4.24.0': - resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} + '@algolia/client-query-suggestions@5.12.0': + resolution: {integrity: sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==} + engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@4.24.0': - resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} + '@algolia/client-search@5.12.0': + resolution: {integrity: sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==} + engines: {node: '>= 14.0.0'} - '@algolia/client-search@4.24.0': - resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} + '@algolia/ingestion@1.12.0': + resolution: {integrity: sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==} + engines: {node: '>= 14.0.0'} - '@algolia/logger-common@4.24.0': - resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} + '@algolia/monitoring@1.12.0': + resolution: {integrity: sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==} + engines: {node: '>= 14.0.0'} - '@algolia/logger-console@4.24.0': - resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==} + '@algolia/recommend@5.12.0': + resolution: {integrity: sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==} + engines: {node: '>= 14.0.0'} - '@algolia/recommend@4.24.0': - resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==} + '@algolia/requester-browser-xhr@5.12.0': + resolution: {integrity: sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==} + engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@4.24.0': - resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} + '@algolia/requester-fetch@5.12.0': + resolution: {integrity: sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==} + engines: {node: '>= 14.0.0'} - '@algolia/requester-common@4.24.0': - resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} - - '@algolia/requester-node-http@4.24.0': - resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} - - '@algolia/transporter@4.24.0': - resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} + '@algolia/requester-node-http@5.12.0': + resolution: {integrity: sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==} + engines: {node: '>= 14.0.0'} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} @@ -765,14 +772,14 @@ packages: peerDependencies: postcss-selector-parser: ^6.1.0 - '@docsearch/css@3.6.2': - resolution: {integrity: sha512-vKNZepO2j7MrYBTZIGXvlUOIR+v9KRf70FApRgovWrj3GTs1EITz/Xb0AOlm1xsQBp16clVZj1SY/qaOJbQtZw==} + '@docsearch/css@3.7.0': + resolution: {integrity: sha512-1OorbTwi1eeDmr0v5t+ckSRlt1zM5GHjm92iIl3kUu7im3GHuP+csf6E0WBg8pdXQczTWP9J9+o9n+Vg6DH5cQ==} - '@docsearch/js@3.6.2': - resolution: {integrity: sha512-pS4YZF+VzUogYrkblCucQ0Oy2m8Wggk8Kk7lECmZM60hTbaydSIhJTTiCrmoxtBqV8wxORnOqcqqOfbmkkQEcA==} + '@docsearch/js@3.7.0': + resolution: {integrity: sha512-ScfqOIKrSr8SImbpxVaD59xc/bytbL8QEM2GUpe3aICmoICflWp5DyTRzAdFky16HY+yEOAVZXt3COXQ1NOCWw==} - '@docsearch/react@3.6.2': - resolution: {integrity: sha512-rtZce46OOkVflCQH71IdbXSFK+S8iJZlUF56XBW5rIgx/eG5qoomC7Ag3anZson1bBac/JFQn7XOBfved/IMRA==} + '@docsearch/react@3.7.0': + resolution: {integrity: sha512-8e6tdDfkYoxafEEPuX5eE1h9cTkLvhe4KgoFkO5JCddXSQONnN1FHcDZRI4r8894eMpbYq6rdJF0dVYh8ikwNQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -2228,8 +2235,8 @@ packages: peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/helper@2.0.0-rc.57': - resolution: {integrity: sha512-6tJpiVCMdJ5bu5tvH51o+SIDyQG20kqYBvOPeRRsBVGjp8n0rH6KDGY0xDEkd/HF8mJ9UPqNYvqhsQyI3iKKWQ==} + '@vuepress/helper@2.0.0-rc.60': + resolution: {integrity: sha512-WvImKfX+ysLxndtEDaqfZAp72J6VYAzYLRESQ8XiGVLL5A+abeR1+64lQID6Zb1EClqkPt3Rox5EWAXEhY9D5Q==} peerDependencies: vuepress: 2.0.0-rc.18 @@ -2241,8 +2248,8 @@ packages: peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-comment@2.0.0-rc.57': - resolution: {integrity: sha512-Ched+tAy+WhFU3zI9JE+eP6vG+bmL25wswlqLkjdA6DFdgx7kCfktsTkHaGA9XyzPpzfCUj4T8d8JG3LNlM2+Q==} + '@vuepress/plugin-comment@2.0.0-rc.60': + resolution: {integrity: sha512-t81rIe3NlHFCNbeexa4a1tTg0WB73JFYZtB22NISlyprqDNG1HUpHaWUWvFmBYFaSqJ0I9oZzkJxD11S8wu2nA==} peerDependencies: '@waline/client': ^3.3.1 artalk: ^2.9.0 @@ -2256,28 +2263,28 @@ packages: twikoo: optional: true - '@vuepress/plugin-docsearch@2.0.0-rc.56': - resolution: {integrity: sha512-l5+RP+l3d+WCOnxXVSCRmODYA8a6kyj3WBpjaFubOnVnasreHwKCCCWPInAFdgNsSFzw47SREXYtSSdkmwBf4A==} + '@vuepress/plugin-docsearch@2.0.0-rc.60': + resolution: {integrity: sha512-Nx69POUstOp1IfvM1veB1n6FqTg3pmLF3i9HRhN+gqgEU5v9im3n4gYpWs3hbvh3pnEzYIhbW+pgNpIHet/c1A==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-git@2.0.0-rc.56': - resolution: {integrity: sha512-hjIYPYQYC6qK0Zwo5pK4h2CkXcA4LMVx77ErdiVTyLpUOWT7ly0FIspNUiwHUgo4jddzMLFtttW2aEX1Q/2vgg==} + '@vuepress/plugin-git@2.0.0-rc.60': + resolution: {integrity: sha512-Eug3e/KtVcToql70fJmbY/s9d0mzyVku/tDX7Jy+BjjsyBuDQYl0geAJNn2uGDWl/k4QdQH0AqWly6h977m/4g==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-markdown-hint@2.0.0-rc.57': - resolution: {integrity: sha512-pJNy9N54s/VX1XOxMv43QFVfwBsavbA5P2oyAwzvmKKBeHZ1Tb2yq47ctEMdPXwcfWPQ+7KKO0M5zWFlt2ApbQ==} + '@vuepress/plugin-markdown-hint@2.0.0-rc.60': + resolution: {integrity: sha512-S5lTs1z4atkikul8RxTXR5eeGmjYM23ROhHLC2X4gTvHDbVH4gg+Z3HXbaOMJoafzSjwu4AQX2IRoehhHdsiEw==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-markdown-image@2.0.0-rc.57': - resolution: {integrity: sha512-1hFh0unC7GLwV7BxHs9/ieVhhv0YaqUNzNU0cXgWKAc1gIasMD0GG4mHiMbpUOMooL3oTimreQ9MCLAyfdI52Q==} + '@vuepress/plugin-markdown-image@2.0.0-rc.60': + resolution: {integrity: sha512-mL6SlBIZGKI9z93Ieg23umV673Keg3hAeB6B6FaF8C7sh6mrJYvWgdG2kasPOOUlzaASzZNbUhY5OZr14OMaYg==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-markdown-math@2.0.0-rc.57': - resolution: {integrity: sha512-IU/IWJyXRwLWChxf1PBHCL1CQ4X5mA306onnJVCHx5xuNpUce4hLFZWqvavugsY4KV478bznEoSCxxlR6YQNxw==} + '@vuepress/plugin-markdown-math@2.0.0-rc.60': + resolution: {integrity: sha512-RxrGSImeKwZVMNP+eXBaZKtV9P+EeNuS0uSdLne5uXGuNYF/CdRJEPRIdbseQb2KxfvOCHklZoZOxwbZvF0INw==} peerDependencies: katex: ^0.16.10 mathjax-full: ^3.2.2 @@ -2288,18 +2295,18 @@ packages: mathjax-full: optional: true - '@vuepress/plugin-nprogress@2.0.0-rc.57': - resolution: {integrity: sha512-Rf/KMx6d2N4ILqmSyo7IvxYx7XgoPk1tG6sAuXq4uir7c2xiwvwerUgMabLTIMt678eOdnVINhoNeOM5kIcDrQ==} + '@vuepress/plugin-nprogress@2.0.0-rc.60': + resolution: {integrity: sha512-dlMvDJQUbw8WNKSJeuzDQ9Hayje29QuFa9d75dLlXqwZUXDHER8Wn4luCPYDBnkIqMEK6jcum0Van7zqT1/udg==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-photo-swipe@2.0.0-rc.57': - resolution: {integrity: sha512-fiNvYP1LXxOahm7a2P7BRQM6zTrsK4cTGLoJPVSMZxjISyrm+wldcpJ/z3KMRTBmHmOGyHoao1smQDSVEckfwA==} + '@vuepress/plugin-photo-swipe@2.0.0-rc.60': + resolution: {integrity: sha512-JUHmYCp2cduu4UVZ1OneaQQ6ORG6gB9El7n6mCbH0k6nE+cd22OkIggmMOEMSP9EICpnKQe8jfu2No966h+dUg==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-reading-time@2.0.0-rc.57': - resolution: {integrity: sha512-4xl1F1gEicuzzlPvdEi4MUAR0iFVuqpVSRwqq0+ybqZVFNk3wCM+B+Y8x9vFNrsrrdl3uArQSuMLCTFHOj1MdA==} + '@vuepress/plugin-reading-time@2.0.0-rc.60': + resolution: {integrity: sha512-bon4SiuWNU4+asQWge1rOwiYTNeC5TIyv7Y0sOUoBlSc1WUBLcqHNKre1AXBNfXsCgisqdG32znW+vaGo7uwIQ==} peerDependencies: vuepress: 2.0.0-rc.18 @@ -2318,18 +2325,18 @@ packages: sass-loader: optional: true - '@vuepress/plugin-seo@2.0.0-rc.57': - resolution: {integrity: sha512-ngnwk5TEKOeB0BYlWh3wltka6VYhMlP478JChFxxEHc6u9H5iSDRX2bV2+WnCsPYNXnsAAtmy28KpRriMsVQ0g==} + '@vuepress/plugin-seo@2.0.0-rc.60': + resolution: {integrity: sha512-OQU4IFrY5w2MwXPserOlr7L0mNN0SjZ5NWqp3536pFkEpD8gNMjPQ/MogVG/6c36J4GhZKMih28Tgy2cSpV4Nw==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-sitemap@2.0.0-rc.57': - resolution: {integrity: sha512-rP4zvNgdkwU6z8xRBiCVtijltaAYOyWh3R/iKDXx7G1nbgppZOzY3/gzWj98AMsfy+yoAH/1irW+LS6nokuddw==} + '@vuepress/plugin-sitemap@2.0.0-rc.60': + resolution: {integrity: sha512-dPXK8oEBJ4LLUnOleqtGsODMnF2ROubBsAeTS97GW9TyUVI4DNFmzCUUctzfhHtGjVQOuChfJ+eCcaNEpL9/NQ==} peerDependencies: vuepress: 2.0.0-rc.18 - '@vuepress/plugin-watermark@2.0.0-rc.57': - resolution: {integrity: sha512-DdielmdGMX+jTg+yFcCk7jjDNcowFUnMXrtwv0KyC5TT4hJjw+i0mTI5/yOR+Xdb0q03WwJolq25E4QzWg+SOg==} + '@vuepress/plugin-watermark@2.0.0-rc.60': + resolution: {integrity: sha512-eLtMkjKhJvPbSStSGh7FPRa04/GpwNsk60vGdYNTCQ09ncfbUO17vci0yUryRc48e2RqfWLfyE1Ipt4Vl+iphw==} peerDependencies: vuepress: 2.0.0-rc.18 @@ -2412,8 +2419,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - algoliasearch@4.24.0: - resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} + algoliasearch@5.12.0: + resolution: {integrity: sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==} + engines: {node: '>= 14.0.0'} ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -6379,109 +6387,110 @@ packages: snapshots: - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': + '@algolia/autocomplete-core@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2) + '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) search-insights: 2.17.2 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + '@algolia/autocomplete-preset-algolia@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 + '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/client-search': 5.12.0 + algoliasearch: 5.12.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + '@algolia/autocomplete-shared@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': dependencies: - '@algolia/client-search': 4.24.0 - algoliasearch: 4.24.0 + '@algolia/client-search': 5.12.0 + algoliasearch: 5.12.0 - '@algolia/cache-browser-local-storage@4.24.0': + '@algolia/client-abtesting@5.12.0': dependencies: - '@algolia/cache-common': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/cache-common@4.24.0': {} - - '@algolia/cache-in-memory@4.24.0': + '@algolia/client-analytics@5.12.0': dependencies: - '@algolia/cache-common': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-account@4.24.0': + '@algolia/client-common@5.12.0': {} + + '@algolia/client-insights@5.12.0': dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-analytics@4.24.0': + '@algolia/client-personalization@5.12.0': dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-common@4.24.0': + '@algolia/client-query-suggestions@5.12.0': dependencies: - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-personalization@4.24.0': + '@algolia/client-search@5.12.0': dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-search@4.24.0': + '@algolia/ingestion@1.12.0': dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/logger-common@4.24.0': {} - - '@algolia/logger-console@4.24.0': + '@algolia/monitoring@1.12.0': dependencies: - '@algolia/logger-common': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/recommend@4.24.0': + '@algolia/recommend@5.12.0': dependencies: - '@algolia/cache-browser-local-storage': 4.24.0 - '@algolia/cache-common': 4.24.0 - '@algolia/cache-in-memory': 4.24.0 - '@algolia/client-common': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/logger-console': 4.24.0 - '@algolia/requester-browser-xhr': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/requester-browser-xhr@4.24.0': + '@algolia/requester-browser-xhr@5.12.0': dependencies: - '@algolia/requester-common': 4.24.0 + '@algolia/client-common': 5.12.0 - '@algolia/requester-common@4.24.0': {} - - '@algolia/requester-node-http@4.24.0': + '@algolia/requester-fetch@5.12.0': dependencies: - '@algolia/requester-common': 4.24.0 + '@algolia/client-common': 5.12.0 - '@algolia/transporter@4.24.0': + '@algolia/requester-node-http@5.12.0': dependencies: - '@algolia/cache-common': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/requester-common': 4.24.0 + '@algolia/client-common': 5.12.0 '@ampproject/remapping@2.3.0': dependencies: @@ -6798,11 +6807,11 @@ snapshots: dependencies: postcss-selector-parser: 6.1.2 - '@docsearch/css@3.6.2': {} + '@docsearch/css@3.7.0': {} - '@docsearch/js@3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)': + '@docsearch/js@3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2)': dependencies: - '@docsearch/react': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2) + '@docsearch/react': 3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2) preact: 10.24.1 transitivePeerDependencies: - '@algolia/client-search' @@ -6811,12 +6820,12 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)': + '@docsearch/react@3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@docsearch/css': 3.6.2 - algoliasearch: 4.24.0 + '@algolia/autocomplete-core': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2) + '@algolia/autocomplete-preset-algolia': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@docsearch/css': 3.7.0 + algoliasearch: 5.12.0 optionalDependencies: search-insights: 2.17.2 transitivePeerDependencies: @@ -8343,7 +8352,7 @@ snapshots: - '@vue/composition-api' - typescript - '@vuepress/helper@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/helper@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: '@vue/shared': 3.5.12 '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) @@ -8356,7 +8365,7 @@ snapshots: - '@vue/composition-api' - typescript - '@vuepress/helper@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/helper@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: '@vue/shared': 3.5.12 '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) @@ -8396,9 +8405,9 @@ snapshots: lru-cache: 10.4.3 vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) - '@vuepress/plugin-comment@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-comment@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) giscus: 1.5.0 vue: 3.5.12(typescript@5.6.3) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) @@ -8406,12 +8415,11 @@ snapshots: - '@vue/composition-api' - typescript - '@vuepress/plugin-docsearch@2.0.0-rc.56(@algolia/client-search@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-docsearch@2.0.0-rc.60(@algolia/client-search@5.12.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@docsearch/css': 3.6.2 - '@docsearch/js': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2) - '@docsearch/react': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2) - '@vuepress/helper': 2.0.0-rc.56(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@docsearch/css': 3.7.0 + '@docsearch/js': 3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) ts-debounce: 4.0.0 vue: 3.5.12(typescript@5.6.3) @@ -8425,17 +8433,17 @@ snapshots: - search-insights - typescript - '@vuepress/plugin-git@2.0.0-rc.56(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-git@2.0.0-rc.60(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: execa: 9.5.1 vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) - '@vuepress/plugin-markdown-hint@2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-markdown-hint@2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: '@mdit/plugin-alert': 0.13.1(markdown-it@14.1.0) '@mdit/plugin-container': 0.13.1(markdown-it@14.1.0) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: @@ -8444,26 +8452,26 @@ snapshots: - typescript - vue - '@vuepress/plugin-markdown-image@2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-markdown-image@2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: '@mdit/plugin-figure': 0.13.1(markdown-it@14.1.0) '@mdit/plugin-img-lazyload': 0.13.1(markdown-it@14.1.0) '@mdit/plugin-img-mark': 0.13.1(markdown-it@14.1.0) '@mdit/plugin-img-size': 0.13.1(markdown-it@14.1.0) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - markdown-it - typescript - '@vuepress/plugin-markdown-math@2.0.0-rc.57(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-markdown-math@2.0.0-rc.60(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: '@mdit/plugin-katex-slim': 0.13.1(katex@0.16.11)(markdown-it@14.1.0) '@mdit/plugin-mathjax-slim': 0.13.1(markdown-it@14.1.0)(mathjax-full@3.2.2) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) vue: 3.5.12(typescript@5.6.3) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) optionalDependencies: @@ -8474,18 +8482,18 @@ snapshots: - markdown-it - typescript - '@vuepress/plugin-nprogress@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-nprogress@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) vue: 3.5.12(typescript@5.6.3) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - typescript - '@vuepress/plugin-photo-swipe@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-photo-swipe@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) photoswipe: 5.4.4 vue: 3.5.12(typescript@5.6.3) @@ -8494,9 +8502,9 @@ snapshots: - '@vue/composition-api' - typescript - '@vuepress/plugin-reading-time@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-reading-time@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) vue: 3.5.12(typescript@5.6.3) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: @@ -8516,26 +8524,26 @@ snapshots: - '@vue/composition-api' - typescript - '@vuepress/plugin-seo@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-seo@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - typescript - '@vuepress/plugin-sitemap@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-sitemap@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) sitemap: 8.0.0 vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - typescript - '@vuepress/plugin-watermark@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': + '@vuepress/plugin-watermark@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) + '@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))) vue: 3.5.12(typescript@5.6.3) vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)) watermark-js-plus: 1.5.7 @@ -8621,23 +8629,21 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@4.24.0: + algoliasearch@5.12.0: dependencies: - '@algolia/cache-browser-local-storage': 4.24.0 - '@algolia/cache-common': 4.24.0 - '@algolia/cache-in-memory': 4.24.0 - '@algolia/client-account': 4.24.0 - '@algolia/client-analytics': 4.24.0 - '@algolia/client-common': 4.24.0 - '@algolia/client-personalization': 4.24.0 - '@algolia/client-search': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/logger-console': 4.24.0 - '@algolia/recommend': 4.24.0 - '@algolia/requester-browser-xhr': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-abtesting': 5.12.0 + '@algolia/client-analytics': 5.12.0 + '@algolia/client-common': 5.12.0 + '@algolia/client-insights': 5.12.0 + '@algolia/client-personalization': 5.12.0 + '@algolia/client-query-suggestions': 5.12.0 + '@algolia/client-search': 5.12.0 + '@algolia/ingestion': 1.12.0 + '@algolia/monitoring': 1.12.0 + '@algolia/recommend': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 ansi-escapes@4.3.2: dependencies: diff --git a/theme/package.json b/theme/package.json index 8fe872fd..a5a9e837 100644 --- a/theme/package.json +++ b/theme/package.json @@ -98,20 +98,20 @@ "@vuepress-plume/plugin-fonts": "workspace:*", "@vuepress-plume/plugin-search": "workspace:*", "@vuepress-plume/plugin-shikiji": "workspace:*", - "@vuepress/helper": "2.0.0-rc.57", + "@vuepress/helper": "2.0.0-rc.60", "@vuepress/plugin-cache": "2.0.0-rc.54", - "@vuepress/plugin-comment": "2.0.0-rc.57", - "@vuepress/plugin-docsearch": "2.0.0-rc.56", - "@vuepress/plugin-git": "2.0.0-rc.56", - "@vuepress/plugin-markdown-hint": "2.0.0-rc.57", - "@vuepress/plugin-markdown-image": "2.0.0-rc.57", - "@vuepress/plugin-markdown-math": "2.0.0-rc.57", - "@vuepress/plugin-nprogress": "2.0.0-rc.57", - "@vuepress/plugin-photo-swipe": "2.0.0-rc.57", - "@vuepress/plugin-reading-time": "2.0.0-rc.57", - "@vuepress/plugin-seo": "2.0.0-rc.57", - "@vuepress/plugin-sitemap": "2.0.0-rc.57", - "@vuepress/plugin-watermark": "2.0.0-rc.57", + "@vuepress/plugin-comment": "2.0.0-rc.60", + "@vuepress/plugin-docsearch": "2.0.0-rc.60", + "@vuepress/plugin-git": "2.0.0-rc.60", + "@vuepress/plugin-markdown-hint": "2.0.0-rc.60", + "@vuepress/plugin-markdown-image": "2.0.0-rc.60", + "@vuepress/plugin-markdown-math": "2.0.0-rc.60", + "@vuepress/plugin-nprogress": "2.0.0-rc.60", + "@vuepress/plugin-photo-swipe": "2.0.0-rc.60", + "@vuepress/plugin-reading-time": "2.0.0-rc.60", + "@vuepress/plugin-seo": "2.0.0-rc.60", + "@vuepress/plugin-sitemap": "2.0.0-rc.60", + "@vuepress/plugin-watermark": "2.0.0-rc.60", "@vueuse/core": "^11.2.0", "bcrypt-ts": "^5.0.2", "chokidar": "3.6.0", diff --git a/theme/src/client/components/VPDoc.vue b/theme/src/client/components/VPDoc.vue index dc71e11c..46225d8a 100644 --- a/theme/src/client/components/VPDoc.vue +++ b/theme/src/client/components/VPDoc.vue @@ -1,6 +1,8 @@ + + + + diff --git a/theme/src/client/components/VPDocContributor.vue b/theme/src/client/components/VPDocContributor.vue new file mode 100644 index 00000000..926edc6a --- /dev/null +++ b/theme/src/client/components/VPDocContributor.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/theme/src/client/components/VPDocFooter.vue b/theme/src/client/components/VPDocFooter.vue index 2b4221c6..5cfd5c8b 100644 --- a/theme/src/client/components/VPDocFooter.vue +++ b/theme/src/client/components/VPDocFooter.vue @@ -7,21 +7,27 @@ import { useEditLink, useLastUpdated, usePrevNext, + useThemeData, } from '../composables/index.js' -const { theme, frontmatter } = useData() +const { theme, frontmatter, page } = useData() +const themeData = useThemeData() const editLink = useEditLink() const { datetime: lastUpdated, isoDatetime, lastUpdatedText } = useLastUpdated() -const contributors = useContributors() +const { contributors, mode } = useContributors() const { prev, next } = usePrevNext() +const hasChangelog = computed(() => + page.value.git?.changelog?.length && (frontmatter.value.changelog ?? !!themeData.value.changelog), +) + const hasEditLink = computed(() => - Boolean(theme.value.editLink && frontmatter.value.editLink !== false && editLink.value), + Boolean(themeData.value.editLink && frontmatter.value.editLink !== false && editLink.value), ) const hasLastUpdated = computed(() => - Boolean(theme.value.lastUpdated && frontmatter.value.lastUpdated !== false && lastUpdated.value), + Boolean(themeData.value.lastUpdated !== false && frontmatter.value.lastUpdated !== false && lastUpdated.value) && !hasChangelog.value, ) -const hasContributors = computed(() => Boolean(contributors.value.length)) +const hasContributors = computed(() => Boolean(contributors.value.length) && mode.value === 'inline') const showFooter = computed(() => { return hasEditLink.value @@ -44,7 +50,7 @@ const showFooter = computed(() => { -
+

{{ lastUpdatedText }}:

-
+
{{ theme.contributorsText || 'Contributors' }}: -