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

pull/2104/head
Evan You 3 years ago
parent ee6cda42d8
commit 16064023cf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1,5 +1,5 @@
<script setup lang="ts"> <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 type { Sponsor } from './VPSponsorsGrid.vue'
import { computed } from 'vue' import { computed } from 'vue'
import VPSponsorsGrid from './VPSponsorsGrid.vue' import VPSponsorsGrid from './VPSponsorsGrid.vue'

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -3,9 +3,7 @@
"compilerOptions": { "compilerOptions": {
"baseUrl": ".", "baseUrl": ".",
"outDir": "../../dist/client", "outDir": "../../dist/client",
"target": "esnext", "moduleResolution": "bundler",
"module": "esnext",
"moduleResolution": "nodenext",
"declaration": true, "declaration": true,
"declarationDir": "../../dist/client-types", "declarationDir": "../../dist/client-types",
"jsx": "preserve", "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 { export type {
Awaitable, Awaitable,

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

Loading…
Cancel
Save