dsh-vaultwarden 0.9.1 → 0.9.2
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/CHANGELOG.md +13 -0
- package/assets/badge/badge-tile.svg +30 -0
- package/assets/badge/badge-white.svg +22 -0
- package/assets/badge/badge.svg +22 -0
- package/assets/badge/index.html +32 -0
- package/lib/client.js +83 -40
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,19 @@ All notable changes to `dsh-vaultwarden` are documented here.
|
|
|
4
4
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.9.2] — 2026-10-21
|
|
8
|
+
|
|
9
|
+
### 变更
|
|
10
|
+
|
|
11
|
+
- 面板标题改为纯文字「凭据库」,去掉标题前的徽章;按钮改用不带动画的文字标签。
|
|
12
|
+
- 标题字号由 17px 提升到 19px。
|
|
13
|
+
- 侧栏与设置导航的分区徽章改为盾牌加锁孔,纯黑白,跟随主题明暗。
|
|
14
|
+
|
|
15
|
+
### 修复
|
|
16
|
+
|
|
17
|
+
- 修复标题与后面的版本号、GitHub 链接文字高度不齐的问题。
|
|
18
|
+
- 修复 GitHub 链接内图标与文字未对齐的问题。
|
|
19
|
+
|
|
7
20
|
## [0.9.1] — 2026-10-21
|
|
8
21
|
|
|
9
22
|
### 修复
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
dsh-vaultwarden — app tile
|
|
4
|
+
A dark rounded tile for launcher/app-icon slots, where the badge has to hold its own on a dark surface.
|
|
5
|
+
|
|
6
|
+
Elements
|
|
7
|
+
shield outline ..... a credential vault (Bitwarden's own mark is a shield)
|
|
8
|
+
keyhole ........... Bitwarden / Vaultwarden
|
|
9
|
+
orca .............. dsh's own whale wordmark
|
|
10
|
+
accent #175DDC .... Bitwarden brand blue
|
|
11
|
+
|
|
12
|
+
The whale is the real dsh mark: the single <path> from the host's frontend
|
|
13
|
+
bundle (viewBox 0 0 23.16 17.04), embedded verbatim rather than redrawn.
|
|
14
|
+
MIT, same as the plugin.
|
|
15
|
+
-->
|
|
16
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" width="96" height="96" role="img" aria-label="dsh-vaultwarden">
|
|
17
|
+
<title>dsh-vaultwarden</title>
|
|
18
|
+
<defs>
|
|
19
|
+
<linearGradient id="tile" x1="0" y1="0" x2="0" y2="1">
|
|
20
|
+
<stop offset="0" stop-color="#262B33"/>
|
|
21
|
+
<stop offset="1" stop-color="#14171C"/>
|
|
22
|
+
</linearGradient>
|
|
23
|
+
</defs>
|
|
24
|
+
<rect x="2" y="2" width="92" height="92" rx="23" fill="url(#tile)"/>
|
|
25
|
+
<rect x="2" y="2" width="92" height="92" rx="23" fill="none" stroke="#333A44" stroke-width="1"/>
|
|
26
|
+
<path d="M48 10 L82 24 V52 C82 71 66 84 48 90 C30 84 14 71 14 52 V24 Z" transform="translate(6,4) scale(0.875)" fill="none" stroke="#FFFFFF" stroke-width="4.4" stroke-linejoin="round"/>
|
|
27
|
+
<circle cx="48" cy="32" r="5.6" fill="#FFFFFF"/>
|
|
28
|
+
<path d="M44 36.4 L52 36.4 L54.6 47 L41.4 47 Z" fill="#FFFFFF"/>
|
|
29
|
+
<g transform="translate(32,53)"><svg width="32" height="23.54" viewBox="0 0 23.16 17.04" fill="#175DDC" overflow="visible"><path d="M22.9168 1.43018C22.6713 1.31018 22.5658 1.53918 22.4223 1.65519C22.3733 1.69269 22.3318 1.74169 22.2903 1.78669C21.9317 2.1697 21.5127 2.42121 20.9657 2.39121C20.1657 2.34621 19.4827 2.59771 18.8787 3.20973C18.7502 2.45521 18.3236 2.0047 17.6746 1.71569C17.3351 1.56568 16.9916 1.41518 16.7536 1.08867C16.5876 0.856163 16.5421 0.597155 16.4591 0.341647C16.4061 0.187643 16.3536 0.0301382 16.1761 0.00363739C15.9836 -0.0263635 15.9081 0.135141 15.8326 0.270145C15.5306 0.822162 15.4136 1.43018 15.4251 2.0462C15.4516 3.43174 16.0366 4.53527 17.1991 5.3203C17.3311 5.4103 17.3651 5.5003 17.3236 5.63181C17.2441 5.90231 17.1501 6.16482 17.0671 6.43533C17.0141 6.60784 16.9351 6.64584 16.7501 6.57033C16.1121 6.30383 15.5611 5.90931 15.074 5.4328C14.2475 4.63328 13.5 3.75075 12.568 3.05973C12.349 2.89822 12.13 2.74822 11.9034 2.60522C10.9524 1.68169 12.028 0.923165 12.277 0.833162C12.5375 0.739159 12.3675 0.41615 11.5259 0.42015C10.6844 0.42365 9.91439 0.705658 8.93286 1.08117C8.78935 1.13767 8.63835 1.17867 8.48384 1.21267C7.59332 1.04367 6.66829 1.00617 5.70226 1.11517C3.88321 1.31768 2.43016 2.1777 1.36213 3.64575C0.0790928 5.4103 -0.222916 7.41536 0.146595 9.50642C0.535106 11.7105 1.66014 13.535 3.38869 14.9616C5.18125 16.4406 7.24581 17.1657 9.60138 17.0266C11.0319 16.9441 12.6245 16.7526 14.421 15.2321C14.874 15.4576 15.3496 15.5476 16.1381 15.6151C16.7456 15.6716 17.3306 15.5851 17.7836 15.4911C18.4931 15.3411 18.4441 14.6841 18.1876 14.5636C16.1081 13.595 16.5646 13.9891 16.1496 13.67C17.2061 12.42 18.8202 10.1979 19.3182 7.17235C19.3672 6.83834 19.4297 6.36783 19.4222 6.09732C19.4182 5.93231 19.4562 5.86831 19.6447 5.84931C20.1657 5.78931 20.6712 5.64681 21.1357 5.3913C22.4833 4.65528 23.0268 3.44624 23.1548 1.9972C23.1738 1.77569 23.1508 1.54668 22.9168 1.43018ZM11.1749 14.4736C9.15936 12.889 8.18184 12.3675 7.77832 12.39C7.40081 12.4125 7.46881 12.8445 7.55182 13.126C7.63882 13.404 7.75182 13.5955 7.91033 13.8396C8.01983 14.0011 8.09533 14.2411 7.80083 14.4216C7.15181 14.8231 6.02327 14.2866 5.97027 14.2601C4.65673 13.4865 3.5587 12.4655 2.78467 11.069C2.03715 9.72493 1.60314 8.28289 1.53164 6.74384C1.51264 6.37233 1.62214 6.24082 1.99215 6.17332C2.47916 6.08332 2.98118 6.06432 3.46769 6.13582C5.52476 6.43633 7.27581 7.35586 8.74385 8.8129C9.58188 9.64243 10.2159 10.634 10.8689 11.6025C11.5634 12.631 12.3105 13.611 13.262 14.4146C13.598 14.6961 13.866 14.9101 14.1225 15.0681C13.349 15.1546 12.058 15.1731 11.1749 14.4746L11.1749 14.4736ZM12.141 8.25988C12.141 8.09488 12.273 7.96338 12.439 7.96338C12.4765 7.96338 12.5105 7.97088 12.541 7.98188C12.5825 7.99688 12.6205 8.01938 12.6505 8.05338C12.7035 8.10588 12.7335 8.18088 12.7335 8.25988C12.7335 8.42489 12.6015 8.55639 12.4355 8.55639C12.2695 8.55639 12.141 8.42489 12.141 8.25988ZM15.1415 9.79893C14.949 9.87793 14.7565 9.94544 14.5715 9.95294C14.2845 9.96794 13.9715 9.85143 13.8015 9.70893C13.5375 9.48742 13.3485 9.36342 13.2695 8.97691C13.2355 8.8119 13.2545 8.55639 13.2845 8.40989C13.3525 8.09438 13.277 7.89187 13.0545 7.70787C12.8735 7.55786 12.643 7.51636 12.39 7.51636C12.2955 7.51636 12.209 7.47486 12.1445 7.44136C12.039 7.38886 11.9519 7.25735 12.035 7.09585C12.0615 7.04335 12.19 6.91584 12.22 6.89334C12.5635 6.69784 12.9595 6.76184 13.326 6.90834C13.6655 7.04735 13.9225 7.30236 14.292 7.66287C14.6695 8.09838 14.7375 8.21838 14.9525 8.54539C15.1225 8.8009 15.277 9.06341 15.3831 9.36392C15.4471 9.55142 15.3641 9.70493 15.1415 9.79893Z"/></svg></g>
|
|
30
|
+
</svg>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
dsh-vaultwarden — badge, white shield
|
|
4
|
+
For a coloured or photographic background where a tint would disappear.
|
|
5
|
+
|
|
6
|
+
Elements
|
|
7
|
+
shield outline ..... a credential vault (Bitwarden's own mark is a shield)
|
|
8
|
+
keyhole ........... Bitwarden / Vaultwarden
|
|
9
|
+
orca .............. dsh's own whale wordmark
|
|
10
|
+
accent #175DDC .... Bitwarden brand blue
|
|
11
|
+
|
|
12
|
+
The whale is the real dsh mark: the single <path> from the host's frontend
|
|
13
|
+
bundle (viewBox 0 0 23.16 17.04), embedded verbatim rather than redrawn.
|
|
14
|
+
MIT, same as the plugin.
|
|
15
|
+
-->
|
|
16
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" width="96" height="96" role="img" aria-label="dsh-vaultwarden">
|
|
17
|
+
<title>dsh-vaultwarden</title>
|
|
18
|
+
<path d="M48 10 L82 24 V52 C82 71 66 84 48 90 C30 84 14 71 14 52 V24 Z" fill="#FFFFFF" stroke="#1F2328" stroke-width="3.2" stroke-linejoin="round"/>
|
|
19
|
+
<circle cx="48" cy="30" r="6" fill="#1F2328"/>
|
|
20
|
+
<path d="M44 34.8 L52 34.8 L54.6 47 L41.4 47 Z" fill="#1F2328"/>
|
|
21
|
+
<g transform="translate(31,53)"><svg width="34" height="25.02" viewBox="0 0 23.16 17.04" fill="#175DDC" overflow="visible"><path d="M22.9168 1.43018C22.6713 1.31018 22.5658 1.53918 22.4223 1.65519C22.3733 1.69269 22.3318 1.74169 22.2903 1.78669C21.9317 2.1697 21.5127 2.42121 20.9657 2.39121C20.1657 2.34621 19.4827 2.59771 18.8787 3.20973C18.7502 2.45521 18.3236 2.0047 17.6746 1.71569C17.3351 1.56568 16.9916 1.41518 16.7536 1.08867C16.5876 0.856163 16.5421 0.597155 16.4591 0.341647C16.4061 0.187643 16.3536 0.0301382 16.1761 0.00363739C15.9836 -0.0263635 15.9081 0.135141 15.8326 0.270145C15.5306 0.822162 15.4136 1.43018 15.4251 2.0462C15.4516 3.43174 16.0366 4.53527 17.1991 5.3203C17.3311 5.4103 17.3651 5.5003 17.3236 5.63181C17.2441 5.90231 17.1501 6.16482 17.0671 6.43533C17.0141 6.60784 16.9351 6.64584 16.7501 6.57033C16.1121 6.30383 15.5611 5.90931 15.074 5.4328C14.2475 4.63328 13.5 3.75075 12.568 3.05973C12.349 2.89822 12.13 2.74822 11.9034 2.60522C10.9524 1.68169 12.028 0.923165 12.277 0.833162C12.5375 0.739159 12.3675 0.41615 11.5259 0.42015C10.6844 0.42365 9.91439 0.705658 8.93286 1.08117C8.78935 1.13767 8.63835 1.17867 8.48384 1.21267C7.59332 1.04367 6.66829 1.00617 5.70226 1.11517C3.88321 1.31768 2.43016 2.1777 1.36213 3.64575C0.0790928 5.4103 -0.222916 7.41536 0.146595 9.50642C0.535106 11.7105 1.66014 13.535 3.38869 14.9616C5.18125 16.4406 7.24581 17.1657 9.60138 17.0266C11.0319 16.9441 12.6245 16.7526 14.421 15.2321C14.874 15.4576 15.3496 15.5476 16.1381 15.6151C16.7456 15.6716 17.3306 15.5851 17.7836 15.4911C18.4931 15.3411 18.4441 14.6841 18.1876 14.5636C16.1081 13.595 16.5646 13.9891 16.1496 13.67C17.2061 12.42 18.8202 10.1979 19.3182 7.17235C19.3672 6.83834 19.4297 6.36783 19.4222 6.09732C19.4182 5.93231 19.4562 5.86831 19.6447 5.84931C20.1657 5.78931 20.6712 5.64681 21.1357 5.3913C22.4833 4.65528 23.0268 3.44624 23.1548 1.9972C23.1738 1.77569 23.1508 1.54668 22.9168 1.43018ZM11.1749 14.4736C9.15936 12.889 8.18184 12.3675 7.77832 12.39C7.40081 12.4125 7.46881 12.8445 7.55182 13.126C7.63882 13.404 7.75182 13.5955 7.91033 13.8396C8.01983 14.0011 8.09533 14.2411 7.80083 14.4216C7.15181 14.8231 6.02327 14.2866 5.97027 14.2601C4.65673 13.4865 3.5587 12.4655 2.78467 11.069C2.03715 9.72493 1.60314 8.28289 1.53164 6.74384C1.51264 6.37233 1.62214 6.24082 1.99215 6.17332C2.47916 6.08332 2.98118 6.06432 3.46769 6.13582C5.52476 6.43633 7.27581 7.35586 8.74385 8.8129C9.58188 9.64243 10.2159 10.634 10.8689 11.6025C11.5634 12.631 12.3105 13.611 13.262 14.4146C13.598 14.6961 13.866 14.9101 14.1225 15.0681C13.349 15.1546 12.058 15.1731 11.1749 14.4746L11.1749 14.4736ZM12.141 8.25988C12.141 8.09488 12.273 7.96338 12.439 7.96338C12.4765 7.96338 12.5105 7.97088 12.541 7.98188C12.5825 7.99688 12.6205 8.01938 12.6505 8.05338C12.7035 8.10588 12.7335 8.18088 12.7335 8.25988C12.7335 8.42489 12.6015 8.55639 12.4355 8.55639C12.2695 8.55639 12.141 8.42489 12.141 8.25988ZM15.1415 9.79893C14.949 9.87793 14.7565 9.94544 14.5715 9.95294C14.2845 9.96794 13.9715 9.85143 13.8015 9.70893C13.5375 9.48742 13.3485 9.36342 13.2695 8.97691C13.2355 8.8119 13.2545 8.55639 13.2845 8.40989C13.3525 8.09438 13.277 7.89187 13.0545 7.70787C12.8735 7.55786 12.643 7.51636 12.39 7.51636C12.2955 7.51636 12.209 7.47486 12.1445 7.44136C12.039 7.38886 11.9519 7.25735 12.035 7.09585C12.0615 7.04335 12.19 6.91584 12.22 6.89334C12.5635 6.69784 12.9595 6.76184 13.326 6.90834C13.6655 7.04735 13.9225 7.30236 14.292 7.66287C14.6695 8.09838 14.7375 8.21838 14.9525 8.54539C15.1225 8.8009 15.277 9.06341 15.3831 9.36392C15.4471 9.55142 15.3641 9.70493 15.1415 9.79893Z"/></svg></g>
|
|
22
|
+
</svg>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
dsh-vaultwarden — badge
|
|
4
|
+
The primary badge. Tinted shield, ink keyhole, blue orca.
|
|
5
|
+
|
|
6
|
+
Elements
|
|
7
|
+
shield outline ..... a credential vault (Bitwarden's own mark is a shield)
|
|
8
|
+
keyhole ........... Bitwarden / Vaultwarden
|
|
9
|
+
orca .............. dsh's own whale wordmark
|
|
10
|
+
accent #175DDC .... Bitwarden brand blue
|
|
11
|
+
|
|
12
|
+
The whale is the real dsh mark: the single <path> from the host's frontend
|
|
13
|
+
bundle (viewBox 0 0 23.16 17.04), embedded verbatim rather than redrawn.
|
|
14
|
+
MIT, same as the plugin.
|
|
15
|
+
-->
|
|
16
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" width="96" height="96" role="img" aria-label="dsh-vaultwarden">
|
|
17
|
+
<title>dsh-vaultwarden</title>
|
|
18
|
+
<path d="M48 10 L82 24 V52 C82 71 66 84 48 90 C30 84 14 71 14 52 V24 Z" fill="#E7EDFB" stroke="#1F2328" stroke-width="3.2" stroke-linejoin="round"/>
|
|
19
|
+
<circle cx="48" cy="30" r="6" fill="#1F2328"/>
|
|
20
|
+
<path d="M44 34.8 L52 34.8 L54.6 47 L41.4 47 Z" fill="#1F2328"/>
|
|
21
|
+
<g transform="translate(31,53)"><svg width="34" height="25.02" viewBox="0 0 23.16 17.04" fill="#175DDC" overflow="visible"><path d="M22.9168 1.43018C22.6713 1.31018 22.5658 1.53918 22.4223 1.65519C22.3733 1.69269 22.3318 1.74169 22.2903 1.78669C21.9317 2.1697 21.5127 2.42121 20.9657 2.39121C20.1657 2.34621 19.4827 2.59771 18.8787 3.20973C18.7502 2.45521 18.3236 2.0047 17.6746 1.71569C17.3351 1.56568 16.9916 1.41518 16.7536 1.08867C16.5876 0.856163 16.5421 0.597155 16.4591 0.341647C16.4061 0.187643 16.3536 0.0301382 16.1761 0.00363739C15.9836 -0.0263635 15.9081 0.135141 15.8326 0.270145C15.5306 0.822162 15.4136 1.43018 15.4251 2.0462C15.4516 3.43174 16.0366 4.53527 17.1991 5.3203C17.3311 5.4103 17.3651 5.5003 17.3236 5.63181C17.2441 5.90231 17.1501 6.16482 17.0671 6.43533C17.0141 6.60784 16.9351 6.64584 16.7501 6.57033C16.1121 6.30383 15.5611 5.90931 15.074 5.4328C14.2475 4.63328 13.5 3.75075 12.568 3.05973C12.349 2.89822 12.13 2.74822 11.9034 2.60522C10.9524 1.68169 12.028 0.923165 12.277 0.833162C12.5375 0.739159 12.3675 0.41615 11.5259 0.42015C10.6844 0.42365 9.91439 0.705658 8.93286 1.08117C8.78935 1.13767 8.63835 1.17867 8.48384 1.21267C7.59332 1.04367 6.66829 1.00617 5.70226 1.11517C3.88321 1.31768 2.43016 2.1777 1.36213 3.64575C0.0790928 5.4103 -0.222916 7.41536 0.146595 9.50642C0.535106 11.7105 1.66014 13.535 3.38869 14.9616C5.18125 16.4406 7.24581 17.1657 9.60138 17.0266C11.0319 16.9441 12.6245 16.7526 14.421 15.2321C14.874 15.4576 15.3496 15.5476 16.1381 15.6151C16.7456 15.6716 17.3306 15.5851 17.7836 15.4911C18.4931 15.3411 18.4441 14.6841 18.1876 14.5636C16.1081 13.595 16.5646 13.9891 16.1496 13.67C17.2061 12.42 18.8202 10.1979 19.3182 7.17235C19.3672 6.83834 19.4297 6.36783 19.4222 6.09732C19.4182 5.93231 19.4562 5.86831 19.6447 5.84931C20.1657 5.78931 20.6712 5.64681 21.1357 5.3913C22.4833 4.65528 23.0268 3.44624 23.1548 1.9972C23.1738 1.77569 23.1508 1.54668 22.9168 1.43018ZM11.1749 14.4736C9.15936 12.889 8.18184 12.3675 7.77832 12.39C7.40081 12.4125 7.46881 12.8445 7.55182 13.126C7.63882 13.404 7.75182 13.5955 7.91033 13.8396C8.01983 14.0011 8.09533 14.2411 7.80083 14.4216C7.15181 14.8231 6.02327 14.2866 5.97027 14.2601C4.65673 13.4865 3.5587 12.4655 2.78467 11.069C2.03715 9.72493 1.60314 8.28289 1.53164 6.74384C1.51264 6.37233 1.62214 6.24082 1.99215 6.17332C2.47916 6.08332 2.98118 6.06432 3.46769 6.13582C5.52476 6.43633 7.27581 7.35586 8.74385 8.8129C9.58188 9.64243 10.2159 10.634 10.8689 11.6025C11.5634 12.631 12.3105 13.611 13.262 14.4146C13.598 14.6961 13.866 14.9101 14.1225 15.0681C13.349 15.1546 12.058 15.1731 11.1749 14.4746L11.1749 14.4736ZM12.141 8.25988C12.141 8.09488 12.273 7.96338 12.439 7.96338C12.4765 7.96338 12.5105 7.97088 12.541 7.98188C12.5825 7.99688 12.6205 8.01938 12.6505 8.05338C12.7035 8.10588 12.7335 8.18088 12.7335 8.25988C12.7335 8.42489 12.6015 8.55639 12.4355 8.55639C12.2695 8.55639 12.141 8.42489 12.141 8.25988ZM15.1415 9.79893C14.949 9.87793 14.7565 9.94544 14.5715 9.95294C14.2845 9.96794 13.9715 9.85143 13.8015 9.70893C13.5375 9.48742 13.3485 9.36342 13.2695 8.97691C13.2355 8.8119 13.2545 8.55639 13.2845 8.40989C13.3525 8.09438 13.277 7.89187 13.0545 7.70787C12.8735 7.55786 12.643 7.51636 12.39 7.51636C12.2955 7.51636 12.209 7.47486 12.1445 7.44136C12.039 7.38886 11.9519 7.25735 12.035 7.09585C12.0615 7.04335 12.19 6.91584 12.22 6.89334C12.5635 6.69784 12.9595 6.76184 13.326 6.90834C13.6655 7.04735 13.9225 7.30236 14.292 7.66287C14.6695 8.09838 14.7375 8.21838 14.9525 8.54539C15.1225 8.8009 15.277 9.06341 15.3831 9.36392C15.4471 9.55142 15.3641 9.70493 15.1415 9.79893Z"/></svg></g>
|
|
22
|
+
</svg>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>
|
|
2
|
+
*{box-sizing:border-box} body{margin:0;padding:18px;background:#f6f7f9;font:13px system-ui;color:#1f2328}
|
|
3
|
+
.grid{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
|
|
4
|
+
.cell{background:#fff;border:1px solid #e3e5e8;border-radius:14px;padding:14px;display:flex;flex-direction:column;align-items:center;gap:12px}
|
|
5
|
+
.big img{display:block;width:160px;height:160px}
|
|
6
|
+
.small{display:flex;gap:8px;align-items:flex-end}
|
|
7
|
+
.small img{display:block}
|
|
8
|
+
.n{font-size:11px;color:#666;font-family:ui-monospace,monospace}
|
|
9
|
+
.dark{background:#1F2328;padding:16px;border-radius:14px;display:flex;gap:16px;align-items:center;margin-top:16px}
|
|
10
|
+
</style></head><body>
|
|
11
|
+
<div class="grid">
|
|
12
|
+
<div class="cell"><div class="big"><img src="badge.svg"></div>
|
|
13
|
+
<div class="small">
|
|
14
|
+
<img src="badge.svg" width="64" height="64"><img src="badge.svg" width="48" height="48">
|
|
15
|
+
<img src="badge.svg" width="32" height="32"><img src="badge.svg" width="24" height="24">
|
|
16
|
+
<img src="badge.svg" width="16" height="16">
|
|
17
|
+
</div><div class="n">badge.svg</div></div>
|
|
18
|
+
<div class="cell"><div class="big"><img src="badge-white.svg"></div>
|
|
19
|
+
<div class="small">
|
|
20
|
+
<img src="badge-white.svg" width="64" height="64"><img src="badge-white.svg" width="48" height="48">
|
|
21
|
+
<img src="badge-white.svg" width="32" height="32"><img src="badge-white.svg" width="24" height="24">
|
|
22
|
+
<img src="badge-white.svg" width="16" height="16">
|
|
23
|
+
</div><div class="n">badge-white.svg</div></div>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="dark"><span style="font-size:11px;color:#8A9099">深色底 badge-tile.svg:</span>
|
|
26
|
+
<img src="badge-tile.svg" width="96" height="96">
|
|
27
|
+
<img src="badge-tile.svg" width="48" height="48">
|
|
28
|
+
<img src="badge-tile.svg" width="32" height="32">
|
|
29
|
+
<img src="badge-tile.svg" width="24" height="24">
|
|
30
|
+
<img src="badge-tile.svg" width="16" height="16">
|
|
31
|
+
</div>
|
|
32
|
+
</body></html>
|
package/lib/client.js
CHANGED
|
@@ -396,7 +396,7 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
396
396
|
* `scripts/build.sh` stamps both constants from package.json on every
|
|
397
397
|
* build, so this fallback is never hand-maintained and cannot drift.
|
|
398
398
|
*/
|
|
399
|
-
const BUILD_VERSION = '0.9.
|
|
399
|
+
const BUILD_VERSION = '0.9.2'
|
|
400
400
|
const BUILD_REPOSITORY = 'https://github.com/BuvkB/dsh-vaultwarden'
|
|
401
401
|
/**
|
|
402
402
|
* Turn a package.json repository url into something a browser can open.
|
|
@@ -415,7 +415,7 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
415
415
|
|
|
416
416
|
// ── dictionaries (zh first; en mirrors the same keys) ─────────────────────
|
|
417
417
|
const DICT_ZH = {
|
|
418
|
-
panelTitle: '
|
|
418
|
+
panelTitle: '凭据库',
|
|
419
419
|
// The heading is now three parts: a 凭据库 badge (its own key, shared with
|
|
420
420
|
// the settings nav), the package name, then the version and repo link in
|
|
421
421
|
// small type.
|
|
@@ -720,7 +720,7 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
720
720
|
sessionEventTwoFactor: '后台重新登录需要两步验证',
|
|
721
721
|
}
|
|
722
722
|
const DICT_EN = {
|
|
723
|
-
panelTitle: '
|
|
723
|
+
panelTitle: 'Credentials',
|
|
724
724
|
packageLabel: 'dsh-vaultwarden',
|
|
725
725
|
versionLabel: 'v{version}',
|
|
726
726
|
repoLabel: 'GitHub',
|
|
@@ -1242,8 +1242,21 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
1242
1242
|
* piece and the metadata follows it — rather than a package name stranded
|
|
1243
1243
|
* on line one above a version on line two.
|
|
1244
1244
|
*/
|
|
1245
|
-
|
|
1246
|
-
|
|
1245
|
+
// `baseline`: this group is pure text now (the mark lives on the settings
|
|
1246
|
+
// rail), and two sizes on one line have to sit on a shared baseline. With
|
|
1247
|
+
// `center` the 17px heading centred against the 12.5px metadata's line box
|
|
1248
|
+
// and hung a pixel low — visible as the heading looking dropped against
|
|
1249
|
+
// its own metadata.
|
|
1250
|
+
titleHead: { display: 'inline-flex', alignItems: 'baseline', gap: 4, minWidth: 0, whiteSpace: 'nowrap' },
|
|
1251
|
+
// 17px, not 16: the heading is the one line a reader lands on when the
|
|
1252
|
+
// panel opens, and at 16 it sat only half a step above the 13.5px list
|
|
1253
|
+
// rows beside it. 17 with a 0.1 tracking keeps it a heading without
|
|
1254
|
+
// turning it into a banner.
|
|
1255
|
+
// 19px, and lifted 2px off the shared baseline: a 19px CJK glyph puts its
|
|
1256
|
+
// ink about 2px lower than the 12.5px Latin x-height beside it even when
|
|
1257
|
+
// both sit on the same baseline, which reads as the heading being dropped.
|
|
1258
|
+
// The lift is optical, not structural — measured against the live DOM.
|
|
1259
|
+
titleText: { fontSize: 19, fontWeight: 600, letterSpacing: 0.1, color: TOKEN.text, position: 'relative', top: -2 },
|
|
1247
1260
|
/**
|
|
1248
1261
|
* The package name: secondary grey, regular weight.
|
|
1249
1262
|
*
|
|
@@ -1260,11 +1273,18 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
1260
1273
|
* whole; without it the version could end a line and the link start the
|
|
1261
1274
|
* next, which reads as two unrelated notes rather than one.
|
|
1262
1275
|
*/
|
|
1263
|
-
|
|
1276
|
+
// `baseline`, not `center`: the group mixes 12.5px (the package) with
|
|
1277
|
+
// 11.5px (version, link) and 2px dots. Centring each item in the line box
|
|
1278
|
+
// puts their optical centres together but leaves their baselines apart, so
|
|
1279
|
+
// the row reads as slightly staggered letters. A shared baseline is what
|
|
1280
|
+
// makes mixed sizes look set rather than assembled.
|
|
1281
|
+
titleMeta: { display: 'inline-flex', alignItems: 'baseline', gap: 5, minWidth: 0, whiteSpace: 'nowrap' },
|
|
1264
1282
|
/** The build number: monospace digits so a version never shifts the row. */
|
|
1265
1283
|
titleVersion: { fontSize: 11.5, color: TOKEN.text2, fontVariantNumeric: 'tabular-nums', letterSpacing: 0.05 },
|
|
1266
1284
|
/** The separator between version and link — the host's own 2px caption dot. */
|
|
1267
|
-
|
|
1285
|
+
// A dot has no baseline of its own, so it is nudged up to the optical
|
|
1286
|
+
// middle of the text beside it when the row is baseline-aligned.
|
|
1287
|
+
titleDot: { width: 2, height: 2, borderRadius: 1, background: TOKEN.text2, opacity: 0.55, flex: 'none', alignSelf: 'center' },
|
|
1268
1288
|
/**
|
|
1269
1289
|
* The repo link. Underlined only on hover: an always-underlined link next
|
|
1270
1290
|
* to the heading reads as a mis-styled title.
|
|
@@ -1277,9 +1297,12 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
1277
1297
|
*/
|
|
1278
1298
|
titleLink: {
|
|
1279
1299
|
display: 'inline-flex',
|
|
1280
|
-
|
|
1300
|
+
// `baseline`, not `center`: the label is text and has to sit on the
|
|
1301
|
+
// row's baseline like the package name and the version beside it. The
|
|
1302
|
+
// mark inside is nudged back to the text's optical centre below.
|
|
1303
|
+
alignItems: 'baseline',
|
|
1281
1304
|
gap: 4,
|
|
1282
|
-
fontSize:
|
|
1305
|
+
fontSize: 12.5,
|
|
1283
1306
|
color: TOKEN.text2,
|
|
1284
1307
|
textDecoration: 'none',
|
|
1285
1308
|
cursor: 'pointer',
|
|
@@ -1929,7 +1952,9 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
1929
1952
|
every other row's text sits — no measured offsets, no negative margins
|
|
1930
1953
|
that could push the label out of its cell on a tight layout. */
|
|
1931
1954
|
.vw-nav-label { display: inline-flex; align-items: center; gap: 8px; min-width: 0 }
|
|
1932
|
-
|
|
1955
|
+
/* 18px, matching the component's own default: the badge is a two-shape mark and
|
|
1956
|
+
its plate needs the extra 2px to stay separate from the shield at this size. */
|
|
1957
|
+
.vw-nav-glyph { flex: none; width: 18px; height: 18px; color: inherit }
|
|
1933
1958
|
.vw-nav-text { white-space: nowrap }
|
|
1934
1959
|
/* The sidebar's own hover: its rows carry no border, so the shared button
|
|
1935
1960
|
hover (which only moves a border colour) would say nothing there. */
|
|
@@ -2112,10 +2137,12 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
2112
2137
|
.vw-root [data-vw-detail] { padding: 16px !important }
|
|
2113
2138
|
.vw-root [data-row] { padding: 10px 12px !important; gap: 10px !important }
|
|
2114
2139
|
/* The settings nav becomes a tight tab strip here (dsh-web-mobile packs
|
|
2115
|
-
its cells at padding 6px 8px, gap 6px, 14px icons)
|
|
2116
|
-
|
|
2140
|
+
its cells at padding 6px 8px, gap 6px, 14px icons). The glyph follows the
|
|
2141
|
+
strip's rhythm but stays at 17px rather than the 14px host icons: the
|
|
2142
|
+
shield's keyhole closes up below that, and this row is the one place the
|
|
2143
|
+
mark is the only thing identifying the section. */
|
|
2117
2144
|
.vw-nav-label { gap: 6px }
|
|
2118
|
-
.vw-nav-glyph { width:
|
|
2145
|
+
.vw-nav-glyph { width: 17px; height: 17px }
|
|
2119
2146
|
}
|
|
2120
2147
|
`
|
|
2121
2148
|
document.head.appendChild(style)
|
|
@@ -2128,37 +2155,45 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
2128
2155
|
* `currentColor` at the sizes the host chrome uses, so it follows the
|
|
2129
2156
|
* label colour instead of being painted blue everywhere.
|
|
2130
2157
|
*/
|
|
2131
|
-
const VaultGlyph = ({ className, size =
|
|
2158
|
+
const VaultGlyph = ({ className, size = 18 }) =>
|
|
2132
2159
|
h(
|
|
2133
2160
|
'svg',
|
|
2134
2161
|
{
|
|
2135
2162
|
className,
|
|
2136
2163
|
width: size,
|
|
2137
2164
|
height: size,
|
|
2138
|
-
//
|
|
2139
|
-
//
|
|
2140
|
-
//
|
|
2141
|
-
//
|
|
2142
|
-
//
|
|
2143
|
-
//
|
|
2144
|
-
//
|
|
2165
|
+
// The plugin's badge: a shield outline with a solid keyhole.
|
|
2166
|
+
//
|
|
2167
|
+
// Two marks, one axis. Earlier passes added the dsh prompt to this —
|
|
2168
|
+
// first on a filled plate, then as a bare `>_` — and every version
|
|
2169
|
+
// failed the same way: three shapes in a 16-unit box have no room to
|
|
2170
|
+
// agree on a centre, so the mark read as scattered rather than
|
|
2171
|
+
// composed. The prompt is gone; what is left is the two things that
|
|
2172
|
+
// any password manager's own icon carries, both centred on x=8 and
|
|
2173
|
+
// both sized to leave the same air on every side.
|
|
2174
|
+
//
|
|
2175
|
+
// Monochrome through `currentColor`, so it follows the rail's ink and
|
|
2176
|
+
// flips with the theme.
|
|
2145
2177
|
viewBox: '0 0 16 16',
|
|
2146
2178
|
fill: 'none',
|
|
2147
|
-
stroke: 'currentColor',
|
|
2148
|
-
strokeWidth: 1,
|
|
2149
2179
|
'aria-hidden': 'true',
|
|
2150
2180
|
focusable: 'false',
|
|
2151
2181
|
},
|
|
2152
|
-
//
|
|
2153
|
-
//
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2182
|
+
// The shield: outline only, 1.3 stroke. Symmetric about x=8, and its
|
|
2183
|
+
// outer box is inset 1 unit on every side so the stroke never clips.
|
|
2184
|
+
h('path', {
|
|
2185
|
+
d: 'M8 0.5 L13.2 2.85 V7.15 C13.2 10.6 11.1 13 8 14.3 C4.9 13 2.8 10.6 2.8 7.15 V2.85 Z',
|
|
2186
|
+
fill: 'none',
|
|
2187
|
+
stroke: 'currentColor',
|
|
2188
|
+
strokeWidth: 1.3,
|
|
2189
|
+
strokeLinejoin: 'round',
|
|
2190
|
+
}),
|
|
2191
|
+
// The keyhole: a round bow over a tapered shaft, centred on the same
|
|
2192
|
+
// axis as the shield. Proportions are the ones a physical keyhole
|
|
2193
|
+
// actually has — the bow is about half the shaft's height and the taper
|
|
2194
|
+
// runs 1:2 — which is what keeps it from reading as a lollipop.
|
|
2195
|
+
h('circle', { cx: 8, cy: 5.4, r: 1.4, fill: 'currentColor' }),
|
|
2196
|
+
h('path', { d: 'M7.33 6.17 H8.67 L9.6 8.9 H6.4 Z', fill: 'currentColor' }),
|
|
2162
2197
|
)
|
|
2163
2198
|
|
|
2164
2199
|
/**
|
|
@@ -7130,11 +7165,11 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
7130
7165
|
h(
|
|
7131
7166
|
'div',
|
|
7132
7167
|
{ style: S.titleRow },
|
|
7133
|
-
// No mark
|
|
7134
|
-
// it had to be sized against the name beside it, and at
|
|
7135
|
-
// pushed the metadata onto a second row at phone width.
|
|
7136
|
-
//
|
|
7137
|
-
//
|
|
7168
|
+
// No mark in the heading. The shield was tried here and cost more
|
|
7169
|
+
// than it gave: it had to be sized against the name beside it, and at
|
|
7170
|
+
// any size it pushed the metadata onto a second row at phone width.
|
|
7171
|
+
// The settings rail already carries the badge for this section, so
|
|
7172
|
+
// repeating it one line below read as an icon beside an icon.
|
|
7138
7173
|
//
|
|
7139
7174
|
// Two groups, not four loose items. The heading is one unit and the
|
|
7140
7175
|
// metadata is another, so a narrow panel moves the WHOLE metadata
|
|
@@ -7143,7 +7178,15 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
7143
7178
|
// through, which read as an unfinished line. Within a group nothing
|
|
7144
7179
|
// wraps; `nowrap` on each is what makes that a guarantee rather than
|
|
7145
7180
|
// a hope about the text's width.
|
|
7146
|
-
h(
|
|
7181
|
+
h(
|
|
7182
|
+
'span',
|
|
7183
|
+
{ style: S.titleHead },
|
|
7184
|
+
// Heading only. The badge was here for a while and the row read as
|
|
7185
|
+
// "icon, gap, icon" beside the settings rail's own shield on the
|
|
7186
|
+
// same screen; the rail already identifies the section, so the
|
|
7187
|
+
// heading does not repeat it.
|
|
7188
|
+
h('span', { style: S.titleText }, t('panelTitle')),
|
|
7189
|
+
),
|
|
7147
7190
|
// `plugin` (the host's own manifest read) wins when it is there;
|
|
7148
7191
|
// otherwise the build stamp answers, so the line is never empty — not
|
|
7149
7192
|
// on an older host, and not on a bundle served before a restart
|
|
@@ -7172,7 +7215,7 @@ const nextOffsetOf = (payload, fallback) => {
|
|
|
7172
7215
|
title: t('repoTitle'),
|
|
7173
7216
|
style: S.titleLink,
|
|
7174
7217
|
},
|
|
7175
|
-
navGlyph('github',
|
|
7218
|
+
h('span', { style: { display: 'inline-flex', alignSelf: 'center' } }, navGlyph('github', 13)),
|
|
7176
7219
|
t('repoLabel'),
|
|
7177
7220
|
),
|
|
7178
7221
|
),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-vaultwarden",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "Vaultwarden/Bitwarden real-time sync for DeepSeek Harness: WebSocket push notifications, on-disk vault cache with revision probing, read/write tools and an entry browser panel. Independent implementation; see THIRD-PARTY-NOTICES.md.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|