+
diff --git a/packages/client/internals/SlideWrapper.vue b/packages/client/internals/SlideWrapper.vue
index c577d4c114..047566cdcb 100644
--- a/packages/client/internals/SlideWrapper.vue
+++ b/packages/client/internals/SlideWrapper.vue
@@ -4,6 +4,7 @@ import type { PropType } from 'vue'
import { provideLocal } from '@vueuse/core'
import type { ClicksContext, RenderContext, SlideRoute } from '@slidev/types'
import { injectionActive, injectionClicksContext, injectionCurrentPage, injectionRenderContext, injectionRoute, injectionSlideZoom } from '../constants'
+import { getSlideClass } from '../utils'
import SlideLoading from './SlideLoading.vue'
const props = defineProps({
@@ -67,16 +68,24 @@ const SlideComponent = defineAsyncComponent({
-
+
+
+
diff --git a/packages/client/internals/SlidesShow.vue b/packages/client/internals/SlidesShow.vue
index ba2b325801..4cc6fb4819 100644
--- a/packages/client/internals/SlidesShow.vue
+++ b/packages/client/internals/SlidesShow.vue
@@ -2,13 +2,14 @@
import { TransitionGroup, computed, shallowRef, watch } from 'vue'
import { recomputeAllPoppers } from 'floating-vue'
import { useNav } from '../composables/useNav'
-import { getSlideClass } from '../utils'
import { useViewTransition } from '../composables/useViewTransition'
import { skipTransition } from '../logic/hmr'
import { createFixedClicks } from '../composables/useClicks'
+import { activeDragElement } from '../state'
import { CLICKS_MAX } from '../constants'
import SlideWrapper from './SlideWrapper.vue'
import PresenterMouse from './PresenterMouse.vue'
+import DragControl from './DragControl.vue'
import GlobalTop from '#slidev/global-components/top'
import GlobalBottom from '#slidev/global-components/bottom'
@@ -65,21 +66,19 @@ function onAfterLeave() {
tag="div"
@after-leave="onAfterLeave"
>
-
-
-
+ :clicks-context="isPrintMode && !isPrintWithClicks ? createFixedClicks(route, CLICKS_MAX) : getPrimaryClicks(route)"
+ :route="route"
+ :render-context="renderContext"
+ />
+
+
@@ -95,10 +94,4 @@ function onAfterLeave() {
#slideshow {
height: 100%;
}
-
-#slideshow > div {
- position: absolute;
- height: 100%;
- width: 100%;
-}
diff --git a/packages/client/modules/v-drag.ts b/packages/client/modules/v-drag.ts
new file mode 100644
index 0000000000..6fca3f9dfe
--- /dev/null
+++ b/packages/client/modules/v-drag.ts
@@ -0,0 +1,44 @@
+import type { App } from 'vue'
+import { watch } from 'vue'
+import type { DragElementState } from '../composables/useDragElements'
+import { useDragElement } from '../composables/useDragElements'
+
+export function createVDragDirective() {
+ return {
+ install(app: App) {
+ app.directive
('drag', {
+ // @ts-expect-error extra prop
+ name: 'v-drag',
+
+ created(el, binding, vnode) {
+ const state = useDragElement(binding, binding.value, vnode.props?.markdownSource)
+ if (vnode.props) {
+ vnode.props = { ...vnode.props }
+ delete vnode.props.markdownSource
+ }
+ state.container.value = el
+ el.draggingState = state
+ el.dataset.dragId = state.id
+ state.watchStopHandles.push(
+ watch(state.containerStyle, (style) => {
+ for (const [k, v] of Object.entries(style)) {
+ if (v)
+ el.style[k as any] = v
+ }
+ }, { immediate: true }),
+ )
+ el.addEventListener('dblclick', state.startDragging)
+ },
+ mounted(el) {
+ el.draggingState.mounted()
+ },
+ unmounted(el) {
+ const state = el.draggingState
+ state.unmounted()
+ el.removeEventListener('dblclick', state.startDragging)
+ state.watchStopHandles.forEach(fn => fn())
+ },
+ })
+ },
+ }
+}
diff --git a/packages/client/setup/main.ts b/packages/client/setup/main.ts
index 0a7f465b8f..29227d1d9b 100644
--- a/packages/client/setup/main.ts
+++ b/packages/client/setup/main.ts
@@ -7,6 +7,7 @@ import { createHead } from '@unhead/vue'
import { routeForceRefresh } from '../logic/route'
import { createVClickDirectives } from '../modules/v-click'
import { createVMarkDirective } from '../modules/v-mark'
+import { createVDragDirective } from '../modules/v-drag'
import { createVMotionDirectives } from '../modules/v-motion'
import { routes } from '../routes'
import setups from '#slidev/setups/main'
@@ -34,6 +35,7 @@ export default async function setupMain(app: App) {
app.use(createHead())
app.use(createVClickDirectives())
app.use(createVMarkDirective())
+ app.use(createVDragDirective())
app.use(createVMotionDirectives())
app.use(TwoSlashFloatingVue as any, { container: '#twoslash-container' })
diff --git a/packages/client/setup/shortcuts.ts b/packages/client/setup/shortcuts.ts
index b47db918a1..21fb3b290c 100644
--- a/packages/client/setup/shortcuts.ts
+++ b/packages/client/setup/shortcuts.ts
@@ -2,7 +2,7 @@ import { and, not, or } from '@vueuse/math'
import type { NavOperations, ShortcutOptions } from '@slidev/types'
import { downloadPDF } from '../utils'
import { toggleDark } from '../logic/dark'
-import { magicKeys, showGotoDialog, showOverview, toggleOverview } from '../state'
+import { activeDragElement, magicKeys, showGotoDialog, showOverview, toggleOverview } from '../state'
import { useNav } from '../composables/useNav'
import { useDrawings } from '../composables/useDrawings'
import { currentOverviewPage, downOverviewPage, nextOverviewPage, prevOverviewPage, upOverviewPage } from './../logic/overview'
@@ -29,15 +29,17 @@ export default function setupShortcuts() {
showGotoDialog: () => showGotoDialog.value = !showGotoDialog.value,
}
+ const navViaArrowKeys = and(not(showOverview), not(activeDragElement))
+
let shortcuts: ShortcutOptions[] = [
{ name: 'next_space', key: and(space, not(shift)), fn: next, autoRepeat: true },
{ name: 'prev_space', key: and(space, shift), fn: prev, autoRepeat: true },
- { name: 'next_right', key: and(right, not(shift), not(showOverview)), fn: next, autoRepeat: true },
- { name: 'prev_left', key: and(left, not(shift), not(showOverview)), fn: prev, autoRepeat: true },
+ { name: 'next_right', key: and(right, not(shift), navViaArrowKeys), fn: next, autoRepeat: true },
+ { name: 'prev_left', key: and(left, not(shift), navViaArrowKeys), fn: prev, autoRepeat: true },
{ name: 'next_page_key', key: 'pageDown', fn: next, autoRepeat: true },
{ name: 'prev_page_key', key: 'pageUp', fn: prev, autoRepeat: true },
- { name: 'next_down', key: and(down, not(showOverview)), fn: nextSlide, autoRepeat: true },
- { name: 'prev_up', key: and(up, not(showOverview)), fn: () => prevSlide(false), autoRepeat: true },
+ { name: 'next_down', key: and(down, navViaArrowKeys), fn: nextSlide, autoRepeat: true },
+ { name: 'prev_up', key: and(up, navViaArrowKeys), fn: () => prevSlide(false), autoRepeat: true },
{ name: 'next_shift', key: and(right, shift), fn: nextSlide, autoRepeat: true },
{ name: 'prev_shift', key: and(left, shift), fn: () => prevSlide(false), autoRepeat: true },
{ name: 'toggle_dark', key: and(d, not(drawingEnabled)), fn: toggleDark },
diff --git a/packages/client/state/index.ts b/packages/client/state/index.ts
index e80bd79d1a..d28c7747c3 100644
--- a/packages/client/state/index.ts
+++ b/packages/client/state/index.ts
@@ -1,6 +1,7 @@
import { breakpointsTailwind, isClient, useActiveElement, useBreakpoints, useFullscreen, useLocalStorage, useMagicKeys, useToggle, useWindowSize } from '@vueuse/core'
-import { computed, ref } from 'vue'
+import { computed, ref, shallowRef } from 'vue'
import { slideAspect } from '../env'
+import type { DragElementState } from '../composables/useDragElements'
export const showRecordingDialog = ref(false)
export const showInfoDialog = ref(false)
@@ -31,6 +32,8 @@ export const isEditorVertical = useLocalStorage('slidev-editor-vertical', false,
export const editorWidth = useLocalStorage('slidev-editor-width', isClient ? window.innerWidth * 0.4 : 318, { listenToStorageChanges: false })
export const editorHeight = useLocalStorage('slidev-editor-height', isClient ? window.innerHeight * 0.4 : 300, { listenToStorageChanges: false })
+export const activeDragElement = shallowRef(null)
+
export const presenterNotesFontSize = useLocalStorage('slidev-presenter-font-size', 1, { listenToStorageChanges: false })
export const presenterLayout = useLocalStorage('slidev-presenter-layout', 1, { listenToStorageChanges: false })
diff --git a/packages/parser/src/fs.ts b/packages/parser/src/fs.ts
index a549b631e8..d47eddaf81 100644
--- a/packages/parser/src/fs.ts
+++ b/packages/parser/src/fs.ts
@@ -104,5 +104,7 @@ export async function load(userRoot: string, filepath: string, content?: string,
}
export async function save(markdown: SlidevMarkdown) {
- await fs.writeFile(markdown.filepath, stringify(markdown), 'utf-8')
+ const fileContent = stringify(markdown)
+ await fs.writeFile(markdown.filepath, fileContent, 'utf-8')
+ return fileContent
}
diff --git a/packages/slidev/node/syntax/markdown-it/markdown-it-v-drag.ts b/packages/slidev/node/syntax/markdown-it/markdown-it-v-drag.ts
new file mode 100644
index 0000000000..b31560a785
--- /dev/null
+++ b/packages/slidev/node/syntax/markdown-it/markdown-it-v-drag.ts
@@ -0,0 +1,36 @@
+import type MarkdownIt from 'markdown-it'
+import type { SourceMapConsumer } from 'source-map-js'
+
+export default function markdownItVDrag(md: MarkdownIt, sourceMapConsumers: Record) {
+ const visited = new WeakSet()
+
+ const _parse = md.parse
+ md.parse = function (src, env) {
+ const smc = sourceMapConsumers[env.id]
+ const toOriginalPos = smc
+ ? (line: number) => smc.originalPositionFor({ line, column: 0 }).line
+ : (line: number) => line
+ function toMarkdownSource(map: [number, number], idx: number) {
+ const [start, end] = map
+ return `[${toOriginalPos(start)},${toOriginalPos(end)},${idx}]`
+ }
+ return _parse.call(this, src, env)
+ .map((token) => {
+ if (token.type !== 'html_block' || !token.content.includes('v-drag') || visited.has(token))
+ return token
+
+ // Iterates all html tokens and replaces with to pass the markdown source to the component
+ token.content = token.content
+ .replace(
+ /])/g,
+ (_, space, idx) => ` `v-drag${value ?? ''} :markdownSource="[${token.map![0]},${token.map![1]},${idx}]"`,
+ )
+ visited.add(token)
+ return token
+ })
+ }
+}
diff --git a/packages/slidev/node/vite/loaders.ts b/packages/slidev/node/vite/loaders.ts
index 55f84d185d..2b2467df86 100644
--- a/packages/slidev/node/vite/loaders.ts
+++ b/packages/slidev/node/vite/loaders.ts
@@ -4,6 +4,7 @@ import { isString, isTruthy, notNullish, range } from '@antfu/utils'
import fg from 'fast-glob'
import fs from 'fs-extra'
import Markdown from 'markdown-it'
+import YAML from 'js-yaml'
import { bold, gray, red, yellow } from 'kolorist'
// @ts-expect-error missing types
@@ -103,6 +104,8 @@ export function createSlidesLoader(
let _layouts_cache_time = 0
let _layouts_cache: Record = {}
+ let skipHmr: { filePath: string, fileContent: string } | null = null
+
const { data, clientRoot, roots, mode } = options
const templateCtx: VirtualModuleTempalteContext = {
@@ -161,9 +164,31 @@ export function createSlidesLoader(
if (body.content && body.content !== slide.source.content)
hmrPages.add(idx)
- Object.assign(slide.source, body)
+ if (body.content)
+ slide.content = slide.source.content = body.content
+ if (body.note)
+ slide.note = slide.source.note = body.note
+ if (body.frontmatter) {
+ Object.assign(slide.frontmatter, body.frontmatter)
+ slide.source.frontmatterRaw = YAML.dump(slide.frontmatter)
+ }
+
parser.prettifySlide(slide.source)
- await parser.save(data.markdownFiles[slide.source.filepath])
+ const fileContent = await parser.save(data.markdownFiles[slide.source.filepath])
+ if (body.skipHmr) {
+ skipHmr = {
+ filePath: slide.source.filepath,
+ fileContent,
+ }
+ server?.moduleGraph.invalidateModule(
+ server.moduleGraph.getModuleById(`${VIRTUAL_SLIDE_PREFIX}${no}.md`)!,
+ )
+ if (body.frontmatter) {
+ server?.moduleGraph.invalidateModule(
+ server.moduleGraph.getModuleById(`${VIRTUAL_SLIDE_PREFIX}${no}.frontmatter`)!,
+ )
+ }
+ }
res.statusCode = 200
res.write(JSON.stringify(withRenderedNote(slide)))
@@ -196,6 +221,11 @@ export function createSlidesLoader(
if (!newData)
return []
+ if (skipHmr && newData.markdownFiles[skipHmr.filePath]?.raw === skipHmr.fileContent) {
+ skipHmr = null
+ return []
+ }
+
const moduleIds = new Set()
if (data.slides.length !== newData.slides.length) {
diff --git a/packages/slidev/node/vite/markdown.ts b/packages/slidev/node/vite/markdown.ts
index 55297b09d1..dba4e541e9 100644
--- a/packages/slidev/node/vite/markdown.ts
+++ b/packages/slidev/node/vite/markdown.ts
@@ -7,6 +7,7 @@ import { taskLists as MarkdownItTaskList } from '@hedgedoc/markdown-it-plugins'
import MarkdownItMdc from 'markdown-it-mdc'
import type { MarkdownItShikiOptions } from '@shikijs/markdown-it'
import type { Highlighter, ShikiTransformer } from 'shiki'
+import { SourceMapConsumer } from 'source-map-js'
import MagicString from 'magic-string'
// @ts-expect-error missing types
@@ -18,6 +19,7 @@ import MarkdownItFootnote from 'markdown-it-footnote'
import type { MarkdownTransformContext, ResolvedSlidevOptions, SlidevPluginOptions } from '@slidev/types'
import MarkdownItKatex from '../syntax/markdown-it/markdown-it-katex'
import MarkdownItPrism from '../syntax/markdown-it/markdown-it-prism'
+import MarkdownItVDrag from '../syntax/markdown-it/markdown-it-v-drag'
import { loadShikiSetups } from '../setups/shiki'
import { loadSetups } from '../setups/load'
@@ -94,6 +96,8 @@ export async function createMarkdownPlugin(
const KatexOptions: KatexOptions = await loadSetups(options.clientRoot, roots, 'katex.ts', {}, { strict: false }, false)
+ const sourceMapConsumers: Record = {}
+
return Markdown({
include: [/\.md$/],
wrapperClasses: '',
@@ -119,6 +123,7 @@ export async function createMarkdownPlugin(
md.use(MarkdownItFootnote)
md.use(MarkdownItTaskList, { enabled: true, lineNumber: true, label: true })
md.use(MarkdownItKatex, KatexOptions)
+ md.use(MarkdownItVDrag, sourceMapConsumers)
setups.forEach(i => i(md))
mdOptions?.markdownItSetup?.(md)
@@ -152,6 +157,7 @@ export async function createMarkdownPlugin(
transformPageCSS(ctx, id)
transformSlotSugar(ctx)
+ sourceMapConsumers[id] = new SourceMapConsumer(ctx.s.generateMap())
return ctx.s.toString()
},
},
diff --git a/packages/slidev/package.json b/packages/slidev/package.json
index 785adae355..6ee9aea9ce 100644
--- a/packages/slidev/package.json
+++ b/packages/slidev/package.json
@@ -101,6 +101,7 @@
"shiki": "^1.2.3",
"shiki-magic-move": "^0.3.5",
"sirv": "^2.0.4",
+ "source-map-js": "^1.2.0",
"typescript": "^5.4.3",
"unocss": "^0.58.9",
"unplugin-icons": "^0.18.5",
diff --git a/packages/types/src/types.ts b/packages/types/src/types.ts
index d54d971d9b..d258ca6559 100644
--- a/packages/types/src/types.ts
+++ b/packages/types/src/types.ts
@@ -44,7 +44,9 @@ export interface SlideInfo extends SlideInfoBase {
/**
* Editable fields for a slide
*/
-export type SlidePatch = Partial>
+export type SlidePatch = Partial> & {
+ skipHmr?: boolean
+}
/**
* Metadata for "slidev" field in themes' package.json
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2de68fcc99..a545a092e3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -509,7 +509,7 @@ importers:
version: 3.7.0
debug:
specifier: ^4.3.4
- version: 4.3.4(supports-color@8.1.1)
+ version: 4.3.4(supports-color@5.5.0)
fast-deep-equal:
specifier: ^3.1.3
version: 3.1.3
@@ -609,6 +609,9 @@ importers:
sirv:
specifier: ^2.0.4
version: 2.0.4
+ source-map-js:
+ specifier: ^1.2.0
+ version: 1.2.0
typescript:
specifier: ^5.4.3
version: 5.4.3
@@ -987,7 +990,7 @@ packages:
'@babel/traverse': 7.24.1
'@babel/types': 7.24.0
convert-source-map: 2.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -1235,7 +1238,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.24.1
'@babel/types': 7.24.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -1809,7 +1812,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.1
@@ -1860,7 +1863,7 @@ packages:
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 2.0.2
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -1925,7 +1928,7 @@ packages:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.5.2
'@iconify/types': 1.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
kolorist: 1.8.0
local-pkg: 0.4.3
transitivePeerDependencies:
@@ -1938,7 +1941,7 @@ packages:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.7.7
'@iconify/types': 2.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
kolorist: 1.8.0
local-pkg: 0.5.0
mlly: 1.6.1
@@ -2913,7 +2916,7 @@ packages:
'@typescript-eslint/type-utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
'@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
'@typescript-eslint/visitor-keys': 7.4.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.1
@@ -2939,7 +2942,7 @@ packages:
'@typescript-eslint/types': 7.4.0
'@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
'@typescript-eslint/visitor-keys': 7.4.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
eslint: 8.57.0
typescript: 5.4.3
transitivePeerDependencies:
@@ -2982,7 +2985,7 @@ packages:
dependencies:
'@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3)
'@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3)
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
eslint: 8.57.0
ts-api-utils: 1.0.3(typescript@5.4.3)
typescript: 5.4.3
@@ -3016,7 +3019,7 @@ packages:
dependencies:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/visitor-keys': 5.62.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.6.0
@@ -3037,7 +3040,7 @@ packages:
dependencies:
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/visitor-keys': 6.21.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
@@ -3059,7 +3062,7 @@ packages:
dependencies:
'@typescript-eslint/types': 7.4.0
'@typescript-eslint/visitor-keys': 7.4.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
@@ -3163,7 +3166,7 @@ packages:
/@typescript/vfs@1.5.0:
resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
@@ -3977,7 +3980,7 @@ packages:
/@windicss/config@1.9.3:
resolution: {integrity: sha512-u8GUjsfC9r5X1AGYhzb1lX3zZj8wqk6SH1DYex8XUGmZ1M2UpvnUPOFi63XFViduspQ6l2xTX84QtG+lUzhEoQ==}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
jiti: 1.21.0
windicss: 3.5.6
transitivePeerDependencies:
@@ -3989,7 +3992,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.7
'@windicss/config': 1.9.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
fast-glob: 3.3.2
magic-string: 0.30.9
micromatch: 4.0.5
@@ -4045,7 +4048,7 @@ packages:
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
engines: {node: '>= 14'}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
dev: true
@@ -5126,7 +5129,6 @@ packages:
dependencies:
ms: 2.1.2
supports-color: 5.5.0
- dev: true
/debug@4.3.4(supports-color@8.1.1):
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
@@ -5139,6 +5141,7 @@ packages:
dependencies:
ms: 2.1.2
supports-color: 8.1.1
+ dev: true
/decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
@@ -5817,7 +5820,7 @@ packages:
eslint: ^7.2.0 || ^8 || ^9.0.0-0
dependencies:
'@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.3)
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
doctrine: 3.0.0
eslint: 8.57.0
eslint-compat-utils: 0.5.0(eslint@8.57.0)
@@ -5840,7 +5843,7 @@ packages:
'@es-joy/jsdoccomment': 0.42.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
escape-string-regexp: 4.0.0
eslint: 8.57.0
esquery: 1.5.0
@@ -5938,7 +5941,7 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
eslint: 8.57.0
eslint-compat-utils: 0.5.0(eslint@8.57.0)
lodash: 4.17.21
@@ -6036,7 +6039,7 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
eslint: 8.57.0
eslint-compat-utils: 0.5.0(eslint@8.57.0)
lodash: 4.17.21
@@ -6098,7 +6101,7 @@ packages:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
@@ -6445,7 +6448,7 @@ packages:
debug:
optional: true
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
dev: false
/foreground-child@3.1.1:
@@ -6789,6 +6792,7 @@ packages:
/has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
+ dev: true
/has-property-descriptors@1.0.1:
resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
@@ -6867,7 +6871,7 @@ packages:
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
dev: true
@@ -6894,7 +6898,7 @@ packages:
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
dev: true
@@ -7380,7 +7384,7 @@ packages:
dependencies:
chalk: 5.3.0
commander: 11.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
execa: 8.0.1
lilconfig: 3.0.0
listr2: 8.0.1
@@ -8104,7 +8108,7 @@ packages:
/micromark@2.11.4:
resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
parse-entities: 2.0.0
transitivePeerDependencies:
- supports-color
@@ -8114,7 +8118,7 @@ packages:
resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
dependencies:
'@types/debug': 4.1.12
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
decode-named-character-reference: 1.0.2
micromark-core-commonmark: 1.1.0
micromark-factory-space: 1.1.0
@@ -8137,7 +8141,7 @@ packages:
resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
dependencies:
'@types/debug': 4.1.12
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
decode-named-character-reference: 1.0.2
devlop: 1.1.0
micromark-core-commonmark: 2.0.0
@@ -9590,7 +9594,7 @@ packages:
engines: {node: '>= 14'}
dependencies:
agent-base: 7.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
socks: 2.7.1
transitivePeerDependencies:
- supports-color
@@ -9828,6 +9832,7 @@ packages:
engines: {node: '>=10'}
dependencies:
has-flag: 4.0.0
+ dev: true
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
@@ -10040,7 +10045,7 @@ packages:
bundle-require: 4.0.2(esbuild@0.19.12)
cac: 6.7.14
chokidar: 3.6.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
esbuild: 0.19.12
execa: 5.1.1
globby: 11.1.0
@@ -10083,7 +10088,7 @@ packages:
engines: {node: ^16.14.0 || >=18.0.0}
dependencies:
'@tufjs/models': 2.0.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
make-fetch-happen: 13.0.0
transitivePeerDependencies:
- supports-color
@@ -10449,7 +10454,7 @@ packages:
'@antfu/utils': 0.7.7
'@iconify/utils': 2.1.22
'@vue/compiler-sfc': 3.4.21
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
kolorist: 1.8.0
local-pkg: 0.5.0
unplugin: 1.6.0
@@ -10472,7 +10477,7 @@ packages:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0
chokidar: 3.6.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
fast-glob: 3.3.2
local-pkg: 0.4.3
magic-string: 0.30.9
@@ -10636,7 +10641,7 @@ packages:
hasBin: true
dependencies:
cac: 6.7.14
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
pathe: 1.1.2
picocolors: 1.0.0
vite: 5.2.7(@types/node@20.12.2)
@@ -10663,7 +10668,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
error-stack-parser-es: 0.1.1
fs-extra: 11.2.0
open: 10.1.0
@@ -10688,7 +10693,7 @@ packages:
dependencies:
'@antfu/utils': 0.7.7
'@rollup/pluginutils': 5.1.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
error-stack-parser-es: 0.1.1
fs-extra: 11.2.0
open: 10.1.0
@@ -10709,7 +10714,7 @@ packages:
'@antfu/utils': 0.7.7
axios: 1.6.5(debug@4.3.4)
blueimp-md5: 2.19.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
fs-extra: 11.2.0
magic-string: 0.30.9
vite: 5.2.7(@types/node@20.12.2)
@@ -10737,7 +10742,7 @@ packages:
vue: ^3.0.0
dependencies:
'@antfu/utils': 0.7.7
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
klona: 2.0.6
mlly: 1.6.1
ufo: 1.5.3
@@ -10753,7 +10758,7 @@ packages:
vite: ^2.0.1 || ^3.0.0 || ^4.0.0 || ^5.0.0
dependencies:
'@windicss/plugin-utils': 1.9.3
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
kolorist: 1.8.0
vite: 3.2.8(@types/node@20.12.2)
windicss: 3.5.6
@@ -10930,7 +10935,7 @@ packages:
'@vitest/utils': 1.4.0
acorn-walk: 8.3.2
chai: 4.4.1
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
execa: 8.0.1
local-pkg: 0.5.0
magic-string: 0.30.9
@@ -10973,7 +10978,7 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.3.4(supports-color@5.5.0)
eslint: 8.57.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3