hookehuyr

feat: 添加视频播放器组件及相关工具函数

refactor: 重构首页布局和样式

fix: 修复axios拦截器中的错误处理

docs: 更新mock数据文件注释

chore: 更新package.json依赖项

style: 格式化工具函数代码

perf: 优化视频播放器加载性能

build: 添加video.js相关依赖

test: 添加视频播放器组件测试用例

ci: 更新CI配置以支持视频资源
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
14 "dependencies": { 14 "dependencies": {
15 "@vant/area-data": "^1.3.1", 15 "@vant/area-data": "^1.3.1",
16 "@vant/touch-emulator": "^1.4.0", 16 "@vant/touch-emulator": "^1.4.0",
17 + "@videojs-player/vue": "^1.0.0",
17 "@vueuse/core": "^10.7.2", 18 "@vueuse/core": "^10.7.2",
18 "axios": "^1.6.7", 19 "axios": "^1.6.7",
19 "dayjs": "^1.11.10", 20 "dayjs": "^1.11.10",
...@@ -21,6 +22,7 @@ ...@@ -21,6 +22,7 @@
21 "lodash": "^4.17.21", 22 "lodash": "^4.17.21",
22 "pinia": "^2.1.7", 23 "pinia": "^2.1.7",
23 "vant": "^4.9.1", 24 "vant": "^4.9.1",
25 + "video.js": "^8.23.4",
24 "vue": "^3.4.15", 26 "vue": "^3.4.15",
25 "vue-router": "^4.2.5" 27 "vue-router": "^4.2.5"
26 }, 28 },
......
...@@ -41,5 +41,6 @@ declare module 'vue' { ...@@ -41,5 +41,6 @@ declare module 'vue' {
41 VanTabbarItem: typeof import('vant/es')['TabbarItem'] 41 VanTabbarItem: typeof import('vant/es')['TabbarItem']
42 VanTabs: typeof import('vant/es')['Tabs'] 42 VanTabs: typeof import('vant/es')['Tabs']
43 VanTag: typeof import('vant/es')['Tag'] 43 VanTag: typeof import('vant/es')['Tag']
44 + VideoPlayer: typeof import('./components/VideoPlayer.vue')['default']
44 } 45 }
45 } 46 }
......
1 +<template>
2 + <div class="video-player-container">
3 + <VideoPlayer
4 + ref="videoRef"
5 + :options="videoOptions"
6 + crossorigin="anonymous"
7 + playsinline
8 + :class="['video-player', 'vjs-big-play-centered', { loading: !state }]"
9 + @mounted="handleMounted"
10 + @play="handlePlay"
11 + @pause="handlePause"
12 + />
13 + <!-- 错误提示覆盖层 -->
14 + <div v-if="showErrorOverlay" class="error-overlay">
15 + <div class="error-content">
16 + <div class="error-icon">⚠️</div>
17 + <div class="error-message">{{ errorMessage }}</div>
18 + <button @click="retryLoad" class="retry-button">重试</button>
19 + </div>
20 + </div>
21 + </div>
22 +</template>
23 +
24 +<script setup>
25 +import { ref, computed, onMounted, onBeforeUnmount } from "vue";
26 +import { VideoPlayer } from "@videojs-player/vue";
27 +import videojs from "video.js";
28 +import "video.js/dist/video-js.css";
29 +import { wxInfo } from "@/utils/tools"
30 +
31 +const props = defineProps({
32 + options: {
33 + type: Object,
34 + required: false,
35 + default: () => ({}),
36 + },
37 + videoUrl: {
38 + type: String,
39 + required: true,
40 + },
41 + videoId: {
42 + type: String,
43 + required: true,
44 + },
45 + autoplay: {
46 + type: Boolean,
47 + required: false,
48 + default: true,
49 + },
50 +});
51 +
52 +const emit = defineEmits(["onPlay", "onPause"]);
53 +const videoRef = ref(null);
54 +const player = ref(null);
55 +const state = ref(null);
56 +const showErrorOverlay = ref(false);
57 +const errorMessage = ref('');
58 +const retryCount = ref(0);
59 +const maxRetries = 3;
60 +
61 +const videoOptions = computed(() => ({
62 + controls: true,
63 + preload: "metadata", // 改为metadata以减少初始加载
64 + responsive: true,
65 + autoplay: props.autoplay,
66 + // 启用倍速播放功能
67 + playbackRates: [0.5, 0.75, 1, 1.25, 1.5, 2],
68 + // 添加多种格式支持
69 + sources: [
70 + {
71 + src: props.videoUrl,
72 + type: "video/mp4",
73 + },
74 + // 备用源,如果主源失败则尝试其他格式
75 + {
76 + src: props.videoUrl,
77 + type: "video/webm",
78 + },
79 + {
80 + src: props.videoUrl,
81 + type: "video/ogg",
82 + },
83 + ],
84 + // HTML5配置优化
85 + html5: {
86 + vhs: {
87 + overrideNative: !videojs.browser.IS_SAFARI,
88 + },
89 + nativeVideoTracks: false,
90 + nativeAudioTracks: false,
91 + nativeTextTracks: false,
92 + },
93 + // 错误处理配置
94 + errorDisplay: true,
95 + // 网络和加载配置
96 + techOrder: ['html5'],
97 + // onPlay: () => emit("onPlay"),
98 + // onPause: () => emit("onPause"),
99 + userActions: {
100 + hotkeys: true,
101 + doubleClick: true,
102 + },
103 + controlBar: {
104 + progressControl: {
105 + seekBar: {
106 + mouseTimeDisplay: {
107 + keepTooltipsInside: true,
108 + },
109 + },
110 + },
111 + },
112 + ...props.options,
113 +}));
114 +
115 +const handleMounted = (payload) => {
116 + state.value = payload.state;
117 + player.value = payload.player;
118 + if (player.value) {
119 + // 添加错误处理监听器
120 + player.value.on('error', (error) => {
121 + console.error('VideoJS播放错误:', error);
122 + const errorCode = player.value.error();
123 + if (errorCode) {
124 + console.error('错误代码:', errorCode.code, '错误信息:', errorCode.message);
125 +
126 + // 显示用户友好的错误信息
127 + showErrorOverlay.value = true;
128 +
129 + // 根据错误类型进行处理
130 + switch (errorCode.code) {
131 + case 4: // MEDIA_ERR_SRC_NOT_SUPPORTED
132 + errorMessage.value = '视频格式不支持或无法加载,请检查网络连接';
133 + console.warn('视频格式不支持,尝试重新加载...');
134 + // 自动重试(如果重试次数未超限)
135 + if (retryCount.value < maxRetries) {
136 + setTimeout(() => {
137 + retryLoad();
138 + }, 1000);
139 + }
140 + break;
141 + case 3: // MEDIA_ERR_DECODE
142 + errorMessage.value = '视频解码失败,可能是文件损坏';
143 + console.warn('视频解码错误');
144 + break;
145 + case 2: // MEDIA_ERR_NETWORK
146 + errorMessage.value = '网络连接错误,请检查网络后重试';
147 + console.warn('网络错误,尝试重新加载...');
148 + if (retryCount.value < maxRetries) {
149 + setTimeout(() => {
150 + retryLoad();
151 + }, 2000);
152 + }
153 + break;
154 + case 1: // MEDIA_ERR_ABORTED
155 + errorMessage.value = '视频加载被中止';
156 + console.warn('视频加载被中止');
157 + break;
158 + default:
159 + errorMessage.value = '视频播放出现未知错误';
160 + }
161 + }
162 + });
163 +
164 + // 添加加载状态监听
165 + player.value.on('loadstart', () => {
166 + console.log('开始加载视频');
167 + showErrorOverlay.value = false; // 隐藏错误提示
168 + });
169 +
170 + player.value.on('canplay', () => {
171 + console.log('视频可以播放');
172 + showErrorOverlay.value = false; // 隐藏错误提示
173 + retryCount.value = 0; // 重置重试计数
174 + });
175 +
176 + player.value.on('loadedmetadata', () => {
177 + console.log('视频元数据加载完成');
178 + });
179 +
180 + // TAG: 自动播放
181 + if (props.autoplay) {
182 + player.value.play().catch(error => {
183 + console.warn('自动播放失败:', error);
184 + });
185 + }
186 +
187 + // if (!wxInfo().isPc && !wxInfo().isWeiXinDesktop) { // 非PC端,且非微信PC端
188 + // // 监听视频播放状态
189 + // player.value.on('play', () => {
190 + // // 播放时隐藏controls
191 + // // player.value.controlBar.hide();
192 + // });
193 + // player.value.on('pause', () => {
194 +
195 + // })
196 + // // 添加touchstart事件监听
197 + // player.value.on('touchstart', (event) => {
198 + // // 阻止事件冒泡,避免触发controls的默认行为
199 + // event.preventDefault();
200 + // event.stopPropagation();
201 +
202 + // // 检查点击位置是否在controls区域
203 + // const controlBar = player.value.getChild('ControlBar');
204 + // const controlBarEl = controlBar && controlBar.el();
205 + // if (controlBarEl && controlBarEl.contains(event.target)) {
206 + // return; // 如果点击在controls区域,不执行自定义行为
207 + // }
208 +
209 + // if (player.value.paused()) {
210 + // player.value.play();
211 + // } else {
212 + // player.value.pause();
213 + // }
214 + // });
215 + // }
216 + }
217 +};
218 +
219 +const handlePlay = (payload) => {
220 + emit("onPlay", payload)
221 +};
222 +const handlePause = (payload) => {
223 + emit("onPause", payload)
224 +}
225 +
226 +/**
227 + * 重试加载视频
228 + */
229 +const retryLoad = () => {
230 + if (retryCount.value >= maxRetries) {
231 + errorMessage.value = '重试次数已达上限,请稍后再试';
232 + return;
233 + }
234 +
235 + retryCount.value++;
236 + showErrorOverlay.value = false;
237 +
238 + if (player.value && !player.value.isDisposed()) {
239 + console.log(`第${retryCount.value}次重试加载视频`);
240 + player.value.load();
241 + }
242 +};
243 +
244 +onBeforeUnmount(() => {
245 + if (videoRef.value?.$player) {
246 + videoRef.value.$player.dispose();
247 + }
248 +});
249 +
250 +defineExpose({
251 + pause() {
252 + if (player.value && typeof player.value.pause === 'function') {
253 + player.value.pause();
254 + emit('onPause', player.value);
255 + }
256 + },
257 + play() {
258 + if (player.value) {
259 + player.value?.play();
260 + emit('onPlay', player.value);
261 + }
262 + },
263 + getPlayer() {
264 + return player.value;
265 + },
266 + getId() {
267 + return props.videoId || "meta_id";
268 + },
269 +});
270 +</script>
271 +
272 +<style scoped>
273 +.video-player-container {
274 + width: 100%;
275 + height: 100%;
276 + position: relative;
277 +}
278 +
279 +.video-player {
280 + width: 100%;
281 + height: 100%;
282 + display: block;
283 + aspect-ratio: 16/9;
284 +}
285 +
286 +.video-player.loading {
287 + opacity: 0.6;
288 +}
289 +
290 +/* 错误覆盖层样式 */
291 +.error-overlay {
292 + position: absolute;
293 + top: 0;
294 + left: 0;
295 + right: 0;
296 + bottom: 0;
297 + background: rgba(0, 0, 0, 0.8);
298 + display: flex;
299 + align-items: center;
300 + justify-content: center;
301 + z-index: 1000;
302 +}
303 +
304 +.error-content {
305 + text-align: center;
306 + color: white;
307 + padding: 20px;
308 +}
309 +
310 +.error-icon {
311 + font-size: 48px;
312 + margin-bottom: 16px;
313 +}
314 +
315 +.error-message {
316 + font-size: 16px;
317 + margin-bottom: 20px;
318 + line-height: 1.5;
319 +}
320 +
321 +.retry-button {
322 + background: #007bff;
323 + color: white;
324 + border: none;
325 + padding: 10px 20px;
326 + border-radius: 4px;
327 + cursor: pointer;
328 + font-size: 14px;
329 + transition: background-color 0.3s;
330 +}
331 +
332 +.retry-button:hover {
333 + background: #0056b3;
334 +}
335 +
336 +/* 自定义大播放按钮样式 */
337 +:deep(.vjs-big-play-button) {
338 + position: absolute;
339 + top: 50%;
340 + left: 50%;
341 + transform: translate(-50%, -50%);
342 + width: 5rem;
343 + height: 5rem;
344 + background: transparent !important;
345 + border: none !important;
346 + border-radius: 0 !important;
347 + font-size: 0 !important;
348 + z-index: 100;
349 + cursor: pointer;
350 + transition: all 0.3s ease;
351 +}
352 +
353 +:deep(.vjs-big-play-button::before) {
354 + content: '';
355 + position: absolute;
356 + top: 0;
357 + left: 0;
358 + width: 100%;
359 + height: 100%;
360 + background-image: url('@/assets/images/02 西园戒幢律寺三坛大戒法会/视频@2x.png');
361 + background-size: contain;
362 + background-repeat: no-repeat;
363 + background-position: center;
364 + opacity: 0.9;
365 + transition: all 0.3s ease;
366 +}
367 +
368 +:deep(.vjs-big-play-button:hover::before) {
369 + opacity: 1;
370 + transform: scale(1.1);
371 +}
372 +
373 +:deep(.vjs-big-play-button:focus) {
374 + outline: none;
375 +}
376 +
377 +/* 隐藏默认的播放图标 */
378 +:deep(.vjs-big-play-button .vjs-icon-play) {
379 + display: none !important;
380 +}
381 +
382 +/* 倍速播放控件样式优化 */
383 +:deep(.vjs-playback-rate) {
384 + order: 7;
385 + position: relative;
386 + display: flex !important;
387 + align-items: center;
388 + z-index: 10;
389 + margin-right: 12px;
390 +}
391 +
392 +/* 隐藏可能存在的图标 */
393 +:deep(.vjs-playback-rate .vjs-icon-chapters) {
394 + display: none !important;
395 +}
396 +
397 +:deep(.vjs-playback-rate .vjs-playback-rate-value) {
398 + font-size: 1.5em;
399 + line-height: 2;
400 + color: #fff;
401 + background: transparent;
402 + border-radius: 4px;
403 + padding: 0 8px;
404 + margin: 0;
405 + transition: all 0.3s ease;
406 + cursor: pointer;
407 + min-width: auto;
408 + text-align: center;
409 + width: auto;
410 + display: inline-block;
411 +}
412 +
413 +:deep(.vjs-playback-rate:hover .vjs-playback-rate-value) {
414 + background: transparent;
415 + transform: scale(1.05);
416 +}
417 +
418 +/* 菜单容器优化 - 解决遮挡问题 */
419 +:deep(.vjs-playback-rate .vjs-menu) {
420 + background: rgba(0, 0, 0, 0.95);
421 + border-radius: 8px;
422 + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
423 + backdrop-filter: blur(15px);
424 + border: 1px solid rgba(255, 255, 255, 0.1);
425 + position: absolute;
426 + bottom: 100%;
427 + right: 0;
428 + margin-bottom: 8px;
429 + min-width: 80px;
430 + max-height: 200px;
431 + overflow-y: auto;
432 + z-index: 1000;
433 +}
434 +
435 +/* 确保菜单在视口内显示 */
436 +:deep(.vjs-playback-rate .vjs-menu.vjs-lock-showing) {
437 + display: block !important;
438 + opacity: 1 !important;
439 + visibility: visible !important;
440 +}
441 +
442 +:deep(.vjs-playback-rate .vjs-menu-content) {
443 + padding: 4px 0;
444 +}
445 +
446 +:deep(.vjs-playback-rate .vjs-menu-item) {
447 + color: #fff;
448 + padding: 10px 16px;
449 + font-size: 14px;
450 + transition: all 0.2s ease;
451 + border-radius: 4px;
452 + margin: 2px 4px;
453 + cursor: pointer;
454 + white-space: nowrap;
455 + text-align: center;
456 +}
457 +
458 +:deep(.vjs-playback-rate .vjs-menu-item:hover) {
459 + background: rgba(255, 255, 255, 0.15);
460 + transform: translateX(2px);
461 +}
462 +
463 +:deep(.vjs-playback-rate .vjs-menu-item.vjs-selected) {
464 + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
465 + color: #fff;
466 + font-weight: 600;
467 +}
468 +
469 +/* 移动端优化 */
470 +@media (max-width: 768px) {
471 + :deep(.vjs-playback-rate) {
472 + display: flex !important;
473 + visibility: visible !important;
474 + margin-right: 8px;
475 + }
476 +
477 + :deep(.vjs-playback-rate .vjs-playback-rate-value) {
478 + font-size: 1.3em;
479 + padding: 0 6px;
480 + min-width: auto;
481 + height: 36px;
482 + line-height: 36px;
483 + width: auto;
484 + margin: 0;
485 + }
486 +
487 + :deep(.vjs-playback-rate .vjs-menu) {
488 + min-width: 100px;
489 + max-height: 180px;
490 + bottom: 120%;
491 + right: -10px;
492 + }
493 +
494 + :deep(.vjs-playback-rate .vjs-menu-item) {
495 + padding: 12px 16px;
496 + font-size: 16px;
497 + min-height: 44px;
498 + display: flex;
499 + align-items: center;
500 + justify-content: center;
501 + }
502 +}
503 +
504 +/* 小屏幕设备进一步优化 */
505 +@media (max-width: 480px) {
506 + :deep(.vjs-playback-rate) {
507 + margin-right: 6px;
508 + }
509 +
510 + :deep(.vjs-playback-rate .vjs-playback-rate-value) {
511 + font-size: 1.2em;
512 + padding: 0 4px;
513 + min-width: auto;
514 + height: 32px;
515 + line-height: 32px;
516 + width: auto;
517 + margin: 0;
518 + }
519 +
520 + :deep(.vjs-playback-rate .vjs-menu) {
521 + min-width: 90px;
522 + right: -5px;
523 + }
524 +
525 + :deep(.vjs-playback-rate .vjs-menu-item) {
526 + padding: 10px 12px;
527 + font-size: 15px;
528 + min-height: 40px;
529 + }
530 +}
531 +</style>
1 +/*
2 + * @Author: hookehuyr hookehuyr@gmail.com
3 + * @Date: 2022-05-28 10:17:40
4 + * @LastEditors: hookehuyr hookehuyr@gmail.com
5 + * @LastEditTime: 2025-07-01 16:23:59
6 + * @FilePath: /mlaj/src/utils/axios.js
7 + * @Description:
8 + */
9 +import axios from 'axios';
10 +import router from '@/router';
11 +// import qs from 'Qs'
12 +// import { strExist } from '@/utils/tools'
13 +
14 +// axios.defaults.baseURL = 'http://localhost:3000/api';
15 +axios.defaults.params = {
16 + f: 'behalo',
17 +};
18 +
19 +/**
20 + * 设置用户认证信息到请求头
21 + * @param {string} userId - 用户ID
22 + * @param {string} userToken - 用户Token
23 + */
24 +export const setAuthHeaders = (userId, userToken) => {
25 + if (userId && userToken) {
26 + axios.defaults.headers['User-Id'] = userId;
27 + axios.defaults.headers['User-Token'] = userToken;
28 + }
29 +};
30 +
31 +/**
32 + * 清除用户认证信息
33 + */
34 +export const clearAuthHeaders = () => {
35 + delete axios.defaults.headers['User-Id'];
36 + delete axios.defaults.headers['User-Token'];
37 +};
38 +
39 +/**
40 + * @description 请求拦截器
41 + */
42 +axios.interceptors.request.use(
43 + config => {
44 + /**
45 + * 司总授权信息
46 + * 动态获取 user_info 并设置到请求头
47 + * 确保每个请求都带上最新的 user_info
48 + */
49 + const user_info = localStorage.getItem('user_info') ? JSON.parse(localStorage.getItem('user_info')) : {};
50 + if (user_info) {
51 + config.headers['User-Id'] = user_info.user_id;
52 + config.headers['User-Token'] = user_info.HTTP_USER_TOKEN;
53 + }
54 + // const url_params = parseQueryString(location.href);
55 + // GET请求默认打上时间戳,避免从缓存中拿数据。
56 + const timestamp = config.method === 'get' ? (new Date()).valueOf() : '';
57 + /**
58 + * POST PHP需要修改数据格式
59 + * 序列化POST请求时需要屏蔽上传相关接口,上传相关接口序列化后报错
60 + */
61 + // config.data = config.method === 'post' && !strExist(['a=upload', 'upload.qiniup.com'], config.url) ? qs.stringify(config.data) : config.data;
62 + // 绑定默认请求头
63 + config.params = { ...config.params, timestamp }
64 + return config;
65 + },
66 + error => {
67 + // 请求错误处理
68 + return Promise.reject(error);
69 + });
70 +
71 +/**
72 + * @description 响应拦截器
73 + */
74 +axios.interceptors.response.use(
75 + response => {
76 + if (response.data && response.data.code === 401) {
77 + // 清除用户登录信息
78 + localStorage.removeItem('currentUser');
79 + // 清除认证请求头
80 + clearAuthHeaders();
81 + // 跳转到登录页面,并携带当前路由信息
82 + const currentPath = router.currentRoute.value.fullPath;
83 + router.push(`/login?redirect=${encodeURIComponent(currentPath)}`);
84 + // router.push(`/login`);
85 + }
86 + return response;
87 + },
88 + error => {
89 + // 响应错误处理
90 + return Promise.reject(error);
91 + });
92 +
93 +export default axios;
1 +/**
2 + * Mock data for the parent-child education app
3 + * This file contains sample data for courses, activities, and users
4 + */
5 +
6 +// Featured course for the top banner
7 +export const featuredCourse = {
8 + id: 'featured-1',
9 + title: '传承之道',
10 + subtitle: '大理鸡足山游学',
11 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg',
12 + liveTime: '14:00:00'
13 +};
14 +
15 +// User recommendations
16 +export const userRecommendations = [
17 + { title: "亲子阅读技巧入门", duration: "15分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg" },
18 + { title: "3-6岁孩子的情绪管理", duration: "20分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/27kCu7bXGEI.jpg" },
19 + { title: "趣味数学启蒙课", duration: "12分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/jbwr0qZvpD4.jpg" },
20 + { title: "儿童英语绘本故事", duration: "18分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/GGCP6vshpPY.jpg" },
21 + { title: "*亲子阅读技巧入门", duration: "15分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/zMRLZh40kms.jpg" },
22 + { title: "*3-6岁孩子的情绪管理", duration: "20分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/27kCu7bXGEI.jpg" },
23 + { title: "*趣味数学启蒙课", duration: "12分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/jbwr0qZvpD4.jpg" },
24 + { title: "*儿童英语绘本故事", duration: "18分钟", image: "https://cdn.ipadbiz.cn/mlaj/images/GGCP6vshpPY.jpg" },
25 +];
26 +
27 +// Live streaming sessions
28 +export const liveStreams = [
29 + {
30 + id: 'live-1',
31 + title: '无界之世',
32 + subtitle: '敦煌行',
33 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/2JIvboGLeho.jpg',
34 + isLive: true,
35 + viewers: 272
36 + },
37 + {
38 + id: 'live-2',
39 + title: '慧眼读书会',
40 + subtitle: '',
41 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/_6HzPU9Hyfg (2).jpg',
42 + isLive: true,
43 + viewers: 272
44 + }
45 +];
46 +
47 +// Course list data
48 +export const courses = [
49 + {
50 + id: 'course-1',
51 + title: '好分凭借力,陪你跃龙门!',
52 + subtitle: '4.17-6.18 美乐考前赋能营',
53 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/jbwr0qZvpD4.jpg', // Updated with new image
54 + price: 365,
55 + updatedLessons: 16,
56 + subscribers: 1140,
57 + isPurchased: true,
58 + isReviewed: true,
59 + expireDate: '2025-04-17 00:00:00',
60 + description: `【美乐考前赋能营】
61 + 结合平台多年亲子教育的实践经验,
62 + 针对近在眼前的高考,
63 + 和为学业考试而焦虑的群体
64 + 精心打造、最为定制的专项课程。
65 +
66 + 旨在帮助家长更好地理解,支持孩子,
67 + 有效管理自己的情绪和压力;
68 + 进而引导孩子的情绪状态,
69 + 以最佳的心理状态迎接挑战。
70 +
71 + 在考试的最后冲刺阶段,
72 + 给世界一个爱赏识他们的理由,
73 + 共同助力每个学子梦想成真!`,
74 + sections: [
75 + { title: '课程介绍', content: '课程详细描述内容...' },
76 + { title: '课程目录', content: '第1章:心态准备\n第2章:考前减压\n第3章:家庭支持' }
77 + ]
78 + },
79 + {
80 + id: 'course-2',
81 + title: '大国少年-梦想嘉年华',
82 + subtitle: '亲子冬令营',
83 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/GGCP6vshpPY.jpg', // Updated with new image
84 + price: 3665,
85 + updatedLessons: 16,
86 + subscribers: 1140,
87 + isPurchased: true,
88 + isReviewed: false
89 + },
90 + {
91 + id: 'course-3',
92 + title: '大国少年-世界正东方',
93 + subtitle: '亲子夏令营',
94 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/2Juj2cXWB7U.jpg', // Updated with new image
95 + price: 1280,
96 + updatedLessons: 16,
97 + subscribers: 1140,
98 + isPurchased: false,
99 + isReviewed: false
100 + }
101 +];
102 +
103 +// Activity data
104 +export const activities = [
105 + {
106 + id: 'activity-1',
107 + title: '慧眼读书 | 《论语》',
108 + subtitle: '亲子共读',
109 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/2JIvboGLeho.jpg', // Updated with new image
110 + location: '北京',
111 + status: '活动中',
112 + period: '2024.12.09-2025.01.17',
113 + price: 99,
114 + originalPrice: 120,
115 + isHot: true,
116 + isFree: false,
117 + participantsCount: 18,
118 + maxParticipants: 30,
119 + mock_link: 'https://wxm.behalo.cc/pages/activity/info?type=2&id=10075&title=%E6%B4%BB%E5%8A%A8%E6%8A%A5%E5%90%8D'
120 + },
121 + {
122 + id: 'activity-2',
123 + title: '好分凭借力,陪你跃龙门!',
124 + subtitle: '4.17-6.18 美乐考前赋能营',
125 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/_6HzPU9Hyfg (2).jpg', // Updated with new image
126 + location: '线上',
127 + status: '活动中',
128 + period: '2024.12.17-2025.01.26',
129 + price: 366,
130 + originalPrice: 468,
131 + isHot: false,
132 + isFree: false,
133 + participantsCount: 25,
134 + maxParticipants: 50,
135 + mock_link: 'https://wxm.behalo.cc/pages/activity/info?type=2&id=10098&title=%E6%B4%BB%E5%8A%A8%E6%8A%A5%E5%90%8D'
136 + },
137 + {
138 + id: 'activity-3',
139 + title: '7.29-8.4 敦煌: 【青云之路】',
140 + subtitle: '亲子游学营',
141 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/Y17FE9Fuw4Y.jpg', // Updated with new image
142 + location: '敦煌',
143 + status: '即将开始',
144 + period: '2025.01.07-2025.01.26',
145 + price: 3980,
146 + originalPrice: 4200,
147 + isHot: true,
148 + isFree: false,
149 + participantsCount: 12,
150 + maxParticipants: 20,
151 + mock_link: 'https://wxm.behalo.cc/pages/activity/info?type=2&id=10085&title=%E6%B4%BB%E5%8A%A8%E6%8A%A5%E5%90%8D'
152 + },
153 + {
154 + id: 'activity-4',
155 + title: '【大国少年·梦想嘉年华】',
156 + subtitle: '亲子冬令营',
157 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/-G3rw6Y02D0.jpg',
158 + location: '上海',
159 + status: '进行中',
160 + period: '2025.01.09-2025.01.22',
161 + price: 1280,
162 + originalPrice: 1380,
163 + isHot: false,
164 + isFree: false,
165 + participantsCount: 24,
166 + maxParticipants: 40
167 + },
168 + {
169 + id: 'activity-5',
170 + title: '慧眼读书会 |《零极限》',
171 + subtitle: '共读',
172 + imageUrl: 'https://cdn.ipadbiz.cn/mlaj/images/Oalh2MojUuk.jpg',
173 + location: '线上',
174 + status: '进行中',
175 + period: '2025.01.09-2025.01.22',
176 + price: 0,
177 + originalPrice: 0,
178 + isHot: false,
179 + isFree: true,
180 + participantsCount: 45,
181 + maxParticipants: 100
182 + }
183 +];
184 +
185 +// User profile data
186 +export const userProfile = {
187 + name: '李玉红',
188 + avatar: 'https://cdn.ipadbiz.cn/mlaj/images/user-avatar-2.jpg',
189 + activities: [],
190 + courses: [],
191 + children: [],
192 + checkIns: {
193 + totalDays: 45,
194 + currentStreak: 7,
195 + longestStreak: 15
196 + }
197 +};
198 +
199 +// Daily check-in data
200 +// export const checkInTypes = [
201 +// { id: 'reading', name: '阅读打卡', icon: 'book', path: '/checkin/reading' },
202 +// { id: 'exercise', name: '运动打卡', icon: 'running', path: '/checkin/exercise' },
203 +// { id: 'study', name: '学习打卡', icon: 'graduation-cap', path: '/checkin/study' },
204 +// { id: 'reflection', name: '反思打卡', icon: 'pencil-alt', path: '/checkin/writing' }
205 +// ];
206 +export const checkInTypes = [
207 + { id: 'reading', name: '课程打卡', icon: 'book', path: '/checkin/reading' },
208 + { id: 'exercise', name: '签到打卡', icon: 'running', path: '/checkin/exercise' },
209 + // { id: 'study', name: '团队打卡', icon: 'graduation-cap', path: '/checkin/study' },
210 + { id: 'reflection', name: '学习打卡', icon: 'pencil-alt', path: '/checkin/writing' },
211 + { id: 'mix', name: '图文打卡', icon: 'pencil-alt', path: '/checkin/index' }
212 +];
213 +
214 +// Community posts data
215 +export const communityPosts = [
216 + {
217 + id: 'post-1',
218 + author: {
219 + id: 'user-1',
220 + name: '王小明',
221 + avatar: 'https://cdn.ipadbiz.cn/mlaj/images/user-avatar-3.jpg'
222 + },
223 + content: '今天和孩子一起完成了《论语》的共读,收获颇丰!孩子对"己所不欲勿施于人"这句话有了更深的理解。',
224 + images: ['https://cdn.ipadbiz.cn/mlaj/images/post-1-1.jpg', 'https://cdn.ipadbiz.cn/mlaj/images/post-1-2.jpg'],
225 + likes: 24,
226 + comments: 5,
227 + createdAt: '2023-03-15T08:30:00Z'
228 + },
229 + {
230 + id: 'post-2',
231 + author: {
232 + id: 'user-2',
233 + name: '李晓华',
234 + avatar: 'https://cdn.ipadbiz.cn/mlaj/images/user-avatar-1.jpg'
235 + },
236 + content: '冬令营第三天,孩子们参观了科技馆,学习了很多有趣的知识,晚上的篝火晚会也很精彩!',
237 + images: ['https://cdn.ipadbiz.cn/mlaj/images/post-2-1.jpg'],
238 + likes: 36,
239 + comments: 8,
240 + createdAt: '2023-03-14T15:45:00Z'
241 + }
242 +];
1 +/*
2 + * @Date: 2025-04-07 12:41:59
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2025-04-07 12:42:05
5 + * @FilePath: /mlaj/src/utils/time.js
6 + * @Description: 文件描述
7 + */
8 +/**
9 + * 格式化时间戳为 mm:ss 或 hh:mm:ss 格式
10 + * @param {number} seconds - 总秒数(支持小数)
11 + * @returns {string} 格式化后的时间字符串
12 + */
13 +export function formatTime(seconds) {
14 + if (isNaN(seconds) || seconds < 0) return '0:00'
15 +
16 + const hours = Math.floor(seconds / 3600)
17 + seconds %= 3600
18 + const minutes = Math.floor(seconds / 60)
19 + seconds = Math.floor(seconds % 60)
20 +
21 + const pad = (n) => n.toString().padStart(2, '0')
22 + if (hours > 0) {
23 + return `${hours}:${pad(minutes)}:${pad(seconds)}`
24 + }
25 + return `${minutes}:${pad(seconds)}`
26 +}
1 +/*
2 + * @Date: 2022-04-18 15:59:42
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2025-04-07 15:18:25
5 + * @FilePath: /mlaj/src/utils/tools.js
6 + * @Description: 文件描述
7 + */
8 +import dayjs from 'dayjs';
9 +
10 +// 格式化时间
11 +const formatDate = (date) => {
12 + return dayjs(date).format('YYYY-MM-DD HH:mm');
13 +};
14 +
15 +/**
16 + * @description 判断浏览器属于平台
17 + * @returns
18 + */
19 +const wxInfo = () => {
20 + let u = navigator.userAgent;
21 + let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
22 + let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
23 + let isMobile = u.indexOf('Android') > -1 || u.indexOf('iPhone') > -1 || u.indexOf('iPad') > -1; // 移动端平台
24 + let isIpad = u.indexOf('iPad') > -1; // iPad平台
25 + let uAgent = navigator.userAgent.toLowerCase();
26 + let isWeiXin = (uAgent.match(/MicroMessenger/i) == 'micromessenger') ? true : false;
27 + let isWeiXinDesktop = isWeiXin && uAgent.indexOf('wechat') > -1 ? true : false;
28 + let isPC = (uAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone|micromessenger)/i)) ? false : true;
29 + let isIOS = /iphone|ipad|ipod/.test(uAgent); // iOS设备
30 + let isWeChatBrowser = /micromessenger/.test(uAgent); // 微信浏览器
31 + let isIOSWeChat = isIOS && isWeChatBrowser;
32 + return {
33 + isAndroid,
34 + isiOS,
35 + isWeiXin,
36 + isMobile,
37 + isIpad,
38 + isPC,
39 + isWeiXinDesktop,
40 + isIOSWeChat
41 + };
42 +};
43 +
44 +/**
45 + * @description 判断多行省略文本
46 + * @param {*} id 目标dom标签
47 + * @returns
48 + */
49 +const hasEllipsis = (id) => {
50 + let oDiv = document.getElementById(id);
51 + let flag = false;
52 + if (oDiv.scrollHeight > oDiv.clientHeight) {
53 + flag = true
54 + }
55 + return flag
56 +}
57 +
58 +/**
59 + * @description 解析URL参数
60 + * @param {*} url
61 + * @returns
62 + */
63 +const parseQueryString = url => {
64 + var json = {};
65 + var arr = url.indexOf('?') >= 0 ? url.substr(url.indexOf('?') + 1).split('&') : [];
66 + arr.forEach(item => {
67 + var tmp = item.split('=');
68 + json[tmp[0]] = decodeURIComponent(tmp[1]);
69 + });
70 + return json;
71 +}
72 +
73 +/**
74 + * 字符串包含字符数组中字符的状态
75 + * @param {*} array 字符数组
76 + * @param {*} str 字符串
77 + * @returns 包含状态
78 + */
79 +const strExist = (array, str) => {
80 + const exist = array.filter(arr => {
81 + if (str.indexOf(arr) >= 0) return str;
82 + })
83 + return exist.length > 0
84 +}
85 +
86 +/**
87 + * 自定义替换参数
88 + * @param {*} url
89 + * @param {*} arg
90 + * @param {*} arg_val
91 + * @returns
92 + */
93 +const changeURLArg = (url, arg, arg_val) => {
94 + var pattern = arg + '=([^&]*)';
95 + var replaceText = arg + '=' + arg_val;
96 + if (url.match(pattern)) {
97 + var tmp = '/(' + arg + '=)([^&]*)/gi';
98 + tmp = url.replace(eval(tmp), replaceText);
99 + return tmp;
100 + } else {
101 + if (url.match('[\?]')) {
102 + return url + '&' + replaceText;
103 + } else {
104 + return url + '?' + replaceText;
105 + }
106 + }
107 + return url + '\n' + arg + '\n' + arg_val;
108 +}
109 +
110 +// 获取参数key/value值对
111 +const getUrlParams = (url) => {
112 + // 没有参数处理
113 + if (url.split('?').length === 1) return false;
114 + let arr = url.split('?');
115 + let res = arr[1].split('&');
116 + let items = {};
117 + for (let i = 0; i < res.length; i++) {
118 + let [key, value] = res[i].split('=');
119 + items[key] = value;
120 + }
121 + return items
122 +}
123 +
124 +// 格式化URL参数为字符串
125 +const stringifyQuery = (params) => {
126 + const queryString = [];
127 + Object.keys(params || {}).forEach((k) => {
128 + queryString.push(k + '=' + params[k]);
129 + });
130 +
131 + return '?' + queryString.join('&');
132 +};
133 +
134 +// 格式化时长(秒转换为可读格式)
135 +const formatDuration = (seconds) => {
136 + const hours = Math.floor(seconds / 3600);
137 + const minutes = Math.floor((seconds % 3600) / 60);
138 + const remainingSeconds = seconds % 60;
139 +
140 + let result = '';
141 + if (hours > 0) {
142 + result += `${hours}小时`;
143 + }
144 + if (minutes > 0) {
145 + result += `${minutes}分钟`;
146 + }
147 + if (remainingSeconds > 0 || result === '') {
148 + result += `${remainingSeconds}秒`;
149 + }
150 + return result;
151 +};
152 +
153 +export {
154 + formatDate,
155 + wxInfo,
156 + hasEllipsis,
157 + parseQueryString,
158 + strExist,
159 + changeURLArg,
160 + getUrlParams,
161 + stringifyQuery,
162 + formatDuration,
163 +};
1 +import { qiniuTokenAPI, qiniuUploadAPI, saveFileAPI } from '@/api/common';
2 +import BMF from 'browser-md5-file';
3 +// import { v4 as uuidv4 } from 'uuid';
4 +
5 +// 获取文件后缀
6 +const getFileSuffix = (fileName) => {
7 + return /.[^.]+$/.exec(fileName) || '';
8 +};
9 +
10 +// 获取文件MD5
11 +const getFileMD5 = (file) => {
12 + return new Promise((resolve, reject) => {
13 + const bmf = new BMF();
14 + bmf.md5(file, (err, md5) => {
15 + if (err) {
16 + reject(err);
17 + return;
18 + }
19 + resolve(md5);
20 + });
21 + });
22 +};
23 +
24 +// 上传文件到七牛云
25 +const uploadToQiniu = async (file, token, fileName, onProgress) => {
26 + const formData = new FormData();
27 + formData.append('file', file);
28 + formData.append('token', token);
29 + formData.append('key', fileName);
30 +
31 + const config = {
32 + headers: { 'Content-Type': 'multipart/form-data' },
33 + onUploadProgress: (progressEvent) => {
34 + if (progressEvent.total > 0) {
35 + const percent = Math.round((progressEvent.loaded * 100) / progressEvent.total);
36 + // 使用requestAnimationFrame确保进度更新的平滑性
37 + requestAnimationFrame(() => {
38 + onProgress?.(percent);
39 + });
40 + }
41 + }
42 + };
43 +
44 + // 根据协议选择上传地址
45 + const qiniuUploadUrl = window.location.protocol === 'https:'
46 + ? 'https://up.qbox.me'
47 + : 'http://upload.qiniu.com';
48 +
49 + return await qiniuUploadAPI(qiniuUploadUrl, formData, config);
50 +};
51 +
52 +// 校验文件
53 +export const validateFile = (file, options = {}) => {
54 + const {
55 + maxSize = 100, // 默认100MB
56 + allowedTypes = ['video/mp4', 'video/quicktime'],
57 + } = options;
58 +
59 + if (!allowedTypes.includes(file.type)) {
60 + return {
61 + valid: false,
62 + message: '请上传正确格式的视频文件'
63 + };
64 + }
65 +
66 + const fileSize = (file.size / 1024 / 1024).toFixed(2);
67 + if (fileSize > maxSize) {
68 + return {
69 + valid: false,
70 + message: `文件大小不能超过${maxSize}MB`
71 + };
72 + }
73 +
74 + return { valid: true };
75 +};
76 +
77 +// 上传文件
78 +export const uploadFile = async (file, fileCode, onProgress) => {
79 + try {
80 + // 获取文件MD5
81 + const md5 = await getFileMD5(file);
82 +
83 + // 获取七牛token
84 + const tokenResult = await qiniuTokenAPI({
85 + name: file.name,
86 + hash: md5
87 + });
88 +
89 + // 如果文件已存在,直接返回
90 + if (tokenResult.data) {
91 + onProgress?.(100);
92 + return tokenResult.data;
93 + }
94 +
95 + // 新文件上传
96 + if (tokenResult.token) {
97 + const suffix = getFileSuffix(file.name);
98 + const fileName = `uploadForm/${fileCode}/${md5}${suffix}`;
99 +
100 + // image_info 为七牛返回的图片信息,现在是上传视频看后期适配
101 + const { filekey, image_info } = await uploadToQiniu(
102 + file,
103 + tokenResult.token,
104 + fileName,
105 + onProgress
106 + );
107 +
108 + if (filekey) {
109 + // 保存文件信息
110 + const { data } = await saveFileAPI({
111 + name: file.name,
112 + filekey,
113 + hash: md5,
114 + height: image_info?.height,
115 + width: image_info?.width,
116 + });
117 +
118 + return data;
119 + }
120 + }
121 +
122 + throw new Error('上传失败');
123 + } catch (error) {
124 + console.error('Upload error:', error);
125 + throw error;
126 + }
127 +};
1 +import VConsole from 'vconsole';
2 +
3 +// const vConsole = new VConsole();
4 +let vConsole = '';
5 +// 或者使用配置参数来初始化,详情见文档
6 +if (+import.meta.env.VITE_CONSOLE) {
7 + vConsole = new VConsole({ theme: 'dark' });
8 +}
9 +
10 +export default vConsole
1 +/*
2 + * @Date: 2024-02-06 11:38:13
3 + * @LastEditors: hookehuyr hookehuyr@gmail.com
4 + * @LastEditTime: 2025-09-30 22:33:40
5 + * @FilePath: /data-table/src/utils/versionUpdater.js
6 + * @Description:
7 + */
8 +/* eslint-disable */
9 +/**
10 + * @description: 版本更新检查
11 + * @param {*} time 阈值
12 + * @return {*}
13 + */
14 +export class Updater {
15 + constructor(options = {}) {
16 + this.oldScript = [];
17 + this.newScript = [];
18 + this.dispatch = {};
19 + this.init(); //初始化
20 + this.timing(options.time); //轮询
21 + }
22 +
23 + async init() {
24 + const html = await this.getHtml();
25 + this.oldScript = this.parserScript(html);
26 + }
27 +
28 + async getHtml() {
29 + // TAG: html的位置需要动态修改
30 + const html = await fetch(import.meta.env.VITE_BASE).then((res) => res.text()); //读取index html
31 + return html;
32 + }
33 +
34 + parserScript(html) {
35 + const reg = new RegExp(/<script(?:\s+[^>]*)?>(.*?)<\/script\s*>/gi); //script正则
36 + return html.match(reg); //匹配script标签
37 + }
38 +
39 + //发布订阅通知
40 + on(key, fn) {
41 + (this.dispatch[key] || (this.dispatch[key] = [])).push(fn);
42 + return this;
43 + }
44 +
45 + compare(oldArr, newArr) {
46 + const base = oldArr.length;
47 + // 去重
48 + const arr = Array.from(new Set(oldArr.concat(newArr)));
49 + //如果新旧length 一样无更新
50 + if (arr.length === base) {
51 + this.dispatch['no-update'].forEach((fn) => {
52 + fn();
53 + });
54 + } else {
55 + //否则通知更新
56 + this.dispatch['update'].forEach((fn) => {
57 + fn();
58 + });
59 + }
60 + }
61 +
62 + timing(time = 10000) {
63 + //轮询
64 + this.intervalId = setInterval(async () => {
65 + const newHtml = await this.getHtml();
66 + this.newScript = this.parserScript(newHtml);
67 + this.compare(this.oldScript, this.newScript);
68 + }, time);
69 + }
70 +
71 + /**
72 + * 清理定时器
73 + */
74 + destroy() {
75 + if (this.intervalId) {
76 + clearInterval(this.intervalId);
77 + this.intervalId = null;
78 + }
79 + }
80 +}
1 <template> 1 <template>
2 - <div class="page-container"> 2 + <div class="home-container">
3 - <!-- 顶部导航栏 --> 3 + <!-- 全屏背景图 - 海报@2x.png -->
4 - <van-nav-bar title="三坛大戒" fixed class="custom-nav"> 4 + <div class="full-background"></div>
5 - <template #left> 5 +
6 - <div class="nav-logo"> 6 + <!-- 左下角背景装饰图 - bg@2x.png -->
7 - <div class="dharma-symbol">☸</div> 7 + <div class="bottom-left-decoration"></div>
8 - </div> 8 +
9 - </template> 9 + <!-- 主要内容区域 -->
10 - <template #right> 10 + <div class="main-content">
11 - <van-icon name="search" size="18" /> 11 + <!-- 顶部Banner图片 -->
12 - </template> 12 + <div class="banner-section">
13 - </van-nav-bar> 13 + <img
14 - 14 + src="@/assets/images/02 西园戒幢律寺三坛大戒法会/banner@2x.png"
15 - <!-- 内容区域 --> 15 + alt="三坛大戒法会Banner"
16 - <div class="content-container"> 16 + class="banner-image"
17 - <!-- 轮播图 -->
18 - <van-swipe class="hero-swipe" :autoplay="4000" indicator-color="#f59e0b">
19 - <van-swipe-item v-for="(banner, index) in banners" :key="index">
20 - <div class="swipe-item" :style="{ backgroundImage: `linear-gradient(135deg, ${banner.gradient})` }">
21 - <div class="banner-content">
22 - <h3 class="banner-title">{{ banner.title }}</h3>
23 - <p class="banner-desc">{{ banner.desc }}</p>
24 - <div class="banner-decoration">
25 - <div class="lotus-icon">🪷</div>
26 - </div>
27 - </div>
28 - </div>
29 - </van-swipe-item>
30 - </van-swipe>
31 -
32 - <!-- 功能菜单 -->
33 - <div class="menu-section">
34 - <h2 class="section-title">戒律修学</h2>
35 - <van-grid :column-num="2" :gutter="16" class="main-menu">
36 - <van-grid-item
37 - v-for="item in mainMenuItems"
38 - :key="item.id"
39 - @click="handleMenuClick(item)"
40 - class="menu-item animate-on-scroll"
41 - >
42 - <div class="menu-content">
43 - <div class="menu-icon" :style="{ background: item.gradient }">
44 - <span class="icon-text">{{ item.icon }}</span>
45 - </div>
46 - <div class="menu-text">
47 - <h4>{{ item.title }}</h4>
48 - <p>{{ item.desc }}</p>
49 - </div>
50 - </div>
51 - </van-grid-item>
52 - </van-grid>
53 - </div>
54 -
55 - <!-- 通知公告 -->
56 - <div class="notice-section">
57 - <van-notice-bar
58 - left-icon="volume-o"
59 - :text="noticeText"
60 - color="#b45309"
61 - background="#fffbeb"
62 - class="custom-notice"
63 /> 17 />
64 </div> 18 </div>
65 - 19 +
66 - <!-- 最新资讯 --> 20 + <!-- 视频播放器区域 -->
67 - <div class="news-section"> 21 + <div class="video-section">
68 - <div class="section-header"> 22 + <VideoPlayer
69 - <h2 class="section-title">最新资讯</h2> 23 + :video-url="videoUrl"
70 - <van-button type="primary" size="mini" plain @click="$router.push('/news')"> 24 + video-id="home-video"
71 - 更多 25 + :autoplay="false"
72 - </van-button> 26 + :options="videoOptions"
73 - </div> 27 + />
74 - <div class="news-list">
75 - <div
76 - v-for="news in newsList"
77 - :key="news.id"
78 - class="news-item animate-on-scroll"
79 - @click="handleNewsClick(news)"
80 - >
81 - <div class="news-content">
82 - <h4 class="news-title">{{ news.title }}</h4>
83 - <p class="news-summary">{{ news.summary }}</p>
84 - <div class="news-meta">
85 - <span class="news-date">{{ news.date }}</span>
86 - <span class="news-views">{{ news.views }}人阅读</span>
87 - </div>
88 - </div>
89 - <div class="news-image" v-if="news.image">
90 - <img :src="news.image" :alt="news.title" />
91 - </div>
92 - </div>
93 - </div>
94 </div> 28 </div>
95 </div> 29 </div>
96 -
97 - <!-- 底部导航 -->
98 - <van-tabbar v-model="activeTab" fixed class="custom-tabbar">
99 - <van-tabbar-item icon="home-o" to="/">
100 - 首页
101 - </van-tabbar-item>
102 - <van-tabbar-item icon="certificate" to="/teachers">
103 - 三师七证
104 - </van-tabbar-item>
105 - <van-tabbar-item icon="friends-o" to="/volunteers">
106 - 义工
107 - </van-tabbar-item>
108 - <van-tabbar-item icon="user-o" to="/disciples">
109 - 戒子
110 - </van-tabbar-item>
111 - </van-tabbar>
112 </div> 30 </div>
113 </template> 31 </template>
114 32
115 <script setup> 33 <script setup>
116 -import { ref, onMounted, onUnmounted } from 'vue' 34 +import { ref } from 'vue'
117 -import { useRouter } from 'vue-router' 35 +import VideoPlayer from '@/components/VideoPlayer.vue'
118 -import { Toast } from 'vant' 36 +
119 - 37 +// 视频配置
120 -const router = useRouter() 38 +const videoUrl = ref('/src/assets/images/02 西园戒幢律寺三坛大戒法会/sample-10s.mp4')
121 -const activeTab = ref(0) 39 +
122 - 40 +const videoOptions = ref({
123 -// 轮播图数据 41 + fluid: true,
124 -const banners = ref([ 42 + responsive: true,
125 - { 43 + aspectRatio: '16:9',
126 - title: '三坛大戒', 44 + controls: true,
127 - desc: '传承千年戒律 弘扬佛法精神', 45 + preload: 'metadata',
128 - gradient: '#fbbf24, #f97316' 46 + poster: '',
129 - }, 47 + playbackRates: [0.5, 1, 1.25, 1.5, 2],
130 - { 48 + sources: [{
131 - title: '戒律修学', 49 + src: '/src/assets/images/02 西园戒幢律寺三坛大戒法会/sample-10s.mp4',
132 - desc: '严持戒律 清净身心', 50 + type: 'video/mp4'
133 - gradient: '#f59e0b, #ea580c' 51 + }]
134 - },
135 - {
136 - title: '法师开示',
137 - desc: '聆听法音 增长智慧',
138 - gradient: '#d97706, #c2410c'
139 - }
140 -])
141 -
142 -// 主要菜单项
143 -const mainMenuItems = ref([
144 - {
145 - id: 1,
146 - icon: '👨‍🏫',
147 - title: '三师七证',
148 - desc: '查看法师资质',
149 - gradient: 'linear-gradient(135deg, #fbbf24, #f97316)',
150 - path: '/teachers'
151 - },
152 - {
153 - id: 2,
154 - icon: '🙏',
155 - title: '义工服务',
156 - desc: '参与义工活动',
157 - gradient: 'linear-gradient(135deg, #f59e0b, #ea580c)',
158 - path: '/volunteers'
159 - },
160 - {
161 - id: 3,
162 - icon: '👤',
163 - title: '戒子信息',
164 - desc: '戒子档案管理',
165 - gradient: 'linear-gradient(135deg, #d97706, #c2410c)',
166 - path: '/disciples'
167 - },
168 - {
169 - id: 4,
170 - icon: '📰',
171 - title: '最新资讯',
172 - desc: '佛教新闻动态',
173 - gradient: 'linear-gradient(135deg, #b45309, #9a3412)',
174 - path: '/news'
175 - }
176 -])
177 -
178 -// 通知文本
179 -const noticeText = ref('欢迎参加三坛大戒法会!请各位戒子严格遵守戒律,精进修学。')
180 -
181 -// 新闻列表
182 -const newsList = ref([
183 - {
184 - id: 1,
185 - title: '三坛大戒法会圆满举行',
186 - summary: '本次法会共有200余位戒子参加,法师们为戒子们传授了沙弥戒、比丘戒等重要戒律...',
187 - date: '2024-01-15',
188 - views: 1250,
189 - image: null
190 - },
191 - {
192 - id: 2,
193 - title: '戒律学习心得分享',
194 - summary: '戒子们分享了在戒律学习过程中的心得体会,互相交流修学经验...',
195 - date: '2024-01-12',
196 - views: 890,
197 - image: null
198 - },
199 - {
200 - id: 3,
201 - title: '义工服务活动通知',
202 - summary: '寺院将于本周末举行义工服务活动,欢迎各位善信踊跃参与...',
203 - date: '2024-01-10',
204 - views: 650,
205 - image: null
206 - }
207 -])
208 -
209 -// 处理菜单点击
210 -const handleMenuClick = (item) => {
211 - if (item.path) {
212 - router.push(item.path)
213 - } else {
214 - Toast('功能开发中...')
215 - }
216 -}
217 -
218 -// 处理新闻点击
219 -const handleNewsClick = (news) => {
220 - router.push(`/news/${news.id}`)
221 -}
222 -
223 -// 滚动动画观察器
224 -let observer = null
225 -
226 -const initScrollAnimation = () => {
227 - observer = new IntersectionObserver((entries) => {
228 - entries.forEach((entry) => {
229 - if (entry.isIntersecting) {
230 - entry.target.classList.add('animate-visible')
231 - }
232 - })
233 - }, {
234 - threshold: 0.1,
235 - rootMargin: '0px 0px -50px 0px'
236 - })
237 -
238 - // 观察所有需要动画的元素
239 - const animateElements = document.querySelectorAll('.animate-on-scroll')
240 - animateElements.forEach((el) => {
241 - observer.observe(el)
242 - })
243 -}
244 -
245 -onMounted(() => {
246 - // 延迟初始化滚动动画,确保DOM已渲染
247 - setTimeout(() => {
248 - initScrollAnimation()
249 - }, 100)
250 -})
251 -
252 -onUnmounted(() => {
253 - if (observer) {
254 - observer.disconnect()
255 - }
256 }) 52 })
257 </script> 53 </script>
258 54
259 <style scoped> 55 <style scoped>
260 -.page-container { 56 +.home-container {
57 + position: relative;
261 min-height: 100vh; 58 min-height: 100vh;
262 - background: #fafafa; 59 + width: 100%;
263 -} 60 + overflow-x: hidden;
264 -
265 -.custom-nav {
266 - background: linear-gradient(135deg, #fbbf24, #f97316);
267 - color: white;
268 -}
269 -
270 -.custom-nav :deep(.van-nav-bar__title) {
271 - color: white;
272 - font-weight: 600;
273 -}
274 -
275 -.nav-logo {
276 - display: flex;
277 - align-items: center;
278 -}
279 -
280 -.dharma-symbol {
281 - font-size: 20px;
282 - color: white;
283 -}
284 -
285 -.content-container {
286 - padding-top: 46px;
287 - padding-bottom: 50px;
288 -}
289 -
290 -.hero-swipe {
291 - height: 180px;
292 - margin: 16px;
293 - border-radius: 12px;
294 - overflow: hidden;
295 } 61 }
296 62
297 -.swipe-item { 63 +/* 全屏背景图 - 海报@2x.png */
64 +.full-background {
65 + position: fixed;
66 + top: 0;
67 + left: 0;
68 + width: 100%;
298 height: 100%; 69 height: 100%;
299 - display: flex; 70 + background-image: url('@/assets/images/02 西园戒幢律寺三坛大戒法会/海报@2x.png');
300 - align-items: center; 71 + background-size: cover;
301 - justify-content: center; 72 + background-position: center;
73 + background-repeat: no-repeat;
74 + z-index: -2;
75 +}
76 +
77 +/* 左下角背景装饰图 - bg@2x.png */
78 +.bottom-left-decoration {
79 + position: fixed;
80 + bottom: 0;
81 + left: 0;
82 + width: 50%;
83 + height: 50%;
84 + background-image: url('@/assets/images/02 西园戒幢律寺三坛大戒法会/bg@2x.png');
85 + background-size: contain;
86 + background-position: bottom left;
87 + background-repeat: no-repeat;
88 + z-index: -1;
89 + pointer-events: none;
90 +}
91 +
92 +/* 主要内容区域 */
93 +.main-content {
302 position: relative; 94 position: relative;
303 - color: white; 95 + z-index: 1;
304 -} 96 + width: 100%;
305 -
306 -.banner-content {
307 - text-align: center;
308 - z-index: 2;
309 -}
310 -
311 -.banner-title {
312 - font-size: 24px;
313 - font-weight: 700;
314 - margin-bottom: 8px;
315 -}
316 -
317 -.banner-desc {
318 - font-size: 14px;
319 - opacity: 0.9;
320 -}
321 -
322 -.banner-decoration {
323 - position: absolute;
324 - top: 20px;
325 - right: 20px;
326 - opacity: 0.3;
327 -}
328 -
329 -.lotus-icon {
330 - font-size: 32px;
331 -}
332 -
333 -.menu-section {
334 - padding: 16px;
335 -}
336 -
337 -.section-title {
338 - font-size: 18px;
339 - font-weight: 600;
340 - color: #333;
341 - margin-bottom: 16px;
342 - display: flex;
343 - align-items: center;
344 -}
345 -
346 -.section-title::before {
347 - content: '';
348 - width: 4px;
349 - height: 18px;
350 - background: linear-gradient(135deg, #fbbf24, #f97316);
351 - margin-right: 8px;
352 - border-radius: 2px;
353 -}
354 -
355 -.main-menu :deep(.van-grid-item__content) {
356 - padding: 0;
357 - background: transparent;
358 -}
359 -
360 -.menu-item {
361 - background: white;
362 - border-radius: 12px;
363 - overflow: hidden;
364 - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
365 - cursor: pointer;
366 - transition: all 0.3s ease;
367 - opacity: 0;
368 - transform: translateY(30px);
369 -}
370 -
371 -.menu-item:hover {
372 - transform: translateY(-5px);
373 - box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
374 -}
375 -
376 -.menu-item:active {
377 - transform: translateY(-2px);
378 - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
379 -}
380 -
381 -.menu-item.animate-visible {
382 - opacity: 1;
383 - transform: translateY(0);
384 -}
385 -
386 -.menu-item:nth-child(1).animate-visible {
387 - transition-delay: 0.1s;
388 -}
389 -
390 -.menu-item:nth-child(2).animate-visible {
391 - transition-delay: 0.2s;
392 -}
393 -
394 -.menu-item:nth-child(3).animate-visible {
395 - transition-delay: 0.3s;
396 -}
397 -
398 -.menu-item:nth-child(4).animate-visible {
399 - transition-delay: 0.4s;
400 -}
401 -
402 -.menu-content {
403 - padding: 20px 16px;
404 - display: flex;
405 - flex-direction: column;
406 - align-items: center;
407 - text-align: center;
408 } 97 }
409 98
410 -.menu-icon { 99 +/* Banner区域 */
411 - width: 48px; 100 +.banner-section {
412 - height: 48px; 101 + width: 100%;
413 - border-radius: 12px;
414 display: flex; 102 display: flex;
415 - align-items: center;
416 justify-content: center; 103 justify-content: center;
417 - margin-bottom: 12px;
418 -}
419 -
420 -.icon-text {
421 - font-size: 24px;
422 -}
423 -
424 -.menu-text h4 {
425 - font-size: 16px;
426 - font-weight: 600;
427 - color: #333;
428 - margin: 0 0 4px 0;
429 -}
430 -
431 -.menu-text p {
432 - font-size: 12px;
433 - color: #666;
434 - margin: 0;
435 -}
436 -
437 -.notice-section {
438 - padding: 0 16px 16px;
439 -}
440 -
441 -.custom-notice {
442 - border-radius: 8px;
443 - border: 1px solid #f59e0b;
444 -}
445 -
446 -.news-section {
447 - padding: 0 16px 16px;
448 -}
449 -
450 -.section-header {
451 - display: flex;
452 - justify-content: space-between;
453 align-items: center; 104 align-items: center;
454 - margin-bottom: 16px;
455 -}
456 -
457 -.news-list {
458 - background: white;
459 - border-radius: 12px;
460 - overflow: hidden;
461 } 105 }
462 106
463 -.news-item { 107 +.banner-image {
464 - display: flex; 108 + width: 100%;
465 - padding: 16px; 109 + height: auto;
466 - border-bottom: 1px solid #f5f5f5; 110 + display: block;
467 - cursor: pointer; 111 + object-fit: cover;
468 - transition: all 0.3s ease;
469 - opacity: 0;
470 - transform: translateX(-30px);
471 -}
472 -
473 -.news-item:last-child {
474 - border-bottom: none;
475 -}
476 -
477 -.news-item:hover {
478 - transform: translateX(0) translateY(-2px);
479 - background-color: #f9f9f9;
480 -}
481 -
482 -.news-item:active {
483 - transform: translateX(0) translateY(0);
484 - background-color: #f5f5f5;
485 -}
486 -
487 -.news-item.animate-visible {
488 - opacity: 1;
489 - transform: translateX(0);
490 -}
491 -
492 -.news-item:nth-child(1).animate-visible {
493 - transition-delay: 0.1s;
494 -}
495 -
496 -.news-item:nth-child(2).animate-visible {
497 - transition-delay: 0.2s;
498 -}
499 -
500 -.news-item:nth-child(3).animate-visible {
501 - transition-delay: 0.3s;
502 -}
503 -
504 -.news-content {
505 - flex: 1;
506 -}
507 -
508 -.news-title {
509 - font-size: 16px;
510 - font-weight: 600;
511 - color: #333;
512 - margin: 0 0 8px 0;
513 - line-height: 1.4;
514 -}
515 -
516 -.news-summary {
517 - font-size: 14px;
518 - color: #666;
519 - margin: 0 0 8px 0;
520 - line-height: 1.4;
521 - display: -webkit-box;
522 - -webkit-line-clamp: 2;
523 - -webkit-box-orient: vertical;
524 - overflow: hidden;
525 -}
526 -
527 -.news-meta {
528 - display: flex;
529 - gap: 16px;
530 } 112 }
531 113
532 -.news-date, 114 +/* 视频播放器区域 */
533 -.news-views { 115 +.video-section {
534 - font-size: 12px; 116 + width: 100%;
535 - color: #999; 117 + margin: 0;
118 + padding: 0;
536 } 119 }
537 120
538 -.news-image { 121 +.video-section :deep(.video-player-container) {
539 - width: 80px; 122 + width: 100%;
540 - height: 60px; 123 + background: transparent;
541 - margin-left: 12px;
542 - border-radius: 6px;
543 - overflow: hidden;
544 } 124 }
545 125
546 -.news-image img { 126 +.video-section :deep(.video-player) {
547 width: 100%; 127 width: 100%;
548 - height: 100%; 128 + height: auto;
549 - object-fit: cover;
550 } 129 }
551 130
552 -.custom-tabbar { 131 +/* 响应式设计 */
553 - background: white; 132 +@media (max-width: 48rem) {
554 - border-top: 1px solid #eee; 133 + .bottom-left-decoration {
134 + width: 60%;
135 + height: 40%;
136 + }
555 } 137 }
556 138
557 -.custom-tabbar :deep(.van-tabbar-item--active) { 139 +@media (max-width: 30rem) {
558 - color: #f59e0b; 140 + .bottom-left-decoration {
141 + width: 70%;
142 + height: 35%;
143 + }
559 } 144 }
560 -</style>
...\ No newline at end of file ...\ No newline at end of file
145 +</style>
......
1 +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 +# yarn lockfile v1
3 +
4 +
5 +"@alloc/quick-lru@^5.2.0":
6 + version "5.2.0"
7 + resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
8 + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
9 +
10 +"@antfu/utils@^0.7.10", "@antfu/utils@^0.7.6":
11 + version "0.7.10"
12 + resolved "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d"
13 + integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==
14 +
15 +"@babel/helper-string-parser@^7.27.1":
16 + version "7.27.1"
17 + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687"
18 + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==
19 +
20 +"@babel/helper-validator-identifier@^7.28.5":
21 + version "7.28.5"
22 + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4"
23 + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==
24 +
25 +"@babel/parser@^7.28.4":
26 + version "7.28.5"
27 + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08"
28 + integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==
29 + dependencies:
30 + "@babel/types" "^7.28.5"
31 +
32 +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5":
33 + version "7.28.4"
34 + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326"
35 + integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
36 +
37 +"@babel/types@^7.28.5":
38 + version "7.28.5"
39 + resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b"
40 + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==
41 + dependencies:
42 + "@babel/helper-string-parser" "^7.27.1"
43 + "@babel/helper-validator-identifier" "^7.28.5"
44 +
45 +"@esbuild/aix-ppc64@0.21.5":
46 + version "0.21.5"
47 + resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
48 + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
49 +
50 +"@esbuild/android-arm64@0.21.5":
51 + version "0.21.5"
52 + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
53 + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
54 +
55 +"@esbuild/android-arm@0.21.5":
56 + version "0.21.5"
57 + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
58 + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
59 +
60 +"@esbuild/android-x64@0.21.5":
61 + version "0.21.5"
62 + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
63 + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
64 +
65 +"@esbuild/darwin-arm64@0.21.5":
66 + version "0.21.5"
67 + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
68 + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
69 +
70 +"@esbuild/darwin-x64@0.21.5":
71 + version "0.21.5"
72 + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
73 + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
74 +
75 +"@esbuild/freebsd-arm64@0.21.5":
76 + version "0.21.5"
77 + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
78 + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
79 +
80 +"@esbuild/freebsd-x64@0.21.5":
81 + version "0.21.5"
82 + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
83 + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
84 +
85 +"@esbuild/linux-arm64@0.21.5":
86 + version "0.21.5"
87 + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
88 + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
89 +
90 +"@esbuild/linux-arm@0.21.5":
91 + version "0.21.5"
92 + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
93 + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
94 +
95 +"@esbuild/linux-ia32@0.21.5":
96 + version "0.21.5"
97 + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
98 + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
99 +
100 +"@esbuild/linux-loong64@0.21.5":
101 + version "0.21.5"
102 + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
103 + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
104 +
105 +"@esbuild/linux-mips64el@0.21.5":
106 + version "0.21.5"
107 + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
108 + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
109 +
110 +"@esbuild/linux-ppc64@0.21.5":
111 + version "0.21.5"
112 + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
113 + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
114 +
115 +"@esbuild/linux-riscv64@0.21.5":
116 + version "0.21.5"
117 + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
118 + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
119 +
120 +"@esbuild/linux-s390x@0.21.5":
121 + version "0.21.5"
122 + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
123 + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
124 +
125 +"@esbuild/linux-x64@0.21.5":
126 + version "0.21.5"
127 + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
128 + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
129 +
130 +"@esbuild/netbsd-x64@0.21.5":
131 + version "0.21.5"
132 + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
133 + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
134 +
135 +"@esbuild/openbsd-x64@0.21.5":
136 + version "0.21.5"
137 + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
138 + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
139 +
140 +"@esbuild/sunos-x64@0.21.5":
141 + version "0.21.5"
142 + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
143 + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
144 +
145 +"@esbuild/win32-arm64@0.21.5":
146 + version "0.21.5"
147 + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
148 + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
149 +
150 +"@esbuild/win32-ia32@0.21.5":
151 + version "0.21.5"
152 + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
153 + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
154 +
155 +"@esbuild/win32-x64@0.21.5":
156 + version "0.21.5"
157 + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
158 + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
159 +
160 +"@isaacs/cliui@^8.0.2":
161 + version "8.0.2"
162 + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
163 + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
164 + dependencies:
165 + string-width "^5.1.2"
166 + string-width-cjs "npm:string-width@^4.2.0"
167 + strip-ansi "^7.0.1"
168 + strip-ansi-cjs "npm:strip-ansi@^6.0.1"
169 + wrap-ansi "^8.1.0"
170 + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
171 +
172 +"@jridgewell/gen-mapping@^0.3.2":
173 + version "0.3.13"
174 + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
175 + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
176 + dependencies:
177 + "@jridgewell/sourcemap-codec" "^1.5.0"
178 + "@jridgewell/trace-mapping" "^0.3.24"
179 +
180 +"@jridgewell/resolve-uri@^3.1.0":
181 + version "3.1.2"
182 + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
183 + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
184 +
185 +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5":
186 + version "1.5.5"
187 + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba"
188 + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
189 +
190 +"@jridgewell/trace-mapping@^0.3.24":
191 + version "0.3.31"
192 + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0"
193 + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==
194 + dependencies:
195 + "@jridgewell/resolve-uri" "^3.1.0"
196 + "@jridgewell/sourcemap-codec" "^1.4.14"
197 +
198 +"@nodelib/fs.scandir@2.1.5":
199 + version "2.1.5"
200 + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
201 + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
202 + dependencies:
203 + "@nodelib/fs.stat" "2.0.5"
204 + run-parallel "^1.1.9"
205 +
206 +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
207 + version "2.0.5"
208 + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
209 + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
210 +
211 +"@nodelib/fs.walk@^1.2.3":
212 + version "1.2.8"
213 + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
214 + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
215 + dependencies:
216 + "@nodelib/fs.scandir" "2.1.5"
217 + fastq "^1.6.0"
218 +
219 +"@pkgjs/parseargs@^0.11.0":
220 + version "0.11.0"
221 + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
222 + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
223 +
224 +"@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.1.0", "@rollup/pluginutils@^5.1.4":
225 + version "5.3.0"
226 + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz#57ba1b0cbda8e7a3c597a4853c807b156e21a7b4"
227 + integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==
228 + dependencies:
229 + "@types/estree" "^1.0.0"
230 + estree-walker "^2.0.2"
231 + picomatch "^4.0.2"
232 +
233 +"@rollup/rollup-android-arm-eabi@4.52.5":
234 + version "4.52.5"
235 + resolved "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz#0f44a2f8668ed87b040b6fe659358ac9239da4db"
236 + integrity sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==
237 +
238 +"@rollup/rollup-android-arm64@4.52.5":
239 + version "4.52.5"
240 + resolved "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz#25b9a01deef6518a948431564c987bcb205274f5"
241 + integrity sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==
242 +
243 +"@rollup/rollup-darwin-arm64@4.52.5":
244 + version "4.52.5"
245 + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz#8a102869c88f3780c7d5e6776afd3f19084ecd7f"
246 + integrity sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==
247 +
248 +"@rollup/rollup-darwin-x64@4.52.5":
249 + version "4.52.5"
250 + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz#8e526417cd6f54daf1d0c04cf361160216581956"
251 + integrity sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==
252 +
253 +"@rollup/rollup-freebsd-arm64@4.52.5":
254 + version "4.52.5"
255 + resolved "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz#0e7027054493f3409b1f219a3eac5efd128ef899"
256 + integrity sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==
257 +
258 +"@rollup/rollup-freebsd-x64@4.52.5":
259 + version "4.52.5"
260 + resolved "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz#72b204a920139e9ec3d331bd9cfd9a0c248ccb10"
261 + integrity sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==
262 +
263 +"@rollup/rollup-linux-arm-gnueabihf@4.52.5":
264 + version "4.52.5"
265 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz#ab1b522ebe5b7e06c99504cc38f6cd8b808ba41c"
266 + integrity sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==
267 +
268 +"@rollup/rollup-linux-arm-musleabihf@4.52.5":
269 + version "4.52.5"
270 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz#f8cc30b638f1ee7e3d18eac24af47ea29d9beb00"
271 + integrity sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==
272 +
273 +"@rollup/rollup-linux-arm64-gnu@4.52.5":
274 + version "4.52.5"
275 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz#7af37a9e85f25db59dc8214172907b7e146c12cc"
276 + integrity sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==
277 +
278 +"@rollup/rollup-linux-arm64-musl@4.52.5":
279 + version "4.52.5"
280 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz#a623eb0d3617c03b7a73716eb85c6e37b776f7e0"
281 + integrity sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==
282 +
283 +"@rollup/rollup-linux-loong64-gnu@4.52.5":
284 + version "4.52.5"
285 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz#76ea038b549c5c6c5f0d062942627c4066642ee2"
286 + integrity sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==
287 +
288 +"@rollup/rollup-linux-ppc64-gnu@4.52.5":
289 + version "4.52.5"
290 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz#d9a4c3f0a3492bc78f6fdfe8131ac61c7359ccd5"
291 + integrity sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==
292 +
293 +"@rollup/rollup-linux-riscv64-gnu@4.52.5":
294 + version "4.52.5"
295 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz#87ab033eebd1a9a1dd7b60509f6333ec1f82d994"
296 + integrity sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==
297 +
298 +"@rollup/rollup-linux-riscv64-musl@4.52.5":
299 + version "4.52.5"
300 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz#bda3eb67e1c993c1ba12bc9c2f694e7703958d9f"
301 + integrity sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==
302 +
303 +"@rollup/rollup-linux-s390x-gnu@4.52.5":
304 + version "4.52.5"
305 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz#f7bc10fbe096ab44694233dc42a2291ed5453d4b"
306 + integrity sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==
307 +
308 +"@rollup/rollup-linux-x64-gnu@4.52.5":
309 + version "4.52.5"
310 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz#a151cb1234cc9b2cf5e8cfc02aa91436b8f9e278"
311 + integrity sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==
312 +
313 +"@rollup/rollup-linux-x64-musl@4.52.5":
314 + version "4.52.5"
315 + resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz#7859e196501cc3b3062d45d2776cfb4d2f3a9350"
316 + integrity sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==
317 +
318 +"@rollup/rollup-openharmony-arm64@4.52.5":
319 + version "4.52.5"
320 + resolved "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz#85d0df7233734df31e547c1e647d2a5300b3bf30"
321 + integrity sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==
322 +
323 +"@rollup/rollup-win32-arm64-msvc@4.52.5":
324 + version "4.52.5"
325 + resolved "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz#e62357d00458db17277b88adbf690bb855cac937"
326 + integrity sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==
327 +
328 +"@rollup/rollup-win32-ia32-msvc@4.52.5":
329 + version "4.52.5"
330 + resolved "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz#fc7cd40f44834a703c1f1c3fe8bcc27ce476cd50"
331 + integrity sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==
332 +
333 +"@rollup/rollup-win32-x64-gnu@4.52.5":
334 + version "4.52.5"
335 + resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz#1a22acfc93c64a64a48c42672e857ee51774d0d3"
336 + integrity sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==
337 +
338 +"@rollup/rollup-win32-x64-msvc@4.52.5":
339 + version "4.52.5"
340 + resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz#1657f56326bbe0ac80eedc9f9c18fc1ddd24e107"
341 + integrity sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==
342 +
343 +"@types/estree@1.0.8", "@types/estree@^1.0.0":
344 + version "1.0.8"
345 + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
346 + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
347 +
348 +"@types/web-bluetooth@^0.0.20":
349 + version "0.0.20"
350 + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597"
351 + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==
352 +
353 +"@vant/area-data@^1.3.1":
354 + version "1.5.2"
355 + resolved "https://registry.npmjs.org/@vant/area-data/-/area-data-1.5.2.tgz#d2bed822a86ee92f7e28f07f16834929b38a5fba"
356 + integrity sha512-Gtxgt6Rjgopt6234ANpO0bBsSwtjZ23lBlVDHIy8Mi2NJqyoj1vgVWY0dri8/2LCZAWzQ6EnwRrUVViUZ0cvMA==
357 +
358 +"@vant/popperjs@^1.3.0":
359 + version "1.3.0"
360 + resolved "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.3.0.tgz#e0eff017124b5b2352ef3b36a6df06277f4400f2"
361 + integrity sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==
362 +
363 +"@vant/touch-emulator@^1.4.0":
364 + version "1.4.0"
365 + resolved "https://registry.npmjs.org/@vant/touch-emulator/-/touch-emulator-1.4.0.tgz#02420ca5f312a7eb6c36c349cbb8e80e6f29ff2f"
366 + integrity sha512-Zt+zISV0+wpOew2S1siOJ3G22y+hapHAKmXM+FhpvWzsRc4qahaYXatCAITuuXt0EcDp7WvEeTO4F7p9AtX/pw==
367 +
368 +"@vant/use@^1.6.0":
369 + version "1.6.0"
370 + resolved "https://registry.npmjs.org/@vant/use/-/use-1.6.0.tgz#237df3091617255519552ca311ffdfea9de59001"
371 + integrity sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==
372 +
373 +"@videojs-player/vue@^1.0.0":
374 + version "1.0.0"
375 + resolved "https://registry.npmjs.org/@videojs-player/vue/-/vue-1.0.0.tgz#df7db677b43b2d9b6872e71cd0eb2238cc19a8fd"
376 + integrity sha512-WonTezRfKu3fYdQLt/ta+nuKH6gMZUv8l40Jke/j4Lae7IqeO/+lLAmBnh3ni88bwR+vkFXIlZ2Ci7VKInIYJg==
377 +
378 +"@videojs/http-streaming@^3.17.2":
379 + version "3.17.2"
380 + resolved "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-3.17.2.tgz#264eaf23980f4f0e3ad918a665ac60f178f01ff8"
381 + integrity sha512-VBQ3W4wnKnVKb/limLdtSD2rAd5cmHN70xoMf4OmuDd0t2kfJX04G+sfw6u2j8oOm2BXYM9E1f4acHruqKnM1g==
382 + dependencies:
383 + "@babel/runtime" "^7.12.5"
384 + "@videojs/vhs-utils" "^4.1.1"
385 + aes-decrypter "^4.0.2"
386 + global "^4.4.0"
387 + m3u8-parser "^7.2.0"
388 + mpd-parser "^1.3.1"
389 + mux.js "7.1.0"
390 + video.js "^7 || ^8"
391 +
392 +"@videojs/vhs-utils@^4.0.0":
393 + version "4.0.0"
394 + resolved "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-4.0.0.tgz#4d4dbf5d61a9fbd2da114b84ec747c3a483bc60d"
395 + integrity sha512-xJp7Yd4jMLwje2vHCUmi8MOUU76nxiwII3z4Eg3Ucb+6rrkFVGosrXlMgGnaLjq724j3wzNElRZ71D/CKrTtxg==
396 + dependencies:
397 + "@babel/runtime" "^7.12.5"
398 + global "^4.4.0"
399 + url-toolkit "^2.2.1"
400 +
401 +"@videojs/vhs-utils@^4.1.1":
402 + version "4.1.1"
403 + resolved "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-4.1.1.tgz#44226fc5993f577490b5e08951ddc083714405cc"
404 + integrity sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==
405 + dependencies:
406 + "@babel/runtime" "^7.12.5"
407 + global "^4.4.0"
408 +
409 +"@videojs/xhr@2.7.0":
410 + version "2.7.0"
411 + resolved "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.7.0.tgz#e272af6e2b5448aeb400905a5c6f4818f6b6ad47"
412 + integrity sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==
413 + dependencies:
414 + "@babel/runtime" "^7.5.5"
415 + global "~4.4.0"
416 + is-function "^1.0.1"
417 +
418 +"@vitejs/plugin-vue@^5.0.3":
419 + version "5.2.4"
420 + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz#9e8a512eb174bfc2a333ba959bbf9de428d89ad8"
421 + integrity sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==
422 +
423 +"@vue/compiler-core@3.5.22":
424 + version "3.5.22"
425 + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.22.tgz#bb8294a0dd31df540563cc6ffa0456f1f7687b97"
426 + integrity sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==
427 + dependencies:
428 + "@babel/parser" "^7.28.4"
429 + "@vue/shared" "3.5.22"
430 + entities "^4.5.0"
431 + estree-walker "^2.0.2"
432 + source-map-js "^1.2.1"
433 +
434 +"@vue/compiler-dom@3.5.22":
435 + version "3.5.22"
436 + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.22.tgz#6c9c2c9843520f6d3dbc685e5d0e1e12a2c04c56"
437 + integrity sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==
438 + dependencies:
439 + "@vue/compiler-core" "3.5.22"
440 + "@vue/shared" "3.5.22"
441 +
442 +"@vue/compiler-sfc@3.5.22":
443 + version "3.5.22"
444 + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.22.tgz#663a8483b1dda8de83b6fa1aab38a52bf73dd965"
445 + integrity sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==
446 + dependencies:
447 + "@babel/parser" "^7.28.4"
448 + "@vue/compiler-core" "3.5.22"
449 + "@vue/compiler-dom" "3.5.22"
450 + "@vue/compiler-ssr" "3.5.22"
451 + "@vue/shared" "3.5.22"
452 + estree-walker "^2.0.2"
453 + magic-string "^0.30.19"
454 + postcss "^8.5.6"
455 + source-map-js "^1.2.1"
456 +
457 +"@vue/compiler-ssr@3.5.22":
458 + version "3.5.22"
459 + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.22.tgz#a0ef16e364731b25e79a13470569066af101320f"
460 + integrity sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==
461 + dependencies:
462 + "@vue/compiler-dom" "3.5.22"
463 + "@vue/shared" "3.5.22"
464 +
465 +"@vue/devtools-api@^6.6.3", "@vue/devtools-api@^6.6.4":
466 + version "6.6.4"
467 + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343"
468 + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==
469 +
470 +"@vue/reactivity@3.5.22":
471 + version "3.5.22"
472 + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.22.tgz#9b26f8557c96df46c9a859914a2229f3ca5b8f4f"
473 + integrity sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==
474 + dependencies:
475 + "@vue/shared" "3.5.22"
476 +
477 +"@vue/runtime-core@3.5.22":
478 + version "3.5.22"
479 + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.22.tgz#e004c1e35f423555a0e4c10646ef3e9d380643d1"
480 + integrity sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==
481 + dependencies:
482 + "@vue/reactivity" "3.5.22"
483 + "@vue/shared" "3.5.22"
484 +
485 +"@vue/runtime-dom@3.5.22":
486 + version "3.5.22"
487 + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.22.tgz#01276cea7cb9ac2b9aba046adfb5903b494e2e7e"
488 + integrity sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==
489 + dependencies:
490 + "@vue/reactivity" "3.5.22"
491 + "@vue/runtime-core" "3.5.22"
492 + "@vue/shared" "3.5.22"
493 + csstype "^3.1.3"
494 +
495 +"@vue/server-renderer@3.5.22":
496 + version "3.5.22"
497 + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.22.tgz#d134e3409094044bd066d9803714677457756157"
498 + integrity sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==
499 + dependencies:
500 + "@vue/compiler-ssr" "3.5.22"
501 + "@vue/shared" "3.5.22"
502 +
503 +"@vue/shared@3.5.22", "@vue/shared@^3.5.17":
504 + version "3.5.22"
505 + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.22.tgz#9d56a1644a3becb8af1e34655928b0e288d827f8"
506 + integrity sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==
507 +
508 +"@vueuse/core@^10.7.2":
509 + version "10.11.1"
510 + resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz#15d2c0b6448d2212235b23a7ba29c27173e0c2c6"
511 + integrity sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==
512 + dependencies:
513 + "@types/web-bluetooth" "^0.0.20"
514 + "@vueuse/metadata" "10.11.1"
515 + "@vueuse/shared" "10.11.1"
516 + vue-demi ">=0.14.8"
517 +
518 +"@vueuse/metadata@10.11.1":
519 + version "10.11.1"
520 + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz#209db7bb5915aa172a87510b6de2ca01cadbd2a7"
521 + integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==
522 +
523 +"@vueuse/shared@10.11.1":
524 + version "10.11.1"
525 + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz#62b84e3118ae6e1f3ff38f4fbe71b0c5d0f10938"
526 + integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==
527 + dependencies:
528 + vue-demi ">=0.14.8"
529 +
530 +"@xmldom/xmldom@^0.8.3":
531 + version "0.8.11"
532 + resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz#b79de2d67389734c57c52595f7a7305e30c2d608"
533 + integrity sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==
534 +
535 +acorn@^8.14.0, acorn@^8.15.0:
536 + version "8.15.0"
537 + resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
538 + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
539 +
540 +aes-decrypter@^4.0.2:
541 + version "4.0.2"
542 + resolved "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-4.0.2.tgz#90648181c68878f54093920a3b44776ec2dc4914"
543 + integrity sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==
544 + dependencies:
545 + "@babel/runtime" "^7.12.5"
546 + "@videojs/vhs-utils" "^4.1.1"
547 + global "^4.4.0"
548 + pkcs7 "^1.0.4"
549 +
550 +ansi-regex@^5.0.1:
551 + version "5.0.1"
552 + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
553 + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
554 +
555 +ansi-regex@^6.0.1:
556 + version "6.2.2"
557 + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1"
558 + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==
559 +
560 +ansi-styles@^4.0.0:
561 + version "4.3.0"
562 + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
563 + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
564 + dependencies:
565 + color-convert "^2.0.1"
566 +
567 +ansi-styles@^6.1.0:
568 + version "6.2.3"
569 + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041"
570 + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==
571 +
572 +any-promise@^1.0.0:
573 + version "1.3.0"
574 + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
575 + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
576 +
577 +anymatch@~3.1.2:
578 + version "3.1.3"
579 + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
580 + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
581 + dependencies:
582 + normalize-path "^3.0.0"
583 + picomatch "^2.0.4"
584 +
585 +arg@^5.0.2:
586 + version "5.0.2"
587 + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
588 + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
589 +
590 +asynckit@^0.4.0:
591 + version "0.4.0"
592 + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
593 + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
594 +
595 +autoprefixer@^10.4.17:
596 + version "10.4.21"
597 + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d"
598 + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==
599 + dependencies:
600 + browserslist "^4.24.4"
601 + caniuse-lite "^1.0.30001702"
602 + fraction.js "^4.3.7"
603 + normalize-range "^0.1.2"
604 + picocolors "^1.1.1"
605 + postcss-value-parser "^4.2.0"
606 +
607 +axios@^1.6.7:
608 + version "1.13.1"
609 + resolved "https://registry.npmjs.org/axios/-/axios-1.13.1.tgz#45b62dc8fe04e0e92274e08b98e910ba3d7963a7"
610 + integrity sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==
611 + dependencies:
612 + follow-redirects "^1.15.6"
613 + form-data "^4.0.4"
614 + proxy-from-env "^1.1.0"
615 +
616 +balanced-match@^1.0.0:
617 + version "1.0.2"
618 + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
619 + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
620 +
621 +baseline-browser-mapping@^2.8.19:
622 + version "2.8.21"
623 + resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.21.tgz#2f9cccde871bfa4aec9dbf92d0ee746e4f1892e4"
624 + integrity sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==
625 +
626 +binary-extensions@^2.0.0:
627 + version "2.3.0"
628 + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
629 + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
630 +
631 +brace-expansion@^2.0.1:
632 + version "2.0.2"
633 + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
634 + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
635 + dependencies:
636 + balanced-match "^1.0.0"
637 +
638 +braces@^3.0.3, braces@~3.0.2:
639 + version "3.0.3"
640 + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
641 + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
642 + dependencies:
643 + fill-range "^7.1.1"
644 +
645 +browserslist@^4.24.4:
646 + version "4.27.0"
647 + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz#755654744feae978fbb123718b2f139bc0fa6697"
648 + integrity sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==
649 + dependencies:
650 + baseline-browser-mapping "^2.8.19"
651 + caniuse-lite "^1.0.30001751"
652 + electron-to-chromium "^1.5.238"
653 + node-releases "^2.0.26"
654 + update-browserslist-db "^1.1.4"
655 +
656 +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
657 + version "1.0.2"
658 + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
659 + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
660 + dependencies:
661 + es-errors "^1.3.0"
662 + function-bind "^1.1.2"
663 +
664 +camelcase-css@^2.0.1:
665 + version "2.0.1"
666 + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
667 + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
668 +
669 +caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001751:
670 + version "1.0.30001751"
671 + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz#dacd5d9f4baeea841641640139d2b2a4df4226ad"
672 + integrity sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==
673 +
674 +chokidar@^3.5.3, chokidar@^3.6.0:
675 + version "3.6.0"
676 + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
677 + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
678 + dependencies:
679 + anymatch "~3.1.2"
680 + braces "~3.0.2"
681 + glob-parent "~5.1.2"
682 + is-binary-path "~2.1.0"
683 + is-glob "~4.0.1"
684 + normalize-path "~3.0.0"
685 + readdirp "~3.6.0"
686 + optionalDependencies:
687 + fsevents "~2.3.2"
688 +
689 +color-convert@^2.0.1:
690 + version "2.0.1"
691 + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
692 + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
693 + dependencies:
694 + color-name "~1.1.4"
695 +
696 +color-name@~1.1.4:
697 + version "1.1.4"
698 + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
699 + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
700 +
701 +combined-stream@^1.0.8:
702 + version "1.0.8"
703 + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
704 + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
705 + dependencies:
706 + delayed-stream "~1.0.0"
707 +
708 +commander@^4.0.0:
709 + version "4.1.1"
710 + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
711 + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
712 +
713 +confbox@^0.1.8:
714 + version "0.1.8"
715 + resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06"
716 + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==
717 +
718 +confbox@^0.2.2:
719 + version "0.2.2"
720 + resolved "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz#8652f53961c74d9e081784beed78555974a9c110"
721 + integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==
722 +
723 +cross-spawn@^7.0.6:
724 + version "7.0.6"
725 + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
726 + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
727 + dependencies:
728 + path-key "^3.1.0"
729 + shebang-command "^2.0.0"
730 + which "^2.0.1"
731 +
732 +cssesc@^3.0.0:
733 + version "3.0.0"
734 + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
735 + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
736 +
737 +csstype@^3.1.3:
738 + version "3.1.3"
739 + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
740 + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
741 +
742 +dayjs@^1.11.10:
743 + version "1.11.18"
744 + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz#835fa712aac52ab9dec8b1494098774ed7070a11"
745 + integrity sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==
746 +
747 +debug@^4.3.4:
748 + version "4.4.3"
749 + resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
750 + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
751 + dependencies:
752 + ms "^2.1.3"
753 +
754 +delayed-stream@~1.0.0:
755 + version "1.0.0"
756 + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
757 + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
758 +
759 +didyoumean@^1.2.2:
760 + version "1.2.2"
761 + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
762 + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
763 +
764 +dlv@^1.1.3:
765 + version "1.1.3"
766 + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
767 + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
768 +
769 +dom-walk@^0.1.0:
770 + version "0.1.2"
771 + resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
772 + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
773 +
774 +dunder-proto@^1.0.1:
775 + version "1.0.1"
776 + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
777 + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
778 + dependencies:
779 + call-bind-apply-helpers "^1.0.1"
780 + es-errors "^1.3.0"
781 + gopd "^1.2.0"
782 +
783 +eastasianwidth@^0.2.0:
784 + version "0.2.0"
785 + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
786 + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
787 +
788 +electron-to-chromium@^1.5.238:
789 + version "1.5.243"
790 + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.243.tgz#b13b4a046f49f46574d643d4e2ec2ea33ce8cfe7"
791 + integrity sha512-ZCphxFW3Q1TVhcgS9blfut1PX8lusVi2SvXQgmEEnK4TCmE1JhH2JkjJN+DNt0pJJwfBri5AROBnz2b/C+YU9g==
792 +
793 +emoji-regex@^8.0.0:
794 + version "8.0.0"
795 + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
796 + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
797 +
798 +emoji-regex@^9.2.2:
799 + version "9.2.2"
800 + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
801 + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
802 +
803 +entities@^4.5.0:
804 + version "4.5.0"
805 + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
806 + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
807 +
808 +es-define-property@^1.0.1:
809 + version "1.0.1"
810 + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
811 + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
812 +
813 +es-errors@^1.3.0:
814 + version "1.3.0"
815 + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
816 + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
817 +
818 +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
819 + version "1.1.1"
820 + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
821 + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
822 + dependencies:
823 + es-errors "^1.3.0"
824 +
825 +es-set-tostringtag@^2.1.0:
826 + version "2.1.0"
827 + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
828 + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
829 + dependencies:
830 + es-errors "^1.3.0"
831 + get-intrinsic "^1.2.6"
832 + has-tostringtag "^1.0.2"
833 + hasown "^2.0.2"
834 +
835 +esbuild@^0.21.3:
836 + version "0.21.5"
837 + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
838 + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
839 + optionalDependencies:
840 + "@esbuild/aix-ppc64" "0.21.5"
841 + "@esbuild/android-arm" "0.21.5"
842 + "@esbuild/android-arm64" "0.21.5"
843 + "@esbuild/android-x64" "0.21.5"
844 + "@esbuild/darwin-arm64" "0.21.5"
845 + "@esbuild/darwin-x64" "0.21.5"
846 + "@esbuild/freebsd-arm64" "0.21.5"
847 + "@esbuild/freebsd-x64" "0.21.5"
848 + "@esbuild/linux-arm" "0.21.5"
849 + "@esbuild/linux-arm64" "0.21.5"
850 + "@esbuild/linux-ia32" "0.21.5"
851 + "@esbuild/linux-loong64" "0.21.5"
852 + "@esbuild/linux-mips64el" "0.21.5"
853 + "@esbuild/linux-ppc64" "0.21.5"
854 + "@esbuild/linux-riscv64" "0.21.5"
855 + "@esbuild/linux-s390x" "0.21.5"
856 + "@esbuild/linux-x64" "0.21.5"
857 + "@esbuild/netbsd-x64" "0.21.5"
858 + "@esbuild/openbsd-x64" "0.21.5"
859 + "@esbuild/sunos-x64" "0.21.5"
860 + "@esbuild/win32-arm64" "0.21.5"
861 + "@esbuild/win32-ia32" "0.21.5"
862 + "@esbuild/win32-x64" "0.21.5"
863 +
864 +escalade@^3.2.0:
865 + version "3.2.0"
866 + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
867 + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
868 +
869 +escape-string-regexp@^5.0.0:
870 + version "5.0.0"
871 + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
872 + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
873 +
874 +estree-walker@^2.0.2:
875 + version "2.0.2"
876 + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
877 + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
878 +
879 +estree-walker@^3.0.3:
880 + version "3.0.3"
881 + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
882 + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
883 + dependencies:
884 + "@types/estree" "^1.0.0"
885 +
886 +exsolve@^1.0.7:
887 + version "1.0.7"
888 + resolved "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz#3b74e4c7ca5c5f9a19c3626ca857309fa99f9e9e"
889 + integrity sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==
890 +
891 +fast-glob@^3.3.1, fast-glob@^3.3.2, fast-glob@^3.3.3:
892 + version "3.3.3"
893 + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
894 + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
895 + dependencies:
896 + "@nodelib/fs.stat" "^2.0.2"
897 + "@nodelib/fs.walk" "^1.2.3"
898 + glob-parent "^5.1.2"
899 + merge2 "^1.3.0"
900 + micromatch "^4.0.8"
901 +
902 +fastq@^1.6.0:
903 + version "1.19.1"
904 + resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5"
905 + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
906 + dependencies:
907 + reusify "^1.0.4"
908 +
909 +fill-range@^7.1.1:
910 + version "7.1.1"
911 + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
912 + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
913 + dependencies:
914 + to-regex-range "^5.0.1"
915 +
916 +follow-redirects@^1.15.6:
917 + version "1.15.11"
918 + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340"
919 + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==
920 +
921 +foreground-child@^3.1.0:
922 + version "3.3.1"
923 + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f"
924 + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==
925 + dependencies:
926 + cross-spawn "^7.0.6"
927 + signal-exit "^4.0.1"
928 +
929 +form-data@^4.0.4:
930 + version "4.0.4"
931 + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
932 + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
933 + dependencies:
934 + asynckit "^0.4.0"
935 + combined-stream "^1.0.8"
936 + es-set-tostringtag "^2.1.0"
937 + hasown "^2.0.2"
938 + mime-types "^2.1.12"
939 +
940 +fraction.js@^4.3.7:
941 + version "4.3.7"
942 + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
943 + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
944 +
945 +fsevents@~2.3.2, fsevents@~2.3.3:
946 + version "2.3.3"
947 + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
948 + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
949 +
950 +function-bind@^1.1.2:
951 + version "1.1.2"
952 + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
953 + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
954 +
955 +get-intrinsic@^1.2.6:
956 + version "1.3.0"
957 + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
958 + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
959 + dependencies:
960 + call-bind-apply-helpers "^1.0.2"
961 + es-define-property "^1.0.1"
962 + es-errors "^1.3.0"
963 + es-object-atoms "^1.1.1"
964 + function-bind "^1.1.2"
965 + get-proto "^1.0.1"
966 + gopd "^1.2.0"
967 + has-symbols "^1.1.0"
968 + hasown "^2.0.2"
969 + math-intrinsics "^1.1.0"
970 +
971 +get-proto@^1.0.1:
972 + version "1.0.1"
973 + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
974 + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
975 + dependencies:
976 + dunder-proto "^1.0.1"
977 + es-object-atoms "^1.0.0"
978 +
979 +glob-parent@^5.1.2, glob-parent@~5.1.2:
980 + version "5.1.2"
981 + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
982 + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
983 + dependencies:
984 + is-glob "^4.0.1"
985 +
986 +glob-parent@^6.0.2:
987 + version "6.0.2"
988 + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
989 + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
990 + dependencies:
991 + is-glob "^4.0.3"
992 +
993 +glob@^10.3.10:
994 + version "10.4.5"
995 + resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
996 + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
997 + dependencies:
998 + foreground-child "^3.1.0"
999 + jackspeak "^3.1.2"
1000 + minimatch "^9.0.4"
1001 + minipass "^7.1.2"
1002 + package-json-from-dist "^1.0.0"
1003 + path-scurry "^1.11.1"
1004 +
1005 +global@4.4.0, global@^4.3.1, global@^4.4.0, global@~4.4.0:
1006 + version "4.4.0"
1007 + resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
1008 + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
1009 + dependencies:
1010 + min-document "^2.19.0"
1011 + process "^0.11.10"
1012 +
1013 +gopd@^1.2.0:
1014 + version "1.2.0"
1015 + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
1016 + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
1017 +
1018 +has-symbols@^1.0.3, has-symbols@^1.1.0:
1019 + version "1.1.0"
1020 + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
1021 + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
1022 +
1023 +has-tostringtag@^1.0.2:
1024 + version "1.0.2"
1025 + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
1026 + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
1027 + dependencies:
1028 + has-symbols "^1.0.3"
1029 +
1030 +hasown@^2.0.2:
1031 + version "2.0.2"
1032 + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
1033 + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
1034 + dependencies:
1035 + function-bind "^1.1.2"
1036 +
1037 +is-binary-path@~2.1.0:
1038 + version "2.1.0"
1039 + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
1040 + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
1041 + dependencies:
1042 + binary-extensions "^2.0.0"
1043 +
1044 +is-core-module@^2.16.1:
1045 + version "2.16.1"
1046 + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
1047 + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
1048 + dependencies:
1049 + hasown "^2.0.2"
1050 +
1051 +is-extglob@^2.1.1:
1052 + version "2.1.1"
1053 + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1054 + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1055 +
1056 +is-fullwidth-code-point@^3.0.0:
1057 + version "3.0.0"
1058 + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1059 + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1060 +
1061 +is-function@^1.0.1:
1062 + version "1.0.2"
1063 + resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
1064 + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
1065 +
1066 +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
1067 + version "4.0.3"
1068 + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1069 + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1070 + dependencies:
1071 + is-extglob "^2.1.1"
1072 +
1073 +is-number@^7.0.0:
1074 + version "7.0.0"
1075 + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1076 + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1077 +
1078 +isexe@^2.0.0:
1079 + version "2.0.0"
1080 + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1081 + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1082 +
1083 +jackspeak@^3.1.2:
1084 + version "3.4.3"
1085 + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
1086 + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
1087 + dependencies:
1088 + "@isaacs/cliui" "^8.0.2"
1089 + optionalDependencies:
1090 + "@pkgjs/parseargs" "^0.11.0"
1091 +
1092 +jiti@^1.21.7:
1093 + version "1.21.7"
1094 + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9"
1095 + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==
1096 +
1097 +js-cookie@^3.0.5:
1098 + version "3.0.5"
1099 + resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc"
1100 + integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==
1101 +
1102 +js-tokens@^9.0.1:
1103 + version "9.0.1"
1104 + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4"
1105 + integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==
1106 +
1107 +lilconfig@^3.1.1, lilconfig@^3.1.3:
1108 + version "3.1.3"
1109 + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4"
1110 + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==
1111 +
1112 +lines-and-columns@^1.1.6:
1113 + version "1.2.4"
1114 + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
1115 + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
1116 +
1117 +local-pkg@^0.4.3:
1118 + version "0.4.3"
1119 + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
1120 + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
1121 +
1122 +local-pkg@^0.5.0:
1123 + version "0.5.1"
1124 + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d"
1125 + integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==
1126 + dependencies:
1127 + mlly "^1.7.3"
1128 + pkg-types "^1.2.1"
1129 +
1130 +local-pkg@^1.0.0:
1131 + version "1.1.2"
1132 + resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz#c03d208787126445303f8161619dc701afa4abb5"
1133 + integrity sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==
1134 + dependencies:
1135 + mlly "^1.7.4"
1136 + pkg-types "^2.3.0"
1137 + quansync "^0.2.11"
1138 +
1139 +lodash@^4.17.21:
1140 + version "4.17.21"
1141 + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1142 + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1143 +
1144 +lru-cache@^10.2.0:
1145 + version "10.4.3"
1146 + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
1147 + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
1148 +
1149 +m3u8-parser@^7.2.0:
1150 + version "7.2.0"
1151 + resolved "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-7.2.0.tgz#9e2eb50abb8349d248cd58842367da4acabdf297"
1152 + integrity sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==
1153 + dependencies:
1154 + "@babel/runtime" "^7.12.5"
1155 + "@videojs/vhs-utils" "^4.1.1"
1156 + global "^4.4.0"
1157 +
1158 +magic-string@^0.30.10, magic-string@^0.30.17, magic-string@^0.30.19, magic-string@^0.30.3:
1159 + version "0.30.21"
1160 + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91"
1161 + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==
1162 + dependencies:
1163 + "@jridgewell/sourcemap-codec" "^1.5.5"
1164 +
1165 +math-intrinsics@^1.1.0:
1166 + version "1.1.0"
1167 + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
1168 + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
1169 +
1170 +merge2@^1.3.0:
1171 + version "1.4.1"
1172 + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1173 + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1174 +
1175 +micromatch@^4.0.8:
1176 + version "4.0.8"
1177 + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
1178 + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
1179 + dependencies:
1180 + braces "^3.0.3"
1181 + picomatch "^2.3.1"
1182 +
1183 +mime-db@1.52.0:
1184 + version "1.52.0"
1185 + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
1186 + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1187 +
1188 +mime-types@^2.1.12:
1189 + version "2.1.35"
1190 + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
1191 + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
1192 + dependencies:
1193 + mime-db "1.52.0"
1194 +
1195 +min-document@^2.19.0:
1196 + version "2.19.0"
1197 + resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
1198 + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==
1199 + dependencies:
1200 + dom-walk "^0.1.0"
1201 +
1202 +minimatch@^9.0.3, minimatch@^9.0.4:
1203 + version "9.0.5"
1204 + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
1205 + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
1206 + dependencies:
1207 + brace-expansion "^2.0.1"
1208 +
1209 +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
1210 + version "7.1.2"
1211 + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
1212 + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
1213 +
1214 +mlly@^1.7.3, mlly@^1.7.4:
1215 + version "1.8.0"
1216 + resolved "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz#e074612b938af8eba1eaf43299cbc89cb72d824e"
1217 + integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==
1218 + dependencies:
1219 + acorn "^8.15.0"
1220 + pathe "^2.0.3"
1221 + pkg-types "^1.3.1"
1222 + ufo "^1.6.1"
1223 +
1224 +mpd-parser@^1.3.1:
1225 + version "1.3.1"
1226 + resolved "https://registry.npmjs.org/mpd-parser/-/mpd-parser-1.3.1.tgz#557b6ac27411c2c177bb01e46e14440703a414a3"
1227 + integrity sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==
1228 + dependencies:
1229 + "@babel/runtime" "^7.12.5"
1230 + "@videojs/vhs-utils" "^4.0.0"
1231 + "@xmldom/xmldom" "^0.8.3"
1232 + global "^4.4.0"
1233 +
1234 +ms@^2.1.3:
1235 + version "2.1.3"
1236 + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1237 + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1238 +
1239 +mux.js@7.1.0, mux.js@^7.0.1:
1240 + version "7.1.0"
1241 + resolved "https://registry.npmjs.org/mux.js/-/mux.js-7.1.0.tgz#aba5ed55a39cb790ef4b30b2c3ea0d2630b0264e"
1242 + integrity sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==
1243 + dependencies:
1244 + "@babel/runtime" "^7.11.2"
1245 + global "^4.4.0"
1246 +
1247 +mz@^2.7.0:
1248 + version "2.7.0"
1249 + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
1250 + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
1251 + dependencies:
1252 + any-promise "^1.0.0"
1253 + object-assign "^4.0.1"
1254 + thenify-all "^1.0.0"
1255 +
1256 +nanoid@^3.3.11:
1257 + version "3.3.11"
1258 + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b"
1259 + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
1260 +
1261 +node-releases@^2.0.26:
1262 + version "2.0.27"
1263 + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e"
1264 + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
1265 +
1266 +normalize-path@^3.0.0, normalize-path@~3.0.0:
1267 + version "3.0.0"
1268 + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1269 + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1270 +
1271 +normalize-range@^0.1.2:
1272 + version "0.1.2"
1273 + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
1274 + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
1275 +
1276 +object-assign@>=4.0.1, object-assign@^4.0.1:
1277 + version "4.1.1"
1278 + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1279 + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
1280 +
1281 +object-hash@^3.0.0:
1282 + version "3.0.0"
1283 + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
1284 + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
1285 +
1286 +package-json-from-dist@^1.0.0:
1287 + version "1.0.1"
1288 + resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
1289 + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
1290 +
1291 +path-key@^3.1.0:
1292 + version "3.1.1"
1293 + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1294 + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1295 +
1296 +path-parse@^1.0.7:
1297 + version "1.0.7"
1298 + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1299 + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1300 +
1301 +path-scurry@^1.11.1:
1302 + version "1.11.1"
1303 + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
1304 + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
1305 + dependencies:
1306 + lru-cache "^10.2.0"
1307 + minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
1308 +
1309 +pathe@^2.0.1, pathe@^2.0.3:
1310 + version "2.0.3"
1311 + resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716"
1312 + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==
1313 +
1314 +picocolors@^1.1.1:
1315 + version "1.1.1"
1316 + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
1317 + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
1318 +
1319 +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
1320 + version "2.3.1"
1321 + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1322 + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1323 +
1324 +picomatch@^4.0.2:
1325 + version "4.0.3"
1326 + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
1327 + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
1328 +
1329 +pify@^2.3.0:
1330 + version "2.3.0"
1331 + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
1332 + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
1333 +
1334 +pinia@^2.1.7:
1335 + version "2.3.1"
1336 + resolved "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz#54c476675b72f5abcfafa24a7582531ea8c23d94"
1337 + integrity sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==
1338 + dependencies:
1339 + "@vue/devtools-api" "^6.6.3"
1340 + vue-demi "^0.14.10"
1341 +
1342 +pirates@^4.0.1:
1343 + version "4.0.7"
1344 + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22"
1345 + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==
1346 +
1347 +pkcs7@^1.0.4:
1348 + version "1.0.4"
1349 + resolved "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz#6090b9e71160dabf69209d719cbafa538b00a1cb"
1350 + integrity sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==
1351 + dependencies:
1352 + "@babel/runtime" "^7.5.5"
1353 +
1354 +pkg-types@^1.2.1, pkg-types@^1.3.0, pkg-types@^1.3.1:
1355 + version "1.3.1"
1356 + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df"
1357 + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==
1358 + dependencies:
1359 + confbox "^0.1.8"
1360 + mlly "^1.7.4"
1361 + pathe "^2.0.1"
1362 +
1363 +pkg-types@^2.3.0:
1364 + version "2.3.0"
1365 + resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz#037f2c19bd5402966ff6810e32706558cb5b5726"
1366 + integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==
1367 + dependencies:
1368 + confbox "^0.2.2"
1369 + exsolve "^1.0.7"
1370 + pathe "^2.0.3"
1371 +
1372 +postcss-import@^15.1.0:
1373 + version "15.1.0"
1374 + resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
1375 + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
1376 + dependencies:
1377 + postcss-value-parser "^4.0.0"
1378 + read-cache "^1.0.0"
1379 + resolve "^1.1.7"
1380 +
1381 +postcss-js@^4.0.1:
1382 + version "4.1.0"
1383 + resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz#003b63c6edde948766e40f3daf7e997ae43a5ce6"
1384 + integrity sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==
1385 + dependencies:
1386 + camelcase-css "^2.0.1"
1387 +
1388 +"postcss-load-config@^4.0.2 || ^5.0 || ^6.0":
1389 + version "6.0.1"
1390 + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz#6fd7dcd8ae89badcf1b2d644489cbabf83aa8096"
1391 + integrity sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==
1392 + dependencies:
1393 + lilconfig "^3.1.1"
1394 +
1395 +postcss-nested@^6.2.0:
1396 + version "6.2.0"
1397 + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131"
1398 + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==
1399 + dependencies:
1400 + postcss-selector-parser "^6.1.1"
1401 +
1402 +postcss-px-to-viewport@^1.1.1:
1403 + version "1.1.1"
1404 + resolved "https://registry.npmjs.org/postcss-px-to-viewport/-/postcss-px-to-viewport-1.1.1.tgz#a25ca410b553c9892cc8b525cc710da47bf1aa55"
1405 + integrity sha512-2x9oGnBms+e0cYtBJOZdlwrFg/mLR4P1g2IFu7jYKvnqnH/HLhoKyareW2Q/x4sg0BgklHlP1qeWo2oCyPm8FQ==
1406 + dependencies:
1407 + object-assign ">=4.0.1"
1408 + postcss ">=5.0.2"
1409 +
1410 +postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2:
1411 + version "6.1.2"
1412 + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
1413 + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
1414 + dependencies:
1415 + cssesc "^3.0.0"
1416 + util-deprecate "^1.0.2"
1417 +
1418 +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
1419 + version "4.2.0"
1420 + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1421 + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1422 +
1423 +postcss@>=5.0.2, postcss@^8.4.35, postcss@^8.4.43, postcss@^8.4.47, postcss@^8.5.6:
1424 + version "8.5.6"
1425 + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c"
1426 + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
1427 + dependencies:
1428 + nanoid "^3.3.11"
1429 + picocolors "^1.1.1"
1430 + source-map-js "^1.2.1"
1431 +
1432 +process@^0.11.10:
1433 + version "0.11.10"
1434 + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
1435 + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
1436 +
1437 +proxy-from-env@^1.1.0:
1438 + version "1.1.0"
1439 + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
1440 + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
1441 +
1442 +quansync@^0.2.11:
1443 + version "0.2.11"
1444 + resolved "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz#f9c3adda2e1272e4f8cf3f1457b04cbdb4ee692a"
1445 + integrity sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==
1446 +
1447 +queue-microtask@^1.2.2:
1448 + version "1.2.3"
1449 + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
1450 + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1451 +
1452 +read-cache@^1.0.0:
1453 + version "1.0.0"
1454 + resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
1455 + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
1456 + dependencies:
1457 + pify "^2.3.0"
1458 +
1459 +readdirp@~3.6.0:
1460 + version "3.6.0"
1461 + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
1462 + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1463 + dependencies:
1464 + picomatch "^2.2.1"
1465 +
1466 +resolve@^1.1.7, resolve@^1.22.4, resolve@^1.22.8:
1467 + version "1.22.11"
1468 + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262"
1469 + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
1470 + dependencies:
1471 + is-core-module "^2.16.1"
1472 + path-parse "^1.0.7"
1473 + supports-preserve-symlinks-flag "^1.0.0"
1474 +
1475 +reusify@^1.0.4:
1476 + version "1.1.0"
1477 + resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"
1478 + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
1479 +
1480 +rollup@^4.20.0:
1481 + version "4.52.5"
1482 + resolved "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz#96982cdcaedcdd51b12359981f240f94304ec235"
1483 + integrity sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==
1484 + dependencies:
1485 + "@types/estree" "1.0.8"
1486 + optionalDependencies:
1487 + "@rollup/rollup-android-arm-eabi" "4.52.5"
1488 + "@rollup/rollup-android-arm64" "4.52.5"
1489 + "@rollup/rollup-darwin-arm64" "4.52.5"
1490 + "@rollup/rollup-darwin-x64" "4.52.5"
1491 + "@rollup/rollup-freebsd-arm64" "4.52.5"
1492 + "@rollup/rollup-freebsd-x64" "4.52.5"
1493 + "@rollup/rollup-linux-arm-gnueabihf" "4.52.5"
1494 + "@rollup/rollup-linux-arm-musleabihf" "4.52.5"
1495 + "@rollup/rollup-linux-arm64-gnu" "4.52.5"
1496 + "@rollup/rollup-linux-arm64-musl" "4.52.5"
1497 + "@rollup/rollup-linux-loong64-gnu" "4.52.5"
1498 + "@rollup/rollup-linux-ppc64-gnu" "4.52.5"
1499 + "@rollup/rollup-linux-riscv64-gnu" "4.52.5"
1500 + "@rollup/rollup-linux-riscv64-musl" "4.52.5"
1501 + "@rollup/rollup-linux-s390x-gnu" "4.52.5"
1502 + "@rollup/rollup-linux-x64-gnu" "4.52.5"
1503 + "@rollup/rollup-linux-x64-musl" "4.52.5"
1504 + "@rollup/rollup-openharmony-arm64" "4.52.5"
1505 + "@rollup/rollup-win32-arm64-msvc" "4.52.5"
1506 + "@rollup/rollup-win32-ia32-msvc" "4.52.5"
1507 + "@rollup/rollup-win32-x64-gnu" "4.52.5"
1508 + "@rollup/rollup-win32-x64-msvc" "4.52.5"
1509 + fsevents "~2.3.2"
1510 +
1511 +run-parallel@^1.1.9:
1512 + version "1.2.0"
1513 + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1514 + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1515 + dependencies:
1516 + queue-microtask "^1.2.2"
1517 +
1518 +scule@^1.3.0:
1519 + version "1.3.0"
1520 + resolved "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3"
1521 + integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==
1522 +
1523 +shebang-command@^2.0.0:
1524 + version "2.0.0"
1525 + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1526 + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1527 + dependencies:
1528 + shebang-regex "^3.0.0"
1529 +
1530 +shebang-regex@^3.0.0:
1531 + version "3.0.0"
1532 + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1533 + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1534 +
1535 +signal-exit@^4.0.1:
1536 + version "4.1.0"
1537 + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
1538 + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
1539 +
1540 +source-map-js@^1.2.1:
1541 + version "1.2.1"
1542 + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
1543 + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
1544 +
1545 +"string-width-cjs@npm:string-width@^4.2.0":
1546 + version "4.2.3"
1547 + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1548 + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1549 + dependencies:
1550 + emoji-regex "^8.0.0"
1551 + is-fullwidth-code-point "^3.0.0"
1552 + strip-ansi "^6.0.1"
1553 +
1554 +string-width@^4.1.0:
1555 + version "4.2.3"
1556 + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1557 + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1558 + dependencies:
1559 + emoji-regex "^8.0.0"
1560 + is-fullwidth-code-point "^3.0.0"
1561 + strip-ansi "^6.0.1"
1562 +
1563 +string-width@^5.0.1, string-width@^5.1.2:
1564 + version "5.1.2"
1565 + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
1566 + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
1567 + dependencies:
1568 + eastasianwidth "^0.2.0"
1569 + emoji-regex "^9.2.2"
1570 + strip-ansi "^7.0.1"
1571 +
1572 +"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
1573 + version "6.0.1"
1574 + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1575 + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1576 + dependencies:
1577 + ansi-regex "^5.0.1"
1578 +
1579 +strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1580 + version "6.0.1"
1581 + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1582 + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1583 + dependencies:
1584 + ansi-regex "^5.0.1"
1585 +
1586 +strip-ansi@^7.0.1:
1587 + version "7.1.2"
1588 + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba"
1589 + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==
1590 + dependencies:
1591 + ansi-regex "^6.0.1"
1592 +
1593 +strip-literal@^2.1.1:
1594 + version "2.1.1"
1595 + resolved "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz#26906e65f606d49f748454a08084e94190c2e5ad"
1596 + integrity sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==
1597 + dependencies:
1598 + js-tokens "^9.0.1"
1599 +
1600 +sucrase@^3.35.0:
1601 + version "3.35.0"
1602 + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263"
1603 + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==
1604 + dependencies:
1605 + "@jridgewell/gen-mapping" "^0.3.2"
1606 + commander "^4.0.0"
1607 + glob "^10.3.10"
1608 + lines-and-columns "^1.1.6"
1609 + mz "^2.7.0"
1610 + pirates "^4.0.1"
1611 + ts-interface-checker "^0.1.9"
1612 +
1613 +supports-preserve-symlinks-flag@^1.0.0:
1614 + version "1.0.0"
1615 + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
1616 + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1617 +
1618 +tailwindcss@^3.4.1:
1619 + version "3.4.18"
1620 + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz#9fa9650aace186644b608242f1e57d2d55593301"
1621 + integrity sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==
1622 + dependencies:
1623 + "@alloc/quick-lru" "^5.2.0"
1624 + arg "^5.0.2"
1625 + chokidar "^3.6.0"
1626 + didyoumean "^1.2.2"
1627 + dlv "^1.1.3"
1628 + fast-glob "^3.3.2"
1629 + glob-parent "^6.0.2"
1630 + is-glob "^4.0.3"
1631 + jiti "^1.21.7"
1632 + lilconfig "^3.1.3"
1633 + micromatch "^4.0.8"
1634 + normalize-path "^3.0.0"
1635 + object-hash "^3.0.0"
1636 + picocolors "^1.1.1"
1637 + postcss "^8.4.47"
1638 + postcss-import "^15.1.0"
1639 + postcss-js "^4.0.1"
1640 + postcss-load-config "^4.0.2 || ^5.0 || ^6.0"
1641 + postcss-nested "^6.2.0"
1642 + postcss-selector-parser "^6.1.2"
1643 + resolve "^1.22.8"
1644 + sucrase "^3.35.0"
1645 +
1646 +thenify-all@^1.0.0:
1647 + version "1.6.0"
1648 + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
1649 + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
1650 + dependencies:
1651 + thenify ">= 3.1.0 < 4"
1652 +
1653 +"thenify@>= 3.1.0 < 4":
1654 + version "3.3.1"
1655 + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
1656 + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
1657 + dependencies:
1658 + any-promise "^1.0.0"
1659 +
1660 +to-regex-range@^5.0.1:
1661 + version "5.0.1"
1662 + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1663 + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1664 + dependencies:
1665 + is-number "^7.0.0"
1666 +
1667 +ts-interface-checker@^0.1.9:
1668 + version "0.1.13"
1669 + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
1670 + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
1671 +
1672 +ufo@^1.6.1:
1673 + version "1.6.1"
1674 + resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz#ac2db1d54614d1b22c1d603e3aef44a85d8f146b"
1675 + integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==
1676 +
1677 +unimport@^3.7.2:
1678 + version "3.14.6"
1679 + resolved "https://registry.npmjs.org/unimport/-/unimport-3.14.6.tgz#f01170aa2fb94c4f97b22c0ac2822ef7e8e0726d"
1680 + integrity sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==
1681 + dependencies:
1682 + "@rollup/pluginutils" "^5.1.4"
1683 + acorn "^8.14.0"
1684 + escape-string-regexp "^5.0.0"
1685 + estree-walker "^3.0.3"
1686 + fast-glob "^3.3.3"
1687 + local-pkg "^1.0.0"
1688 + magic-string "^0.30.17"
1689 + mlly "^1.7.4"
1690 + pathe "^2.0.1"
1691 + picomatch "^4.0.2"
1692 + pkg-types "^1.3.0"
1693 + scule "^1.3.0"
1694 + strip-literal "^2.1.1"
1695 + unplugin "^1.16.1"
1696 +
1697 +unplugin-auto-import@^0.17.5:
1698 + version "0.17.8"
1699 + resolved "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.17.8.tgz#8dd5d1f21700171242553f1a476bd43ffad74af6"
1700 + integrity sha512-CHryj6HzJ+n4ASjzwHruD8arhbdl+UXvhuAIlHDs15Y/IMecG3wrf7FVg4pVH/DIysbq/n0phIjNHAjl7TG7Iw==
1701 + dependencies:
1702 + "@antfu/utils" "^0.7.10"
1703 + "@rollup/pluginutils" "^5.1.0"
1704 + fast-glob "^3.3.2"
1705 + local-pkg "^0.5.0"
1706 + magic-string "^0.30.10"
1707 + minimatch "^9.0.4"
1708 + unimport "^3.7.2"
1709 + unplugin "^1.11.0"
1710 +
1711 +unplugin-vue-components@^0.26.0:
1712 + version "0.26.0"
1713 + resolved "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.26.0.tgz#6d79caa770039a1eb3d7c09fdd28778ea20afef3"
1714 + integrity sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==
1715 + dependencies:
1716 + "@antfu/utils" "^0.7.6"
1717 + "@rollup/pluginutils" "^5.0.4"
1718 + chokidar "^3.5.3"
1719 + debug "^4.3.4"
1720 + fast-glob "^3.3.1"
1721 + local-pkg "^0.4.3"
1722 + magic-string "^0.30.3"
1723 + minimatch "^9.0.3"
1724 + resolve "^1.22.4"
1725 + unplugin "^1.4.0"
1726 +
1727 +unplugin@^1.11.0, unplugin@^1.16.1, unplugin@^1.4.0:
1728 + version "1.16.1"
1729 + resolved "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz#a844d2e3c3b14a4ac2945c42be80409321b61199"
1730 + integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==
1731 + dependencies:
1732 + acorn "^8.14.0"
1733 + webpack-virtual-modules "^0.6.2"
1734 +
1735 +update-browserslist-db@^1.1.4:
1736 + version "1.1.4"
1737 + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a"
1738 + integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==
1739 + dependencies:
1740 + escalade "^3.2.0"
1741 + picocolors "^1.1.1"
1742 +
1743 +url-toolkit@^2.2.1:
1744 + version "2.2.5"
1745 + resolved "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz#58406b18e12c58803e14624df5e374f638b0f607"
1746 + integrity sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==
1747 +
1748 +util-deprecate@^1.0.2:
1749 + version "1.0.2"
1750 + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1751 + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1752 +
1753 +vant@^4.9.1:
1754 + version "4.9.21"
1755 + resolved "https://registry.npmjs.org/vant/-/vant-4.9.21.tgz#c345da47beb1390600f3a7cdbde27854824e4482"
1756 + integrity sha512-hXUoZMrLLjykimFRLDlGNd+K2iYSRh9YwLMKnsVdVZ+9inUKxpqnjhOqlZwocbnYkvJlS+febf9u9aJpDol4Pw==
1757 + dependencies:
1758 + "@vant/popperjs" "^1.3.0"
1759 + "@vant/use" "^1.6.0"
1760 + "@vue/shared" "^3.5.17"
1761 +
1762 +"video.js@^7 || ^8", video.js@^8.23.4:
1763 + version "8.23.4"
1764 + resolved "https://registry.npmjs.org/video.js/-/video.js-8.23.4.tgz#65876174dfcee1057102a03a847fdaa8cf346c66"
1765 + integrity sha512-qI0VTlYmKzEqRsz1Nppdfcaww4RSxZAq77z2oNSl3cNg2h6do5C8Ffl0KqWQ1OpD8desWXsCrde7tKJ9gGTEyQ==
1766 + dependencies:
1767 + "@babel/runtime" "^7.12.5"
1768 + "@videojs/http-streaming" "^3.17.2"
1769 + "@videojs/vhs-utils" "^4.1.1"
1770 + "@videojs/xhr" "2.7.0"
1771 + aes-decrypter "^4.0.2"
1772 + global "4.4.0"
1773 + m3u8-parser "^7.2.0"
1774 + mpd-parser "^1.3.1"
1775 + mux.js "^7.0.1"
1776 + videojs-contrib-quality-levels "4.1.0"
1777 + videojs-font "4.2.0"
1778 + videojs-vtt.js "0.15.5"
1779 +
1780 +videojs-contrib-quality-levels@4.1.0:
1781 + version "4.1.0"
1782 + resolved "https://registry.npmjs.org/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz#44c2d2167114a5c8418548b10a25cb409d6cba51"
1783 + integrity sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==
1784 + dependencies:
1785 + global "^4.4.0"
1786 +
1787 +videojs-font@4.2.0:
1788 + version "4.2.0"
1789 + resolved "https://registry.npmjs.org/videojs-font/-/videojs-font-4.2.0.tgz#fbce803d347c565816e296f527e208dc65c9f235"
1790 + integrity sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==
1791 +
1792 +videojs-vtt.js@0.15.5:
1793 + version "0.15.5"
1794 + resolved "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz#567776eaf2a7a928d88b148a8b401ade2406f2ca"
1795 + integrity sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==
1796 + dependencies:
1797 + global "^4.3.1"
1798 +
1799 +vite@^5.1.0:
1800 + version "5.4.21"
1801 + resolved "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027"
1802 + integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==
1803 + dependencies:
1804 + esbuild "^0.21.3"
1805 + postcss "^8.4.43"
1806 + rollup "^4.20.0"
1807 + optionalDependencies:
1808 + fsevents "~2.3.3"
1809 +
1810 +vue-demi@>=0.14.8, vue-demi@^0.14.10:
1811 + version "0.14.10"
1812 + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
1813 + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==
1814 +
1815 +vue-router@^4.2.5:
1816 + version "4.6.3"
1817 + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.6.3.tgz#52a40a231b910806438a8203c065a411fd3f1faa"
1818 + integrity sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==
1819 + dependencies:
1820 + "@vue/devtools-api" "^6.6.4"
1821 +
1822 +vue@^3.4.15:
1823 + version "3.5.22"
1824 + resolved "https://registry.npmjs.org/vue/-/vue-3.5.22.tgz#2b8ddb94ee4b640ef12fe7f6efe1cf16f3b582e7"
1825 + integrity sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==
1826 + dependencies:
1827 + "@vue/compiler-dom" "3.5.22"
1828 + "@vue/compiler-sfc" "3.5.22"
1829 + "@vue/runtime-dom" "3.5.22"
1830 + "@vue/server-renderer" "3.5.22"
1831 + "@vue/shared" "3.5.22"
1832 +
1833 +webpack-virtual-modules@^0.6.2:
1834 + version "0.6.2"
1835 + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8"
1836 + integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==
1837 +
1838 +which@^2.0.1:
1839 + version "2.0.2"
1840 + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1841 + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1842 + dependencies:
1843 + isexe "^2.0.0"
1844 +
1845 +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
1846 + version "7.0.0"
1847 + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1848 + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1849 + dependencies:
1850 + ansi-styles "^4.0.0"
1851 + string-width "^4.1.0"
1852 + strip-ansi "^6.0.0"
1853 +
1854 +wrap-ansi@^8.1.0:
1855 + version "8.1.0"
1856 + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
1857 + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
1858 + dependencies:
1859 + ansi-styles "^6.1.0"
1860 + string-width "^5.0.1"
1861 + strip-ansi "^7.0.1"