chore: upgrade to TS 5.0 + use moduleResolution: "bundler"

pull/2104/head
Evan You 1 year ago
parent ee6cda42d8
commit 16064023cf

@ -170,9 +170,9 @@
"simple-git-hooks": "^2.8.1",
"sirv": "^2.0.2",
"supports-color": "^9.3.1",
"typescript": "^4.9.5",
"typescript": "^5.0.0",
"vitest": "^0.29.2",
"vue-tsc": "^1.2.0",
"vue-tsc": "^1.3.2",
"wait-on": "^7.0.1"
},
"pnpm": {

@ -83,11 +83,11 @@ importers:
simple-git-hooks: ^2.8.1
sirv: ^2.0.2
supports-color: ^9.3.1
typescript: ^4.9.5
typescript: ^5.0.0
vite: ^4.1.4
vitest: ^0.29.2
vue: ^3.2.47
vue-tsc: ^1.2.0
vue-tsc: ^1.3.2
wait-on: ^7.0.1
dependencies:
'@docsearch/css': 3.3.3
@ -165,16 +165,16 @@ importers:
punycode: 2.3.0
rimraf: 4.4.0
rollup: 3.19.1
rollup-plugin-dts: 5.2.0_h4kaxwm6ctjivrsm4cpxaz7nqu
rollup-plugin-dts: 5.2.0_7iejawhbqmte5pthjozf4tfuqy
rollup-plugin-esbuild: 5.0.0_pguajubqukbnwk3mu7gtzimteq
semver: 7.3.8
shiki-processor: 0.1.3_shiki@0.14.1
simple-git-hooks: 2.8.1
sirv: 2.0.2
supports-color: 9.3.1
typescript: 4.9.5
typescript: 5.0.2
vitest: 0.29.2_supports-color@9.3.1
vue-tsc: 1.2.0_typescript@4.9.5
vue-tsc: 1.3.2_typescript@5.0.2
wait-on: 7.0.1_debug@4.3.4
__tests__/e2e:
@ -1271,29 +1271,29 @@ packages:
pretty-format: 27.5.1
dev: true
/@volar/language-core/1.3.0-alpha.0:
resolution: {integrity: sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==}
/@volar/language-core/1.4.0-alpha.3:
resolution: {integrity: sha512-TDDqgvVgNWE952EQ6+iyasksYeLHdSKKhWMVmsMIywmE2gPdcqKIUBI+M8JNz2uKEraiOEtU+kJZpk5GJaTDTg==}
dependencies:
'@volar/source-map': 1.3.0-alpha.0
'@volar/source-map': 1.4.0-alpha.3
dev: true
/@volar/source-map/1.3.0-alpha.0:
resolution: {integrity: sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==}
/@volar/source-map/1.4.0-alpha.3:
resolution: {integrity: sha512-3qwtBAp6TkkrNW9dLNjaZYzWttUWEI9XKSi/V7odt3rC9yPoWgqizC0J95essDtrEu9PoxbxTkTeZvRx5c//Ow==}
dependencies:
muggle-string: 0.2.2
dev: true
/@volar/typescript/1.3.0-alpha.0:
resolution: {integrity: sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==}
/@volar/typescript/1.4.0-alpha.3:
resolution: {integrity: sha512-O8LTFLp9rw2nhJfHqcikx/im69r9Pfih+qHc2lCgaNlvwFmk7VGdWGghWlPmdGd1XE48gu9MmdCZP3NZ5hqCKg==}
dependencies:
'@volar/language-core': 1.3.0-alpha.0
'@volar/language-core': 1.4.0-alpha.3
dev: true
/@volar/vue-language-core/1.2.0:
resolution: {integrity: sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==}
/@volar/vue-language-core/1.3.2:
resolution: {integrity: sha512-5HCMVoFFDIuf5bHnHux1jaRscZW5hsK/2T0p7qp+XuGWZ2fDN1nr9Ujn49jSvM7LqQB93Y1fFLKp3vZswV2YUw==}
dependencies:
'@volar/language-core': 1.3.0-alpha.0
'@volar/source-map': 1.3.0-alpha.0
'@volar/language-core': 1.4.0-alpha.3
'@volar/source-map': 1.4.0-alpha.3
'@vue/compiler-dom': 3.2.47
'@vue/compiler-sfc': 3.2.47
'@vue/reactivity': 3.2.47
@ -1303,11 +1303,11 @@ packages:
vue-template-compiler: 2.7.14
dev: true
/@volar/vue-typescript/1.2.0:
resolution: {integrity: sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==}
/@volar/vue-typescript/1.3.2:
resolution: {integrity: sha512-/yOWlfgHOfk2u0bBDvSaV2VtS9rTPPgCSkiLsa9rYYgc9fldYNou5GFHdg/2vP6K0Pw3+zKTPjLc5ot7NfuImw==}
dependencies:
'@volar/typescript': 1.3.0-alpha.0
'@volar/vue-language-core': 1.2.0
'@volar/typescript': 1.4.0-alpha.3
'@volar/vue-language-core': 1.3.2
dev: true
/@vue/compiler-core/3.2.47:
@ -3828,7 +3828,7 @@ packages:
glob: 9.2.1
dev: true
/rollup-plugin-dts/5.2.0_h4kaxwm6ctjivrsm4cpxaz7nqu:
/rollup-plugin-dts/5.2.0_7iejawhbqmte5pthjozf4tfuqy:
resolution: {integrity: sha512-B68T/haEu2MKcz4kNUhXB8/h5sq4gpplHAJIYNHbh8cp4ZkvzDvNca/11KQdFrB9ZeKucegQIotzo5T0JUtM8w==}
engines: {node: '>=v14'}
peerDependencies:
@ -3837,7 +3837,7 @@ packages:
dependencies:
magic-string: 0.29.0
rollup: 3.19.1
typescript: 4.9.5
typescript: 5.0.2
optionalDependencies:
'@babel/code-frame': 7.18.6
dev: true
@ -4321,9 +4321,9 @@ packages:
is-typed-array: 1.1.10
dev: true
/typescript/4.9.5:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
/typescript/5.0.2:
resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==}
engines: {node: '>=12.20'}
hasBin: true
dev: true
@ -4516,15 +4516,15 @@ packages:
he: 1.2.0
dev: true
/vue-tsc/1.2.0_typescript@4.9.5:
resolution: {integrity: sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==}
/vue-tsc/1.3.2_typescript@5.0.2:
resolution: {integrity: sha512-RfPXpQID6TTlJrMzuYuvU3lE21zN+2sTUs1l2Xo++2oqst+Aur0Ctdmi6sZ37QkluGBuWoXy8UUiyVp6nKMTfQ==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
'@volar/vue-language-core': 1.2.0
'@volar/vue-typescript': 1.2.0
typescript: 4.9.5
'@volar/vue-language-core': 1.3.2
'@volar/vue-typescript': 1.3.2
typescript: 5.0.2
dev: true
/vue/3.2.47:

@ -1,6 +1,6 @@
import { defineComponent, h } from 'vue'
import { useRoute } from '../router.js'
import { contentUpdatedCallbacks } from '../utils.js'
import { useRoute } from '../router'
import { contentUpdatedCallbacks } from '../utils'
const runCbs = () => contentUpdatedCallbacks.forEach((fn) => fn())

@ -4,8 +4,8 @@ import {
type SiteData,
createTitle,
mergeHead
} from '../../shared.js'
import type { Route } from '../router.js'
} from '../../shared'
import type { Route } from '../router'
export function useUpdateHead(route: Route, siteDataByRouteRef: Ref<SiteData>) {
let managedHeadTags: HTMLElement[] = []

@ -1,9 +1,9 @@
// Customized pre-fetch for page chunks based on
// https://github.com/GoogleChromeLabs/quicklink
import { useRoute } from '../router.js'
import { useRoute } from '../router'
import { onMounted, onUnmounted, watch } from 'vue'
import { inBrowser, pathToFile } from '../utils.js'
import { inBrowser, pathToFile } from '../utils'
const hasFetched = new Set<string>()
const createLink = () => document.createElement('link')

@ -7,14 +7,14 @@ import {
ref,
shallowRef
} from 'vue'
import type { Route } from './router.js'
import type { Route } from './router'
import siteData from '@siteData'
import {
type PageData,
type SiteData,
resolveSiteDataByRoute,
createTitle
} from '../shared.js'
} from '../shared'
export const dataSymbol: InjectionKey<VitePressData> = Symbol()

@ -1,7 +1,7 @@
import { setupDevtoolsPlugin } from '@vue/devtools-api'
import type { App } from 'vue'
import type { Router } from './router.js'
import type { VitePressData } from './data.js'
import type { Router } from './router'
import type { VitePressData } from './data'
const COMPONENT_STATE_TYPE = 'VitePress'

@ -8,16 +8,16 @@ import {
watchEffect
} from 'vue'
import RawTheme from '@theme/index'
import { inBrowser, pathToFile } from './utils.js'
import { type Router, RouterSymbol, createRouter, scrollTo } from './router.js'
import { siteDataRef, useData } from './data.js'
import { useUpdateHead } from './composables/head.js'
import { usePrefetch } from './composables/preFetch.js'
import { dataSymbol, initData } from './data.js'
import { Content } from './components/Content.js'
import { ClientOnly } from './components/ClientOnly.js'
import { useCopyCode } from './composables/copyCode.js'
import { useCodeGroups } from './composables/codeGroups.js'
import { inBrowser, pathToFile } from './utils'
import { type Router, RouterSymbol, createRouter, scrollTo } from './router'
import { siteDataRef, useData } from './data'
import { useUpdateHead } from './composables/head'
import { usePrefetch } from './composables/preFetch'
import { dataSymbol, initData } from './data'
import { Content } from './components/Content'
import { ClientOnly } from './components/ClientOnly'
import { useCopyCode } from './composables/copyCode'
import { useCodeGroups } from './composables/codeGroups'
function resolveThemeExtends(theme: typeof RawTheme): typeof RawTheme {
if (theme.extends) {

@ -1,9 +1,9 @@
import { reactive, inject, markRaw, nextTick, readonly } from 'vue'
import type { Component, InjectionKey } from 'vue'
import { notFoundPageData } from '../shared.js'
import type { PageData, PageDataPayload, Awaitable } from '../shared.js'
import { inBrowser, withBase } from './utils.js'
import { siteDataRef } from './data.js'
import { notFoundPageData } from '../shared'
import type { PageData, PageDataPayload, Awaitable } from '../shared'
import { inBrowser, withBase } from './utils'
import { siteDataRef } from './data'
export interface Route {
path: string

@ -1,7 +1,7 @@
// entry for SSR
import { createApp } from './index.js'
import { createApp } from './index'
import { renderToString } from 'vue/server-renderer'
import type { SSGContext } from '../shared.js'
import type { SSGContext } from '../shared'
export async function render(path: string) {
const { app, router } = await createApp()

@ -1,6 +1,6 @@
import type { App, Ref, Component } from 'vue'
import type { Router } from './router.js'
import type { Awaitable, SiteData } from '../shared.js'
import type { Router } from './router'
import type { Awaitable, SiteData } from '../shared'
export interface EnhanceAppContext {
app: App

@ -1,5 +1,5 @@
import { siteDataRef } from './data.js'
import { inBrowser, EXTERNAL_URL_RE, sanitizeFileName } from '../shared.js'
import { siteDataRef } from './data'
import { inBrowser, EXTERNAL_URL_RE, sanitizeFileName } from '../shared'
import {
h,
onMounted,
@ -8,7 +8,7 @@ import {
type AsyncComponentLoader
} from 'vue'
export { inBrowser } from '../shared.js'
export { inBrowser } from '../shared'
/**
* Join two paths by resolving the slash collision.

@ -2,23 +2,18 @@
// so the user can do `import { useRoute, useSiteData } from 'vitepress'`
// generic types
export type { VitePressData } from './app/data.js'
export type { Route, Router } from './app/router.js'
export type { VitePressData } from './app/data'
export type { Route, Router } from './app/router'
// theme types
export type { EnhanceAppContext, Theme } from './app/theme.js'
export type { EnhanceAppContext, Theme } from './app/theme'
// shared types
export type {
HeadConfig,
Header,
PageData,
SiteData
} from '../../types/shared.js'
export type { HeadConfig, Header, PageData, SiteData } from '../../types/shared'
// composables
export { useData } from './app/data.js'
export { useRoute, useRouter } from './app/router.js'
export { useData } from './app/data'
export { useRoute, useRouter } from './app/router'
// utilities
export {
@ -26,7 +21,7 @@ export {
onContentUpdated,
defineClientComponent,
withBase
} from './app/utils.js'
} from './app/utils'
// components
export { Content } from './app/components/Content.js'
export { Content } from './app/components/Content'

@ -1,8 +1,8 @@
<script setup lang="ts">
import { computed, provide, useSlots, watch } from 'vue'
import { useRoute } from 'vitepress'
import { useData } from './composables/data.js'
import { useSidebar, useCloseSidebarOnEscape } from './composables/sidebar.js'
import { useData } from './composables/data'
import { useSidebar, useCloseSidebarOnEscape } from './composables/sidebar'
import VPSkipLink from './components/VPSkipLink.vue'
import VPBackdrop from './components/VPBackdrop.vue'
import VPNav from './components/VPNav.vue'

@ -1,8 +1,8 @@
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import { withBase } from 'vitepress'
import { useData } from './composables/data.js'
import { useLangs } from './composables/langs.js'
import { useData } from './composables/data'
import { useLangs } from './composables/langs'
const { site } = useData()
const { localeLinks } = useLangs({ removeCurrent: false })

@ -3,7 +3,7 @@ import type { DefaultTheme } from 'vitepress/theme'
import docsearch from '@docsearch/js'
import { onMounted, watch } from 'vue'
import { useRouter, useRoute } from 'vitepress'
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
const props = defineProps<{
algolia: DefaultTheme.AlgoliaSearchOptions
@ -13,8 +13,7 @@ const router = useRouter()
const route = useRoute()
const { site, localeIndex, lang } = useData()
const docsearch$ = docsearch.default ?? docsearch
type DocSearchProps = Parameters<typeof docsearch$>[0]
type DocSearchProps = Parameters<typeof docsearch>[0]
onMounted(update)
watch(localeIndex, update)
@ -82,7 +81,7 @@ function initialize(userOptions: DefaultTheme.AlgoliaSearchOptions) {
}
})
docsearch$(options)
docsearch(options)
}
function getRelativePath(absoluteUrl: string) {

@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed } from 'vue'
import { normalizeLink } from '../support/utils.js'
import { EXTERNAL_URL_RE } from '../../shared.js'
import { normalizeLink } from '../support/utils'
import { EXTERNAL_URL_RE } from '../../shared'
const props = defineProps<{
tag?: string

@ -1,8 +1,8 @@
<script setup lang="ts">
import type { DefaultTheme } from 'vitepress/theme'
import { ref, watch, onMounted } from 'vue'
import { useAside } from '../composables/aside.js'
import { useData } from '../composables/data.js'
import { useAside } from '../composables/aside'
import { useData } from '../composables/data'
const { page } = useData()
const props = defineProps<{

@ -1,6 +1,6 @@
<script setup lang="ts">
import { useData } from '../composables/data.js'
import { useSidebar } from '../composables/sidebar.js'
import { useData } from '../composables/data'
import { useSidebar } from '../composables/sidebar'
import VPPage from './VPPage.vue'
import VPHome from './VPHome.vue'
import VPDoc from './VPDoc.vue'

@ -1,7 +1,7 @@
<script setup lang="ts">
import { useRoute } from 'vitepress'
import { computed } from 'vue'
import { useSidebar } from '../composables/sidebar.js'
import { useSidebar } from '../composables/sidebar'
import VPDocAside from './VPDocAside.vue'
import VPDocFooter from './VPDocFooter.vue'
import VPDocOutlineDropdown from './VPDocOutlineDropdown.vue'

@ -1,5 +1,5 @@
<script setup lang="ts">
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPDocAsideOutline from './VPDocAsideOutline.vue'
import VPDocAsideCarbonAds from './VPDocAsideCarbonAds.vue'

@ -1,12 +1,12 @@
<script setup lang="ts">
import { ref, shallowRef } from 'vue'
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import {
getHeaders,
resolveTitle,
useActiveAnchor,
type MenuItem
} from '../composables/outline.js'
} from '../composables/outline'
import VPDocOutlineItem from './VPDocOutlineItem.vue'
import { onContentUpdated } from 'vitepress'

@ -1,9 +1,9 @@
<script setup lang="ts">
import { computed } from 'vue'
import { useData } from '../composables/data.js'
import { normalizeLink } from '../support/utils.js'
import { useEditLink } from '../composables/edit-link.js'
import { usePrevNext } from '../composables/prev-next.js'
import { useData } from '../composables/data'
import { normalizeLink } from '../support/utils'
import { useEditLink } from '../composables/edit-link'
import { usePrevNext } from '../composables/prev-next'
import VPIconEdit from './icons/VPIconEdit.vue'
import VPLink from './VPLink.vue'
import VPDocFooterLastUpdated from './VPDocFooterLastUpdated.vue'

@ -1,6 +1,6 @@
<script setup lang="ts">
import { ref, computed, watchEffect, onMounted } from 'vue'
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
const { theme, page } = useData()

@ -1,7 +1,7 @@
<script setup lang="ts">
import { ref } from 'vue'
import { useData } from '../composables/data.js'
import { getHeaders, resolveTitle } from '../composables/outline.js'
import { useData } from '../composables/data'
import { getHeaders, resolveTitle } from '../composables/outline'
import VPDocOutlineItem from './VPDocOutlineItem.vue'
import { onContentUpdated } from 'vitepress'
import VPIconChevronRight from './icons/VPIconChevronRight.vue'

@ -1,5 +1,5 @@
<script setup lang="ts">
import type { MenuItem } from '../composables/outline.js'
import type { MenuItem } from '../composables/outline'
defineProps<{
headers: MenuItem[]

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { ref } from 'vue'
import { useFlyout } from '../composables/flyout.js'
import { useFlyout } from '../composables/flyout'
import VPIconChevronDown from './icons/VPIconChevronDown.vue'
import VPIconMoreHorizontal from './icons/VPIconMoreHorizontal.vue'
import VPMenu from './VPMenu.vue'

@ -1,6 +1,6 @@
<script setup lang="ts">
import { useData } from '../composables/data.js'
import { useSidebar } from '../composables/sidebar.js'
import { useData } from '../composables/data'
import { useSidebar } from '../composables/sidebar'
const { theme } = useData()
const { hasSidebar } = useSidebar()

@ -1,5 +1,5 @@
<script setup lang="ts">
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPFeatures from './VPFeatures.vue'
const { frontmatter: fm } = useData()

@ -1,5 +1,5 @@
<script setup lang="ts">
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPHero from './VPHero.vue'
const { frontmatter: fm } = useData()

@ -1,8 +1,8 @@
<script lang="ts" setup>
import { computed } from 'vue'
import { normalizeLink } from '../support/utils.js'
import { normalizeLink } from '../support/utils'
import VPIconExternalLink from './icons/VPIconExternalLink.vue'
import { EXTERNAL_URL_RE } from '../../shared.js'
import { EXTERNAL_URL_RE } from '../../shared'
const props = defineProps<{
tag?: string

@ -1,6 +1,6 @@
<script lang="ts" setup>
import { useData } from '../composables/data.js'
import { useSidebar } from '../composables/sidebar.js'
import { useData } from '../composables/data'
import { useSidebar } from '../composables/sidebar'
import VPIconAlignLeft from './icons/VPIconAlignLeft.vue'
import VPLocalNavOutlineDropdown from './VPLocalNavOutlineDropdown.vue'

@ -1,7 +1,7 @@
<script setup lang="ts">
import { ref, nextTick } from 'vue'
import { useData } from '../composables/data.js'
import { getHeaders, resolveTitle } from '../composables/outline.js'
import { useData } from '../composables/data'
import { getHeaders, resolveTitle } from '../composables/outline'
import VPDocOutlineItem from './VPDocOutlineItem.vue'
import { onContentUpdated } from 'vitepress'
import VPIconChevronRight from './icons/VPIconChevronRight.vue'

@ -1,7 +1,7 @@
<script lang="ts" setup>
import type { DefaultTheme } from 'vitepress/theme'
import { useData } from '../composables/data.js'
import { isActive } from '../support/utils.js'
import { useData } from '../composables/data'
import { isActive } from '../support/utils'
import VPLink from './VPLink.vue'
defineProps<{
@ -13,7 +13,7 @@ const { page } = useData()
<template>
<div class="VPMenuLink">
<VPLink
<VPLink
:class="{ active: isActive(page.relativePath, item.activeMatch || item.link, !!item.activeMatch) }"
:href="item.link"
:target="item.target"

@ -1,6 +1,6 @@
<script setup lang="ts">
import { provide } from 'vue'
import { useNav } from '../composables/nav.js'
import { useNav } from '../composables/nav'
import VPNavBar from './VPNavBar.vue'
import VPNavScreen from './VPNavScreen.vue'

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { computed } from 'vue'
import { useWindowScroll } from '@vueuse/core'
import { useSidebar } from '../composables/sidebar.js'
import { useSidebar } from '../composables/sidebar'
import VPNavBarTitle from './VPNavBarTitle.vue'
import VPNavBarSearch from './VPNavBarSearch.vue'
import VPNavBarMenu from './VPNavBarMenu.vue'

@ -1,5 +1,5 @@
<script lang="ts" setup>
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPSwitchAppearance from './VPSwitchAppearance.vue'
const { site } = useData()

@ -4,8 +4,8 @@ import VPFlyout from './VPFlyout.vue'
import VPMenuLink from './VPMenuLink.vue'
import VPSwitchAppearance from './VPSwitchAppearance.vue'
import VPSocialLinks from './VPSocialLinks.vue'
import { useData } from '../composables/data.js'
import { useLangs } from '../composables/langs.js'
import { useData } from '../composables/data'
import { useLangs } from '../composables/langs'
const { site, theme } = useData()
const { localeLinks, currentLang } = useLangs({ correspondingLink: true })

@ -1,5 +1,5 @@
<script lang="ts" setup>
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPNavBarMenuLink from './VPNavBarMenuLink.vue'
import VPNavBarMenuGroup from './VPNavBarMenuGroup.vue'

@ -1,7 +1,7 @@
<script lang="ts" setup>
import type { DefaultTheme } from 'vitepress/theme'
import { useData } from '../composables/data.js'
import { isActive } from '../support/utils.js'
import { useData } from '../composables/data'
import { isActive } from '../support/utils'
import VPFlyout from './VPFlyout.vue'
defineProps<{

@ -1,7 +1,7 @@
<script lang="ts" setup>
import type { DefaultTheme } from 'vitepress/theme'
import { useData } from '../composables/data.js'
import { isActive } from '../support/utils.js'
import { useData } from '../composables/data'
import { isActive } from '../support/utils'
import VPLink from './VPLink.vue'
defineProps<{

@ -7,7 +7,7 @@ import {
onUnmounted,
ref
} from 'vue'
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
const VPAlgoliaSearchBox = __ALGOLIA__
? defineAsyncComponent(() => import('./VPAlgoliaSearchBox.vue'))

@ -1,5 +1,5 @@
<script lang="ts" setup>
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPSocialLinks from './VPSocialLinks.vue'
const { theme } = useData()

@ -1,8 +1,8 @@
<script setup lang="ts">
import { useData } from '../composables/data.js'
import { useSidebar } from '../composables/sidebar.js'
import { useLangs } from '../composables/langs.js'
import { normalizeLink } from '../support/utils.js'
import { useData } from '../composables/data'
import { useSidebar } from '../composables/sidebar'
import { useLangs } from '../composables/langs'
import { normalizeLink } from '../support/utils'
import VPImage from './VPImage.vue'
const { site, theme } = useData()

@ -2,8 +2,8 @@
import VPIconLanguages from './icons/VPIconLanguages.vue'
import VPFlyout from './VPFlyout.vue'
import VPMenuLink from './VPMenuLink.vue'
import { useData } from '../composables/data.js'
import { useLangs } from '../composables/langs.js'
import { useData } from '../composables/data'
import { useLangs } from '../composables/langs'
const { theme } = useData()
const { localeLinks, currentLang } = useLangs({ correspondingLink: true })

@ -1,5 +1,5 @@
<script lang="ts" setup>
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPSwitchAppearance from './VPSwitchAppearance.vue'
const { site, theme } = useData()

@ -1,5 +1,5 @@
<script lang="ts" setup>
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPNavScreenMenuLink from './VPNavScreenMenuLink.vue'
import VPNavScreenMenuGroup from './VPNavScreenMenuGroup.vue'

@ -1,5 +1,5 @@
<script lang="ts" setup>
import { useData } from '../composables/data.js'
import { useData } from '../composables/data'
import VPSocialLinks from './VPSocialLinks.vue'
const { theme } = useData()

@ -2,7 +2,7 @@
import { ref } from 'vue'
import VPIconChevronDown from './icons/VPIconChevronDown.vue'
import VPIconLanguages from './icons/VPIconLanguages.vue'
import { useLangs } from '../composables/langs.js'
import { useLangs } from '../composables/langs'
import VPLink from './VPLink.vue'
const { localeLinks, currentLang } = useLangs({ correspondingLink: true })

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { ref, watchPostEffect } from 'vue'
import { disableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock'
import { useSidebar } from '../composables/sidebar.js'
import { useSidebar } from '../composables/sidebar'
import VPSidebarItem from './VPSidebarItem.vue'
const { sidebarGroups, hasSidebar } = useSidebar()

@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed } from 'vue'
import type { DefaultTheme } from 'vitepress/theme'
import { useSidebarControl } from '../composables/sidebar.js'
import { useSidebarControl } from '../composables/sidebar'
import VPIconChevronRight from './icons/VPIconChevronRight.vue'
import VPLink from './VPLink.vue'

@ -1,7 +1,7 @@
<script lang="ts" setup>
import type { DefaultTheme } from 'vitepress/theme'
import { computed } from 'vue'
import { icons } from '../support/socialIcons.js'
import { icons } from '../support/socialIcons'
const props = defineProps<{
icon: DefaultTheme.SocialLinkIcon

@ -1,5 +1,5 @@
<script setup lang="ts">
import type { GridSize } from '../composables/sponsor-grid.js'
import type { GridSize } from '../composables/sponsor-grid'
import type { Sponsor } from './VPSponsorsGrid.vue'
import { computed } from 'vue'
import VPSponsorsGrid from './VPSponsorsGrid.vue'

@ -1,7 +1,7 @@
<script setup lang="ts">
import type { GridSize } from '../composables/sponsor-grid.js'
import type { GridSize } from '../composables/sponsor-grid'
import { ref } from 'vue'
import { useSponsorsGrid } from '../composables/sponsor-grid.js'
import { useSponsorsGrid } from '../composables/sponsor-grid'
export interface Sponsor {
name: string

@ -1,7 +1,7 @@
<script lang="ts" setup>
import { ref, onMounted, watch } from 'vue'
import { useData } from '../composables/data.js'
import { APPEARANCE_KEY } from '../../shared.js'
import { useData } from '../composables/data'
import { APPEARANCE_KEY } from '../../shared'
import VPSwitch from './VPSwitch.vue'
import VPIconSun from './icons/VPIconSun.vue'
import VPIconMoon from './icons/VPIconMoon.vue'

@ -1,6 +1,6 @@
import { computed } from 'vue'
import { useMediaQuery } from '@vueuse/core'
import { useSidebar } from './sidebar.js'
import { useSidebar } from './sidebar'
export function useAside() {
const { hasSidebar } = useSidebar()

@ -1,5 +1,5 @@
import { computed } from 'vue'
import { useData } from './data.js'
import { useData } from './data'
export function useEditLink() {
const { theme, page } = useData()

@ -1,5 +1,5 @@
import { type Ref, ref, watch, readonly, onUnmounted } from 'vue'
import { inBrowser } from '../../shared.js'
import { inBrowser } from '../../shared'
interface UseFlyoutOptions {
el: Ref<HTMLElement | undefined>

@ -1,6 +1,6 @@
import { computed } from 'vue'
import { useData } from './data.js'
import { ensureStartingSlash } from '../support/utils.js'
import { useData } from './data'
import { ensureStartingSlash } from '../support/utils'
export function useLangs({
removeCurrent = true,

@ -1,8 +1,8 @@
import type { DefaultTheme } from 'vitepress/theme'
import { onMounted, onUnmounted, onUpdated, type Ref } from 'vue'
import type { Header } from '../../shared.js'
import { useAside } from '../composables/aside.js'
import { throttleAndDebounce } from '../support/utils.js'
import type { Header } from '../../shared'
import { useAside } from '../composables/aside'
import { throttleAndDebounce } from '../support/utils'
// magic number to avoid repeated retrieval
const PAGE_OFFSET = 71

@ -1,7 +1,7 @@
import { computed } from 'vue'
import { useData } from './data.js'
import { isActive } from '../support/utils.js'
import { getSidebar, getFlatSideBarLinks } from '../support/sidebar.js'
import { useData } from './data'
import { isActive } from '../support/utils'
import { getSidebar, getFlatSideBarLinks } from '../support/sidebar'
export function usePrevNext() {
const { page, theme, frontmatter } = useData()

@ -10,13 +10,13 @@ import {
import { useMediaQuery } from '@vueuse/core'
import { useRoute } from 'vitepress'
import type { DefaultTheme } from 'vitepress/theme'
import { isActive } from '../support/utils.js'
import { isActive } from '../support/utils'
import {
hasActiveLink as containsActiveLink,
getSidebar,
getSidebarGroups
} from '../support/sidebar.js'
import { useData } from './data.js'
} from '../support/sidebar'
import { useData } from './data'
export interface SidebarControl {
collapsed: Ref<boolean>

@ -1,5 +1,5 @@
import { type Ref, onMounted, onUnmounted } from 'vue'
import { throttleAndDebounce } from '../support/utils.js'
import { throttleAndDebounce } from '../support/utils'
export interface GridSetting {
[size: string]: [number, number][]

@ -1,4 +1,4 @@
import './styles/fonts.css'
export * from './without-fonts.js'
export { default as default } from './without-fonts.js'
export * from './without-fonts'
export { default as default } from './without-fonts'

@ -1,5 +1,5 @@
import type { DefaultTheme } from 'vitepress/theme'
import { ensureStartingSlash, isActive } from './utils.js'
import { ensureStartingSlash, isActive } from './utils'
export interface SidebarLink {
text: string

@ -1,8 +1,8 @@
import { withBase } from 'vitepress'
import { useData } from '../composables/data.js'
import { isExternal, PATHNAME_PROTOCOL_RE } from '../../shared.js'
import { useData } from '../composables/data'
import { isExternal, PATHNAME_PROTOCOL_RE } from '../../shared'
export { isExternal, isActive } from '../../shared.js'
export { isExternal, isActive } from '../../shared'
export function throttleAndDebounce(fn: () => void, delay: number): () => void {
let timeoutId: NodeJS.Timeout

@ -3,9 +3,7 @@
"compilerOptions": {
"baseUrl": ".",
"outDir": "../../dist/client",
"target": "esnext",
"module": "esnext",
"moduleResolution": "nodenext",
"moduleResolution": "bundler",
"declaration": true,
"declarationDir": "../../dist/client-types",
"jsx": "preserve",

@ -1,4 +1,4 @@
import type { HeadConfig, PageData, SiteData } from '../../types/shared.js'
import type { HeadConfig, PageData, SiteData } from '../../types/shared'
export type {
Awaitable,

@ -8,9 +8,7 @@
"skipLibCheck": true,
"noUnusedLocals": true,
"resolveJsonModule": true,
"isolatedModules": true,
"preserveValueImports": true,
"importsNotUsedAsValues": "error",
"verbatimModuleSyntax": true,
"jsx": "preserve",
"lib": ["esnext", "dom", "dom.iterable"]
},

Loading…
Cancel
Save