diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d7a5253..126d5a42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,22 @@ - 2026-07-25 23:56–2026-07-26 02:40 的 App-Plus 批次已提交但**尚未发布**:未构建云打包 App、未发布 H5、未发布后端 JAR、未重启服务。见下两节。 +## 2026-07-26 16:41–16:57|播报音色扩充、时长恢复与 HBuilderX 5.15 对齐 + +### 功能与修复 + +- 问模块快捷问题改为完整问句,减少短关键词被 Agent 当成不完整表达后再次澄清。 +- “我”模块的 AI 播报音色在原有 4 个基础音色上新增 8 个 Qwen TTS 音色;服务端白名单同步放行,非法音色仍回落默认值。方言继续复用既有 21 项选择,并按租户与账号隔离保存。 +- App-Plus 逻辑层没有浏览器 `Audio` 构造器;语音条时长改为直接解析 TTS `data:` URI 内的 MPEG Layer III 帧,支持 ID3v2、MPEG1/2/2.5、VBR 和 padding,远端 URL 仍使用宿主音频 API 兜底。 +- App 编译链从 5.21 系列回退到本机 HBuilderX `5.15.2026070915` 内置版本:`@dcloudio/uni-app`、`@dcloudio/uni-app-plus`、`@dcloudio/vite-plugin-uni` 固定为 `3.0.0-alpha-5010220260604001`。`@dcloudio/uni-h5` 保留 5.21 系列,因为 5.15 H5 包缺少项目使用的 `Audio` 导出。 + +### 发布与验证 + +- **2026-07-26 16:41**:基于生产后端基线隔离构建并原子发布语音白名单 JAR,发布提交为 `bd196de6`,备份目录为 `/opt/wygj/backups/tts-voices-20260726164118-bd196de6`。服务恢复 `active`,健康检查 `200`,错误级别日志为空;生产 schema 仍为 `64/64`。本次只发布后端,没有覆盖更新中的生产 H5。 +- **2026-07-26 16:46**:Android 真机发起新的“催费话术怎么说”请求,后端日志确认实际收到 `qwen-audio-3.0-tts-flash-longluxiaohui`、`dialect=shanghai`,3.503 秒生成 14 秒语音;这证明新音色参数已通过客户端、服务端白名单和模型链路,主观音色是否符合预期仍以人工试听为准。 +- **2026-07-26 16:45–16:57**:真机实际复现“编译版本 5.21、手机端 SDK 5.15”弹窗。依赖与 HBuilderX 5.15 标准基座对齐后,App 与 H5 构建均通过,重新下发到同一 Android 设备后弹窗消失。该版本号是 uni-app 编译链/调试基座版本,不是 Android `minSdkVersion`。 +- 本节完成层级为:音色后端已部署并完成生产请求链路验证;App 依赖对齐、时长解析和快捷问句已实现并完成本地构建/标准基座真机验证。**未重新云打包签名 APK/IPA,未发布 H5,未完成 Android/iOS 自定义基座全清单或人工音色验收。** + ## 2026-07-26 02:35–02:40|恢复 App 端回复语音优先 ### 功能与修复 @@ -25,7 +41,7 @@ - **2026-07-26 02:40**:真机取样(包推 `__UNI__B36D8BE` 后重启基座):3 秒为 `…` 合成中加红点、文字可读、`收起全文 ▲`;12 秒语音就绪而文字仍在;点播放后文字收起、红点清除;26 秒回到空闲,未复现挂死。 - **2026-07-26 02:40**:**未验证**音频是否真实出声——状态机走完整链路,但设备音频输出无法取证,需人工试听。 - **2026-07-26 02:40**:本节完成层级为「已实现、已本地验证、已提交」。**未构建云打包 App、未发布 H5、未发布后端 JAR、未重启服务**。 -- **2026-07-26 02:40**:排障口径修正。`adb exec-out screencap -p` 的 PNG 直接读取会静默返回空内容,若据此描述界面会得出凭空结论;本批已改为先 `sips` 转换/裁剪再读。据此撤回两条本轮口头结论:「App 端 TTS 挂死」(实测本次 2–6 秒合成成功)与「设备弹出 SDK 版本不匹配窗口并吞掉点击」(界面无该弹窗,点击落空系启动时序)。 +- **2026-07-26 02:40**:排障口径修正。`adb exec-out screencap -p` 的 PNG 直接读取会静默返回空内容,若据此描述界面会得出凭空结论;本批已改为先 `sips` 转换/裁剪再读。据此撤回两条当时证据不支持的口头结论:「App 端 TTS 挂死」(实测本次 2–6 秒合成成功)与「该次失败点击由 SDK 弹窗吞掉」(该轮取证画面未显示弹窗,点击落空系启动时序)。16:45 的后续冷启动已独立复现版本弹窗并完成修复,见上文。 ## 2026-07-25 23:56–2026-07-26 00:02|App-Plus 实时对练与构建链修复 diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java index 454612b1..e7d9408c 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSpeechService.java @@ -81,7 +81,18 @@ public class AihrSpeechService { "neutral", QWEN_TTS_DEFAULT_VOICE ); private static final java.util.Set QWEN_TTS_VOICES = java.util.Set.of( - "longanhuan_v3.6", "longjielidou_v3.6", "loongeva_v3.6", "loongjohn" + "longanhuan_v3.6", + "longjielidou_v3.6", + "loongeva_v3.6", + "loongjohn", + "qwen-audio-3.0-tts-flash-longyingmuyu", + "qwen-audio-3.0-tts-flash-longyingshiyu", + "qwen-audio-3.0-tts-flash-longchezhuyu", + "qwen-audio-3.0-tts-flash-longyingyueyue", + "qwen-audio-3.0-tts-flash-longluxiaohui", + "qwen-audio-3.0-tts-flash-longlanqinluan", + "qwen-audio-3.0-tts-flash-longluliuche", + "qwen-audio-3.0-tts-flash-longliuxulan" ); private final AihrModelSeedService modelService; diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSpeechServiceTest.java b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSpeechServiceTest.java index 74a9acc7..338a8ffe 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSpeechServiceTest.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrSpeechServiceTest.java @@ -90,6 +90,14 @@ class AihrSpeechServiceTest { "https://ws-example.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer", AihrSpeechService.dashScopeSynthesisUri("https://ws-example.cn-beijing.maas.aliyuncs.com/compatible-mode/v1").toString() ); + + var extendedVoiceBody = AihrSpeechService.buildDashScopeRequestBody( + mapper, runtime, "请确认本次服务已经完成。", + new VoiceProfile("neutral", "qwen-audio-3.0-tts-flash-longyingmuyu", null, null, null)); + assertEquals( + "qwen-audio-3.0-tts-flash-longyingmuyu", + extendedVoiceBody.path("input").path("voice").asText() + ); } @Test diff --git a/docs/20260708/发布会演示候选题单.md b/docs/20260708/发布会演示候选题单.md index 186c8814..5b89c8ac 100644 --- a/docs/20260708/发布会演示候选题单.md +++ b/docs/20260708/发布会演示候选题单.md @@ -3,7 +3,7 @@ > 生成时间:2026-07-08 > 来源口径:基于已入库正式资料生成,不使用本地 smoke 题作为验收依据。 > 状态说明:本文件是开发方候选题单,最终题单需业务方确认后锁定。 -> 最近复核:2026-07-10 运行 `node scripts/verify-demo-questions.mjs --prefix=Q`,Q01-Q12 结果 `12/12`、来源告警 `0`、向量 `450/450`。 +> 2026-07-10 复核:运行 `node scripts/verify-demo-questions.mjs --prefix=Q`,Q01-Q12 结果 `12/12`、来源告警 `0`、向量 `450/450`。 ## 生成依据 diff --git a/docs/MOBILE_APP_DEVICE_ACCEPTANCE.md b/docs/MOBILE_APP_DEVICE_ACCEPTANCE.md index 89f852ba..2d4a5941 100644 --- a/docs/MOBILE_APP_DEVICE_ACCEPTANCE.md +++ b/docs/MOBILE_APP_DEVICE_ACCEPTANCE.md @@ -8,6 +8,7 @@ 2. Android 首次上机前,复制 `mobile-uni/androidPrivacy.json.example` 为 `mobile-uni/androidPrivacy.json`,替换两个法务确认的 HTTPS 链接;再执行 `npm --prefix mobile-uni run verify:app-release`。 3. 使用有效的移动端测试账号;不得把管理员 Web 登录态当作 App 登录验证。 4. 每台设备保留系统版本、App `versionName/versionCode`、基座/包哈希、录屏或截图和失败日志。 +5. HBuilderX/CLI 编译链必须与手机调试基座兼容;启动时出现版本不匹配弹窗即视为未通过。当前版本组合和排障命令见 `MOBILE_APP_PACKAGING.md`。 ## Android(最低 Android 10 + 一台当前主流机型) diff --git a/docs/MOBILE_APP_PACKAGING.md b/docs/MOBILE_APP_PACKAGING.md index afeb180f..598e8cf4 100644 --- a/docs/MOBILE_APP_PACKAGING.md +++ b/docs/MOBILE_APP_PACKAGING.md @@ -8,6 +8,8 @@ - App 直接请求 `https://peilian.njzhmj.top/dev-api`。不依赖 H5 开发服务器的 `/dev-api` proxy;地址是公开配置,不得在 App 包中放入短信、模型、签名或任何服务端密钥。 - `manifest.json` 只保留不含秘密的发布配置。`.keystore`、`.p12`、`.mobileprovision` 与证书密码只能由发布负责人在 HBuilderX 云打包界面或受控 CI 秘密变量中提供,绝不能提交 Git。 - Android 最低试点设备为 Android 10,iOS 最低试点设备为 iOS 15;每次发版提升 `versionCode`,再更新 `versionName`。 +- 当前 App 编译链与本机 HBuilderX `5.15.2026070915` 标准基座对齐:`@dcloudio/uni-app`、`@dcloudio/uni-app-plus`、`@dcloudio/vite-plugin-uni` 固定为 `3.0.0-alpha-5010220260604001`。这是 HBuilderX/uni-app 编译器版本,不是 Android `minSdkVersion`。 +- `@dcloudio/uni-h5` 有意保留 `3.0.0-alpha-5020120260710001`;5.15 内置的 H5 包没有导出项目仍在使用的 `Audio` 组件,会使 `build:h5` 失败。不要为了“版本整齐”把 H5 包一并降级。 ## 本地验证与出包 @@ -23,6 +25,8 @@ npm --prefix mobile-uni run build:app 2. 在真实 Android 与 iPhone 上验证手机号登录、录音并转写、TTS 播放、图片/视频/文件上传、附件下载、拒绝权限、前后台切换、刘海和底部安全区。 3. Android 试点使用企业签名的正式 APK;上架渠道按渠道要求导出相应制品。iOS 使用企业 Apple Developer 账号的 Distribution 证书和 provisioning profile,先走 TestFlight。 +标准基座可用于日常 JavaScript/WebView 兼容性调试,但不能替代自定义基座或签名包的权限、图标、启动图和原生配置验收。 + ## 发布前尚需提供的资产 - 经法务确认并已可公开访问的《服务协议》《隐私政策》;Android 必须用该实际链接配置原生 template 隐私弹窗,iOS 需提供相应的麦克风、相机、相册/文件用途说明。 @@ -35,10 +39,24 @@ npm --prefix mobile-uni run build:app - 现有品牌源图仅为 64×64,因此这里生成的是**可用于自定义基座和测试包的派生资产**。正式提交商店前应替换为品牌方提供的高分辨率母版,再重新执行生成和预检。 - `androidPrivacy.json.example` 是**未启用的法务模板**,其中 `__TERMS_URL__` 与 `__PRIVACY_URL__` 必须替换为法务确认的 HTTPS 地址。复制为被 Git 忽略的 `androidPrivacy.json` 后,`npm --prefix mobile-uni run verify:app-release` 才会通过。 - iOS 已按实际功能填写麦克风和照片库用途说明;不申请相机、定位、通讯录、蓝牙或广告追踪权限。 -- `build:app` 依赖 `@dcloudio/uni-app-plus`(须与其他 `@dcloudio` 包同版本)。缺少该编译器时命令**不报错**,只静默产出带 `/h5/` 基路径的 H5 空壳,产物里没有 `app-service.js` 与 `app-renderjs.js`,App 平台代码等于从未编译。判定 `build:app` 是否真的成功要看产物中是否存在 `app-service.js`、`app-renderjs.js`、`manifest.json`,不能只看 `DONE Build complete.`。 +- `build:app` 依赖 `@dcloudio/uni-app-plus`,它必须与 `@dcloudio/uni-app`、`@dcloudio/vite-plugin-uni` 同版本;H5 包是上文说明的平台例外。缺少 App 编译器时命令**不报错**,只静默产出带 `/h5/` 基路径的 H5 空壳,产物里没有 `app-service.js` 与 `app-renderjs.js`,App 平台代码等于从未编译。判定 `build:app` 是否真的成功要看产物中是否存在 `app-service.js`、`app-renderjs.js`、`manifest.json`,不能只看 `DONE Build complete.`。 - App-Plus 实时对练通过 `renderjs` 在系统 WebView 中执行媒体/WebRTC;认证 SDP 与工具请求仍由逻辑层代理。发布前必须在 Android/iOS 真机验证麦克风授权、实时转写、远端语音播放、前后台切换和断线降级。 - 真机步骤和证据口径见 `docs/MOBILE_APP_DEVICE_ACCEPTANCE.md`。资源预检通过不等于 Android/iOS 真机或应用商店验收通过。 +## 调试基座版本不匹配 + +若真机提示“本应用使用 HBuilderX X 或对应 CLI 版本编译,而手机端 SDK 版本是 Y”,先核对编译依赖与基座,不要修改 Android `minSdkVersion`: + +```bash +/Applications/HBuilderX.app/Contents/MacOS/cli --version +node -e "for (const n of ['@dcloudio/uni-app','@dcloudio/uni-app-plus','@dcloudio/vite-plugin-uni']) console.log(n, require('./mobile-uni/node_modules/'+n+'/package.json').version)" +/Applications/HBuilderX.app/Contents/MacOS/cli launch app-android \ + --project "$PWD/mobile-uni" --deviceId \ + --playground standard --compile true +``` + +当前 5.15 内置包在 `build:app` 输出中显示 `Compiler version: 5.12(vue3)`,属于 DCloud 自身的版本映射;依赖、HBuilderX 和手机标准基座按上述固定版本组合后,真机不再弹出 5.21/5.15 不匹配提示。 + ## 更新策略 涉及原生权限、插件、证书或 App 壳的改动必须重新云打包并通过应用商店/TestFlight 发布。仅 JavaScript/CSS/静态资源的热更新(WGT)不作为首个试点版本的发布方式;如后续启用,须有版本兼容、完整性校验、灰度与回滚方案。 diff --git a/docs/下一步工作计划-BRD对齐-20260715.md b/docs/下一步工作计划-BRD对齐-20260715.md index 0c9e4f80..eab7b8a7 100644 --- a/docs/下一步工作计划-BRD对齐-20260715.md +++ b/docs/下一步工作计划-BRD对齐-20260715.md @@ -40,7 +40,7 @@ --- -## 2. 主线 B:外部输入催办清单(今天发出,B3 为最大阻塞) +## 2. 主线 B:外部输入催办清单(2026-07-16 发出,B3 为最大阻塞) 每项需在发出时填负责人与回复期限;到兜底触发日仍无答复即升级 HR 负责人(BRD 第 13 章"集成负责人指派"至今未闭合)。 diff --git a/docs/员工端版本功能对比与功能对齐清单-20260717.md b/docs/员工端版本功能对比与功能对齐清单-20260717.md index 1469b7a8..95c046d9 100644 --- a/docs/员工端版本功能对比与功能对齐清单-20260717.md +++ b/docs/员工端版本功能对比与功能对齐清单-20260717.md @@ -19,7 +19,7 @@ | 层级 | 主要证据 | 能证明什么 | |---|---|---| -| 历史可运行版 | `mobile/src/App.vue`、`mobile/src/data/*` | 旧源码实际存在过的交互,不代表今天仍在线 | +| 历史可运行版 | `mobile/src/App.vue`、`mobile/src/data/*` | 旧源码实际存在过的交互,不代表当前仍在线 | | 历史需求/设计 | BRD、阶段总纲、会议纪要、Figma | 功能被提出、规划或设计过,不单独证明已交付 | | 当前实现 | `mobile-uni/`、`frontend/`、`backend/ruoyi-modules/ruoyi-aihr/` | 当前代码和接口能力 | | 本地验证 | 自动化测试、真实本地 API、浏览器操作和截图 | 当前构建在验证环境可运行 | diff --git a/mobile-uni/package-lock.json b/mobile-uni/package-lock.json index 67907008..96385f73 100644 --- a/mobile-uni/package-lock.json +++ b/mobile-uni/package-lock.json @@ -8,8 +8,8 @@ "name": "aihr-mobile-uni", "version": "0.1.5", "dependencies": { - "@dcloudio/uni-app": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-app-plus": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-app": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-app-plus": "3.0.0-alpha-5010220260604001", "@dcloudio/uni-h5": "3.0.0-alpha-5020120260710001", "@dcloudio/uni-ui": "^1.5.12", "lxgw-wenkai-tc-webfont": "^1.0.0", @@ -17,7 +17,7 @@ }, "devDependencies": { "@dcloudio/types": "3.4.31", - "@dcloudio/vite-plugin-uni": "3.0.0-alpha-5020120260710001", + "@dcloudio/vite-plugin-uni": "3.0.0-alpha-5010220260604001", "sass": "^1.101.0", "typescript": "~5.9.3", "vite": "5.2.8", @@ -1916,18 +1916,18 @@ "license": "Apache-2.0" }, "node_modules/@dcloudio/uni-app": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-z4k1D2+vSthqcEm6biyo4TzbpcgvSJdQteoD3uI3DyrleeNBAfx+ywmnmXwjNFYf/qKOLIjeW0pd6lgkA+T6PA==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-B4OsM0IaQzIBU9IGFJQwKuXnLC8wIUkkVEH4BdEAj6oVdcVpvQs5crNdfdEF2l5BX9tptlVxEdy2ZohIGqytxw==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-cloud": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-components": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-console": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-i18n": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-push": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-stat": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-cloud": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-components": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-console": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-i18n": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-push": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-stat": "3.0.0-alpha-5010220260604001", "@vue/shared": "3.4.21" }, "peerDependencies": { @@ -1935,14 +1935,14 @@ } }, "node_modules/@dcloudio/uni-app-plus": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-bYAMi9YqUH6/xGIf/KMlOPQAtLgYmXGCFtw9ZIUGKF4FMrYC/oeSYVJ/WhutgqVuvJau4BoSg/HGIWcqoz1QRA==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-QOYT/U3jXpQ5VAXGcjVHfUMS7uMtzMJeMTmrmVdXT7QUN7Tr//9QJG82z8vMkXD5lvnrDqt80DXixy9kNzz2dg==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-app-uts": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-app-vite": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-app-vue": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-app-uts": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-app-vite": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-app-vue": "3.0.0-alpha-5010220260604001", "debug": "4.3.7", "fs-extra": "10.1.0", "licia": "1.41.1", @@ -1950,18 +1950,18 @@ } }, "node_modules/@dcloudio/uni-app-uts": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-ajHJurf9oaVtMb7W31ACia96QDp87X2HO+V+XRzW9bnI8Oci6UkzJVoFGXTFWQ8J6ecSbdMkz2dtiHdLgqv22g==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-BcdeJlPinUmF2iUX3UFdpzSPMAk5iIlj80H+mqTd23taha7YI6Xh1u/fMYXgKyBDsLi3hNQAY2sRnI0H4dViVQ==", "license": "Apache-2.0", "dependencies": { "@babel/parser": "7.25.6", "@babel/types": "7.25.6", - "@dcloudio/uni-cli-shared": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-console": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-i18n": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-console": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-i18n": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", "@jridgewell/gen-mapping": "^0.3.3", "@jridgewell/trace-mapping": "^0.3.19", "@rollup/pluginutils": "5.1.0", @@ -2007,15 +2007,15 @@ } }, "node_modules/@dcloudio/uni-app-vite": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-GBAUNnfhz0ln0KYGx87NcNHGULMr25ZTOBz0YdXl5q3Jggy6YkYe+C0w2P/4xxz3Q2pUVJ4kC0j/twotgfk6Ew==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-AnPDZUw8/YAQVOTm54K0g545d+jmKzzsQ/Vd2J+alm3LUyVjsWDJlyKLxsMbzdPClZ9bdfi+F/+lKJB0W0QAGw==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-cli-shared": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-i18n": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-i18n": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", "@rollup/pluginutils": "5.1.0", "@vitejs/plugin-vue": "5.2.4", "@vue/compiler-dom": "3.4.21", @@ -2026,15 +2026,15 @@ } }, "node_modules/@dcloudio/uni-app-vue": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-xOHqxnQ9yJfDIkY0pSQ3bYZBT55HkUVwCfsx8ZhnEVEtcw4FF2GiIo6xk+Ft/sOtmxj9wChOA7mYkIafbN2Qow==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-5rxJhgRS6ZHWKIoz5uy/VKuk/RSwf2IVH1TzUyr8RyMnF5ACF0xrLxSXbWeNLJwx62WjwJ00J/RMdLo5nSmGOw==", "license": "Apache-2.0" }, "node_modules/@dcloudio/uni-cli-shared": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-ZBs1zw83RHh+4Ecsvl/+ML+yGCUVo+oYb9gDaB/Z1leHDQ76kHvNtLNubf/Np9X5pzcXEx/Xe+PhqRvjdeuXbA==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-12M5X8/jH/9kYBQQFl0qtniP5GtGxEBO/+h73zN/w8Z0qXfmXgHXxEly8IwDrCqXI4yL008PF+3PMY17krZ7LQ==", "license": "Apache-2.0", "dependencies": { "@ampproject/remapping": "^2.1.2", @@ -2042,9 +2042,9 @@ "@babel/core": "7.25.2", "@babel/parser": "7.25.6", "@babel/types": "7.25.6", - "@dcloudio/uni-i18n": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-i18n": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", "@intlify/core-base": "9.1.9", "@intlify/shared": "9.1.9", "@intlify/vue-devtools": "9.1.9", @@ -2118,37 +2118,140 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/unplugin-auto-import": { + "version": "19.1.0", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-19.1.0.tgz", + "integrity": "sha512-B+TGBEBHqY9aR+7YfShfLujETOHstzpV+yaqgy5PkfV0QG7Py+TYMX7vJ9W4SrysHR+UzR+gzcx/nuZjmPeclA==", + "license": "MIT", + "dependencies": { + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "picomatch": "^4.0.2", + "unimport": "^4.1.1", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/@dcloudio/uni-cli-shared/node_modules/unplugin-auto-import/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/@dcloudio/uni-cloud": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-aKsPXFSN8W//QbJYoICfyXAUPuXujxv8Azfh0mJvSRW1OQnbnn1NNV9cMDoLbuQMIN6dZ6ulivbQB4HbaxObvw==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-gDldYdV6i1S5aJe+PHp3DQh1YD92GWBhwf9VVG1U0ncpVZ3I84Yd6Q+ndz5tpjGlJ9GQ3xGObaOopgdYSAoEkg==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-cli-shared": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-i18n": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-i18n": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", "@vue/shared": "3.4.21", "fast-glob": "3.3.3" } }, "node_modules/@dcloudio/uni-components": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-StYutCSkyrDL7BU5vwmFGrwYRorfRTQnAjrzB+R0O3lQn5UJmzelJ5vablIc4PRhJF8euMcoGoytSo0oGtZZLw==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-CoE+bAVk8OSt0FoFRsiWm2WflMfYqcsqcJXIak/7rdsS7HJWMuT5NAaHAp7/6G/XMmHfCRAGQNsiiRGcEwTB6Q==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-cloud": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-h5": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-i18n": "3.0.0-alpha-5020120260710001" + "@dcloudio/uni-cloud": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-h5": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-i18n": "3.0.0-alpha-5010220260604001" + } + }, + "node_modules/@dcloudio/uni-components/node_modules/@dcloudio/uni-h5": { + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-pAz7B6zJqSbmuZsnu95+Dkh3N717lo3XBO5qJzp55BrVJiA7ZBTPiqR8G7TU/6IMy6S12kze/liUvkfLtlaA+g==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-h5-vite": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-h5-vue": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-i18n": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21", + "debug": "4.3.7", + "localstorage-polyfill": "^1.0.1", + "postcss-selector-parser": "6.1.2", + "safe-area-insets": "1.4.1", + "vue-router": "4.4.4", + "xmlhttprequest": "^1.8.0" + } + }, + "node_modules/@dcloudio/uni-components/node_modules/@dcloudio/uni-h5-vite": { + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-mJOYPZKTsSyVDMpVK0QYiRCCbJvtEwEav9X398gXHL4HoCS7a/Dtjt6PVbQRsMmQ9GoxddtC1RNd7gUpAYZpsg==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", + "@rollup/pluginutils": "5.1.0", + "@vitejs/plugin-basic-ssl": "1.2.0", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21", + "debug": "4.3.7", + "fs-extra": "10.1.0", + "mime": "3.0.0", + "module-alias": "2.2.3" + } + }, + "node_modules/@dcloudio/uni-components/node_modules/@dcloudio/uni-h5-vue": { + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-T+KDmJTRSlhiBAVXFkxwBpUhpYVtimamP9225h+PmkSCCYRePzSSdwUUOgZHObPl/7dNjf3ocGq1EKvv7oatCg==", + "license": "Apache-2.0", + "dependencies": { + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", + "@vue/server-renderer": "3.4.21" } }, "node_modules/@dcloudio/uni-console": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-console/-/uni-console-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-323YWL0nIBGnybKNP1U7Y3PYYT1bJo/7Z+44aZ9X9e5506bjnmTRkWvXhT9qIS1QxFD1dHG68CCuKtevjINdRQ==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-console/-/uni-console-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-EFoWqXSV1sgj66sy4k7R7lbqbXyNx8Bxfy02MRALxDwXoMQf7bKCuH0mMyjvpy6np1o0XoV5WhaAAsH30XisJA==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-cli-shared": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001", "fs-extra": "10.1.0" } }, @@ -2192,6 +2295,207 @@ "module-alias": "2.2.3" } }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@dcloudio/uni-cli-shared": { + "version": "3.0.0-alpha-5020120260710001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-alpha-5020120260710001.tgz", + "integrity": "sha512-ZBs1zw83RHh+4Ecsvl/+ML+yGCUVo+oYb9gDaB/Z1leHDQ76kHvNtLNubf/Np9X5pzcXEx/Xe+PhqRvjdeuXbA==", + "license": "Apache-2.0", + "dependencies": { + "@ampproject/remapping": "^2.1.2", + "@babel/code-frame": "7.24.7", + "@babel/core": "7.25.2", + "@babel/parser": "7.25.6", + "@babel/types": "7.25.6", + "@dcloudio/uni-i18n": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", + "@intlify/core-base": "9.1.9", + "@intlify/shared": "9.1.9", + "@intlify/vue-devtools": "9.1.9", + "@rollup/pluginutils": "5.1.0", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/compiler-ssr": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21", + "adm-zip": "0.5.16", + "autoprefixer": "10.4.20", + "base64url": "^3.0.1", + "chokidar": "3.6.0", + "compare-versions": "^3.6.0", + "debug": "4.3.7", + "entities": "^7.0.0", + "es-module-lexer": "1.5.4", + "esbuild": "0.20.2", + "estree-walker": "2.0.2", + "fast-glob": "3.3.3", + "fs-extra": "10.1.0", + "hash-sum": "2.0.0", + "isbinaryfile": "5.0.2", + "jsonc-parser": "3.3.1", + "lines-and-columns": "^2.0.4", + "magic-string": "0.30.11", + "merge": "2.1.1", + "mime": "3.0.0", + "module-alias": "2.2.3", + "os-locale-s-fix": "^1.0.8-fix-1", + "picocolors": "1.1.0", + "postcss-import": "^14.0.2", + "postcss-load-config": "^3.1.1", + "postcss-modules": "^4.3.0", + "postcss-selector-parser": "6.1.2", + "resolve": "1.22.8", + "source-map-js": "1.2.1", + "tapable": "^2.2.0", + "tinycolor2": "1.6.0", + "unimport": "4.1.1", + "unplugin-auto-import": "19.1.0", + "xregexp": "5.1.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@dcloudio/uni-i18n": { + "version": "3.0.0-alpha-5020120260710001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-alpha-5020120260710001.tgz", + "integrity": "sha512-B4PFuzRdFi9PIX6rvuJGvAJUlfKZPT9gjGogozWl7eToJbzX+vNjG5kPT0uaSBzI9qlbS6L2ObCkYkudZAPCBQ==", + "license": "Apache-2.0" + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@dcloudio/uni-nvue-styler": { + "version": "3.0.0-alpha-5020120260710001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-alpha-5020120260710001.tgz", + "integrity": "sha512-ahXTw9RyQb1EmaRYA/PFqyeUBAu41YyC4sdyXscpY5UAQUqC6EGu8IEIdrczj8pxYMitE7tGseGoWQdMEUtDGg==", + "license": "Apache-2.0", + "dependencies": { + "@vue/shared": "3.4.21", + "parse-css-font": "^4.0.0", + "postcss": "8.5.6", + "tinycolor2": "1.6.0" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@dcloudio/uni-shared": { + "version": "3.0.0-alpha-5020120260710001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-alpha-5020120260710001.tgz", + "integrity": "sha512-9awppRC9Mj9rpCLVNA5tR5qvyj3cui7CKzMhdn32haDA5MQb3JzWJvoUA1byjvbsaVahDrkCy9+68ltf9QLnyA==", + "license": "Apache-2.0", + "dependencies": { + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/compiler-core": { + "version": "3.4.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.21.tgz", + "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.21", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/postcss/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/unplugin-auto-import": { + "version": "19.1.0", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-19.1.0.tgz", + "integrity": "sha512-B+TGBEBHqY9aR+7YfShfLujETOHstzpV+yaqgy5PkfV0QG7Py+TYMX7vJ9W4SrysHR+UzR+gzcx/nuZjmPeclA==", + "license": "MIT", + "dependencies": { + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "picomatch": "^4.0.2", + "unimport": "^4.1.1", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/@dcloudio/uni-h5-vite/node_modules/unplugin-auto-import/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/@dcloudio/uni-h5-vue": { "version": "3.0.0-alpha-5020120260710001", "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-alpha-5020120260710001.tgz", @@ -2202,16 +2506,40 @@ "@vue/server-renderer": "3.4.21" } }, - "node_modules/@dcloudio/uni-i18n": { + "node_modules/@dcloudio/uni-h5-vue/node_modules/@dcloudio/uni-shared": { + "version": "3.0.0-alpha-5020120260710001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-alpha-5020120260710001.tgz", + "integrity": "sha512-9awppRC9Mj9rpCLVNA5tR5qvyj3cui7CKzMhdn32haDA5MQb3JzWJvoUA1byjvbsaVahDrkCy9+68ltf9QLnyA==", + "license": "Apache-2.0", + "dependencies": { + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-h5/node_modules/@dcloudio/uni-i18n": { "version": "3.0.0-alpha-5020120260710001", "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-alpha-5020120260710001.tgz", "integrity": "sha512-B4PFuzRdFi9PIX6rvuJGvAJUlfKZPT9gjGogozWl7eToJbzX+vNjG5kPT0uaSBzI9qlbS6L2ObCkYkudZAPCBQ==", "license": "Apache-2.0" }, - "node_modules/@dcloudio/uni-nvue-styler": { + "node_modules/@dcloudio/uni-h5/node_modules/@dcloudio/uni-shared": { "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-ahXTw9RyQb1EmaRYA/PFqyeUBAu41YyC4sdyXscpY5UAQUqC6EGu8IEIdrczj8pxYMitE7tGseGoWQdMEUtDGg==", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-alpha-5020120260710001.tgz", + "integrity": "sha512-9awppRC9Mj9rpCLVNA5tR5qvyj3cui7CKzMhdn32haDA5MQb3JzWJvoUA1byjvbsaVahDrkCy9+68ltf9QLnyA==", + "license": "Apache-2.0", + "dependencies": { + "@vue/shared": "3.4.21" + } + }, + "node_modules/@dcloudio/uni-i18n": { + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-IFIJnf1dpG96RLbDkQd7+2sPpedlIotuBk4Kldl2X0Dogeh2rRe1G3/DBlqVDNo97AvABF4nYChPQj6KFsV40A==", + "license": "Apache-2.0" + }, + "node_modules/@dcloudio/uni-nvue-styler": { + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-u+R+k2MXXPzMSdyoNJ+qwKhuuRfbfH8tGRtAVvbPWLqVUQMGnHBMEeK87zCkXfBQNUYFrs0JtOXtHU8DiG9JFg==", "license": "Apache-2.0", "dependencies": { "@vue/shared": "3.4.21", @@ -2255,31 +2583,31 @@ } }, "node_modules/@dcloudio/uni-push": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-aRqZdjHu9A0XWT4h4OMl6bs0O+GrnuUPTTrQ/6rWuTC08Vx3ZhDxoB9emhf4JyKGfHbIBqHdSIt/rtNITTtjlg==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-tuflI92CaC8k4KptGIyxVD+utTtp36bO4myNeZOtYH2pE0jArx0H+CNpuCtMWBhZWtkw2x1pX9/lYONbnH8oSg==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-cli-shared": "3.0.0-alpha-5020120260710001" + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001" } }, "node_modules/@dcloudio/uni-shared": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-9awppRC9Mj9rpCLVNA5tR5qvyj3cui7CKzMhdn32haDA5MQb3JzWJvoUA1byjvbsaVahDrkCy9+68ltf9QLnyA==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-bzhGjGZZ/H3dvIeoDXAQXw6o0eZYJB5ET0JKQZaV1yw4fAsmB11W/Wt7mizfLe+NYJ/NdjlnLAq4mUskWZrRbg==", "license": "Apache-2.0", "dependencies": { "@vue/shared": "3.4.21" } }, "node_modules/@dcloudio/uni-stat": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-bXMWdKBAsPWahhaD3RDc6AlnIh/mvfhXipfTwZreknp+0y5Z5cSoKmfOTG6HGBXfMyp4/r1DXo71bgZTWtZUOw==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-DrnysOch1gOA8WZYLJA3OXMcdAT+h0vIP9hvWM7k1hjDUngb1DgWNo2N4E/Pc+3FFnQNnfORGTN+M4ti3edDkQ==", "license": "Apache-2.0", "dependencies": { - "@dcloudio/uni-cli-shared": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", "debug": "4.3.7" } }, @@ -2290,19 +2618,18 @@ "license": "Apache-2.0" }, "node_modules/@dcloudio/vite-plugin-uni": { - "version": "3.0.0-alpha-5020120260710001", - "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-alpha-5020120260710001.tgz", - "integrity": "sha512-nns/haZStdxXDUehSRiKjlOGquKl9aoV7hKN/CeJBR80mO4iNvHUAJwZLlXNA4vZbvdCfb/WxGljxG3fN5+UTQ==", + "version": "3.0.0-alpha-5010220260604001", + "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-alpha-5010220260604001.tgz", + "integrity": "sha512-CTCiWuXID6eRSzX+XHK0ZfsO9XjK9EQRr0tfisbfiPv1+HABZsGaxOaLOKzRxrDhdqBTBr5L8ahEtcPJ2HWdVQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@babel/core": "7.25.2", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-transform-typescript": "^7.23.3", - "@babel/types": "7.25.6", - "@dcloudio/uni-cli-shared": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-shared": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-cli-shared": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-nvue-styler": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-shared": "3.0.0-alpha-5010220260604001", "@rollup/pluginutils": "5.1.0", "@vitejs/plugin-legacy": "5.3.2", "@vitejs/plugin-vue": "5.2.4", @@ -2313,7 +2640,6 @@ "@vue/shared": "3.4.21", "cac": "6.7.9", "debug": "4.3.7", - "es-module-lexer": "1.5.4", "estree-walker": "2.0.2", "express": "4.20.0", "fast-glob": "3.3.3", @@ -2322,7 +2648,6 @@ "jsonc-parser": "3.3.1", "magic-string": "0.30.11", "picocolors": "1.1.0", - "source-map-js": "1.2.1", "terser": "^5.4.0", "unplugin-auto-import": "19.1.0" }, @@ -2363,6 +2688,62 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/@dcloudio/vite-plugin-uni/node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@dcloudio/vite-plugin-uni/node_modules/unplugin-auto-import": { + "version": "19.1.0", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-19.1.0.tgz", + "integrity": "sha512-B+TGBEBHqY9aR+7YfShfLujETOHstzpV+yaqgy5PkfV0QG7Py+TYMX7vJ9W4SrysHR+UzR+gzcx/nuZjmPeclA==", + "dev": true, + "license": "MIT", + "dependencies": { + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "picomatch": "^4.0.2", + "unimport": "^4.1.1", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/@dcloudio/vite-plugin-uni/node_modules/unplugin-auto-import/node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.20.2", "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", @@ -7139,59 +7520,6 @@ "node": ">=18.12.0" } }, - "node_modules/unplugin-auto-import": { - "version": "19.1.0", - "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-19.1.0.tgz", - "integrity": "sha512-B+TGBEBHqY9aR+7YfShfLujETOHstzpV+yaqgy5PkfV0QG7Py+TYMX7vJ9W4SrysHR+UzR+gzcx/nuZjmPeclA==", - "license": "MIT", - "dependencies": { - "local-pkg": "^1.0.0", - "magic-string": "^0.30.17", - "picomatch": "^4.0.2", - "unimport": "^4.1.1", - "unplugin": "^2.2.0", - "unplugin-utils": "^0.2.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@nuxt/kit": "^3.2.2", - "@vueuse/core": "*" - }, - "peerDependenciesMeta": { - "@nuxt/kit": { - "optional": true - }, - "@vueuse/core": { - "optional": true - } - } - }, - "node_modules/unplugin-auto-import/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/unplugin-auto-import/node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/unplugin-utils": { "version": "0.2.5", "resolved": "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.2.5.tgz", diff --git a/mobile-uni/package.json b/mobile-uni/package.json index 9e46cd59..e7ec55d2 100644 --- a/mobile-uni/package.json +++ b/mobile-uni/package.json @@ -16,8 +16,8 @@ "typecheck": "vue-tsc --noEmit" }, "dependencies": { - "@dcloudio/uni-app": "3.0.0-alpha-5020120260710001", - "@dcloudio/uni-app-plus": "3.0.0-alpha-5020120260710001", + "@dcloudio/uni-app": "3.0.0-alpha-5010220260604001", + "@dcloudio/uni-app-plus": "3.0.0-alpha-5010220260604001", "@dcloudio/uni-h5": "3.0.0-alpha-5020120260710001", "@dcloudio/uni-ui": "^1.5.12", "lxgw-wenkai-tc-webfont": "^1.0.0", @@ -25,7 +25,7 @@ }, "devDependencies": { "@dcloudio/types": "3.4.31", - "@dcloudio/vite-plugin-uni": "3.0.0-alpha-5020120260710001", + "@dcloudio/vite-plugin-uni": "3.0.0-alpha-5010220260604001", "sass": "^1.101.0", "typescript": "~5.9.3", "vite": "5.2.8", diff --git a/mobile-uni/pnpm-lock.yaml b/mobile-uni/pnpm-lock.yaml index eccb4b57..9c98f612 100644 --- a/mobile-uni/pnpm-lock.yaml +++ b/mobile-uni/pnpm-lock.yaml @@ -9,24 +9,30 @@ importers: .: dependencies: '@dcloudio/uni-app': - specifier: 3.0.0-alpha-5020120260706001 - version: 3.0.0-alpha-5020120260706001(@dcloudio/types@3.4.31)(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) + specifier: 3.0.0-alpha-5010220260604001 + version: 3.0.0-alpha-5010220260604001(@dcloudio/types@3.4.31)(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-app-plus': + specifier: 3.0.0-alpha-5010220260604001 + version: 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) '@dcloudio/uni-h5': - specifier: 3.0.0-alpha-5020120260706001 - version: 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) + specifier: 3.0.0-alpha-5020120260710001 + version: 3.0.0-alpha-5020120260710001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) '@dcloudio/uni-ui': specifier: ^1.5.12 version: 1.5.12 + lxgw-wenkai-tc-webfont: + specifier: ^1.0.0 + version: 1.2.0 vue: - specifier: 3.5.30 - version: 3.5.30(typescript@5.9.3) + specifier: 3.4.21 + version: 3.4.21(typescript@5.9.3) devDependencies: '@dcloudio/types': specifier: 3.4.31 version: 3.4.31 '@dcloudio/vite-plugin-uni': - specifier: 3.0.0-alpha-5020120260706001 - version: 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) + specifier: 3.0.0-alpha-5010220260604001 + version: 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) sass: specifier: ^1.101.0 version: 1.101.0 @@ -594,53 +600,87 @@ packages: '@dcloudio/types@3.4.31': resolution: {integrity: sha512-YAqOfJpcAwMs4Fagv2oP+iRHSCJOJoN8JUYyoRD6gwfANhsI9QaYj4/j22FzSopfHkqjX50B7YkG/VRAyz9OnA==} - '@dcloudio/uni-app@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-20h/MGx9btNHhTUdUGEmHLZ+kfMQr8ToZJLFjVeuSE+NAayIGPZFYWVhYE8oNeQtnm7OgLgmksTlhB/e5CZy2g==} + '@dcloudio/uni-app-plus@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-QOYT/U3jXpQ5VAXGcjVHfUMS7uMtzMJeMTmrmVdXT7QUN7Tr//9QJG82z8vMkXD5lvnrDqt80DXixy9kNzz2dg==} + + '@dcloudio/uni-app-uts@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-BcdeJlPinUmF2iUX3UFdpzSPMAk5iIlj80H+mqTd23taha7YI6Xh1u/fMYXgKyBDsLi3hNQAY2sRnI0H4dViVQ==} + + '@dcloudio/uni-app-vite@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-AnPDZUw8/YAQVOTm54K0g545d+jmKzzsQ/Vd2J+alm3LUyVjsWDJlyKLxsMbzdPClZ9bdfi+F/+lKJB0W0QAGw==} + + '@dcloudio/uni-app-vue@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-5rxJhgRS6ZHWKIoz5uy/VKuk/RSwf2IVH1TzUyr8RyMnF5ACF0xrLxSXbWeNLJwx62WjwJ00J/RMdLo5nSmGOw==} + + '@dcloudio/uni-app@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-B4OsM0IaQzIBU9IGFJQwKuXnLC8wIUkkVEH4BdEAj6oVdcVpvQs5crNdfdEF2l5BX9tptlVxEdy2ZohIGqytxw==} peerDependencies: '@dcloudio/types': 3.4.31 - '@dcloudio/uni-cli-shared@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-kDSF4mxHZl/4mvFrFob55YSUVhdEcdGBCkhEnfN3mP51p4GNYEMECCkyuMS1ShvUykKU0IiYJjnSng4je8zVVA==} + '@dcloudio/uni-cli-shared@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-12M5X8/jH/9kYBQQFl0qtniP5GtGxEBO/+h73zN/w8Z0qXfmXgHXxEly8IwDrCqXI4yL008PF+3PMY17krZ7LQ==} engines: {node: ^14.18.0 || >=16.0.0} - '@dcloudio/uni-cloud@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-Y9mE0IHNb45PBp2TYr9kfq4wxwr03szyH79EL2jGggKr1H159dByt+jc3ffTa3SFZhyi3xSPcDdxO8ZJ+jvgrg==} + '@dcloudio/uni-cli-shared@3.0.0-alpha-5020120260710001': + resolution: {integrity: sha512-ZBs1zw83RHh+4Ecsvl/+ML+yGCUVo+oYb9gDaB/Z1leHDQ76kHvNtLNubf/Np9X5pzcXEx/Xe+PhqRvjdeuXbA==} + engines: {node: ^14.18.0 || >=16.0.0} - '@dcloudio/uni-components@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-OwRTi/uGaOoih2JV1mnpijYGn8owfU/O+AlTX2YLlJrvIuT+WrLc8X31gfCm2pjhcrwsOUZk0bxPbMuLQImOPQ==} + '@dcloudio/uni-cloud@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-gDldYdV6i1S5aJe+PHp3DQh1YD92GWBhwf9VVG1U0ncpVZ3I84Yd6Q+ndz5tpjGlJ9GQ3xGObaOopgdYSAoEkg==} - '@dcloudio/uni-console@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-b2JXNLqo47k3QR1hBjzCbsrR4P7iLGgCKyr1yZjCKFth6VvO7I9a2K7GzLSwg8FhJzJQCq43gexEk955juxyzw==} + '@dcloudio/uni-components@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-CoE+bAVk8OSt0FoFRsiWm2WflMfYqcsqcJXIak/7rdsS7HJWMuT5NAaHAp7/6G/XMmHfCRAGQNsiiRGcEwTB6Q==} - '@dcloudio/uni-h5-vite@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-FA6M/vAw9MREo/pAjHRwbtUevmzcAORTLAyQBUW1Vc3Kytnq9Pvs/pHEAyRHtsB7ydR988PF+6+p0jt38mGE3A==} + '@dcloudio/uni-console@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-EFoWqXSV1sgj66sy4k7R7lbqbXyNx8Bxfy02MRALxDwXoMQf7bKCuH0mMyjvpy6np1o0XoV5WhaAAsH30XisJA==} - '@dcloudio/uni-h5-vue@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-PCvlICnA4IbR/kABS/bVVNClSxGVLy5YlmPC+YlLtP1pqIqwWcy09lbJpgD6UNMa4/F7+jCXbgLhlys6KAiIgQ==} + '@dcloudio/uni-h5-vite@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-mJOYPZKTsSyVDMpVK0QYiRCCbJvtEwEav9X398gXHL4HoCS7a/Dtjt6PVbQRsMmQ9GoxddtC1RNd7gUpAYZpsg==} - '@dcloudio/uni-h5@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-uNGc8ImjVcBj4sB5jY/LvLOxN+J/Sr+0YV9iaiOf1t3id6pZTuQgX1+JZYwZi+hgHMtBB7EZ74KihzATyb5J3g==} + '@dcloudio/uni-h5-vite@3.0.0-alpha-5020120260710001': + resolution: {integrity: sha512-NhalG7UZWE3hA8TOUFNSeMW2+t+e1e0gn1lbZGi+BzH//n8dR7xyX15KORhZPqv586ShldmA1BbdmPb46g46Jw==} - '@dcloudio/uni-i18n@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-IwZF+4/aHmPSsuZmzX35Vs1PZWPHIsgBzYGDn0GhN1rxHH2NztYr8ApelNWtK0QA0uSHJmq+0MYBJbER2u6C2A==} + '@dcloudio/uni-h5-vue@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-T+KDmJTRSlhiBAVXFkxwBpUhpYVtimamP9225h+PmkSCCYRePzSSdwUUOgZHObPl/7dNjf3ocGq1EKvv7oatCg==} - '@dcloudio/uni-nvue-styler@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-HAupU/LedtzyZFpwD6rPfrenHixU+XXv6ViElcGAtWY/oBlVgPyPNH1gSobfHdvINamQ4hsWkABPabwHth3j/A==} + '@dcloudio/uni-h5-vue@3.0.0-alpha-5020120260710001': + resolution: {integrity: sha512-Uluox+HR4+Uj9HcXEz8mKZPzLJzrKLVNimGPtSHYAHnTJ0XGLmagn7qyO3OEusvge3yIvefYfIdS++h8dgyF1g==} - '@dcloudio/uni-push@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-pGlhki4lrvg6E3r9078Ov6RPoCaBDsnzI+oQl2NsDS1fysvapBvGJAUWbPbgpqINnIPMGOCDAcKPv22FfnP4kg==} + '@dcloudio/uni-h5@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-pAz7B6zJqSbmuZsnu95+Dkh3N717lo3XBO5qJzp55BrVJiA7ZBTPiqR8G7TU/6IMy6S12kze/liUvkfLtlaA+g==} - '@dcloudio/uni-shared@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-3qT+vSNTcjJXKUX2PyqVbqAIEfeLICOqBgOtu7JneRrTRRHnrR+iXzo5RpwHwJ3EEc/D0DtVPPtX2VHQcHTO1g==} + '@dcloudio/uni-h5@3.0.0-alpha-5020120260710001': + resolution: {integrity: sha512-wdWVFxWe6mHyaNx7vkU8jkPndETf6EcszWbJlKNS5nnMipsHEDIJTNBVn4Md5ofGejtlo03REjJ2HH37MG/kNw==} - '@dcloudio/uni-stat@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-JtxPjb2NLTYcJRMJOD6i/nyksuaiAaafOBc3I/EsLdwq/xx1w4jEPyWQe3bXVmNc5CNOgwcp6G9XU759KZRMqA==} + '@dcloudio/uni-i18n@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-IFIJnf1dpG96RLbDkQd7+2sPpedlIotuBk4Kldl2X0Dogeh2rRe1G3/DBlqVDNo97AvABF4nYChPQj6KFsV40A==} + + '@dcloudio/uni-i18n@3.0.0-alpha-5020120260710001': + resolution: {integrity: sha512-B4PFuzRdFi9PIX6rvuJGvAJUlfKZPT9gjGogozWl7eToJbzX+vNjG5kPT0uaSBzI9qlbS6L2ObCkYkudZAPCBQ==} + + '@dcloudio/uni-nvue-styler@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-u+R+k2MXXPzMSdyoNJ+qwKhuuRfbfH8tGRtAVvbPWLqVUQMGnHBMEeK87zCkXfBQNUYFrs0JtOXtHU8DiG9JFg==} + + '@dcloudio/uni-nvue-styler@3.0.0-alpha-5020120260710001': + resolution: {integrity: sha512-ahXTw9RyQb1EmaRYA/PFqyeUBAu41YyC4sdyXscpY5UAQUqC6EGu8IEIdrczj8pxYMitE7tGseGoWQdMEUtDGg==} + + '@dcloudio/uni-push@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-tuflI92CaC8k4KptGIyxVD+utTtp36bO4myNeZOtYH2pE0jArx0H+CNpuCtMWBhZWtkw2x1pX9/lYONbnH8oSg==} + + '@dcloudio/uni-shared@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-bzhGjGZZ/H3dvIeoDXAQXw6o0eZYJB5ET0JKQZaV1yw4fAsmB11W/Wt7mizfLe+NYJ/NdjlnLAq4mUskWZrRbg==} + + '@dcloudio/uni-shared@3.0.0-alpha-5020120260710001': + resolution: {integrity: sha512-9awppRC9Mj9rpCLVNA5tR5qvyj3cui7CKzMhdn32haDA5MQb3JzWJvoUA1byjvbsaVahDrkCy9+68ltf9QLnyA==} + + '@dcloudio/uni-stat@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-DrnysOch1gOA8WZYLJA3OXMcdAT+h0vIP9hvWM7k1hjDUngb1DgWNo2N4E/Pc+3FFnQNnfORGTN+M4ti3edDkQ==} '@dcloudio/uni-ui@1.5.12': resolution: {integrity: sha512-mGDl2OZSz7D8xcUAzJegWDHOqB4MEFBSW9Esb/oJiu2/3Gk9+P/Z4bA4JZ9jv9VWBYbMrYwaTfK1Z728kABdYg==} - '@dcloudio/vite-plugin-uni@3.0.0-alpha-5020120260706001': - resolution: {integrity: sha512-2tAFkY/n8t8ig+ynhzP0ySmHXJI3+IgDgKvGe7YzzyiGBWk6dEVbHE7sg9Qb9wB8Kl9Idsi1KoNI+KRMylLf1w==} + '@dcloudio/vite-plugin-uni@3.0.0-alpha-5010220260604001': + resolution: {integrity: sha512-CTCiWuXID6eRSzX+XHK0ZfsO9XjK9EQRr0tfisbfiPv1+HABZsGaxOaLOKzRxrDhdqBTBr5L8ahEtcPJ2HWdVQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -953,10 +993,6 @@ packages: '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - '@jridgewell/remapping@2.3.5': resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} @@ -964,22 +1000,9 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.11': resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@jridgewell/sourcemap-codec@1.4.10': - resolution: {integrity: sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==} - - '@jridgewell/sourcemap-codec@1.4.14': - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -1283,32 +1306,24 @@ packages: '@vue/compiler-core@3.4.21': resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} - '@vue/compiler-core@3.5.30': - resolution: {integrity: sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==} - '@vue/compiler-core@3.5.39': resolution: {integrity: sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==} '@vue/compiler-dom@3.4.21': resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} - '@vue/compiler-dom@3.5.30': - resolution: {integrity: sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==} - '@vue/compiler-dom@3.5.39': resolution: {integrity: sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==} '@vue/compiler-sfc@3.4.21': resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} - '@vue/compiler-sfc@3.5.30': - resolution: {integrity: sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==} - '@vue/compiler-ssr@3.4.21': resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} - '@vue/compiler-ssr@3.5.30': - resolution: {integrity: sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==} + '@vue/consolidate@1.0.0': + resolution: {integrity: sha512-oTyUE+QHIzLw2PpV14GD/c7EohDyP64xCniWTcqcEmTd699eFqTIwOmtDYjcO1j3QgdXoJEoWv1/cCdLrRoOfg==} + engines: {node: '>= 0.12.0'} '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -1316,31 +1331,23 @@ packages: '@vue/language-core@3.3.7': resolution: {integrity: sha512-LzmkKinXAMMoh8Jfi/jMUSDUjuPdv8mynH5WJGKfXyZtDw3hQ6GBaoI6Bcnl/Xqlu32q/0Z6i/trp4VXykzyLw==} - '@vue/reactivity@3.5.30': - resolution: {integrity: sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==} + '@vue/reactivity@3.4.21': + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} - '@vue/runtime-core@3.5.30': - resolution: {integrity: sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==} + '@vue/runtime-core@3.4.21': + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} - '@vue/runtime-dom@3.5.30': - resolution: {integrity: sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==} + '@vue/runtime-dom@3.4.21': + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} '@vue/server-renderer@3.4.21': resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} peerDependencies: vue: 3.4.21 - '@vue/server-renderer@3.5.30': - resolution: {integrity: sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==} - peerDependencies: - vue: 3.5.30 - '@vue/shared@3.4.21': resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} - '@vue/shared@3.5.30': - resolution: {integrity: sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==} - '@vue/shared@3.5.39': resolution: {integrity: sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==} @@ -1486,10 +1493,6 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} - content-type@1.0.4: - resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} - engines: {node: '>= 0.6'} - content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -1828,6 +1831,9 @@ packages: resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} engines: {node: '>=8'} + licia@1.41.1: + resolution: {integrity: sha512-XqObV8u1KEMdYWaNK0leRrTwhzKnLQEkhbnuUu7qGNH3zJoN7l9sfvF6PfHstSCuUOmpEP+0SBjRrk0I9uZs8g==} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -1857,6 +1863,9 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lxgw-wenkai-tc-webfont@1.2.0: + resolution: {integrity: sha512-e8bBix+1V/18FmZVMBlSqbOMKACisW9Xnyq1C+CNqd9L5VEwfW8JuG4/i5bsr9pFmrXnfjX8WZYu28lyjwh09A==} + magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} @@ -1893,18 +1902,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.40.0: - resolution: {integrity: sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==} - engines: {node: '>= 0.6'} - mime-db@1.51.0: resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} engines: {node: '>= 0.6'} - mime-types@2.1.24: - resolution: {integrity: sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==} - engines: {node: '>= 0.6'} - mime-types@2.1.34: resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} engines: {node: '>= 0.6'} @@ -2321,18 +2322,10 @@ packages: '@vueuse/core': optional: true - unplugin-utils@0.2.3: - resolution: {integrity: sha512-unB2e2ogZwEoMw/X0Gq1vj2jaRKLmTh9wcSEJggESPllcrZI68uO7B8ykixbXqsSwG8r9T7qaHZudXIC/3qvhw==} - engines: {node: '>=18.12.0'} - unplugin-utils@0.2.4: resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} engines: {node: '>=18.12.0'} - unplugin@2.1.2: - resolution: {integrity: sha512-Q3LU0e4zxKfRko1wMV2HmP8lB9KWislY7hxXpxd+lGx0PRInE4vhMBVEZwpdVYHvtqzhSrzuIfErsob6bQfCzw==} - engines: {node: '>=18.12.0'} - unplugin@2.2.0: resolution: {integrity: sha512-m1ekpSwuOT5hxkJeZGRxO7gXbXT3gF26NjQ7GdVHoLoF8/nopLcd/QfPigpCy7i51oFHiRJg/CyHhj4vs2+KGw==} engines: {node: '>=18.12.0'} @@ -2399,8 +2392,8 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue@3.5.30: - resolution: {integrity: sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==} + vue@3.4.21: + resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2428,13 +2421,13 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.31 '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.25.9 - picocolors: 1.1.0 + picocolors: 1.1.1 '@babel/code-frame@7.29.7': dependencies: @@ -2457,7 +2450,7 @@ snapshots: '@babel/traverse': 7.29.7 '@babel/types': 7.29.7 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2477,7 +2470,7 @@ snapshots: '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2646,7 +2639,7 @@ snapshots: '@babel/helper-validator-identifier': 7.29.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.1.0 + picocolors: 1.1.1 '@babel/parser@7.25.6': dependencies: @@ -3196,7 +3189,7 @@ snapshots: '@babel/parser': 7.29.7 '@babel/template': 7.29.7 '@babel/types': 7.29.7 - debug: 4.3.7 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -3213,16 +3206,95 @@ snapshots: '@dcloudio/types@3.4.31': {} - '@dcloudio/uni-app@3.0.0-alpha-5020120260706001(@dcloudio/types@3.4.31)(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-app-plus@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-app-uts': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-app-vite': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-app-vue': 3.0.0-alpha-5010220260604001 + debug: 4.3.7 + fs-extra: 10.1.0 + licia: 1.41.1 + postcss-selector-parser: 6.1.2 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vite + - vue + + '@dcloudio/uni-app-uts@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-console': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-i18n': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-nvue-styler': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.31 + '@rollup/pluginutils': 5.1.0(rollup@4.62.2) + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/consolidate': 1.0.0 + '@vue/shared': 3.4.21 + debug: 4.3.7 + es-module-lexer: 1.5.4 + estree-walker: 2.0.2 + fast-glob: 3.3.3 + fs-extra: 10.1.0 + magic-string: 0.30.11 + picocolors: 1.1.0 + source-map-js: 1.2.1 + unimport: 4.1.1 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-app-vite@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-i18n': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-nvue-styler': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 + '@rollup/pluginutils': 5.1.0(rollup@4.62.2) + '@vitejs/plugin-vue': 5.2.4(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + debug: 4.3.7 + fs-extra: 10.1.0 + picocolors: 1.1.0 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vite + - vue + + '@dcloudio/uni-app-vue@3.0.0-alpha-5010220260604001': {} + + '@dcloudio/uni-app@3.0.0-alpha-5010220260604001(@dcloudio/types@3.4.31)(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': dependencies: '@dcloudio/types': 3.4.31 - '@dcloudio/uni-cloud': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-components': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-console': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-i18n': 3.0.0-alpha-5020120260706001 - '@dcloudio/uni-push': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 - '@dcloudio/uni-stat': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) + '@dcloudio/uni-cloud': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-components': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-console': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-i18n': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-push': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-stat': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) '@vue/shared': 3.4.21 transitivePeerDependencies: - '@nuxt/kit' @@ -3234,16 +3306,16 @@ snapshots: - vite - vue - '@dcloudio/uni-cli-shared@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-cli-shared@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3))': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 '@babel/core': 7.25.2 '@babel/parser': 7.25.6 '@babel/types': 7.25.6 - '@dcloudio/uni-i18n': 3.0.0-alpha-5020120260706001 - '@dcloudio/uni-nvue-styler': 3.0.0-alpha-5020120260706001 - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 + '@dcloudio/uni-i18n': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-nvue-styler': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 '@intlify/core-base': 9.1.9 '@intlify/shared': 9.1.9 '@intlify/vue-devtools': 9.1.9 @@ -3252,7 +3324,7 @@ snapshots: '@vue/compiler-dom': 3.4.21 '@vue/compiler-sfc': 3.4.21 '@vue/compiler-ssr': 3.4.21 - '@vue/server-renderer': 3.4.21(vue@3.5.30(typescript@5.9.3)) + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) '@vue/shared': 3.4.21 adm-zip: 0.5.16 autoprefixer: 10.4.20(postcss@8.5.17) @@ -3296,11 +3368,73 @@ snapshots: - ts-node - vue - '@dcloudio/uni-cloud@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-cli-shared@3.0.0-alpha-5020120260710001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3))': dependencies: - '@dcloudio/uni-cli-shared': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-i18n': 3.0.0-alpha-5020120260706001 - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/core': 7.25.2 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 + '@dcloudio/uni-i18n': 3.0.0-alpha-5020120260710001 + '@dcloudio/uni-nvue-styler': 3.0.0-alpha-5020120260710001 + '@dcloudio/uni-shared': 3.0.0-alpha-5020120260710001 + '@intlify/core-base': 9.1.9 + '@intlify/shared': 9.1.9 + '@intlify/vue-devtools': 9.1.9 + '@rollup/pluginutils': 5.1.0(rollup@4.62.2) + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) + '@vue/shared': 3.4.21 + adm-zip: 0.5.16 + autoprefixer: 10.4.20(postcss@8.5.17) + base64url: 3.0.1 + chokidar: 3.6.0 + compare-versions: 3.6.0 + debug: 4.3.7 + entities: 7.0.1 + es-module-lexer: 1.5.4 + esbuild: 0.20.2 + estree-walker: 2.0.2 + fast-glob: 3.3.3 + fs-extra: 10.1.0 + hash-sum: 2.0.0 + isbinaryfile: 5.0.2 + jsonc-parser: 3.3.1 + lines-and-columns: 2.0.4 + magic-string: 0.30.11 + merge: 2.1.1 + mime: 3.0.0 + module-alias: 2.2.3 + os-locale-s-fix: 1.0.8-fix-1 + picocolors: 1.1.0 + postcss-import: 14.1.0(postcss@8.5.17) + postcss-load-config: 3.1.4(postcss@8.5.17) + postcss-modules: 4.3.0(postcss@8.5.17) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + source-map-js: 1.2.1 + tapable: 2.3.3 + tinycolor2: 1.6.0 + unimport: 4.1.1 + unplugin-auto-import: 19.1.0 + xregexp: 5.1.2 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-cloud@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-i18n': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 '@vue/shared': 3.4.21 fast-glob: 3.3.3 transitivePeerDependencies: @@ -3312,11 +3446,11 @@ snapshots: - ts-node - vue - '@dcloudio/uni-components@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-components@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': dependencies: - '@dcloudio/uni-cloud': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-h5': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-i18n': 3.0.0-alpha-5020120260706001 + '@dcloudio/uni-cloud': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-h5': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-i18n': 3.0.0-alpha-5010220260604001 transitivePeerDependencies: - '@nuxt/kit' - '@vueuse/core' @@ -3327,9 +3461,9 @@ snapshots: - vite - vue - '@dcloudio/uni-console@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-console@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3))': dependencies: - '@dcloudio/uni-cli-shared': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) fs-extra: 10.1.0 transitivePeerDependencies: - '@nuxt/kit' @@ -3340,15 +3474,15 @@ snapshots: - ts-node - vue - '@dcloudio/uni-h5-vite@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-h5-vite@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': dependencies: - '@dcloudio/uni-cli-shared': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 '@rollup/pluginutils': 5.1.0(rollup@4.62.2) '@vitejs/plugin-basic-ssl': 1.2.0(vite@5.2.8(sass@1.101.0)(terser@5.49.0)) '@vue/compiler-dom': 3.4.21 '@vue/compiler-sfc': 3.4.21 - '@vue/server-renderer': 3.4.21(vue@3.5.30(typescript@5.9.3)) + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) '@vue/shared': 3.4.21 debug: 4.3.7 fs-extra: 10.1.0 @@ -3364,26 +3498,57 @@ snapshots: - vite - vue - '@dcloudio/uni-h5-vue@3.0.0-alpha-5020120260706001(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-h5-vite@3.0.0-alpha-5020120260710001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': dependencies: - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 - '@vue/server-renderer': 3.4.21(vue@3.5.30(typescript@5.9.3)) + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5020120260710001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-shared': 3.0.0-alpha-5020120260710001 + '@rollup/pluginutils': 5.1.0(rollup@4.62.2) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@5.2.8(sass@1.101.0)(terser@5.49.0)) + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) + '@vue/shared': 3.4.21 + debug: 4.3.7 + fs-extra: 10.1.0 + mime: 3.0.0 + module-alias: 2.2.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vite + - vue + + '@dcloudio/uni-h5-vue@3.0.0-alpha-5010220260604001(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) transitivePeerDependencies: - vue - '@dcloudio/uni-h5@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-h5-vue@3.0.0-alpha-5020120260710001(vue@3.4.21(typescript@5.9.3))': dependencies: - '@dcloudio/uni-h5-vite': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-h5-vue': 3.0.0-alpha-5020120260706001(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-i18n': 3.0.0-alpha-5020120260706001 - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 - '@vue/server-renderer': 3.4.21(vue@3.5.30(typescript@5.9.3)) + '@dcloudio/uni-shared': 3.0.0-alpha-5020120260710001 + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) + transitivePeerDependencies: + - vue + + '@dcloudio/uni-h5@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-h5-vite': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-h5-vue': 3.0.0-alpha-5010220260604001(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-i18n': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) '@vue/shared': 3.4.21 debug: 4.3.7 localstorage-polyfill: 1.0.1 postcss-selector-parser: 6.1.2 safe-area-insets: 1.4.1 - vue-router: 4.4.4(vue@3.5.30(typescript@5.9.3)) + vue-router: 4.4.4(vue@3.4.21(typescript@5.9.3)) xmlhttprequest: 1.8.0 transitivePeerDependencies: - '@nuxt/kit' @@ -3395,18 +3560,51 @@ snapshots: - vite - vue - '@dcloudio/uni-i18n@3.0.0-alpha-5020120260706001': {} + '@dcloudio/uni-h5@3.0.0-alpha-5020120260710001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-h5-vite': 3.0.0-alpha-5020120260710001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-h5-vue': 3.0.0-alpha-5020120260710001(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-i18n': 3.0.0-alpha-5020120260710001 + '@dcloudio/uni-shared': 3.0.0-alpha-5020120260710001 + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) + '@vue/shared': 3.4.21 + debug: 4.3.7 + localstorage-polyfill: 1.0.1 + postcss-selector-parser: 6.1.2 + safe-area-insets: 1.4.1 + vue-router: 4.4.4(vue@3.4.21(typescript@5.9.3)) + xmlhttprequest: 1.8.0 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vite + - vue - '@dcloudio/uni-nvue-styler@3.0.0-alpha-5020120260706001': + '@dcloudio/uni-i18n@3.0.0-alpha-5010220260604001': {} + + '@dcloudio/uni-i18n@3.0.0-alpha-5020120260710001': {} + + '@dcloudio/uni-nvue-styler@3.0.0-alpha-5010220260604001': dependencies: '@vue/shared': 3.4.21 parse-css-font: 4.0.0 postcss: 8.5.6 tinycolor2: 1.6.0 - '@dcloudio/uni-push@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-nvue-styler@3.0.0-alpha-5020120260710001': dependencies: - '@dcloudio/uni-cli-shared': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) + '@vue/shared': 3.4.21 + parse-css-font: 4.0.0 + postcss: 8.5.6 + tinycolor2: 1.6.0 + + '@dcloudio/uni-push@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) transitivePeerDependencies: - '@nuxt/kit' - '@vueuse/core' @@ -3416,14 +3614,18 @@ snapshots: - ts-node - vue - '@dcloudio/uni-shared@3.0.0-alpha-5020120260706001': + '@dcloudio/uni-shared@3.0.0-alpha-5010220260604001': dependencies: '@vue/shared': 3.4.21 - '@dcloudio/uni-stat@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/uni-shared@3.0.0-alpha-5020120260710001': dependencies: - '@dcloudio/uni-cli-shared': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 + '@vue/shared': 3.4.21 + + '@dcloudio/uni-stat@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 debug: 4.3.7 transitivePeerDependencies: - '@nuxt/kit' @@ -3436,26 +3638,24 @@ snapshots: '@dcloudio/uni-ui@1.5.12': {} - '@dcloudio/vite-plugin-uni@3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3))': + '@dcloudio/vite-plugin-uni@3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.25.2) - '@babel/types': 7.25.6 - '@dcloudio/uni-cli-shared': 3.0.0-alpha-5020120260706001(postcss@8.5.17)(rollup@4.62.2)(vue@3.5.30(typescript@5.9.3)) - '@dcloudio/uni-nvue-styler': 3.0.0-alpha-5020120260706001 - '@dcloudio/uni-shared': 3.0.0-alpha-5020120260706001 + '@dcloudio/uni-cli-shared': 3.0.0-alpha-5010220260604001(postcss@8.5.17)(rollup@4.62.2)(vue@3.4.21(typescript@5.9.3)) + '@dcloudio/uni-nvue-styler': 3.0.0-alpha-5010220260604001 + '@dcloudio/uni-shared': 3.0.0-alpha-5010220260604001 '@rollup/pluginutils': 5.1.0(rollup@4.62.2) '@vitejs/plugin-legacy': 5.3.2(terser@5.49.0)(vite@5.2.8(sass@1.101.0)(terser@5.49.0)) - '@vitejs/plugin-vue': 5.2.4(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3)) + '@vitejs/plugin-vue': 5.2.4(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3)) '@vue/compiler-core': 3.4.21 '@vue/compiler-dom': 3.4.21 '@vue/compiler-sfc': 3.4.21 '@vue/shared': 3.4.21 cac: 6.7.9 debug: 4.3.7 - es-module-lexer: 1.5.4 estree-walker: 2.0.2 express: 4.20.0 fast-glob: 3.3.3 @@ -3464,7 +3664,6 @@ snapshots: jsonc-parser: 3.3.1 magic-string: 0.30.11 picocolors: 1.1.0 - source-map-js: 1.2.1 terser: 5.49.0 unplugin-auto-import: 19.1.0 vite: 5.2.8(sass@1.101.0)(terser@5.49.0) @@ -3652,41 +3851,27 @@ snapshots: '@jridgewell/gen-mapping@0.3.12': dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.10 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.11': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/sourcemap-codec@1.4.10': {} - - '@jridgewell/sourcemap-codec@1.4.14': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/sourcemap-codec': 1.5.5 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -3857,7 +4042,7 @@ snapshots: browserslist: 4.28.6 browserslist-to-esbuild: 2.1.1(browserslist@4.28.6) core-js: 3.49.0 - magic-string: 0.30.11 + magic-string: 0.30.21 regenerator-runtime: 0.14.1 systemjs: 6.15.1 terser: 5.49.0 @@ -3865,20 +4050,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': dependencies: '@babel/core': 7.29.7 '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.29.7) vite: 5.2.8(sass@1.101.0)(terser@5.49.0) - vue: 3.5.30(typescript@5.9.3) + vue: 3.4.21(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.5.30(typescript@5.9.3))': + '@vitejs/plugin-vue@5.2.4(vite@5.2.8(sass@1.101.0)(terser@5.49.0))(vue@3.4.21(typescript@5.9.3))': dependencies: vite: 5.2.8(sass@1.101.0)(terser@5.49.0) - vue: 3.5.30(typescript@5.9.3) + vue: 3.4.21(typescript@5.9.3) '@volar/language-core@2.4.28': dependencies: @@ -3917,14 +4102,6 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@3.5.30': - dependencies: - '@babel/parser': 7.29.7 - '@vue/shared': 3.5.30 - entities: 7.0.1 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-core@3.5.39': dependencies: '@babel/parser': 7.29.7 @@ -3938,11 +4115,6 @@ snapshots: '@vue/compiler-core': 3.4.21 '@vue/shared': 3.4.21 - '@vue/compiler-dom@3.5.30': - dependencies: - '@vue/compiler-core': 3.5.30 - '@vue/shared': 3.5.30 - '@vue/compiler-dom@3.5.39': dependencies: '@vue/compiler-core': 3.5.39 @@ -3956,18 +4128,6 @@ snapshots: '@vue/compiler-ssr': 3.4.21 '@vue/shared': 3.4.21 estree-walker: 2.0.2 - magic-string: 0.30.11 - postcss: 8.5.17 - source-map-js: 1.2.1 - - '@vue/compiler-sfc@3.5.30': - dependencies: - '@babel/parser': 7.29.7 - '@vue/compiler-core': 3.5.30 - '@vue/compiler-dom': 3.5.30 - '@vue/compiler-ssr': 3.5.30 - '@vue/shared': 3.5.30 - estree-walker: 2.0.2 magic-string: 0.30.21 postcss: 8.5.17 source-map-js: 1.2.1 @@ -3977,10 +4137,7 @@ snapshots: '@vue/compiler-dom': 3.4.21 '@vue/shared': 3.4.21 - '@vue/compiler-ssr@3.5.30': - dependencies: - '@vue/compiler-dom': 3.5.30 - '@vue/shared': 3.5.30 + '@vue/consolidate@1.0.0': {} '@vue/devtools-api@6.6.4': {} @@ -3994,38 +4151,29 @@ snapshots: path-browserify: 1.0.1 picomatch: 4.0.5 - '@vue/reactivity@3.5.30': + '@vue/reactivity@3.4.21': dependencies: - '@vue/shared': 3.5.30 + '@vue/shared': 3.4.21 - '@vue/runtime-core@3.5.30': + '@vue/runtime-core@3.4.21': dependencies: - '@vue/reactivity': 3.5.30 - '@vue/shared': 3.5.30 + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 - '@vue/runtime-dom@3.5.30': + '@vue/runtime-dom@3.4.21': dependencies: - '@vue/reactivity': 3.5.30 - '@vue/runtime-core': 3.5.30 - '@vue/shared': 3.5.30 + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 csstype: 3.2.3 - '@vue/server-renderer@3.4.21(vue@3.5.30(typescript@5.9.3))': + '@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.4.21 '@vue/shared': 3.4.21 - vue: 3.5.30(typescript@5.9.3) - - '@vue/server-renderer@3.5.30(vue@3.5.30(typescript@5.9.3))': - dependencies: - '@vue/compiler-ssr': 3.5.30 - '@vue/shared': 3.5.30 - vue: 3.5.30(typescript@5.9.3) + vue: 3.4.21(typescript@5.9.3) '@vue/shared@3.4.21': {} - '@vue/shared@3.5.30': {} - '@vue/shared@3.5.39': {} accepts@1.3.8: @@ -4056,7 +4204,7 @@ snapshots: caniuse-lite: 1.0.30001805 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.1.0 + picocolors: 1.1.1 postcss: 8.5.17 postcss-value-parser: 4.2.0 @@ -4184,8 +4332,6 @@ snapshots: dependencies: safe-buffer: 5.2.1 - content-type@1.0.4: {} - content-type@1.0.5: {} convert-source-map@2.0.0: {} @@ -4341,7 +4487,7 @@ snapshots: array-flatten: 1.1.1 body-parser: 1.20.3 content-disposition: 0.5.4 - content-type: 1.0.4 + content-type: 1.0.5 cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 @@ -4526,6 +4672,8 @@ snapshots: dependencies: invert-kv: 3.0.1 + licia@1.41.1: {} + lilconfig@2.1.0: {} lines-and-columns@2.0.4: {} @@ -4548,9 +4696,11 @@ snapshots: dependencies: yallist: 3.1.1 + lxgw-wenkai-tc-webfont@1.2.0: {} + magic-string@0.30.11: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 magic-string@0.30.21: dependencies: @@ -4575,14 +4725,8 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 - mime-db@1.40.0: {} - mime-db@1.51.0: {} - mime-types@2.1.24: - dependencies: - mime-db: 1.40.0 - mime-types@2.1.34: dependencies: mime-db: 1.51.0 @@ -4993,7 +5137,7 @@ snapshots: type-is@1.6.18: dependencies: media-typer: 0.3.0 - mime-types: 2.1.24 + mime-types: 2.1.34 typescript@5.9.3: {} @@ -5024,8 +5168,8 @@ snapshots: pkg-types: 1.3.1 scule: 1.3.0 strip-literal: 3.1.0 - unplugin: 2.1.2 - unplugin-utils: 0.2.3 + unplugin: 2.2.0 + unplugin-utils: 0.2.4 universalify@2.0.1: {} @@ -5040,21 +5184,11 @@ snapshots: unplugin: 2.2.0 unplugin-utils: 0.2.4 - unplugin-utils@0.2.3: - dependencies: - pathe: 2.0.3 - picomatch: 4.0.5 - unplugin-utils@0.2.4: dependencies: pathe: 2.0.3 picomatch: 4.0.5 - unplugin@2.1.2: - dependencies: - acorn: 8.17.0 - webpack-virtual-modules: 0.6.2 - unplugin@2.2.0: dependencies: acorn: 8.17.0 @@ -5086,10 +5220,10 @@ snapshots: vscode-uri@3.1.0: {} - vue-router@4.4.4(vue@3.5.30(typescript@5.9.3)): + vue-router@4.4.4(vue@3.4.21(typescript@5.9.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.30(typescript@5.9.3) + vue: 3.4.21(typescript@5.9.3) vue-tsc@3.3.7(typescript@5.9.3): dependencies: @@ -5097,13 +5231,13 @@ snapshots: '@vue/language-core': 3.3.7 typescript: 5.9.3 - vue@3.5.30(typescript@5.9.3): + vue@3.4.21(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.30 - '@vue/compiler-sfc': 3.5.30 - '@vue/runtime-dom': 3.5.30 - '@vue/server-renderer': 3.5.30(vue@3.5.30(typescript@5.9.3)) - '@vue/shared': 3.5.30 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/runtime-dom': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.9.3)) + '@vue/shared': 3.4.21 optionalDependencies: typescript: 5.9.3 diff --git a/mobile-uni/src/services/auth.ts b/mobile-uni/src/services/auth.ts index 37c17edb..2fee4997 100644 --- a/mobile-uni/src/services/auth.ts +++ b/mobile-uni/src/services/auth.ts @@ -34,37 +34,37 @@ const positionProfiles: Record = { 生活顾问: { value: '生活顾问', heroTitle: '客服管家', - quickQuestions: ['催费话术', '投诉应对', '收费标准'], + quickQuestions: ['催费话术怎么说', '投诉怎么应对', '收费标准是什么'], tip: '接待客户三步法:听清诉求 → 共情理解 → 解决闭环' }, 保安: { value: '保安', heroTitle: '秩序岗', - quickQuestions: ['门岗核验', '巡逻异常', '车辆指引'], + quickQuestions: ['门岗怎么核验', '巡逻发现异常怎么办', '车辆怎么指引'], tip: '今日小贴士:异常先确认人车物,再登记,再同步主管。' }, 保洁: { value: '保洁', heroTitle: '环境岗', - quickQuestions: ['公区清洁', '垃圾分类', '消杀标准'], + quickQuestions: ['公区清洁怎么做', '垃圾怎么分类', '消杀标准是什么'], tip: '今日小贴士:高频区域先看地面、扶手、电梯按钮。' }, 保修: { value: '保修', heroTitle: '工程维修', - quickQuestions: ['报修接单', '上门话术', '安全检查'], + quickQuestions: ['报修怎么接单', '上门话术怎么说', '安全检查怎么做'], tip: '今日小贴士:上门前确认故障、工具、预约时间。' }, 客服: { value: '客服', heroTitle: '服务前台', - quickQuestions: ['来访接待', '投诉登记', '工单跟进'], + quickQuestions: ['来访怎么接待', '投诉怎么登记', '工单怎么跟进'], tip: '今日小贴士:复杂诉求先复述确认,再记录责任人与时限。' }, 主管: { value: '主管', heroTitle: '项目管理', - quickQuestions: ['团队沟通', '现场协调', '投诉复盘'], + quickQuestions: ['团队怎么沟通', '现场怎么协调', '投诉怎么复盘'], tip: '今日小贴士:先确认事实与责任人,再明确动作、时限和复盘节点。' } }; diff --git a/mobile-uni/src/services/mpeg-audio-duration.ts b/mobile-uni/src/services/mpeg-audio-duration.ts new file mode 100644 index 00000000..fae61d29 --- /dev/null +++ b/mobile-uni/src/services/mpeg-audio-duration.ts @@ -0,0 +1,94 @@ +/** + * 从 MP3 字节流数出时长,不依赖任何宿主音频 API。 + * + * 起因:`measureAudioDuration` 用浏览器的 `Audio` 构造器探测元数据,而 + * App-Plus 的逻辑层是 JsCore 而非 webview,`typeof Audio === 'undefined'` + * 直接成立,于是 App 上语音条永远拿不到秒数,退化成「语音」二字。 + * + * 逐帧累加而不是用 `字节数 / 比特率` 估算:后者只在 CBR 下准确,VBR 会偏。 + */ + +/** kbps。索引 [是否 MPEG1][bitrateIndex],Layer III 专用。 */ +const LAYER3_BITRATES = { + mpeg1: [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0], + mpeg2: [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0] +} as const; + +/** Hz。索引 [versionBits][sampleRateIndex]。 */ +const SAMPLE_RATES: Record = { + 3: [44100, 48000, 32000], // MPEG1 + 2: [22050, 24000, 16000], // MPEG2 + 0: [11025, 12000, 8000] // MPEG2.5 +}; + +/** Layer III 每帧采样数:MPEG1 为 1152,MPEG2/2.5 减半。 */ +const samplesPerFrame = (isMpeg1: boolean) => (isMpeg1 ? 1152 : 576); + +/** ID3v2 头长 10 字节,尺寸是 4 个 synchsafe 字节(每字节仅低 7 位有效)。 */ +const id3v2Length = (bytes: Uint8Array): number => { + if (bytes.length < 10) return 0; + if (bytes[0] !== 0x49 || bytes[1] !== 0x44 || bytes[2] !== 0x33) return 0; + const size = ((bytes[6] & 0x7f) << 21) | ((bytes[7] & 0x7f) << 14) | ((bytes[8] & 0x7f) << 7) | (bytes[9] & 0x7f); + const footer = (bytes[5] & 0x10) !== 0 ? 10 : 0; + return 10 + size + footer; +}; + +interface Frame { + length: number; + seconds: number; +} + +/** 解析一个帧头;不是合法 Layer III 帧头时返回 null。 */ +const readFrame = (bytes: Uint8Array, at: number): Frame | null => { + if (at + 4 > bytes.length) return null; + // 11 位帧同步 + if (bytes[at] !== 0xff || (bytes[at + 1] & 0xe0) !== 0xe0) return null; + + const versionBits = (bytes[at + 1] >> 3) & 0x03; + if (versionBits === 1) return null; // 保留值 + const layerBits = (bytes[at + 1] >> 1) & 0x03; + if (layerBits !== 1) return null; // 只处理 Layer III + + const bitrateIndex = (bytes[at + 2] >> 4) & 0x0f; + const sampleRateIndex = (bytes[at + 2] >> 2) & 0x03; + if (sampleRateIndex === 3) return null; + + const isMpeg1 = versionBits === 3; + const bitrate = (isMpeg1 ? LAYER3_BITRATES.mpeg1 : LAYER3_BITRATES.mpeg2)[bitrateIndex]; + const sampleRate = SAMPLE_RATES[versionBits]?.[sampleRateIndex]; + if (!bitrate || !sampleRate) return null; // free-format / 保留值 + + const samples = samplesPerFrame(isMpeg1); + const padding = (bytes[at + 2] >> 1) & 0x01; + const length = Math.floor((samples / 8) * bitrate * 1000 / sampleRate) + padding; + if (length <= 4) return null; + return { length, seconds: samples / sampleRate }; +}; + +/** + * 累加所有帧得到秒数;一个合法帧都找不到时返回 null。 + * + * 首帧通常是 Xing/LAME 信息帧,它本身也是合法音频帧,计入只多约 24ms, + * 不足以影响向上取整后的展示值,因此不做特殊剔除。 + */ +export const estimateMpegAudioDuration = (bytes: Uint8Array): number | null => { + let at = id3v2Length(bytes); + let seconds = 0; + let frames = 0; + + while (at < bytes.length) { + const frame = readFrame(bytes, at); + if (frame) { + seconds += frame.seconds; + frames += 1; + at += frame.length; + continue; + } + // 遇到 ID3v1 尾标或其它非帧数据就停,不再向后重新找同步字, + // 免得把任意 0xff 字节误判成帧头而虚增时长。 + if (frames > 0) break; + at += 1; + } + + return frames > 0 && seconds > 0 ? seconds : null; +}; diff --git a/mobile-uni/src/services/speech.ts b/mobile-uni/src/services/speech.ts index 47bece63..9135897a 100644 --- a/mobile-uni/src/services/speech.ts +++ b/mobile-uni/src/services/speech.ts @@ -2,7 +2,8 @@ import type { AsrResponse, PracticeTtsContext, SpeechPlaybackStatus, SpeechSelec import { apiRequest, apiUrl, authHeaders, readTextPayload } from './api'; import { getAuth } from './auth'; import type { SpeechCapture } from './speech-capture'; -import { dataUriToBlobUrl, hasNativeAudioFileSupport, isDataAudioUri, removeNativeTempAudio, writeNativeTempAudio } from './speech-audio-source'; +import { estimateMpegAudioDuration } from './mpeg-audio-duration'; +import { dataUriToBlobUrl, decodeDataAudioUri, hasNativeAudioFileSupport, isDataAudioUri, removeNativeTempAudio, writeNativeTempAudio } from './speech-audio-source'; import { applyTtsVoicePreference, getTtsDialectPreference, getTtsVoicePreference } from './tts-voice-preference'; const audioExtensions = ['.mp3', '.wav', '.m4a', '.webm', '.aac', '.ogg']; @@ -344,8 +345,28 @@ export const createSpeechPlaybackController = ( return { toggle, stop, destroy, preload }; }; +/** + * data: URI 直接数帧,不经宿主音频 API。 + * + * App-Plus 的逻辑层是 JsCore,没有 `Audio`,原先在这里直接返回 null, + * 导致语音条只显示「语音」而没有秒数。字节解析在 H5 上同样可用且更快, + * 所以两端都优先走它,`Audio` 只作为远端 URL 的兜底。 + */ +const measureFromBytes = (source: string): number | null => { + if (!isDataAudioUri(source)) return null; + const decoded = decodeDataAudioUri(source); + if (!decoded) return null; + const seconds = estimateMpegAudioDuration(decoded.bytes); + return seconds ? Math.max(1, Math.round(seconds)) : null; +}; + export const measureAudioDuration = (source: string): Promise => new Promise((resolve) => { + const fromBytes = measureFromBytes(source); + if (fromBytes !== null) { + resolve(fromBytes); + return; + } if (typeof Audio === 'undefined') { resolve(null); return; diff --git a/mobile-uni/src/services/tts-voice-preference.ts b/mobile-uni/src/services/tts-voice-preference.ts index 4ad17cc6..1befb48c 100644 --- a/mobile-uni/src/services/tts-voice-preference.ts +++ b/mobile-uni/src/services/tts-voice-preference.ts @@ -5,7 +5,15 @@ export const qwenTtsVoiceOptions = [ { value: 'longanhuan_v3.6', label: '龙安欢 · 中文女声' }, { value: 'longjielidou_v3.6', label: '龙杰力豆 · 童声' }, { value: 'loongeva_v3.6', label: 'Loongeva · 英文女声' }, - { value: 'loongjohn', label: 'loongJohn · 英文男声' } + { value: 'loongjohn', label: 'loongJohn · 英文男声' }, + { value: 'qwen-audio-3.0-tts-flash-longyingmuyu', label: '龙应沐语 · 温柔客服女声' }, + { value: 'qwen-audio-3.0-tts-flash-longyingshiyu', label: '龙应时渝 · 干练客服女声' }, + { value: 'qwen-audio-3.0-tts-flash-longchezhuyu', label: '龙澈竹雨 · 自然助手女声' }, + { value: 'qwen-audio-3.0-tts-flash-longyingyueyue', label: '龙应越越 · 耐心讲解女声' }, + { value: 'qwen-audio-3.0-tts-flash-longluxiaohui', label: '龙露潇晖 · 亲切客服男声' }, + { value: 'qwen-audio-3.0-tts-flash-longlanqinluan', label: '龙兰琴鸾 · 沉稳知性女声' }, + { value: 'qwen-audio-3.0-tts-flash-longluliuche', label: '龙露柳澈 · 新闻播报男声' }, + { value: 'qwen-audio-3.0-tts-flash-longliuxulan', label: '龙柳旭澜 · 新闻播报女声' } ] as const; export const qwenTtsDialectOptions = [ diff --git a/mobile-uni/tests/app-packaging.test.mjs b/mobile-uni/tests/app-packaging.test.mjs index ececdf51..15e34d1b 100644 --- a/mobile-uni/tests/app-packaging.test.mjs +++ b/mobile-uni/tests/app-packaging.test.mjs @@ -7,6 +7,7 @@ import { dirname, resolve } from 'node:path'; const mobileRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..'); const readJson = async (path) => JSON.parse(await readFile(new URL(path, import.meta.url), 'utf8')); +const hbuilderx515AppCompiler = '3.0.0-alpha-5010220260604001'; test('App 图标与启动图映射均可由预检脚本验证', () => { const output = execFileSync(process.execPath, ['scripts/verify-app-assets.mjs'], { @@ -24,6 +25,7 @@ test('App 平台编译器已声明且与其他 uni 包同版本,避免 build:a const appPlus = pkg.dependencies?.['@dcloudio/uni-app-plus']; assert.ok(appPlus, '缺少 @dcloudio/uni-app-plus,build:app 会静默产出 H5 空壳'); + assert.equal(appPlus, hbuilderx515AppCompiler, 'App 编译链必须与当前 HBuilderX 5.15 调试基座匹配'); assert.equal(appPlus, pkg.dependencies['@dcloudio/uni-app']); assert.equal(appPlus, pkg.devDependencies['@dcloudio/vite-plugin-uni']); }); diff --git a/mobile-uni/tests/mpeg-audio-duration.test.mjs b/mobile-uni/tests/mpeg-audio-duration.test.mjs new file mode 100644 index 00000000..4c679084 --- /dev/null +++ b/mobile-uni/tests/mpeg-audio-duration.test.mjs @@ -0,0 +1,110 @@ +import assert from 'node:assert/strict'; +import { readFile } from 'node:fs/promises'; +import test from 'node:test'; +import vm from 'node:vm'; +import ts from 'typescript'; + +const loadModule = async () => { + const source = await readFile(new URL('../src/services/mpeg-audio-duration.ts', import.meta.url), 'utf8'); + const compiled = ts.transpileModule(source, { + compilerOptions: { module: ts.ModuleKind.CommonJS, target: ts.ScriptTarget.ES2020 } + }); + const runtimeModule = { exports: {} }; + vm.runInNewContext(compiled.outputText, { exports: runtimeModule.exports, module: runtimeModule }); + return runtimeModule.exports; +}; + +/** + * 造一个 Layer III 帧头。默认参数对应后端 TTS 实际产物: + * MPEG2 / 24 kHz / 160 kbps / 单声道,帧长 480 字节、每帧 576 采样 = 24ms。 + */ +const frame = ({ mpeg1 = false, bitrateIndex = 14, sampleRateIndex = 1, padding = 0 } = {}) => { + const versionBits = mpeg1 ? 3 : 2; + const header = Uint8Array.from([ + 0xff, + 0xe0 | (versionBits << 3) | (1 << 1), // layer III, 无 CRC + (bitrateIndex << 4) | (sampleRateIndex << 2) | (padding << 1), + 0xc0 // 单声道 + ]); + const samples = mpeg1 ? 1152 : 576; + const bitrate = mpeg1 + ? [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0][bitrateIndex] + : [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0][bitrateIndex]; + const sampleRate = (mpeg1 ? [44100, 48000, 32000] : [22050, 24000, 16000])[sampleRateIndex]; + const length = Math.floor((samples / 8) * bitrate * 1000 / sampleRate) + padding; + // free-format(bitrate 0)算出的帧长为 0,仍要放得下 4 字节帧头供解析器判定。 + const body = new Uint8Array(Math.max(4, length)); + body.set(header); + return body; +}; + +const concat = (...chunks) => { + const total = chunks.reduce((sum, c) => sum + c.length, 0); + const out = new Uint8Array(total); + let at = 0; + for (const c of chunks) { + out.set(c, at); + at += c.length; + } + return out; +}; + +/** ID3v2 头:尺寸为 4 个 synchsafe 字节,必须被跳过才能对上首帧。 */ +const id3v2 = (payloadSize) => { + const head = new Uint8Array(10 + payloadSize); + head.set([0x49, 0x44, 0x33, 0x03, 0x00, 0x00]); + head[6] = (payloadSize >> 21) & 0x7f; + head[7] = (payloadSize >> 14) & 0x7f; + head[8] = (payloadSize >> 7) & 0x7f; + head[9] = payloadSize & 0x7f; + return head; +}; + +test('累加帧数得出时长', async () => { + const { estimateMpegAudioDuration } = await loadModule(); + const bytes = concat(...Array.from({ length: 10 }, () => frame())); + assert.equal(Number(estimateMpegAudioDuration(bytes).toFixed(3)), 0.24); +}); + +test('跳过 ID3v2 标签,不把标签字节当帧', async () => { + const { estimateMpegAudioDuration } = await loadModule(); + // 标签内塞入 0xff,若未按尺寸跳过就会被误判成帧头。 + const tag = id3v2(81); + tag.fill(0xff, 10); + const bytes = concat(tag, ...Array.from({ length: 171 }, () => frame())); + assert.equal(Number(estimateMpegAudioDuration(bytes).toFixed(3)), 4.104); +}); + +test('VBR:逐帧累加而非按首帧比特率外推', async () => { + const { estimateMpegAudioDuration } = await loadModule(); + // 帧长不同但每帧采样数相同,时长只取决于帧数。 + const bytes = concat(frame({ bitrateIndex: 14 }), frame({ bitrateIndex: 6 }), frame({ bitrateIndex: 1 })); + assert.equal(Number(estimateMpegAudioDuration(bytes).toFixed(3)), 0.072); +}); + +test('MPEG1 每帧 1152 采样', async () => { + const { estimateMpegAudioDuration } = await loadModule(); + const bytes = concat(...Array.from({ length: 5 }, () => frame({ mpeg1: true, bitrateIndex: 10, sampleRateIndex: 0 }))); + assert.equal(Number(estimateMpegAudioDuration(bytes).toFixed(4)), 0.1306); +}); + +test('padding 位计入帧长,否则后续帧全部错位', async () => { + const { estimateMpegAudioDuration } = await loadModule(); + const bytes = concat(frame({ padding: 1 }), frame(), frame()); + assert.equal(Number(estimateMpegAudioDuration(bytes).toFixed(3)), 0.072); +}); + +test('尾部非帧数据(如 ID3v1)不虚增时长', async () => { + const { estimateMpegAudioDuration } = await loadModule(); + const tail = new Uint8Array(128).fill(0xff); + const bytes = concat(frame(), frame(), tail); + assert.equal(Number(estimateMpegAudioDuration(bytes).toFixed(3)), 0.048); +}); + +test('没有任何合法帧时返回 null', async () => { + const { estimateMpegAudioDuration } = await loadModule(); + assert.equal(estimateMpegAudioDuration(new Uint8Array(0)), null); + assert.equal(estimateMpegAudioDuration(Uint8Array.from([0x00, 0x01, 0x02])), null); + // free-format(bitrateIndex 0)无法据此算帧长,应判为不可解析。 + assert.equal(estimateMpegAudioDuration(frame({ bitrateIndex: 0 })), null); +}); diff --git a/mobile-uni/tests/tts-voice-preference.test.mjs b/mobile-uni/tests/tts-voice-preference.test.mjs index a37b2ecc..79e758f2 100644 --- a/mobile-uni/tests/tts-voice-preference.test.mjs +++ b/mobile-uni/tests/tts-voice-preference.test.mjs @@ -26,10 +26,11 @@ const preferenceRuntime = async (storage = new Map()) => { test('播报音色按租户和账号隔离保存,非法值回退跟随场景', async () => { const storage = new Map(); const runtime = await preferenceRuntime(storage); + const extendedVoice = 'qwen-audio-3.0-tts-flash-longyingmuyu'; assert.equal(runtime.getTtsVoicePreference('000000', '13800000000'), ''); - assert.equal(runtime.setTtsVoicePreference('000000', '13800000000', 'longanhuan_v3.6'), 'longanhuan_v3.6'); - assert.equal(runtime.getTtsVoicePreference('000000', '13800000000'), 'longanhuan_v3.6'); + assert.equal(runtime.setTtsVoicePreference('000000', '13800000000', extendedVoice), extendedVoice); + assert.equal(runtime.getTtsVoicePreference('000000', '13800000000'), extendedVoice); assert.equal(runtime.getTtsVoicePreference('000000', '13900000000'), ''); assert.equal(runtime.setTtsVoicePreference('000000', '13800000000', 'untrusted-voice'), ''); assert.equal(runtime.setTtsDialectPreference('000000', '13800000000', 'shanghai'), 'shanghai');