dsh-vault 1.10.63-rc.4 → 1.10.63
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-zh.md +32 -3
- package/README.md +43 -3
- package/lib/client.js +164 -164
- package/package.json +5 -2
package/README-zh.md
CHANGED
|
@@ -232,7 +232,7 @@ git clone git@github.com:Ox0400/dsh-vault.git
|
|
|
232
232
|
cd dsh-vault
|
|
233
233
|
pnpm install # 安装 devDependencies(typescript/tsdown/vitest 等)
|
|
234
234
|
pnpm build # 构建 host 侧 lib/*.js 与浏览器 bundle lib/client.js
|
|
235
|
-
pnpm test # 运行
|
|
235
|
+
pnpm test # 运行 420 项 vitest 测试
|
|
236
236
|
```
|
|
237
237
|
|
|
238
238
|
> 测试需要 harness 的 `dsh-llm`/`dsh-system-prompt` 等 peer 包,在 harness monorepo 内开发时由 workspace 链接提供。
|
|
@@ -240,7 +240,7 @@ pnpm test # 运行 41 项 vitest 测试
|
|
|
240
240
|
常用命令:
|
|
241
241
|
|
|
242
242
|
```sh
|
|
243
|
-
# 单元 + 集成测试(vitest,
|
|
243
|
+
# 单元 + 集成测试(vitest,420 项)
|
|
244
244
|
pnpm test # 或 npx vitest run
|
|
245
245
|
|
|
246
246
|
# 类型检查
|
|
@@ -253,7 +253,36 @@ pnpm build # = build:host (tsc) + build:client (tsdown)
|
|
|
253
253
|
npm pack
|
|
254
254
|
```
|
|
255
255
|
|
|
256
|
-
仓库内所有测试通过:
|
|
256
|
+
仓库内所有测试通过:420/420(crypto/TOTP/密码生成/store CRUD/网关/集成)。
|
|
257
|
+
|
|
258
|
+
浏览器侧检查跑在真实 `dsh web` 上(不属于 vitest),且**一律拒绝在 default 库上运行**:
|
|
259
|
+
|
|
260
|
+
```sh
|
|
261
|
+
node tests/e2e/theme-check.mjs # 双主题 token、进度环轨道、附件行
|
|
262
|
+
node tests/e2e/polish-check.mjs # 空态文案、相对时间悬停
|
|
263
|
+
node tests/e2e/contrast-audit.mjs # 8 个标签页 × 双主题的 WCAG 对比度扫描
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
安全规则与「让对比度审计说谎的两个坑」见 `tests/e2e/README.md`。
|
|
267
|
+
|
|
268
|
+
## 主题适配
|
|
269
|
+
|
|
270
|
+
UI 不写死颜色,而是读取宿主的设计变量:本地语义层映射到真实的 `--dsw-alias-*` 命名空间,并带字面量兜底,脱离 DeepSeek Harness 也能正常渲染。
|
|
271
|
+
|
|
272
|
+
```css
|
|
273
|
+
--v-text: var(--dsw-alias-label-primary, #1f2328);
|
|
274
|
+
--v-border: var(--dsw-alias-border-l2, #d9d9d9);
|
|
275
|
+
--v-success-text: color-mix(in srgb, var(--v-success) 55%, var(--v-text));
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
因为别名会随 `body[data-ds-dark-theme]` 翻转,浅色/深色自动跟随宿主 —— 没有第二套样式表,也没有主题参数。
|
|
279
|
+
|
|
280
|
+
这层语义层要守住的两条规则:
|
|
281
|
+
|
|
282
|
+
- **状态色 `state-*-primary` 不能当正文颜色。** 它们是为填充块和图标调的:白底上 success 只有 2.28:1、warn 只有 2.15:1,远低于 WCAG AA。`--v-*-text` 变体把它们与主题正文色混合,于是同一条声明在浅色下压暗、深色下提亮(浅色 5.8/5.6/7.5:1,深色 12+/11+/6.5:1)。
|
|
283
|
+
- **不要用 `opacity` 弱化文字。** `opacity: .8` 会把 5.8:1 变成 3.9:1。要「次要」就用 token(`--v-text-2`),不要用透明度。
|
|
284
|
+
|
|
285
|
+
`tests/e2e/contrast-audit.mjs` 会在两套主题、全部标签页上验证这两条。
|
|
257
286
|
|
|
258
287
|
## 打包与发布
|
|
259
288
|
|
package/README.md
CHANGED
|
@@ -259,7 +259,7 @@ git clone git@github.com:Ox0400/dsh-vault.git
|
|
|
259
259
|
cd dsh-vault
|
|
260
260
|
pnpm install # installs devDependencies (typescript/tsdown/vitest, …)
|
|
261
261
|
pnpm build # builds host lib/*.js and the browser bundle lib/client.js
|
|
262
|
-
pnpm test # runs the
|
|
262
|
+
pnpm test # runs the 420 vitest tests
|
|
263
263
|
```
|
|
264
264
|
|
|
265
265
|
> Tests need harness peer packages such as `dsh-llm`/`dsh-system-prompt`; inside the harness monorepo these resolve via workspace links.
|
|
@@ -267,13 +267,53 @@ pnpm test # runs the 41 vitest tests
|
|
|
267
267
|
Common commands:
|
|
268
268
|
|
|
269
269
|
```sh
|
|
270
|
-
pnpm test # unit + integration tests (vitest,
|
|
270
|
+
pnpm test # unit + integration tests (vitest, 420)
|
|
271
271
|
pnpm typecheck # tsc -p tsconfig.json --noEmit
|
|
272
272
|
pnpm build # = build:host (tsc) + build:client (tsdown)
|
|
273
273
|
npm pack # optional: tarball for `dsh plugin add ./dsh-vault-0.1.1.tgz`
|
|
274
274
|
```
|
|
275
275
|
|
|
276
|
-
All
|
|
276
|
+
All 420 tests pass (crypto / TOTP / password generation / store CRUD / gateway / integration).
|
|
277
|
+
|
|
278
|
+
Browser checks run against a real `dsh web` instead of vitest, and every one of
|
|
279
|
+
them refuses to operate on the default vault:
|
|
280
|
+
|
|
281
|
+
```sh
|
|
282
|
+
node tests/e2e/theme-check.mjs # dual-theme tokens, ring track, attach row
|
|
283
|
+
node tests/e2e/polish-check.mjs # empty-state copy, relative-age hover hints
|
|
284
|
+
node tests/e2e/contrast-audit.mjs # WCAG sweep over all eight tabs, both themes
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
See `tests/e2e/README.md` for the safety rules and for the two traps that make a
|
|
288
|
+
contrast audit lie (serialised `color(srgb …)` values, and `opacity` counting as
|
|
289
|
+
part of the colour).
|
|
290
|
+
|
|
291
|
+
## Theming
|
|
292
|
+
|
|
293
|
+
The UI reads the host's design tokens instead of hard-coded colours. A local
|
|
294
|
+
semantic layer maps onto the real `--dsw-alias-*` namespace, with literal
|
|
295
|
+
fallbacks so the page still renders outside DeepSeek Harness:
|
|
296
|
+
|
|
297
|
+
```css
|
|
298
|
+
--v-text: var(--dsw-alias-label-primary, #1f2328);
|
|
299
|
+
--v-border: var(--dsw-alias-border-l2, #d9d9d9);
|
|
300
|
+
--v-success-text: color-mix(in srgb, var(--v-success) 55%, var(--v-text));
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Because the aliases flip with `body[data-ds-dark-theme]`, light and dark follow
|
|
304
|
+
the host automatically — there is no second stylesheet and no theme prop.
|
|
305
|
+
|
|
306
|
+
Two rules the layer exists to enforce:
|
|
307
|
+
|
|
308
|
+
- **Never use `state-*-primary` as body text.** Those tokens are tuned for fills
|
|
309
|
+
and icons: on white they measure 2.28:1 (success) and 2.15:1 (warn), far below
|
|
310
|
+
WCAG AA. The `--v-*-text` variants mix them towards the theme's own text colour,
|
|
311
|
+
so one declaration darkens on light and lightens on dark (light 5.8/5.6/7.5:1,
|
|
312
|
+
dark 12+/11+/6.5:1).
|
|
313
|
+
- **Never dim text with `opacity`.** `opacity: .8` turns a 5.8:1 colour into
|
|
314
|
+
3.9:1. Express "secondary" with a token (`--v-text-2`), not with transparency.
|
|
315
|
+
|
|
316
|
+
`tests/e2e/contrast-audit.mjs` verifies both across every tab in both themes.
|
|
277
317
|
|
|
278
318
|
## Packaging & Publishing
|
|
279
319
|
|
package/lib/client.js
CHANGED
|
@@ -445,191 +445,191 @@ window.__ModuleLoader__.load({
|
|
|
445
445
|
document.head.appendChild(tag);
|
|
446
446
|
}
|
|
447
447
|
var VaultSection_module_css_default = {
|
|
448
|
-
"
|
|
449
|
-
"
|
|
450
|
-
"
|
|
451
|
-
"
|
|
452
|
-
"pwHistPwd": "t_j5va_pwHistPwd",
|
|
453
|
-
"field": "t_j5va_field",
|
|
454
|
-
"dupGroup": "t_j5va_dupGroup",
|
|
455
|
-
"dangerButton": "t_j5va_dangerButton",
|
|
448
|
+
"pwFair": "t_j5va_pwFair",
|
|
449
|
+
"hit": "t_j5va_hit",
|
|
450
|
+
"intro": "t_j5va_intro",
|
|
451
|
+
"dueBadge": "t_j5va_dueBadge",
|
|
456
452
|
"pwMeter": "t_j5va_pwMeter",
|
|
457
|
-
"modeAsk": "t_j5va_modeAsk",
|
|
458
|
-
"brandGlyph": "t_j5va_brandGlyph",
|
|
459
|
-
"kindChip": "t_j5va_kindChip",
|
|
460
|
-
"retryButton": "t_j5va_retryButton",
|
|
461
|
-
"badgeBtn": "t_j5va_badgeBtn",
|
|
462
|
-
"rowSelected": "t_j5va_rowSelected",
|
|
463
|
-
"rowActions": "t_j5va_rowActions",
|
|
464
|
-
"row": "t_j5va_row",
|
|
465
|
-
"histUpdate": "t_j5va_histUpdate",
|
|
466
453
|
"emojiPicker": "t_j5va_emojiPicker",
|
|
467
|
-
"
|
|
468
|
-
"
|
|
454
|
+
"customFieldRows": "t_j5va_customFieldRows",
|
|
455
|
+
"identity": "t_j5va_identity",
|
|
456
|
+
"policyBar": "t_j5va_policyBar",
|
|
457
|
+
"vaultHeader": "t_j5va_vaultHeader",
|
|
458
|
+
"gridName": "t_j5va_gridName",
|
|
459
|
+
"badgeWarn": "t_j5va_badgeWarn",
|
|
460
|
+
"badgeDanger": "t_j5va_badgeDanger",
|
|
461
|
+
"customValueInput": "t_j5va_customValueInput",
|
|
462
|
+
"detailBox": "t_j5va_detailBox",
|
|
463
|
+
"secretField": "t_j5va_secretField",
|
|
464
|
+
"dangerButton": "t_j5va_dangerButton",
|
|
465
|
+
"histDanger": "t_j5va_histDanger",
|
|
466
|
+
"kindChipActive": "t_j5va_kindChipActive",
|
|
467
|
+
"badge": "t_j5va_badge",
|
|
468
|
+
"importList": "t_j5va_importList",
|
|
469
|
+
"pinOn": "t_j5va_pinOn",
|
|
470
|
+
"gridRow": "t_j5va_gridRow",
|
|
471
|
+
"emptyHint": "t_j5va_emptyHint",
|
|
469
472
|
"genOpts": "t_j5va_genOpts",
|
|
473
|
+
"colorSwatch": "t_j5va_colorSwatch",
|
|
474
|
+
"dupGroup": "t_j5va_dupGroup",
|
|
475
|
+
"selectActive": "t_j5va_selectActive",
|
|
476
|
+
"riskWarn": "t_j5va_riskWarn",
|
|
477
|
+
"riskDanger": "t_j5va_riskDanger",
|
|
478
|
+
"healthSummary": "t_j5va_healthSummary",
|
|
479
|
+
"moreWrap": "t_j5va_moreWrap",
|
|
480
|
+
"recentChip": "t_j5va_recentChip",
|
|
481
|
+
"section": "t_j5va_section",
|
|
482
|
+
"inlineInput": "t_j5va_inlineInput",
|
|
483
|
+
"exportChips": "t_j5va_exportChips",
|
|
484
|
+
"detailActions": "t_j5va_detailActions",
|
|
485
|
+
"reportBox": "t_j5va_reportBox",
|
|
486
|
+
"detailRemain": "t_j5va_detailRemain",
|
|
470
487
|
"saveButton": "t_j5va_saveButton",
|
|
471
|
-
"
|
|
472
|
-
"
|
|
488
|
+
"error": "t_j5va_error",
|
|
489
|
+
"histUpdate": "t_j5va_histUpdate",
|
|
490
|
+
"pwBar": "t_j5va_pwBar",
|
|
491
|
+
"rowSelected": "t_j5va_rowSelected",
|
|
492
|
+
"colorPalette": "t_j5va_colorPalette",
|
|
493
|
+
"histLink": "t_j5va_histLink",
|
|
494
|
+
"modeAuto": "t_j5va_modeAuto",
|
|
495
|
+
"detailItem": "t_j5va_detailItem",
|
|
496
|
+
"editorBody": "t_j5va_editorBody",
|
|
497
|
+
"list": "t_j5va_list",
|
|
498
|
+
"auditChip": "t_j5va_auditChip",
|
|
499
|
+
"attachBox": "t_j5va_attachBox",
|
|
500
|
+
"addButton": "t_j5va_addButton",
|
|
501
|
+
"tagManager": "t_j5va_tagManager",
|
|
502
|
+
"tab": "t_j5va_tab",
|
|
503
|
+
"empty": "t_j5va_empty",
|
|
504
|
+
"policyField": "t_j5va_policyField",
|
|
505
|
+
"customKeyInput": "t_j5va_customKeyInput",
|
|
473
506
|
"detailDeleteBtn": "t_j5va_detailDeleteBtn",
|
|
474
|
-
"
|
|
475
|
-
"
|
|
507
|
+
"tabActive": "t_j5va_tabActive",
|
|
508
|
+
"reportSub": "t_j5va_reportSub",
|
|
509
|
+
"brandGlyphSm": "t_j5va_brandGlyphSm",
|
|
510
|
+
"riskBanner": "t_j5va_riskBanner",
|
|
511
|
+
"pinOff": "t_j5va_pinOff",
|
|
512
|
+
"sortButton": "t_j5va_sortButton",
|
|
476
513
|
"lenChip": "t_j5va_lenChip",
|
|
477
|
-
"
|
|
478
|
-
"
|
|
514
|
+
"lenChipActive": "t_j5va_lenChipActive",
|
|
515
|
+
"reportLine": "t_j5va_reportLine",
|
|
516
|
+
"headerMessage": "t_j5va_headerMessage",
|
|
517
|
+
"bulkBar": "t_j5va_bulkBar",
|
|
518
|
+
"moreMenu": "t_j5va_moreMenu",
|
|
519
|
+
"row": "t_j5va_row",
|
|
520
|
+
"tagRow": "t_j5va_tagRow",
|
|
521
|
+
"genHist": "t_j5va_genHist",
|
|
522
|
+
"importActions": "t_j5va_importActions",
|
|
523
|
+
"histAdd": "t_j5va_histAdd",
|
|
524
|
+
"pwHistRow": "t_j5va_pwHistRow",
|
|
525
|
+
"badgeLink": "t_j5va_badgeLink",
|
|
526
|
+
"customFieldRow": "t_j5va_customFieldRow",
|
|
527
|
+
"scoreRing": "t_j5va_scoreRing",
|
|
528
|
+
"searchBox": "t_j5va_searchBox",
|
|
529
|
+
"recentSearch": "t_j5va_recentSearch",
|
|
530
|
+
"importDesc": "t_j5va_importDesc",
|
|
531
|
+
"rowDue": "t_j5va_rowDue",
|
|
532
|
+
"dupMerge": "t_j5va_dupMerge",
|
|
533
|
+
"pwStrong": "t_j5va_pwStrong",
|
|
479
534
|
"tagManagerHead": "t_j5va_tagManagerHead",
|
|
480
|
-
"badgeOk": "t_j5va_badgeOk",
|
|
481
|
-
"detailCode": "t_j5va_detailCode",
|
|
482
|
-
"copyAllBtn": "t_j5va_copyAllBtn",
|
|
483
|
-
"gridActions": "t_j5va_gridActions",
|
|
484
535
|
"badgeActive": "t_j5va_badgeActive",
|
|
485
|
-
"
|
|
536
|
+
"histNeutral": "t_j5va_histNeutral",
|
|
537
|
+
"pwWeak": "t_j5va_pwWeak",
|
|
538
|
+
"highBadge": "t_j5va_highBadge",
|
|
539
|
+
"pwLabel": "t_j5va_pwLabel",
|
|
540
|
+
"recentClear": "t_j5va_recentClear",
|
|
541
|
+
"gridActions": "t_j5va_gridActions",
|
|
542
|
+
"deleteButton": "t_j5va_deleteButton",
|
|
543
|
+
"reportJump": "t_j5va_reportJump",
|
|
544
|
+
"revealButton": "t_j5va_revealButton",
|
|
545
|
+
"tabPane": "t_j5va_tabPane",
|
|
546
|
+
"totpRing": "t_j5va_totpRing",
|
|
547
|
+
"gridDetail": "t_j5va_gridDetail",
|
|
548
|
+
"srOnly": "t_j5va_srOnly",
|
|
486
549
|
"auditWhen": "t_j5va_auditWhen",
|
|
550
|
+
"pinStar": "t_j5va_pinStar",
|
|
551
|
+
"pwHistBox": "t_j5va_pwHistBox",
|
|
552
|
+
"detailCode": "t_j5va_detailCode",
|
|
553
|
+
"searchKbd": "t_j5va_searchKbd",
|
|
554
|
+
"field": "t_j5va_field",
|
|
555
|
+
"status": "t_j5va_status",
|
|
556
|
+
"rowCheck": "t_j5va_rowCheck",
|
|
487
557
|
"auditChips": "t_j5va_auditChips",
|
|
488
|
-
"
|
|
558
|
+
"rowExpired": "t_j5va_rowExpired",
|
|
559
|
+
"genOptRow": "t_j5va_genOptRow",
|
|
560
|
+
"genHistItem": "t_j5va_genHistItem",
|
|
561
|
+
"toolbarDivider": "t_j5va_toolbarDivider",
|
|
562
|
+
"backupButton": "t_j5va_backupButton",
|
|
563
|
+
"kindChip": "t_j5va_kindChip",
|
|
564
|
+
"auditIssues": "t_j5va_auditIssues",
|
|
489
565
|
"auditRow": "t_j5va_auditRow",
|
|
490
|
-
"
|
|
491
|
-
"importActions": "t_j5va_importActions",
|
|
492
|
-
"searchKbd": "t_j5va_searchKbd",
|
|
493
|
-
"urlGlyph": "t_j5va_urlGlyph",
|
|
494
|
-
"headerMessage": "t_j5va_headerMessage",
|
|
495
|
-
"bulkBar": "t_j5va_bulkBar",
|
|
496
|
-
"selectActive": "t_j5va_selectActive",
|
|
497
|
-
"riskWarn": "t_j5va_riskWarn",
|
|
498
|
-
"emojiBtn": "t_j5va_emojiBtn",
|
|
499
|
-
"trashButton": "t_j5va_trashButton",
|
|
500
|
-
"totpRing": "t_j5va_totpRing",
|
|
501
|
-
"tabs": "t_j5va_tabs",
|
|
566
|
+
"retryButton": "t_j5va_retryButton",
|
|
502
567
|
"favActive": "t_j5va_favActive",
|
|
503
|
-
"
|
|
504
|
-
"
|
|
505
|
-
"
|
|
506
|
-
"
|
|
507
|
-
"auditChip": "t_j5va_auditChip",
|
|
508
|
-
"moreWrap": "t_j5va_moreWrap",
|
|
509
|
-
"detailBox": "t_j5va_detailBox",
|
|
510
|
-
"badge": "t_j5va_badge",
|
|
511
|
-
"rowCheck": "t_j5va_rowCheck",
|
|
512
|
-
"rowDue": "t_j5va_rowDue",
|
|
513
|
-
"pwHistTime": "t_j5va_pwHistTime",
|
|
514
|
-
"pinOff": "t_j5va_pinOff",
|
|
568
|
+
"exportChip": "t_j5va_exportChip",
|
|
569
|
+
"clearButton": "t_j5va_clearButton",
|
|
570
|
+
"tagCount": "t_j5va_tagCount",
|
|
571
|
+
"moreButton": "t_j5va_moreButton",
|
|
515
572
|
"bulkItem": "t_j5va_bulkItem",
|
|
516
|
-
"
|
|
517
|
-
"
|
|
518
|
-
"
|
|
519
|
-
"
|
|
520
|
-
"pwLabel": "t_j5va_pwLabel",
|
|
521
|
-
"totpCopy": "t_j5va_totpCopy",
|
|
522
|
-
"detailRemain": "t_j5va_detailRemain",
|
|
523
|
-
"tagRow": "t_j5va_tagRow",
|
|
524
|
-
"healthSummary": "t_j5va_healthSummary",
|
|
525
|
-
"modeReadonly": "t_j5va_modeReadonly",
|
|
526
|
-
"hit": "t_j5va_hit",
|
|
573
|
+
"lenChips": "t_j5va_lenChips",
|
|
574
|
+
"editorActions": "t_j5va_editorActions",
|
|
575
|
+
"recentLabel": "t_j5va_recentLabel",
|
|
576
|
+
"tagActions": "t_j5va_tagActions",
|
|
527
577
|
"lockedBanner": "t_j5va_lockedBanner",
|
|
528
|
-
"
|
|
529
|
-
"
|
|
530
|
-
"
|
|
531
|
-
"
|
|
532
|
-
"
|
|
533
|
-
"
|
|
534
|
-
"
|
|
535
|
-
"inlineField": "t_j5va_inlineField",
|
|
536
|
-
"highBadge": "t_j5va_highBadge",
|
|
537
|
-
"clearButton": "t_j5va_clearButton",
|
|
538
|
-
"dupMerge": "t_j5va_dupMerge",
|
|
539
|
-
"toolbarMain": "t_j5va_toolbarMain",
|
|
540
|
-
"customKeyInput": "t_j5va_customKeyInput",
|
|
541
|
-
"importDesc": "t_j5va_importDesc",
|
|
542
|
-
"genHistItem": "t_j5va_genHistItem",
|
|
543
|
-
"list": "t_j5va_list",
|
|
544
|
-
"actionGroup": "t_j5va_actionGroup",
|
|
545
|
-
"tabActive": "t_j5va_tabActive",
|
|
546
|
-
"reportBox": "t_j5va_reportBox",
|
|
578
|
+
"bulkCount": "t_j5va_bulkCount",
|
|
579
|
+
"totp": "t_j5va_totp",
|
|
580
|
+
"attachAdd": "t_j5va_attachAdd",
|
|
581
|
+
"detailTotp": "t_j5va_detailTotp",
|
|
582
|
+
"toolbarFilters": "t_j5va_toolbarFilters",
|
|
583
|
+
"auditChipActive": "t_j5va_auditChipActive",
|
|
584
|
+
"emojiBtn": "t_j5va_emojiBtn",
|
|
547
585
|
"actionGroups": "t_j5va_actionGroups",
|
|
548
|
-
"
|
|
549
|
-
"
|
|
550
|
-
"
|
|
551
|
-
"checkField": "t_j5va_checkField",
|
|
552
|
-
"resultCount": "t_j5va_resultCount",
|
|
553
|
-
"emptyBox": "t_j5va_emptyBox",
|
|
554
|
-
"brandGlyphSm": "t_j5va_brandGlyphSm",
|
|
555
|
-
"copied": "t_j5va_copied",
|
|
556
|
-
"detailItem": "t_j5va_detailItem",
|
|
586
|
+
"badgeOk": "t_j5va_badgeOk",
|
|
587
|
+
"actionGroup": "t_j5va_actionGroup",
|
|
588
|
+
"editor": "t_j5va_editor",
|
|
557
589
|
"actionGroupLabel": "t_j5va_actionGroupLabel",
|
|
558
|
-
"
|
|
559
|
-
"
|
|
560
|
-
"
|
|
561
|
-
"customFieldRows": "t_j5va_customFieldRows",
|
|
562
|
-
"toolbar": "t_j5va_toolbar",
|
|
563
|
-
"scoreRing": "t_j5va_scoreRing",
|
|
564
|
-
"detailTotp": "t_j5va_detailTotp",
|
|
565
|
-
"recentSearch": "t_j5va_recentSearch",
|
|
566
|
-
"customEq": "t_j5va_customEq",
|
|
567
|
-
"moreMenu": "t_j5va_moreMenu",
|
|
568
|
-
"kindIcon": "t_j5va_kindIcon",
|
|
569
|
-
"vaultHeader": "t_j5va_vaultHeader",
|
|
590
|
+
"vaultSwitch": "t_j5va_vaultSwitch",
|
|
591
|
+
"modeReadonly": "t_j5va_modeReadonly",
|
|
592
|
+
"rowMain": "t_j5va_rowMain",
|
|
570
593
|
"vaultManageRow": "t_j5va_vaultManageRow",
|
|
594
|
+
"inlineField": "t_j5va_inlineField",
|
|
595
|
+
"actionBtn": "t_j5va_actionBtn",
|
|
571
596
|
"title": "t_j5va_title",
|
|
572
|
-
"
|
|
573
|
-
"
|
|
574
|
-
"
|
|
575
|
-
"
|
|
576
|
-
"
|
|
577
|
-
"revealButton": "t_j5va_revealButton",
|
|
578
|
-
"tab": "t_j5va_tab",
|
|
579
|
-
"emptyHint": "t_j5va_emptyHint",
|
|
580
|
-
"modeAuto": "t_j5va_modeAuto",
|
|
581
|
-
"tagName": "t_j5va_tagName",
|
|
582
|
-
"listCompact": "t_j5va_listCompact",
|
|
583
|
-
"genHist": "t_j5va_genHist",
|
|
584
|
-
"gridDetail": "t_j5va_gridDetail",
|
|
585
|
-
"secretField": "t_j5va_secretField",
|
|
586
|
-
"lenChips": "t_j5va_lenChips",
|
|
587
|
-
"reportSub": "t_j5va_reportSub",
|
|
588
|
-
"riskDanger": "t_j5va_riskDanger",
|
|
589
|
-
"pwHistRow": "t_j5va_pwHistRow",
|
|
590
|
-
"detailActions": "t_j5va_detailActions",
|
|
591
|
-
"pinOn": "t_j5va_pinOn",
|
|
592
|
-
"lenChipActive": "t_j5va_lenChipActive",
|
|
593
|
-
"favToggle": "t_j5va_favToggle",
|
|
597
|
+
"kindIcon": "t_j5va_kindIcon",
|
|
598
|
+
"badgeBtn": "t_j5va_badgeBtn",
|
|
599
|
+
"uriCode": "t_j5va_uriCode",
|
|
600
|
+
"checkField": "t_j5va_checkField",
|
|
601
|
+
"toolbarMain": "t_j5va_toolbarMain",
|
|
594
602
|
"reportLineLink": "t_j5va_reportLineLink",
|
|
595
|
-
"
|
|
596
|
-
"
|
|
597
|
-
"
|
|
598
|
-
"
|
|
599
|
-
"kindFilter": "t_j5va_kindFilter",
|
|
600
|
-
"customFieldRow": "t_j5va_customFieldRow",
|
|
601
|
-
"toolbarFilters": "t_j5va_toolbarFilters",
|
|
602
|
-
"dueBadge": "t_j5va_dueBadge",
|
|
603
|
+
"actionPrimary": "t_j5va_actionPrimary",
|
|
604
|
+
"lockedTag": "t_j5va_lockedTag",
|
|
605
|
+
"rowActions": "t_j5va_rowActions",
|
|
606
|
+
"vaultTarget": "t_j5va_vaultTarget",
|
|
603
607
|
"gridInput": "t_j5va_gridInput",
|
|
604
|
-
"
|
|
605
|
-
"
|
|
606
|
-
"
|
|
607
|
-
"
|
|
608
|
-
"
|
|
609
|
-
"
|
|
610
|
-
"
|
|
608
|
+
"copyAllBtn": "t_j5va_copyAllBtn",
|
|
609
|
+
"totpCopy": "t_j5va_totpCopy",
|
|
610
|
+
"copied": "t_j5va_copied",
|
|
611
|
+
"tabs": "t_j5va_tabs",
|
|
612
|
+
"healthBar": "t_j5va_healthBar",
|
|
613
|
+
"favToggle": "t_j5va_favToggle",
|
|
614
|
+
"brandGlyph": "t_j5va_brandGlyph",
|
|
615
|
+
"listCompact": "t_j5va_listCompact",
|
|
616
|
+
"pwHistPwd": "t_j5va_pwHistPwd",
|
|
617
|
+
"urlGlyph": "t_j5va_urlGlyph",
|
|
611
618
|
"importRow": "t_j5va_importRow",
|
|
612
|
-
"
|
|
613
|
-
"
|
|
614
|
-
"
|
|
615
|
-
"
|
|
616
|
-
"
|
|
617
|
-
"
|
|
618
|
-
"
|
|
619
|
-
"
|
|
620
|
-
"
|
|
621
|
-
"
|
|
622
|
-
"
|
|
623
|
-
"
|
|
624
|
-
"
|
|
625
|
-
"
|
|
626
|
-
"auditChipActive": "t_j5va_auditChipActive",
|
|
627
|
-
"rowMain": "t_j5va_rowMain",
|
|
628
|
-
"recentClear": "t_j5va_recentClear",
|
|
629
|
-
"toolbarDivider": "t_j5va_toolbarDivider",
|
|
630
|
-
"error": "t_j5va_error",
|
|
631
|
-
"reportLine": "t_j5va_reportLine",
|
|
632
|
-
"pwHistBox": "t_j5va_pwHistBox"
|
|
619
|
+
"reportTitle": "t_j5va_reportTitle",
|
|
620
|
+
"toolbar": "t_j5va_toolbar",
|
|
621
|
+
"emptyBox": "t_j5va_emptyBox",
|
|
622
|
+
"kindFilter": "t_j5va_kindFilter",
|
|
623
|
+
"dupNames": "t_j5va_dupNames",
|
|
624
|
+
"iconFieldWrap": "t_j5va_iconFieldWrap",
|
|
625
|
+
"tagName": "t_j5va_tagName",
|
|
626
|
+
"importName": "t_j5va_importName",
|
|
627
|
+
"pwHistTime": "t_j5va_pwHistTime",
|
|
628
|
+
"resultCount": "t_j5va_resultCount",
|
|
629
|
+
"trashButton": "t_j5va_trashButton",
|
|
630
|
+
"customEq": "t_j5va_customEq",
|
|
631
|
+
"colorFieldWrap": "t_j5va_colorFieldWrap",
|
|
632
|
+
"modeAsk": "t_j5va_modeAsk"
|
|
633
633
|
};
|
|
634
634
|
//#endregion
|
|
635
635
|
//#region src/client/VaultSection.tsx
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-vault",
|
|
3
|
-
"version": "1.10.63
|
|
3
|
+
"version": "1.10.63",
|
|
4
4
|
"description": "Encrypted credential vault for DeepSeek Harness: store and retrieve usernames, emails, phone numbers, passwords, TOTP secrets, SSH/API-key/OAuth developer credentials through model tools and a Settings UI page.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -78,6 +78,9 @@
|
|
|
78
78
|
"build:client": "tsdown",
|
|
79
79
|
"prepare": "npm run build",
|
|
80
80
|
"test": "vitest run",
|
|
81
|
-
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
81
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
82
|
+
"e2e:theme": "node tests/e2e/theme-check.mjs",
|
|
83
|
+
"e2e:polish": "node tests/e2e/polish-check.mjs",
|
|
84
|
+
"e2e:contrast": "node tests/e2e/contrast-audit.mjs"
|
|
82
85
|
}
|
|
83
86
|
}
|