@wszhoho/dsh-file-attachment 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +8 -7
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -40,7 +40,7 @@ window.__ModuleLoader__.load({
|
|
|
40
40
|
let noticeTimer = null
|
|
41
41
|
const NOTICE_MS = 4000
|
|
42
42
|
const MAX_BYTES = 50 * 1024 * 1024
|
|
43
|
-
const MAX_DIM = 640 //
|
|
43
|
+
const MAX_DIM = 640 // 图片缩放:宽或高任一边 >640 时等比缩小(GIF 例外,原样保动画)
|
|
44
44
|
// 可上传类型(三类:文档/代码/配置文件);图片恒允许(image/*)。
|
|
45
45
|
// 首启为默认值,apply/设置页 fetch 持久化配置(~/.dsh/file-attachment.json)后覆盖。
|
|
46
46
|
const DEFAULT_TYPES = {
|
|
@@ -268,7 +268,7 @@ window.__ModuleLoader__.load({
|
|
|
268
268
|
throw new Error(errMsg)
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
-
// ---- 图片处理:扩展名 / GIF 判定 / 加载 /
|
|
271
|
+
// ---- 图片处理:扩展名 / GIF 判定 / 加载 / 缩放(宽或高任一边 >MAX_DIM 时处理,GIF 原样保动画,PNG 保透明) ----
|
|
272
272
|
function fileExt(name) {
|
|
273
273
|
const s = String(name == null ? '' : name)
|
|
274
274
|
const dot = s.lastIndexOf('.')
|
|
@@ -286,7 +286,7 @@ window.__ModuleLoader__.load({
|
|
|
286
286
|
img.src = url
|
|
287
287
|
})
|
|
288
288
|
}
|
|
289
|
-
//
|
|
289
|
+
// 缩放:宽或高任一边 > maxDim 时等比缩小(两边都不超过 maxDim 时原样);返回 { data, name }(data 为 Blob/File)。
|
|
290
290
|
// GIF 原样(canvas 取首帧丢动画 + 不支持 gif 输出);PNG 输出 PNG 保透明;其余 JPEG 0.85。
|
|
291
291
|
// 缩放失败/无需缩放时回退原文件。
|
|
292
292
|
async function downscaleImage(file, maxDim) {
|
|
@@ -565,10 +565,11 @@ window.__ModuleLoader__.load({
|
|
|
565
565
|
const it = pending[i]
|
|
566
566
|
try {
|
|
567
567
|
if (it.isImage) {
|
|
568
|
-
//
|
|
569
|
-
//
|
|
570
|
-
const
|
|
571
|
-
const
|
|
568
|
+
// 图片:落盘前等比缩小(宽或高任一边 >MAX_DIM 才处理;GIF 原样保动画),
|
|
569
|
+
// 再走 @路径 纯文本 + 附件条登记(方案 B:不触发 dsh 的 image 能力检查)
|
|
570
|
+
const sized = await downscaleImage(it.file, MAX_DIM)
|
|
571
|
+
const data = sized.data
|
|
572
|
+
const name = sized.name
|
|
572
573
|
if (data === null || typeof data.size !== 'number' || data.size === 0) throw new Error('size')
|
|
573
574
|
if (data.size > MAX_BYTES) throw new Error('size')
|
|
574
575
|
const buf = await data.arrayBuffer()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wszhoho/dsh-file-attachment",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "文件附件:拖拽/粘贴/上传文件(支持多文件);图片与文档统一落盘到 .dsh-file-attachment 并以 @绝对路径 引用发送(文本模型可正常使用);输入框内联显示图片缩略图预览与文件条目,聊天区图片同样渲染为可点击放大的缩略图、文件保持芯片样式;非多模态模型下图片自动调用可配置 VLM 识别生成中文描述回填草稿;文档/代码/配置文件可上传类型可在设置页配置;支持 PC 与移动端浏览器",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dsh",
|