dsh-provider-proxy 0.6.1 → 0.8.0

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/README.md CHANGED
@@ -40,7 +40,7 @@ dsh plugin --profile web add dsh-provider-proxy
40
40
  | IP / 主机 | 只填 IPv4、IPv6 或 ASCII 域名;不要带协议前缀、端口、路径或凭据。IDN 需先转 punycode |
41
41
  | 端口 | 1–65535 的整数 |
42
42
  | 用户名 | 可选(与密码成对填写) |
43
- | 密码 | 可选(与用户名成对填写)。作为代理认证口令发给代理(`HTTP` / `HTTPS` / `SOCKS5` 均支持) |
43
+ | 密码 | 可选(与用户名成对填写)。作为代理认证口令发给代理(`HTTP` / `HTTPS` / `SOCKS5` 均支持)。默认隐藏,可用密码框内右侧的眼睛图标临时查看,切换不会改写或保存密码 |
44
44
 
45
45
  同一个代理要给多张卡片用时,只在页面顶部的 **默认代理** 区块填一次,再在每张卡片勾上 **使用默认代理**。
46
46
  勾上之后该卡片的传输字段(类型 / 主机 / 端口 / 用户名 / 密码)**整体**取自默认区块,卡片不再显示这些输入框,
@@ -64,12 +64,20 @@ Host catalog 是否列出某个 provider(`live`)不影响已保存路由的
64
64
 
65
65
  页面上的几处便利:
66
66
 
67
+ - **状态筛选标签**:卡片列表顶部提供「全部 / 走代理 / 直连 / 配置被拒」快捷筛选胶囊标签,实时统计各状态下的 provider 数量,方便运维巡检与故障排查。
68
+ - **紧凑与卡片双视图**:支持卡片视图(便于逐项配置与编辑)与紧凑视图(高密度列表呈现代理类型、端点、最近调用与自检状态),紧凑行支持点击就地展开/折叠对应卡片。
69
+ - **响应式双列表单**:端点配置(传输协议、主机、端口、用户名、密码)在卡片内采用响应式双列栅格排版,大幅缩减页面纵向高度与滚动频次。
70
+ - **一键批量自检**:搜索过滤栏右侧集成「全部测试」按钮,内置并发数为 3 的受控并发队列,批量验证所有已配置且已启用的端点,并实时显示已完成百分比进度。
71
+ - **结果一键复制**:自检回报的出口 IP、探测目标以及连接失败的错误信息旁均配有快捷复制按钮,点击即复制至剪贴板并提供微交互反馈。
72
+ - **提示文字视觉高亮**:输入框下方的辅助操作提示(如 IP 粘贴格式、认证口令说明等)采用醒目的提示色高亮显示,与常规字段标签清晰区分。
67
73
  - **过滤框**:provider 多时按 id 或名称筛掉不必看的卡片。它纯粹是视图,不写任何设置。
68
74
  - **粘贴完整代理 URL**:把 `socks5://user:pass@host:1080` 粘进任一「IP / 主机」输入框,会自动拆成
69
75
  协议 / 主机 / 端口 / 用户名 / 密码,并且是**一次**写入(不是五个字段各写一次)。显式写出的 `:80` / `:443`
70
76
  会保留;完全没写端口时保持「未配置」,不会自动补默认端口。
71
77
  - **设为默认代理**(卡片上,仅在该卡片有自己的端点时出现):把它当前的端点一次性提升为顶部的默认端点。
72
- - **所有 provider 使用默认代理**(默认区块里):一条批量写把每张卡片都指向默认端点;默认端点不可用时按钮禁用。
78
+ 如果默认端点已配置且有卡片正在继承,会先弹确认框;取消后不写入、不改草稿。
79
+ - **所有 provider 使用默认代理(N)**(默认区块里):N 是全部 provider 的数量,不受过滤框影响。
80
+ 一条批量写把每张卡片都指向默认端点;默认端点不可用时按钮禁用。
73
81
  - **最近一次调用**:卡片头上会显示「最近成功 3 分钟前」,失败时显示「最近失败 ECONNREFUSED」。
74
82
  命中计数只说明这条路由被用过,这一行说明它**现在是否还工作**。已启用但还没代理过请求的路由显示
75
83
  「尚无代理记录」;**测试按钮不计入**——它证明的是「代理这一跳通」,不是「这条路由承载过真实流量」,两者混在一起会让这一行的含义不可信。
@@ -100,6 +108,11 @@ Host catalog 是否列出某个 provider(`live`)不影响已保存路由的
100
108
  已经在 `providers` 里配过代理的条目即使暂时不激活也仍然保留,避免已保存的设置悄悄消失;
101
109
  catalog 的 `live` 只影响未配置 provider 是否出现在列表里,不参与已保存卡片的状态判定。
102
110
 
111
+ 如果 Host 目录读取成功,但某个**已保存**的 provider 完全没有出现在目录里,页面不会隐藏它,
112
+ 而是在「连接诊断」里列出这些 provider,并说明代理配置仍会保留。目录读取中或读取失败时不会显示
113
+ 这条提示,避免把所有已保存 provider 误报为缺失。`live: false` 只表示目录中存在但当前未激活,
114
+ 不算缺失。
115
+
103
116
  保存立即对新请求生效,不需要重启;正在进行中的流会继续用它启动时的那条连接。
104
117
 
105
118
  设置写入失败时,字段会回滚,并在页面顶部显示「保存失败:<字段> — <原因>」和关闭按钮;下一次成功写入或点击关闭后消失。多次失败只保留最新一条。写入成功与失败的诊断都不会包含密码值,密码字段固定显示「值已隐藏」。
@@ -199,7 +212,7 @@ catalog 的 `live` 只影响未配置 provider 是否出现在列表里,不参
199
212
 
200
213
  ```sh
201
214
  npm run build # 构建 lib/index.js 与 lib/client.js
202
- npm test # 248 个用例,跑的是构建产物
215
+ npm test # 280 个用例,跑的是构建产物
203
216
  npm run typecheck # 类型检查(仅覆盖 src/)
204
217
  npm run verify # 上面三件事,按顺序
205
218
  ```