diff --git a/README.md b/README.md
index 705f342bdc..d1a91c3677 100644
--- a/README.md
+++ b/README.md
@@ -26,9 +26,9 @@ Presentation slides for developers đ§âđťđŠâđťđ¨â
diff --git a/docs/guide/video-playback.md b/docs/guide/video-playback.md
new file mode 100644
index 0000000000..fa8e29927f
--- /dev/null
+++ b/docs/guide/video-playback.md
@@ -0,0 +1,24 @@
+# SlidevVideo Controlled Playback
+
+This demo shows how to use the `pause` prop on `` to control playback in steps.
+
+## Example
+
+```vue
+
+```
+
+The video will:
+
+1. Pause at **1s**
+2. Pause at **2s**
+3. Pause at **3s**
+4. Pause at the **end**
+
+## Usage
+
+Use `pause` to sync video playback with your slide steps or narration.
+
+```vue
+
+```
diff --git a/packages/client/builtin/SlidevVideo.vue b/packages/client/builtin/SlidevVideo.vue
index 0be737ffb8..08e081e8bc 100644
--- a/packages/client/builtin/SlidevVideo.vue
+++ b/packages/client/builtin/SlidevVideo.vue
@@ -1,74 +1,111 @@
-
diff --git a/packages/client/setup/main.ts b/packages/client/setup/main.ts
index 8e2abc73b1..1f79a99e67 100644
--- a/packages/client/setup/main.ts
+++ b/packages/client/setup/main.ts
@@ -3,12 +3,17 @@ import type { App } from 'vue'
import setups from '#slidev/setups/main'
import TwoSlashFloatingVue from '@shikijs/vitepress-twoslash/client'
import { createHead } from '@unhead/vue/client'
-import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
+import {
+ createRouter,
+ createWebHashHistory,
+ createWebHistory,
+} from 'vue-router'
import { createVClickDirectives } from '../modules/v-click'
import { createVDragDirective } from '../modules/v-drag'
import { createVMarkDirective } from '../modules/v-mark'
import { createVMotionDirectives } from '../modules/v-motion'
import setupRoutes from '../setup/routes'
+import 'video.js/dist/video-js.css'
import '#slidev/styles'
@@ -16,7 +21,10 @@ export default async function setupMain(app: App) {
function setMaxHeight() {
// disable the mobile navbar scroll
// see https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
- document.documentElement.style.setProperty('--vh', `${window.innerHeight * 0.01}px`)
+ document.documentElement.style.setProperty(
+ '--vh',
+ `${window.innerHeight * 0.01}px`,
+ )
}
setMaxHeight()
window.addEventListener('resize', setMaxHeight)
@@ -41,6 +49,5 @@ export default async function setupMain(app: App) {
router,
}
- for (const setup of setups)
- await setup(context)
+ for (const setup of setups) await setup(context)
}
diff --git a/playground/slides.md b/playground/slides.md
new file mode 100644
index 0000000000..f823c2c1e8
--- /dev/null
+++ b/playground/slides.md
@@ -0,0 +1,5 @@
+# 渏芌 SlidevVideo
+
+
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 462d37276d..c6af3ed679 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -821,6 +821,9 @@ importers:
unocss:
specifier: catalog:prod
version: 66.3.3(postcss@8.5.6)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.8.3))
+ video.js:
+ specifier: ^8.23.3
+ version: 8.23.3
vue:
specifier: catalog:frontend
version: 3.5.18(typescript@5.8.3)
@@ -938,7 +941,7 @@ importers:
version: 3.7.0
debug:
specifier: catalog:prod
- version: 4.4.1(supports-color@8.1.1)
+ version: 4.4.1(supports-color@5.5.0)
fast-deep-equal:
specifier: catalog:prod
version: 3.1.3
@@ -2604,6 +2607,19 @@ packages:
peerDependencies:
vite: ^7.0.6
+ '@videojs/http-streaming@3.17.2':
+ resolution: {integrity: sha512-VBQ3W4wnKnVKb/limLdtSD2rAd5cmHN70xoMf4OmuDd0t2kfJX04G+sfw6u2j8oOm2BXYM9E1f4acHruqKnM1g==}
+ engines: {node: '>=8', npm: '>=5'}
+ peerDependencies:
+ video.js: ^8.19.0
+
+ '@videojs/vhs-utils@4.1.1':
+ resolution: {integrity: sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==}
+ engines: {node: '>=8', npm: '>=5'}
+
+ '@videojs/xhr@2.7.0':
+ resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==}
+
'@vitejs/plugin-vue-jsx@5.0.1':
resolution: {integrity: sha512-X7qmQMXbdDh+sfHUttXokPD0cjPkMFoae7SgbkF9vi3idGUKmxLcnU2Ug49FHwiKXebfzQRIm5yK3sfCJzNBbg==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -2863,6 +2879,10 @@ packages:
peerDependencies:
vue: ^3.5.0
+ '@xmldom/xmldom@0.8.10':
+ resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
+ engines: {node: '>=10.0.0'}
+
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@@ -2873,6 +2893,9 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ aes-decrypter@4.0.2:
+ resolution: {integrity: sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==}
+
agent-base@7.1.1:
resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
engines: {node: '>= 14'}
@@ -3652,6 +3675,9 @@ packages:
dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+ dom-walk@0.1.2:
+ resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
+
domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
@@ -4282,6 +4308,9 @@ packages:
resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
engines: {node: '>=10'}
+ global@4.4.0:
+ resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
+
globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
@@ -4535,6 +4564,9 @@ packages:
resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
engines: {node: '>=18'}
+ is-function@1.0.2:
+ resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==}
+
is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
@@ -4939,6 +4971,9 @@ packages:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
+ m3u8-parser@7.2.0:
+ resolution: {integrity: sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==}
+
magic-string-stack@1.0.0:
resolution: {integrity: sha512-oTPJ8IL5FdB4bhiLeBc7HzrK6cbtcHuZeaNK0Uim9wkl/PnVH1gYConD+dmqJTCyMJ5NlsvICHLPD+ItGsJzyA==}
@@ -5163,6 +5198,9 @@ packages:
resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ min-document@2.19.0:
+ resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==}
+
min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@@ -5221,6 +5259,10 @@ packages:
monaco-editor@0.52.2:
resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==}
+ mpd-parser@1.3.1:
+ resolution: {integrity: sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==}
+ hasBin: true
+
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -5241,6 +5283,11 @@ packages:
mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+ mux.js@7.1.0:
+ resolution: {integrity: sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==}
+ engines: {node: '>=8', npm: '>=5'}
+ hasBin: true
+
nano-spawn@1.0.2:
resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==}
engines: {node: '>=20.17'}
@@ -5503,6 +5550,10 @@ packages:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
+ pkcs7@1.0.4:
+ resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==}
+ hasBin: true
+
pkg-types@1.3.0:
resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==}
@@ -6504,6 +6555,21 @@ packages:
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+ video.js@8.23.3:
+ resolution: {integrity: sha512-Toe0VLlDZcUhiaWfcePS1OEdT3ATfktm0hk/PELfD7zUoPDHeT+cJf/wZmCy5M5eGVwtGUg25RWPCj1L/1XufA==}
+
+ videojs-contrib-quality-levels@4.1.0:
+ resolution: {integrity: sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==}
+ engines: {node: '>=16', npm: '>=8'}
+ peerDependencies:
+ video.js: ^8
+
+ videojs-font@4.2.0:
+ resolution: {integrity: sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==}
+
+ videojs-vtt.js@0.15.5:
+ resolution: {integrity: sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==}
+
vite-dev-rpc@1.1.0:
resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==}
peerDependencies:
@@ -7053,7 +7119,7 @@ snapshots:
'@babel/traverse': 7.27.7
'@babel/types': 7.28.2
convert-source-map: 2.0.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -7192,7 +7258,7 @@ snapshots:
'@babel/parser': 7.28.0
'@babel/template': 7.27.2
'@babel/types': 7.28.2
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -7399,7 +7465,7 @@ snapshots:
'@eslint/config-array@0.21.0':
dependencies:
'@eslint/object-schema': 2.1.6
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -7413,7 +7479,7 @@ snapshots:
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
@@ -7519,7 +7585,7 @@ snapshots:
'@antfu/install-pkg': 1.1.0
'@antfu/utils': 8.1.0
'@iconify/types': 2.0.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
globals: 15.15.0
kolorist: 1.8.0
local-pkg: 1.1.1
@@ -8213,7 +8279,7 @@ snapshots:
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
'@typescript-eslint/visitor-keys': 8.38.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
eslint: 9.32.0(jiti@2.5.1)
typescript: 5.8.3
transitivePeerDependencies:
@@ -8223,7 +8289,7 @@ snapshots:
dependencies:
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
'@typescript-eslint/types': 8.38.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
typescript: 5.8.3
transitivePeerDependencies:
- supports-color
@@ -8242,7 +8308,7 @@ snapshots:
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
'@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
eslint: 9.32.0(jiti@2.5.1)
ts-api-utils: 2.1.0(typescript@5.8.3)
typescript: 5.8.3
@@ -8257,7 +8323,7 @@ snapshots:
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
'@typescript-eslint/types': 8.38.0
'@typescript-eslint/visitor-keys': 8.38.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
@@ -8289,7 +8355,7 @@ snapshots:
'@typescript/vfs@1.6.1(typescript@5.8.3)':
dependencies:
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
typescript: 5.8.3
transitivePeerDependencies:
- supports-color
@@ -8456,6 +8522,28 @@ snapshots:
transitivePeerDependencies:
- vue
+ '@videojs/http-streaming@3.17.2(video.js@8.23.3)':
+ dependencies:
+ '@babel/runtime': 7.27.4
+ '@videojs/vhs-utils': 4.1.1
+ aes-decrypter: 4.0.2
+ global: 4.4.0
+ m3u8-parser: 7.2.0
+ mpd-parser: 1.3.1
+ mux.js: 7.1.0
+ video.js: 8.23.3
+
+ '@videojs/vhs-utils@4.1.1':
+ dependencies:
+ '@babel/runtime': 7.27.4
+ global: 4.4.0
+
+ '@videojs/xhr@2.7.0':
+ dependencies:
+ '@babel/runtime': 7.27.4
+ global: 4.4.0
+ is-function: 1.0.2
+
'@vitejs/plugin-vue-jsx@5.0.1(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@babel/core': 7.27.7
@@ -8799,15 +8887,24 @@ snapshots:
dependencies:
vue: 3.5.18(typescript@5.8.3)
+ '@xmldom/xmldom@0.8.10': {}
+
acorn-jsx@5.3.2(acorn@8.15.0):
dependencies:
acorn: 8.15.0
acorn@8.15.0: {}
+ aes-decrypter@4.0.2:
+ dependencies:
+ '@babel/runtime': 7.27.4
+ '@videojs/vhs-utils': 4.1.1
+ global: 4.4.0
+ pkcs7: 1.0.4
+
agent-base@7.1.1:
dependencies:
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
@@ -9657,6 +9754,8 @@ snapshots:
domhandler: 5.0.3
entities: 4.5.0
+ dom-walk@0.1.2: {}
+
domelementtype@2.3.0: {}
domhandler@5.0.3:
@@ -9872,7 +9971,7 @@ snapshots:
'@es-joy/jsdoccomment': 0.52.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
escape-string-regexp: 4.0.0
eslint: 9.32.0(jiti@2.5.1)
espree: 10.4.0
@@ -9948,7 +10047,7 @@ snapshots:
eslint-plugin-toml@0.12.0(eslint@9.32.0(jiti@2.5.1)):
dependencies:
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
eslint: 9.32.0(jiti@2.5.1)
eslint-compat-utils: 0.6.5(eslint@9.32.0(jiti@2.5.1))
lodash: 4.17.21
@@ -9999,7 +10098,7 @@ snapshots:
eslint-plugin-yml@1.18.0(eslint@9.32.0(jiti@2.5.1)):
dependencies:
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
escape-string-regexp: 4.0.0
eslint: 9.32.0(jiti@2.5.1)
eslint-compat-utils: 0.6.5(eslint@9.32.0(jiti@2.5.1))
@@ -10040,7 +10139,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
escape-string-regexp: 4.0.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
@@ -10397,6 +10496,11 @@ snapshots:
dependencies:
ini: 2.0.0
+ global@4.4.0:
+ dependencies:
+ min-document: 2.19.0
+ process: 0.11.10
+
globals@11.12.0: {}
globals@14.0.0: {}
@@ -10532,7 +10636,7 @@ snapshots:
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.1
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
@@ -10550,7 +10654,7 @@ snapshots:
https-proxy-agent@7.0.5:
dependencies:
agent-base: 7.1.1
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
transitivePeerDependencies:
- supports-color
@@ -10633,6 +10737,8 @@ snapshots:
dependencies:
get-east-asian-width: 1.2.0
+ is-function@1.0.2: {}
+
is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1
@@ -10914,7 +11020,7 @@ snapshots:
dependencies:
chalk: 5.4.1
commander: 14.0.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
lilconfig: 3.1.3
listr2: 8.3.3
micromatch: 4.0.8
@@ -11021,6 +11127,12 @@ snapshots:
lz-string@1.5.0: {}
+ m3u8-parser@7.2.0:
+ dependencies:
+ '@babel/runtime': 7.27.4
+ '@videojs/vhs-utils': 4.1.1
+ global: 4.4.0
+
magic-string-stack@1.0.0:
dependencies:
'@ampproject/remapping': 2.3.0
@@ -11399,7 +11511,7 @@ snapshots:
micromark@4.0.0:
dependencies:
'@types/debug': 4.1.12
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
decode-named-character-reference: 1.1.0
devlop: 1.1.0
micromark-core-commonmark: 2.0.1
@@ -11446,6 +11558,10 @@ snapshots:
mimic-response@4.0.0: {}
+ min-document@2.19.0:
+ dependencies:
+ dom-walk: 0.1.2
+
min-indent@1.0.1: {}
minimatch@10.0.3:
@@ -11501,6 +11617,13 @@ snapshots:
monaco-editor@0.52.2: {}
+ mpd-parser@1.3.1:
+ dependencies:
+ '@babel/runtime': 7.27.4
+ '@videojs/vhs-utils': 4.1.1
+ '@xmldom/xmldom': 0.8.10
+ global: 4.4.0
+
mri@1.2.0:
optional: true
@@ -11514,6 +11637,11 @@ snapshots:
mute-stream@0.0.8: {}
+ mux.js@7.1.0:
+ dependencies:
+ '@babel/runtime': 7.27.4
+ global: 4.4.0
+
nano-spawn@1.0.2: {}
nanoid@3.3.11: {}
@@ -11772,6 +11900,10 @@ snapshots:
pify@2.3.0: {}
+ pkcs7@1.0.4:
+ dependencies:
+ '@babel/runtime': 7.27.4
+
pkg-types@1.3.0:
dependencies:
confbox: 0.1.8
@@ -12088,7 +12220,7 @@ snapshots:
'@babel/types': 7.28.2
ast-kit: 2.1.1
birpc: 2.5.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
dts-resolver: 2.1.1
get-tsconfig: 4.10.1
rolldown: 1.0.0-beta.11-commit.f051675
@@ -12580,7 +12712,7 @@ snapshots:
ansis: 4.1.0
cac: 6.7.14
chokidar: 4.0.3
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
diff: 8.0.2
empathic: 2.0.0
hookable: 5.5.3
@@ -12789,7 +12921,7 @@ snapshots:
dependencies:
'@antfu/install-pkg': 1.1.0
'@iconify/utils': 2.3.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
local-pkg: 1.1.1
unplugin: 2.3.5
optionalDependencies:
@@ -12805,7 +12937,7 @@ snapshots:
unplugin-vue-components@28.8.0(@babel/parser@7.28.0)(@nuxt/kit@3.13.0(rollup@4.44.1))(vue@3.5.18(typescript@5.8.3)):
dependencies:
chokidar: 3.6.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
local-pkg: 1.1.1
magic-string: 0.30.17
mlly: 1.7.4
@@ -12902,6 +13034,32 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.2
+ video.js@8.23.3:
+ dependencies:
+ '@babel/runtime': 7.27.4
+ '@videojs/http-streaming': 3.17.2(video.js@8.23.3)
+ '@videojs/vhs-utils': 4.1.1
+ '@videojs/xhr': 2.7.0
+ aes-decrypter: 4.0.2
+ global: 4.4.0
+ m3u8-parser: 7.2.0
+ mpd-parser: 1.3.1
+ mux.js: 7.1.0
+ videojs-contrib-quality-levels: 4.1.0(video.js@8.23.3)
+ videojs-font: 4.2.0
+ videojs-vtt.js: 0.15.5
+
+ videojs-contrib-quality-levels@4.1.0(video.js@8.23.3):
+ dependencies:
+ global: 4.4.0
+ video.js: 8.23.3
+
+ videojs-font@4.2.0: {}
+
+ videojs-vtt.js@0.15.5:
+ dependencies:
+ global: 4.4.0
+
vite-dev-rpc@1.1.0(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)):
dependencies:
birpc: 2.5.0
@@ -12915,7 +13073,7 @@ snapshots:
vite-node@3.2.4(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0):
dependencies:
cac: 6.7.14
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
es-module-lexer: 1.7.0
pathe: 2.0.3
vite: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)
@@ -12936,7 +13094,7 @@ snapshots:
vite-plugin-inspect@11.3.2(@nuxt/kit@3.13.0(rollup@4.44.1))(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)):
dependencies:
ansis: 4.1.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
error-stack-parser-es: 1.0.5
ohash: 2.0.11
open: 10.2.0
@@ -12952,7 +13110,7 @@ snapshots:
vite-plugin-remote-assets@2.0.0(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0)):
dependencies:
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
magic-string: 0.30.17
node-fetch-native: 1.6.6
ohash: 2.0.11
@@ -12971,7 +13129,7 @@ snapshots:
vite-plugin-vue-server-ref@1.0.0(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.8.3)):
dependencies:
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
klona: 2.0.6
mlly: 1.7.4
ufo: 1.5.4
@@ -13086,7 +13244,7 @@ snapshots:
'@vitest/spy': 3.2.4
'@vitest/utils': 3.2.4
chai: 5.2.0
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
expect-type: 1.2.1
magic-string: 0.30.17
pathe: 2.0.3
@@ -13179,7 +13337,7 @@ snapshots:
vue-eslint-parser@10.2.0(eslint@9.32.0(jiti@2.5.1)):
dependencies:
- debug: 4.4.1(supports-color@8.1.1)
+ debug: 4.4.1(supports-color@5.5.0)
eslint: 9.32.0(jiti@2.5.1)
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1